summaryrefslogtreecommitdiff
path: root/uvim/runtime/doc/version9.txt
blob: da79cdfcd123ec1261bae2b9480a20057375e11d (plain)
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
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286
5287
5288
5289
5290
5291
5292
5293
5294
5295
5296
5297
5298
5299
5300
5301
5302
5303
5304
5305
5306
5307
5308
5309
5310
5311
5312
5313
5314
5315
5316
5317
5318
5319
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
5342
5343
5344
5345
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
5363
5364
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388
5389
5390
5391
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445
5446
5447
5448
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468
5469
5470
5471
5472
5473
5474
5475
5476
5477
5478
5479
5480
5481
5482
5483
5484
5485
5486
5487
5488
5489
5490
5491
5492
5493
5494
5495
5496
5497
5498
5499
5500
5501
5502
5503
5504
5505
5506
5507
5508
5509
5510
5511
5512
5513
5514
5515
5516
5517
5518
5519
5520
5521
5522
5523
5524
5525
5526
5527
5528
5529
5530
5531
5532
5533
5534
5535
5536
5537
5538
5539
5540
5541
5542
5543
5544
5545
5546
5547
5548
5549
5550
5551
5552
5553
5554
5555
5556
5557
5558
5559
5560
5561
5562
5563
5564
5565
5566
5567
5568
5569
5570
5571
5572
5573
5574
5575
5576
5577
5578
5579
5580
5581
5582
5583
5584
5585
5586
5587
5588
5589
5590
5591
5592
5593
5594
5595
5596
5597
5598
5599
5600
5601
5602
5603
5604
5605
5606
5607
5608
5609
5610
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
5865
5866
5867
5868
5869
5870
5871
5872
5873
5874
5875
5876
5877
5878
5879
5880
5881
5882
5883
5884
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907
5908
5909
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931
5932
5933
5934
5935
5936
5937
5938
5939
5940
5941
5942
5943
5944
5945
5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968
5969
5970
5971
5972
5973
5974
5975
5976
5977
5978
5979
5980
5981
5982
5983
5984
5985
5986
5987
5988
5989
5990
5991
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
6003
6004
6005
6006
6007
6008
6009
6010
6011
6012
6013
6014
6015
6016
6017
6018
6019
6020
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
6055
6056
6057
6058
6059
6060
6061
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
6125
6126
6127
6128
6129
6130
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168
6169
6170
6171
6172
6173
6174
6175
6176
6177
6178
6179
6180
6181
6182
6183
6184
6185
6186
6187
6188
6189
6190
6191
6192
6193
6194
6195
6196
6197
6198
6199
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6213
6214
6215
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
6234
6235
6236
6237
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304
6305
6306
6307
6308
6309
6310
6311
6312
6313
6314
6315
6316
6317
6318
6319
6320
6321
6322
6323
6324
6325
6326
6327
6328
6329
6330
6331
6332
6333
6334
6335
6336
6337
6338
6339
6340
6341
6342
6343
6344
6345
6346
6347
6348
6349
6350
6351
6352
6353
6354
6355
6356
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367
6368
6369
6370
6371
6372
6373
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386
6387
6388
6389
6390
6391
6392
6393
6394
6395
6396
6397
6398
6399
6400
6401
6402
6403
6404
6405
6406
6407
6408
6409
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
6440
6441
6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
6457
6458
6459
6460
6461
6462
6463
6464
6465
6466
6467
6468
6469
6470
6471
6472
6473
6474
6475
6476
6477
6478
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
6509
6510
6511
6512
6513
6514
6515
6516
6517
6518
6519
6520
6521
6522
6523
6524
6525
6526
6527
6528
6529
6530
6531
6532
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
6547
6548
6549
6550
6551
6552
6553
6554
6555
6556
6557
6558
6559
6560
6561
6562
6563
6564
6565
6566
6567
6568
6569
6570
6571
6572
6573
6574
6575
6576
6577
6578
6579
6580
6581
6582
6583
6584
6585
6586
6587
6588
6589
6590
6591
6592
6593
6594
6595
6596
6597
6598
6599
6600
6601
6602
6603
6604
6605
6606
6607
6608
6609
6610
6611
6612
6613
6614
6615
6616
6617
6618
6619
6620
6621
6622
6623
6624
6625
6626
6627
6628
6629
6630
6631
6632
6633
6634
6635
6636
6637
6638
6639
6640
6641
6642
6643
6644
6645
6646
6647
6648
6649
6650
6651
6652
6653
6654
6655
6656
6657
6658
6659
6660
6661
6662
6663
6664
6665
6666
6667
6668
6669
6670
6671
6672
6673
6674
6675
6676
6677
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693
6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
6706
6707
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722
6723
6724
6725
6726
6727
6728
6729
6730
6731
6732
6733
6734
6735
6736
6737
6738
6739
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815
6816
6817
6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
6849
6850
6851
6852
6853
6854
6855
6856
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901
6902
6903
6904
6905
6906
6907
6908
6909
6910
6911
6912
6913
6914
6915
6916
6917
6918
6919
6920
6921
6922
6923
6924
6925
6926
6927
6928
6929
6930
6931
6932
6933
6934
6935
6936
6937
6938
6939
6940
6941
6942
6943
6944
6945
6946
6947
6948
6949
6950
6951
6952
6953
6954
6955
6956
6957
6958
6959
6960
6961
6962
6963
6964
6965
6966
6967
6968
6969
6970
6971
6972
6973
6974
6975
6976
6977
6978
6979
6980
6981
6982
6983
6984
6985
6986
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052
7053
7054
7055
7056
7057
7058
7059
7060
7061
7062
7063
7064
7065
7066
7067
7068
7069
7070
7071
7072
7073
7074
7075
7076
7077
7078
7079
7080
7081
7082
7083
7084
7085
7086
7087
7088
7089
7090
7091
7092
7093
7094
7095
7096
7097
7098
7099
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
7142
7143
7144
7145
7146
7147
7148
7149
7150
7151
7152
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272
7273
7274
7275
7276
7277
7278
7279
7280
7281
7282
7283
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295
7296
7297
7298
7299
7300
7301
7302
7303
7304
7305
7306
7307
7308
7309
7310
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
7361
7362
7363
7364
7365
7366
7367
7368
7369
7370
7371
7372
7373
7374
7375
7376
7377
7378
7379
7380
7381
7382
7383
7384
7385
7386
7387
7388
7389
7390
7391
7392
7393
7394
7395
7396
7397
7398
7399
7400
7401
7402
7403
7404
7405
7406
7407
7408
7409
7410
7411
7412
7413
7414
7415
7416
7417
7418
7419
7420
7421
7422
7423
7424
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
7449
7450
7451
7452
7453
7454
7455
7456
7457
7458
7459
7460
7461
7462
7463
7464
7465
7466
7467
7468
7469
7470
7471
7472
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
7490
7491
7492
7493
7494
7495
7496
7497
7498
7499
7500
7501
7502
7503
7504
7505
7506
7507
7508
7509
7510
7511
7512
7513
7514
7515
7516
7517
7518
7519
7520
7521
7522
7523
7524
7525
7526
7527
7528
7529
7530
7531
7532
7533
7534
7535
7536
7537
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557
7558
7559
7560
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577
7578
7579
7580
7581
7582
7583
7584
7585
7586
7587
7588
7589
7590
7591
7592
7593
7594
7595
7596
7597
7598
7599
7600
7601
7602
7603
7604
7605
7606
7607
7608
7609
7610
7611
7612
7613
7614
7615
7616
7617
7618
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631
7632
7633
7634
7635
7636
7637
7638
7639
7640
7641
7642
7643
7644
7645
7646
7647
7648
7649
7650
7651
7652
7653
7654
7655
7656
7657
7658
7659
7660
7661
7662
7663
7664
7665
7666
7667
7668
7669
7670
7671
7672
7673
7674
7675
7676
7677
7678
7679
7680
7681
7682
7683
7684
7685
7686
7687
7688
7689
7690
7691
7692
7693
7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
7705
7706
7707
7708
7709
7710
7711
7712
7713
7714
7715
7716
7717
7718
7719
7720
7721
7722
7723
7724
7725
7726
7727
7728
7729
7730
7731
7732
7733
7734
7735
7736
7737
7738
7739
7740
7741
7742
7743
7744
7745
7746
7747
7748
7749
7750
7751
7752
7753
7754
7755
7756
7757
7758
7759
7760
7761
7762
7763
7764
7765
7766
7767
7768
7769
7770
7771
7772
7773
7774
7775
7776
7777
7778
7779
7780
7781
7782
7783
7784
7785
7786
7787
7788
7789
7790
7791
7792
7793
7794
7795
7796
7797
7798
7799
7800
7801
7802
7803
7804
7805
7806
7807
7808
7809
7810
7811
7812
7813
7814
7815
7816
7817
7818
7819
7820
7821
7822
7823
7824
7825
7826
7827
7828
7829
7830
7831
7832
7833
7834
7835
7836
7837
7838
7839
7840
7841
7842
7843
7844
7845
7846
7847
7848
7849
7850
7851
7852
7853
7854
7855
7856
7857
7858
7859
7860
7861
7862
7863
7864
7865
7866
7867
7868
7869
7870
7871
7872
7873
7874
7875
7876
7877
7878
7879
7880
7881
7882
7883
7884
7885
7886
7887
7888
7889
7890
7891
7892
7893
7894
7895
7896
7897
7898
7899
7900
7901
7902
7903
7904
7905
7906
7907
7908
7909
7910
7911
7912
7913
7914
7915
7916
7917
7918
7919
7920
7921
7922
7923
7924
7925
7926
7927
7928
7929
7930
7931
7932
7933
7934
7935
7936
7937
7938
7939
7940
7941
7942
7943
7944
7945
7946
7947
7948
7949
7950
7951
7952
7953
7954
7955
7956
7957
7958
7959
7960
7961
7962
7963
7964
7965
7966
7967
7968
7969
7970
7971
7972
7973
7974
7975
7976
7977
7978
7979
7980
7981
7982
7983
7984
7985
7986
7987
7988
7989
7990
7991
7992
7993
7994
7995
7996
7997
7998
7999
8000
8001
8002
8003
8004
8005
8006
8007
8008
8009
8010
8011
8012
8013
8014
8015
8016
8017
8018
8019
8020
8021
8022
8023
8024
8025
8026
8027
8028
8029
8030
8031
8032
8033
8034
8035
8036
8037
8038
8039
8040
8041
8042
8043
8044
8045
8046
8047
8048
8049
8050
8051
8052
8053
8054
8055
8056
8057
8058
8059
8060
8061
8062
8063
8064
8065
8066
8067
8068
8069
8070
8071
8072
8073
8074
8075
8076
8077
8078
8079
8080
8081
8082
8083
8084
8085
8086
8087
8088
8089
8090
8091
8092
8093
8094
8095
8096
8097
8098
8099
8100
8101
8102
8103
8104
8105
8106
8107
8108
8109
8110
8111
8112
8113
8114
8115
8116
8117
8118
8119
8120
8121
8122
8123
8124
8125
8126
8127
8128
8129
8130
8131
8132
8133
8134
8135
8136
8137
8138
8139
8140
8141
8142
8143
8144
8145
8146
8147
8148
8149
8150
8151
8152
8153
8154
8155
8156
8157
8158
8159
8160
8161
8162
8163
8164
8165
8166
8167
8168
8169
8170
8171
8172
8173
8174
8175
8176
8177
8178
8179
8180
8181
8182
8183
8184
8185
8186
8187
8188
8189
8190
8191
8192
8193
8194
8195
8196
8197
8198
8199
8200
8201
8202
8203
8204
8205
8206
8207
8208
8209
8210
8211
8212
8213
8214
8215
8216
8217
8218
8219
8220
8221
8222
8223
8224
8225
8226
8227
8228
8229
8230
8231
8232
8233
8234
8235
8236
8237
8238
8239
8240
8241
8242
8243
8244
8245
8246
8247
8248
8249
8250
8251
8252
8253
8254
8255
8256
8257
8258
8259
8260
8261
8262
8263
8264
8265
8266
8267
8268
8269
8270
8271
8272
8273
8274
8275
8276
8277
8278
8279
8280
8281
8282
8283
8284
8285
8286
8287
8288
8289
8290
8291
8292
8293
8294
8295
8296
8297
8298
8299
8300
8301
8302
8303
8304
8305
8306
8307
8308
8309
8310
8311
8312
8313
8314
8315
8316
8317
8318
8319
8320
8321
8322
8323
8324
8325
8326
8327
8328
8329
8330
8331
8332
8333
8334
8335
8336
8337
8338
8339
8340
8341
8342
8343
8344
8345
8346
8347
8348
8349
8350
8351
8352
8353
8354
8355
8356
8357
8358
8359
8360
8361
8362
8363
8364
8365
8366
8367
8368
8369
8370
8371
8372
8373
8374
8375
8376
8377
8378
8379
8380
8381
8382
8383
8384
8385
8386
8387
8388
8389
8390
8391
8392
8393
8394
8395
8396
8397
8398
8399
8400
8401
8402
8403
8404
8405
8406
8407
8408
8409
8410
8411
8412
8413
8414
8415
8416
8417
8418
8419
8420
8421
8422
8423
8424
8425
8426
8427
8428
8429
8430
8431
8432
8433
8434
8435
8436
8437
8438
8439
8440
8441
8442
8443
8444
8445
8446
8447
8448
8449
8450
8451
8452
8453
8454
8455
8456
8457
8458
8459
8460
8461
8462
8463
8464
8465
8466
8467
8468
8469
8470
8471
8472
8473
8474
8475
8476
8477
8478
8479
8480
8481
8482
8483
8484
8485
8486
8487
8488
8489
8490
8491
8492
8493
8494
8495
8496
8497
8498
8499
8500
8501
8502
8503
8504
8505
8506
8507
8508
8509
8510
8511
8512
8513
8514
8515
8516
8517
8518
8519
8520
8521
8522
8523
8524
8525
8526
8527
8528
8529
8530
8531
8532
8533
8534
8535
8536
8537
8538
8539
8540
8541
8542
8543
8544
8545
8546
8547
8548
8549
8550
8551
8552
8553
8554
8555
8556
8557
8558
8559
8560
8561
8562
8563
8564
8565
8566
8567
8568
8569
8570
8571
8572
8573
8574
8575
8576
8577
8578
8579
8580
8581
8582
8583
8584
8585
8586
8587
8588
8589
8590
8591
8592
8593
8594
8595
8596
8597
8598
8599
8600
8601
8602
8603
8604
8605
8606
8607
8608
8609
8610
8611
8612
8613
8614
8615
8616
8617
8618
8619
8620
8621
8622
8623
8624
8625
8626
8627
8628
8629
8630
8631
8632
8633
8634
8635
8636
8637
8638
8639
8640
8641
8642
8643
8644
8645
8646
8647
8648
8649
8650
8651
8652
8653
8654
8655
8656
8657
8658
8659
8660
8661
8662
8663
8664
8665
8666
8667
8668
8669
8670
8671
8672
8673
8674
8675
8676
8677
8678
8679
8680
8681
8682
8683
8684
8685
8686
8687
8688
8689
8690
8691
8692
8693
8694
8695
8696
8697
8698
8699
8700
8701
8702
8703
8704
8705
8706
8707
8708
8709
8710
8711
8712
8713
8714
8715
8716
8717
8718
8719
8720
8721
8722
8723
8724
8725
8726
8727
8728
8729
8730
8731
8732
8733
8734
8735
8736
8737
8738
8739
8740
8741
8742
8743
8744
8745
8746
8747
8748
8749
8750
8751
8752
8753
8754
8755
8756
8757
8758
8759
8760
8761
8762
8763
8764
8765
8766
8767
8768
8769
8770
8771
8772
8773
8774
8775
8776
8777
8778
8779
8780
8781
8782
8783
8784
8785
8786
8787
8788
8789
8790
8791
8792
8793
8794
8795
8796
8797
8798
8799
8800
8801
8802
8803
8804
8805
8806
8807
8808
8809
8810
8811
8812
8813
8814
8815
8816
8817
8818
8819
8820
8821
8822
8823
8824
8825
8826
8827
8828
8829
8830
8831
8832
8833
8834
8835
8836
8837
8838
8839
8840
8841
8842
8843
8844
8845
8846
8847
8848
8849
8850
8851
8852
8853
8854
8855
8856
8857
8858
8859
8860
8861
8862
8863
8864
8865
8866
8867
8868
8869
8870
8871
8872
8873
8874
8875
8876
8877
8878
8879
8880
8881
8882
8883
8884
8885
8886
8887
8888
8889
8890
8891
8892
8893
8894
8895
8896
8897
8898
8899
8900
8901
8902
8903
8904
8905
8906
8907
8908
8909
8910
8911
8912
8913
8914
8915
8916
8917
8918
8919
8920
8921
8922
8923
8924
8925
8926
8927
8928
8929
8930
8931
8932
8933
8934
8935
8936
8937
8938
8939
8940
8941
8942
8943
8944
8945
8946
8947
8948
8949
8950
8951
8952
8953
8954
8955
8956
8957
8958
8959
8960
8961
8962
8963
8964
8965
8966
8967
8968
8969
8970
8971
8972
8973
8974
8975
8976
8977
8978
8979
8980
8981
8982
8983
8984
8985
8986
8987
8988
8989
8990
8991
8992
8993
8994
8995
8996
8997
8998
8999
9000
9001
9002
9003
9004
9005
9006
9007
9008
9009
9010
9011
9012
9013
9014
9015
9016
9017
9018
9019
9020
9021
9022
9023
9024
9025
9026
9027
9028
9029
9030
9031
9032
9033
9034
9035
9036
9037
9038
9039
9040
9041
9042
9043
9044
9045
9046
9047
9048
9049
9050
9051
9052
9053
9054
9055
9056
9057
9058
9059
9060
9061
9062
9063
9064
9065
9066
9067
9068
9069
9070
9071
9072
9073
9074
9075
9076
9077
9078
9079
9080
9081
9082
9083
9084
9085
9086
9087
9088
9089
9090
9091
9092
9093
9094
9095
9096
9097
9098
9099
9100
9101
9102
9103
9104
9105
9106
9107
9108
9109
9110
9111
9112
9113
9114
9115
9116
9117
9118
9119
9120
9121
9122
9123
9124
9125
9126
9127
9128
9129
9130
9131
9132
9133
9134
9135
9136
9137
9138
9139
9140
9141
9142
9143
9144
9145
9146
9147
9148
9149
9150
9151
9152
9153
9154
9155
9156
9157
9158
9159
9160
9161
9162
9163
9164
9165
9166
9167
9168
9169
9170
9171
9172
9173
9174
9175
9176
9177
9178
9179
9180
9181
9182
9183
9184
9185
9186
9187
9188
9189
9190
9191
9192
9193
9194
9195
9196
9197
9198
9199
9200
9201
9202
9203
9204
9205
9206
9207
9208
9209
9210
9211
9212
9213
9214
9215
9216
9217
9218
9219
9220
9221
9222
9223
9224
9225
9226
9227
9228
9229
9230
9231
9232
9233
9234
9235
9236
9237
9238
9239
9240
9241
9242
9243
9244
9245
9246
9247
9248
9249
9250
9251
9252
9253
9254
9255
9256
9257
9258
9259
9260
9261
9262
9263
9264
9265
9266
9267
9268
9269
9270
9271
9272
9273
9274
9275
9276
9277
9278
9279
9280
9281
9282
9283
9284
9285
9286
9287
9288
9289
9290
9291
9292
9293
9294
9295
9296
9297
9298
9299
9300
9301
9302
9303
9304
9305
9306
9307
9308
9309
9310
9311
9312
9313
9314
9315
9316
9317
9318
9319
9320
9321
9322
9323
9324
9325
9326
9327
9328
9329
9330
9331
9332
9333
9334
9335
9336
9337
9338
9339
9340
9341
9342
9343
9344
9345
9346
9347
9348
9349
9350
9351
9352
9353
9354
9355
9356
9357
9358
9359
9360
9361
9362
9363
9364
9365
9366
9367
9368
9369
9370
9371
9372
9373
9374
9375
9376
9377
9378
9379
9380
9381
9382
9383
9384
9385
9386
9387
9388
9389
9390
9391
9392
9393
9394
9395
9396
9397
9398
9399
9400
9401
9402
9403
9404
9405
9406
9407
9408
9409
9410
9411
9412
9413
9414
9415
9416
9417
9418
9419
9420
9421
9422
9423
9424
9425
9426
9427
9428
9429
9430
9431
9432
9433
9434
9435
9436
9437
9438
9439
9440
9441
9442
9443
9444
9445
9446
9447
9448
9449
9450
9451
9452
9453
9454
9455
9456
9457
9458
9459
9460
9461
9462
9463
9464
9465
9466
9467
9468
9469
9470
9471
9472
9473
9474
9475
9476
9477
9478
9479
9480
9481
9482
9483
9484
9485
9486
9487
9488
9489
9490
9491
9492
9493
9494
9495
9496
9497
9498
9499
9500
9501
9502
9503
9504
9505
9506
9507
9508
9509
9510
9511
9512
9513
9514
9515
9516
9517
9518
9519
9520
9521
9522
9523
9524
9525
9526
9527
9528
9529
9530
9531
9532
9533
9534
9535
9536
9537
9538
9539
9540
9541
9542
9543
9544
9545
9546
9547
9548
9549
9550
9551
9552
9553
9554
9555
9556
9557
9558
9559
9560
9561
9562
9563
9564
9565
9566
9567
9568
9569
9570
9571
9572
9573
9574
9575
9576
9577
9578
9579
9580
9581
9582
9583
9584
9585
9586
9587
9588
9589
9590
9591
9592
9593
9594
9595
9596
9597
9598
9599
9600
9601
9602
9603
9604
9605
9606
9607
9608
9609
9610
9611
9612
9613
9614
9615
9616
9617
9618
9619
9620
9621
9622
9623
9624
9625
9626
9627
9628
9629
9630
9631
9632
9633
9634
9635
9636
9637
9638
9639
9640
9641
9642
9643
9644
9645
9646
9647
9648
9649
9650
9651
9652
9653
9654
9655
9656
9657
9658
9659
9660
9661
9662
9663
9664
9665
9666
9667
9668
9669
9670
9671
9672
9673
9674
9675
9676
9677
9678
9679
9680
9681
9682
9683
9684
9685
9686
9687
9688
9689
9690
9691
9692
9693
9694
9695
9696
9697
9698
9699
9700
9701
9702
9703
9704
9705
9706
9707
9708
9709
9710
9711
9712
9713
9714
9715
9716
9717
9718
9719
9720
9721
9722
9723
9724
9725
9726
9727
9728
9729
9730
9731
9732
9733
9734
9735
9736
9737
9738
9739
9740
9741
9742
9743
9744
9745
9746
9747
9748
9749
9750
9751
9752
9753
9754
9755
9756
9757
9758
9759
9760
9761
9762
9763
9764
9765
9766
9767
9768
9769
9770
9771
9772
9773
9774
9775
9776
9777
9778
9779
9780
9781
9782
9783
9784
9785
9786
9787
9788
9789
9790
9791
9792
9793
9794
9795
9796
9797
9798
9799
9800
9801
9802
9803
9804
9805
9806
9807
9808
9809
9810
9811
9812
9813
9814
9815
9816
9817
9818
9819
9820
9821
9822
9823
9824
9825
9826
9827
9828
9829
9830
9831
9832
9833
9834
9835
9836
9837
9838
9839
9840
9841
9842
9843
9844
9845
9846
9847
9848
9849
9850
9851
9852
9853
9854
9855
9856
9857
9858
9859
9860
9861
9862
9863
9864
9865
9866
9867
9868
9869
9870
9871
9872
9873
9874
9875
9876
9877
9878
9879
9880
9881
9882
9883
9884
9885
9886
9887
9888
9889
9890
9891
9892
9893
9894
9895
9896
9897
9898
9899
9900
9901
9902
9903
9904
9905
9906
9907
9908
9909
9910
9911
9912
9913
9914
9915
9916
9917
9918
9919
9920
9921
9922
9923
9924
9925
9926
9927
9928
9929
9930
9931
9932
9933
9934
9935
9936
9937
9938
9939
9940
9941
9942
9943
9944
9945
9946
9947
9948
9949
9950
9951
9952
9953
9954
9955
9956
9957
9958
9959
9960
9961
9962
9963
9964
9965
9966
9967
9968
9969
9970
9971
9972
9973
9974
9975
9976
9977
9978
9979
9980
9981
9982
9983
9984
9985
9986
9987
9988
9989
9990
9991
9992
9993
9994
9995
9996
9997
9998
9999
10000
10001
10002
10003
10004
10005
10006
10007
10008
10009
10010
10011
10012
10013
10014
10015
10016
10017
10018
10019
10020
10021
10022
10023
10024
10025
10026
10027
10028
10029
10030
10031
10032
10033
10034
10035
10036
10037
10038
10039
10040
10041
10042
10043
10044
10045
10046
10047
10048
10049
10050
10051
10052
10053
10054
10055
10056
10057
10058
10059
10060
10061
10062
10063
10064
10065
10066
10067
10068
10069
10070
10071
10072
10073
10074
10075
10076
10077
10078
10079
10080
10081
10082
10083
10084
10085
10086
10087
10088
10089
10090
10091
10092
10093
10094
10095
10096
10097
10098
10099
10100
10101
10102
10103
10104
10105
10106
10107
10108
10109
10110
10111
10112
10113
10114
10115
10116
10117
10118
10119
10120
10121
10122
10123
10124
10125
10126
10127
10128
10129
10130
10131
10132
10133
10134
10135
10136
10137
10138
10139
10140
10141
10142
10143
10144
10145
10146
10147
10148
10149
10150
10151
10152
10153
10154
10155
10156
10157
10158
10159
10160
10161
10162
10163
10164
10165
10166
10167
10168
10169
10170
10171
10172
10173
10174
10175
10176
10177
10178
10179
10180
10181
10182
10183
10184
10185
10186
10187
10188
10189
10190
10191
10192
10193
10194
10195
10196
10197
10198
10199
10200
10201
10202
10203
10204
10205
10206
10207
10208
10209
10210
10211
10212
10213
10214
10215
10216
10217
10218
10219
10220
10221
10222
10223
10224
10225
10226
10227
10228
10229
10230
10231
10232
10233
10234
10235
10236
10237
10238
10239
10240
10241
10242
10243
10244
10245
10246
10247
10248
10249
10250
10251
10252
10253
10254
10255
10256
10257
10258
10259
10260
10261
10262
10263
10264
10265
10266
10267
10268
10269
10270
10271
10272
10273
10274
10275
10276
10277
10278
10279
10280
10281
10282
10283
10284
10285
10286
10287
10288
10289
10290
10291
10292
10293
10294
10295
10296
10297
10298
10299
10300
10301
10302
10303
10304
10305
10306
10307
10308
10309
10310
10311
10312
10313
10314
10315
10316
10317
10318
10319
10320
10321
10322
10323
10324
10325
10326
10327
10328
10329
10330
10331
10332
10333
10334
10335
10336
10337
10338
10339
10340
10341
10342
10343
10344
10345
10346
10347
10348
10349
10350
10351
10352
10353
10354
10355
10356
10357
10358
10359
10360
10361
10362
10363
10364
10365
10366
10367
10368
10369
10370
10371
10372
10373
10374
10375
10376
10377
10378
10379
10380
10381
10382
10383
10384
10385
10386
10387
10388
10389
10390
10391
10392
10393
10394
10395
10396
10397
10398
10399
10400
10401
10402
10403
10404
10405
10406
10407
10408
10409
10410
10411
10412
10413
10414
10415
10416
10417
10418
10419
10420
10421
10422
10423
10424
10425
10426
10427
10428
10429
10430
10431
10432
10433
10434
10435
10436
10437
10438
10439
10440
10441
10442
10443
10444
10445
10446
10447
10448
10449
10450
10451
10452
10453
10454
10455
10456
10457
10458
10459
10460
10461
10462
10463
10464
10465
10466
10467
10468
10469
10470
10471
10472
10473
10474
10475
10476
10477
10478
10479
10480
10481
10482
10483
10484
10485
10486
10487
10488
10489
10490
10491
10492
10493
10494
10495
10496
10497
10498
10499
10500
10501
10502
10503
10504
10505
10506
10507
10508
10509
10510
10511
10512
10513
10514
10515
10516
10517
10518
10519
10520
10521
10522
10523
10524
10525
10526
10527
10528
10529
10530
10531
10532
10533
10534
10535
10536
10537
10538
10539
10540
10541
10542
10543
10544
10545
10546
10547
10548
10549
10550
10551
10552
10553
10554
10555
10556
10557
10558
10559
10560
10561
10562
10563
10564
10565
10566
10567
10568
10569
10570
10571
10572
10573
10574
10575
10576
10577
10578
10579
10580
10581
10582
10583
10584
10585
10586
10587
10588
10589
10590
10591
10592
10593
10594
10595
10596
10597
10598
10599
10600
10601
10602
10603
10604
10605
10606
10607
10608
10609
10610
10611
10612
10613
10614
10615
10616
10617
10618
10619
10620
10621
10622
10623
10624
10625
10626
10627
10628
10629
10630
10631
10632
10633
10634
10635
10636
10637
10638
10639
10640
10641
10642
10643
10644
10645
10646
10647
10648
10649
10650
10651
10652
10653
10654
10655
10656
10657
10658
10659
10660
10661
10662
10663
10664
10665
10666
10667
10668
10669
10670
10671
10672
10673
10674
10675
10676
10677
10678
10679
10680
10681
10682
10683
10684
10685
10686
10687
10688
10689
10690
10691
10692
10693
10694
10695
10696
10697
10698
10699
10700
10701
10702
10703
10704
10705
10706
10707
10708
10709
10710
10711
10712
10713
10714
10715
10716
10717
10718
10719
10720
10721
10722
10723
10724
10725
10726
10727
10728
10729
10730
10731
10732
10733
10734
10735
10736
10737
10738
10739
10740
10741
10742
10743
10744
10745
10746
10747
10748
10749
10750
10751
10752
10753
10754
10755
10756
10757
10758
10759
10760
10761
10762
10763
10764
10765
10766
10767
10768
10769
10770
10771
10772
10773
10774
10775
10776
10777
10778
10779
10780
10781
10782
10783
10784
10785
10786
10787
10788
10789
10790
10791
10792
10793
10794
10795
10796
10797
10798
10799
10800
10801
10802
10803
10804
10805
10806
10807
10808
10809
10810
10811
10812
10813
10814
10815
10816
10817
10818
10819
10820
10821
10822
10823
10824
10825
10826
10827
10828
10829
10830
10831
10832
10833
10834
10835
10836
10837
10838
10839
10840
10841
10842
10843
10844
10845
10846
10847
10848
10849
10850
10851
10852
10853
10854
10855
10856
10857
10858
10859
10860
10861
10862
10863
10864
10865
10866
10867
10868
10869
10870
10871
10872
10873
10874
10875
10876
10877
10878
10879
10880
10881
10882
10883
10884
10885
10886
10887
10888
10889
10890
10891
10892
10893
10894
10895
10896
10897
10898
10899
10900
10901
10902
10903
10904
10905
10906
10907
10908
10909
10910
10911
10912
10913
10914
10915
10916
10917
10918
10919
10920
10921
10922
10923
10924
10925
10926
10927
10928
10929
10930
10931
10932
10933
10934
10935
10936
10937
10938
10939
10940
10941
10942
10943
10944
10945
10946
10947
10948
10949
10950
10951
10952
10953
10954
10955
10956
10957
10958
10959
10960
10961
10962
10963
10964
10965
10966
10967
10968
10969
10970
10971
10972
10973
10974
10975
10976
10977
10978
10979
10980
10981
10982
10983
10984
10985
10986
10987
10988
10989
10990
10991
10992
10993
10994
10995
10996
10997
10998
10999
11000
11001
11002
11003
11004
11005
11006
11007
11008
11009
11010
11011
11012
11013
11014
11015
11016
11017
11018
11019
11020
11021
11022
11023
11024
11025
11026
11027
11028
11029
11030
11031
11032
11033
11034
11035
11036
11037
11038
11039
11040
11041
11042
11043
11044
11045
11046
11047
11048
11049
11050
11051
11052
11053
11054
11055
11056
11057
11058
11059
11060
11061
11062
11063
11064
11065
11066
11067
11068
11069
11070
11071
11072
11073
11074
11075
11076
11077
11078
11079
11080
11081
11082
11083
11084
11085
11086
11087
11088
11089
11090
11091
11092
11093
11094
11095
11096
11097
11098
11099
11100
11101
11102
11103
11104
11105
11106
11107
11108
11109
11110
11111
11112
11113
11114
11115
11116
11117
11118
11119
11120
11121
11122
11123
11124
11125
11126
11127
11128
11129
11130
11131
11132
11133
11134
11135
11136
11137
11138
11139
11140
11141
11142
11143
11144
11145
11146
11147
11148
11149
11150
11151
11152
11153
11154
11155
11156
11157
11158
11159
11160
11161
11162
11163
11164
11165
11166
11167
11168
11169
11170
11171
11172
11173
11174
11175
11176
11177
11178
11179
11180
11181
11182
11183
11184
11185
11186
11187
11188
11189
11190
11191
11192
11193
11194
11195
11196
11197
11198
11199
11200
11201
11202
11203
11204
11205
11206
11207
11208
11209
11210
11211
11212
11213
11214
11215
11216
11217
11218
11219
11220
11221
11222
11223
11224
11225
11226
11227
11228
11229
11230
11231
11232
11233
11234
11235
11236
11237
11238
11239
11240
11241
11242
11243
11244
11245
11246
11247
11248
11249
11250
11251
11252
11253
11254
11255
11256
11257
11258
11259
11260
11261
11262
11263
11264
11265
11266
11267
11268
11269
11270
11271
11272
11273
11274
11275
11276
11277
11278
11279
11280
11281
11282
11283
11284
11285
11286
11287
11288
11289
11290
11291
11292
11293
11294
11295
11296
11297
11298
11299
11300
11301
11302
11303
11304
11305
11306
11307
11308
11309
11310
11311
11312
11313
11314
11315
11316
11317
11318
11319
11320
11321
11322
11323
11324
11325
11326
11327
11328
11329
11330
11331
11332
11333
11334
11335
11336
11337
11338
11339
11340
11341
11342
11343
11344
11345
11346
11347
11348
11349
11350
11351
11352
11353
11354
11355
11356
11357
11358
11359
11360
11361
11362
11363
11364
11365
11366
11367
11368
11369
11370
11371
11372
11373
11374
11375
11376
11377
11378
11379
11380
11381
11382
11383
11384
11385
11386
11387
11388
11389
11390
11391
11392
11393
11394
11395
11396
11397
11398
11399
11400
11401
11402
11403
11404
11405
11406
11407
11408
11409
11410
11411
11412
11413
11414
11415
11416
11417
11418
11419
11420
11421
11422
11423
11424
11425
11426
11427
11428
11429
11430
11431
11432
11433
11434
11435
11436
11437
11438
11439
11440
11441
11442
11443
11444
11445
11446
11447
11448
11449
11450
11451
11452
11453
11454
11455
11456
11457
11458
11459
11460
11461
11462
11463
11464
11465
11466
11467
11468
11469
11470
11471
11472
11473
11474
11475
11476
11477
11478
11479
11480
11481
11482
11483
11484
11485
11486
11487
11488
11489
11490
11491
11492
11493
11494
11495
11496
11497
11498
11499
11500
11501
11502
11503
11504
11505
11506
11507
11508
11509
11510
11511
11512
11513
11514
11515
11516
11517
11518
11519
11520
11521
11522
11523
11524
11525
11526
11527
11528
11529
11530
11531
11532
11533
11534
11535
11536
11537
11538
11539
11540
11541
11542
11543
11544
11545
11546
11547
11548
11549
11550
11551
11552
11553
11554
11555
11556
11557
11558
11559
11560
11561
11562
11563
11564
11565
11566
11567
11568
11569
11570
11571
11572
11573
11574
11575
11576
11577
11578
11579
11580
11581
11582
11583
11584
11585
11586
11587
11588
11589
11590
11591
11592
11593
11594
11595
11596
11597
11598
11599
11600
11601
11602
11603
11604
11605
11606
11607
11608
11609
11610
11611
11612
11613
11614
11615
11616
11617
11618
11619
11620
11621
11622
11623
11624
11625
11626
11627
11628
11629
11630
11631
11632
11633
11634
11635
11636
11637
11638
11639
11640
11641
11642
11643
11644
11645
11646
11647
11648
11649
11650
11651
11652
11653
11654
11655
11656
11657
11658
11659
11660
11661
11662
11663
11664
11665
11666
11667
11668
11669
11670
11671
11672
11673
11674
11675
11676
11677
11678
11679
11680
11681
11682
11683
11684
11685
11686
11687
11688
11689
11690
11691
11692
11693
11694
11695
11696
11697
11698
11699
11700
11701
11702
11703
11704
11705
11706
11707
11708
11709
11710
11711
11712
11713
11714
11715
11716
11717
11718
11719
11720
11721
11722
11723
11724
11725
11726
11727
11728
11729
11730
11731
11732
11733
11734
11735
11736
11737
11738
11739
11740
11741
11742
11743
11744
11745
11746
11747
11748
11749
11750
11751
11752
11753
11754
11755
11756
11757
11758
11759
11760
11761
11762
11763
11764
11765
11766
11767
11768
11769
11770
11771
11772
11773
11774
11775
11776
11777
11778
11779
11780
11781
11782
11783
11784
11785
11786
11787
11788
11789
11790
11791
11792
11793
11794
11795
11796
11797
11798
11799
11800
11801
11802
11803
11804
11805
11806
11807
11808
11809
11810
11811
11812
11813
11814
11815
11816
11817
11818
11819
11820
11821
11822
11823
11824
11825
11826
11827
11828
11829
11830
11831
11832
11833
11834
11835
11836
11837
11838
11839
11840
11841
11842
11843
11844
11845
11846
11847
11848
11849
11850
11851
11852
11853
11854
11855
11856
11857
11858
11859
11860
11861
11862
11863
11864
11865
11866
11867
11868
11869
11870
11871
11872
11873
11874
11875
11876
11877
11878
11879
11880
11881
11882
11883
11884
11885
11886
11887
11888
11889
11890
11891
11892
11893
11894
11895
11896
11897
11898
11899
11900
11901
11902
11903
11904
11905
11906
11907
11908
11909
11910
11911
11912
11913
11914
11915
11916
11917
11918
11919
11920
11921
11922
11923
11924
11925
11926
11927
11928
11929
11930
11931
11932
11933
11934
11935
11936
11937
11938
11939
11940
11941
11942
11943
11944
11945
11946
11947
11948
11949
11950
11951
11952
11953
11954
11955
11956
11957
11958
11959
11960
11961
11962
11963
11964
11965
11966
11967
11968
11969
11970
11971
11972
11973
11974
11975
11976
11977
11978
11979
11980
11981
11982
11983
11984
11985
11986
11987
11988
11989
11990
11991
11992
11993
11994
11995
11996
11997
11998
11999
12000
12001
12002
12003
12004
12005
12006
12007
12008
12009
12010
12011
12012
12013
12014
12015
12016
12017
12018
12019
12020
12021
12022
12023
12024
12025
12026
12027
12028
12029
12030
12031
12032
12033
12034
12035
12036
12037
12038
12039
12040
12041
12042
12043
12044
12045
12046
12047
12048
12049
12050
12051
12052
12053
12054
12055
12056
12057
12058
12059
12060
12061
12062
12063
12064
12065
12066
12067
12068
12069
12070
12071
12072
12073
12074
12075
12076
12077
12078
12079
12080
12081
12082
12083
12084
12085
12086
12087
12088
12089
12090
12091
12092
12093
12094
12095
12096
12097
12098
12099
12100
12101
12102
12103
12104
12105
12106
12107
12108
12109
12110
12111
12112
12113
12114
12115
12116
12117
12118
12119
12120
12121
12122
12123
12124
12125
12126
12127
12128
12129
12130
12131
12132
12133
12134
12135
12136
12137
12138
12139
12140
12141
12142
12143
12144
12145
12146
12147
12148
12149
12150
12151
12152
12153
12154
12155
12156
12157
12158
12159
12160
12161
12162
12163
12164
12165
12166
12167
12168
12169
12170
12171
12172
12173
12174
12175
12176
12177
12178
12179
12180
12181
12182
12183
12184
12185
12186
12187
12188
12189
12190
12191
12192
12193
12194
12195
12196
12197
12198
12199
12200
12201
12202
12203
12204
12205
12206
12207
12208
12209
12210
12211
12212
12213
12214
12215
12216
12217
12218
12219
12220
12221
12222
12223
12224
12225
12226
12227
12228
12229
12230
12231
12232
12233
12234
12235
12236
12237
12238
12239
12240
12241
12242
12243
12244
12245
12246
12247
12248
12249
12250
12251
12252
12253
12254
12255
12256
12257
12258
12259
12260
12261
12262
12263
12264
12265
12266
12267
12268
12269
12270
12271
12272
12273
12274
12275
12276
12277
12278
12279
12280
12281
12282
12283
12284
12285
12286
12287
12288
12289
12290
12291
12292
12293
12294
12295
12296
12297
12298
12299
12300
12301
12302
12303
12304
12305
12306
12307
12308
12309
12310
12311
12312
12313
12314
12315
12316
12317
12318
12319
12320
12321
12322
12323
12324
12325
12326
12327
12328
12329
12330
12331
12332
12333
12334
12335
12336
12337
12338
12339
12340
12341
12342
12343
12344
12345
12346
12347
12348
12349
12350
12351
12352
12353
12354
12355
12356
12357
12358
12359
12360
12361
12362
12363
12364
12365
12366
12367
12368
12369
12370
12371
12372
12373
12374
12375
12376
12377
12378
12379
12380
12381
12382
12383
12384
12385
12386
12387
12388
12389
12390
12391
12392
12393
12394
12395
12396
12397
12398
12399
12400
12401
12402
12403
12404
12405
12406
12407
12408
12409
12410
12411
12412
12413
12414
12415
12416
12417
12418
12419
12420
12421
12422
12423
12424
12425
12426
12427
12428
12429
12430
12431
12432
12433
12434
12435
12436
12437
12438
12439
12440
12441
12442
12443
12444
12445
12446
12447
12448
12449
12450
12451
12452
12453
12454
12455
12456
12457
12458
12459
12460
12461
12462
12463
12464
12465
12466
12467
12468
12469
12470
12471
12472
12473
12474
12475
12476
12477
12478
12479
12480
12481
12482
12483
12484
12485
12486
12487
12488
12489
12490
12491
12492
12493
12494
12495
12496
12497
12498
12499
12500
12501
12502
12503
12504
12505
12506
12507
12508
12509
12510
12511
12512
12513
12514
12515
12516
12517
12518
12519
12520
12521
12522
12523
12524
12525
12526
12527
12528
12529
12530
12531
12532
12533
12534
12535
12536
12537
12538
12539
12540
12541
12542
12543
12544
12545
12546
12547
12548
12549
12550
12551
12552
12553
12554
12555
12556
12557
12558
12559
12560
12561
12562
12563
12564
12565
12566
12567
12568
12569
12570
12571
12572
12573
12574
12575
12576
12577
12578
12579
12580
12581
12582
12583
12584
12585
12586
12587
12588
12589
12590
12591
12592
12593
12594
12595
12596
12597
12598
12599
12600
12601
12602
12603
12604
12605
12606
12607
12608
12609
12610
12611
12612
12613
12614
12615
12616
12617
12618
12619
12620
12621
12622
12623
12624
12625
12626
12627
12628
12629
12630
12631
12632
12633
12634
12635
12636
12637
12638
12639
12640
12641
12642
12643
12644
12645
12646
12647
12648
12649
12650
12651
12652
12653
12654
12655
12656
12657
12658
12659
12660
12661
12662
12663
12664
12665
12666
12667
12668
12669
12670
12671
12672
12673
12674
12675
12676
12677
12678
12679
12680
12681
12682
12683
12684
12685
12686
12687
12688
12689
12690
12691
12692
12693
12694
12695
12696
12697
12698
12699
12700
12701
12702
12703
12704
12705
12706
12707
12708
12709
12710
12711
12712
12713
12714
12715
12716
12717
12718
12719
12720
12721
12722
12723
12724
12725
12726
12727
12728
12729
12730
12731
12732
12733
12734
12735
12736
12737
12738
12739
12740
12741
12742
12743
12744
12745
12746
12747
12748
12749
12750
12751
12752
12753
12754
12755
12756
12757
12758
12759
12760
12761
12762
12763
12764
12765
12766
12767
12768
12769
12770
12771
12772
12773
12774
12775
12776
12777
12778
12779
12780
12781
12782
12783
12784
12785
12786
12787
12788
12789
12790
12791
12792
12793
12794
12795
12796
12797
12798
12799
12800
12801
12802
12803
12804
12805
12806
12807
12808
12809
12810
12811
12812
12813
12814
12815
12816
12817
12818
12819
12820
12821
12822
12823
12824
12825
12826
12827
12828
12829
12830
12831
12832
12833
12834
12835
12836
12837
12838
12839
12840
12841
12842
12843
12844
12845
12846
12847
12848
12849
12850
12851
12852
12853
12854
12855
12856
12857
12858
12859
12860
12861
12862
12863
12864
12865
12866
12867
12868
12869
12870
12871
12872
12873
12874
12875
12876
12877
12878
12879
12880
12881
12882
12883
12884
12885
12886
12887
12888
12889
12890
12891
12892
12893
12894
12895
12896
12897
12898
12899
12900
12901
12902
12903
12904
12905
12906
12907
12908
12909
12910
12911
12912
12913
12914
12915
12916
12917
12918
12919
12920
12921
12922
12923
12924
12925
12926
12927
12928
12929
12930
12931
12932
12933
12934
12935
12936
12937
12938
12939
12940
12941
12942
12943
12944
12945
12946
12947
12948
12949
12950
12951
12952
12953
12954
12955
12956
12957
12958
12959
12960
12961
12962
12963
12964
12965
12966
12967
12968
12969
12970
12971
12972
12973
12974
12975
12976
12977
12978
12979
12980
12981
12982
12983
12984
12985
12986
12987
12988
12989
12990
12991
12992
12993
12994
12995
12996
12997
12998
12999
13000
13001
13002
13003
13004
13005
13006
13007
13008
13009
13010
13011
13012
13013
13014
13015
13016
13017
13018
13019
13020
13021
13022
13023
13024
13025
13026
13027
13028
13029
13030
13031
13032
13033
13034
13035
13036
13037
13038
13039
13040
13041
13042
13043
13044
13045
13046
13047
13048
13049
13050
13051
13052
13053
13054
13055
13056
13057
13058
13059
13060
13061
13062
13063
13064
13065
13066
13067
13068
13069
13070
13071
13072
13073
13074
13075
13076
13077
13078
13079
13080
13081
13082
13083
13084
13085
13086
13087
13088
13089
13090
13091
13092
13093
13094
13095
13096
13097
13098
13099
13100
13101
13102
13103
13104
13105
13106
13107
13108
13109
13110
13111
13112
13113
13114
13115
13116
13117
13118
13119
13120
13121
13122
13123
13124
13125
13126
13127
13128
13129
13130
13131
13132
13133
13134
13135
13136
13137
13138
13139
13140
13141
13142
13143
13144
13145
13146
13147
13148
13149
13150
13151
13152
13153
13154
13155
13156
13157
13158
13159
13160
13161
13162
13163
13164
13165
13166
13167
13168
13169
13170
13171
13172
13173
13174
13175
13176
13177
13178
13179
13180
13181
13182
13183
13184
13185
13186
13187
13188
13189
13190
13191
13192
13193
13194
13195
13196
13197
13198
13199
13200
13201
13202
13203
13204
13205
13206
13207
13208
13209
13210
13211
13212
13213
13214
13215
13216
13217
13218
13219
13220
13221
13222
13223
13224
13225
13226
13227
13228
13229
13230
13231
13232
13233
13234
13235
13236
13237
13238
13239
13240
13241
13242
13243
13244
13245
13246
13247
13248
13249
13250
13251
13252
13253
13254
13255
13256
13257
13258
13259
13260
13261
13262
13263
13264
13265
13266
13267
13268
13269
13270
13271
13272
13273
13274
13275
13276
13277
13278
13279
13280
13281
13282
13283
13284
13285
13286
13287
13288
13289
13290
13291
13292
13293
13294
13295
13296
13297
13298
13299
13300
13301
13302
13303
13304
13305
13306
13307
13308
13309
13310
13311
13312
13313
13314
13315
13316
13317
13318
13319
13320
13321
13322
13323
13324
13325
13326
13327
13328
13329
13330
13331
13332
13333
13334
13335
13336
13337
13338
13339
13340
13341
13342
13343
13344
13345
13346
13347
13348
13349
13350
13351
13352
13353
13354
13355
13356
13357
13358
13359
13360
13361
13362
13363
13364
13365
13366
13367
13368
13369
13370
13371
13372
13373
13374
13375
13376
13377
13378
13379
13380
13381
13382
13383
13384
13385
13386
13387
13388
13389
13390
13391
13392
13393
13394
13395
13396
13397
13398
13399
13400
13401
13402
13403
13404
13405
13406
13407
13408
13409
13410
13411
13412
13413
13414
13415
13416
13417
13418
13419
13420
13421
13422
13423
13424
13425
13426
13427
13428
13429
13430
13431
13432
13433
13434
13435
13436
13437
13438
13439
13440
13441
13442
13443
13444
13445
13446
13447
13448
13449
13450
13451
13452
13453
13454
13455
13456
13457
13458
13459
13460
13461
13462
13463
13464
13465
13466
13467
13468
13469
13470
13471
13472
13473
13474
13475
13476
13477
13478
13479
13480
13481
13482
13483
13484
13485
13486
13487
13488
13489
13490
13491
13492
13493
13494
13495
13496
13497
13498
13499
13500
13501
13502
13503
13504
13505
13506
13507
13508
13509
13510
13511
13512
13513
13514
13515
13516
13517
13518
13519
13520
13521
13522
13523
13524
13525
13526
13527
13528
13529
13530
13531
13532
13533
13534
13535
13536
13537
13538
13539
13540
13541
13542
13543
13544
13545
13546
13547
13548
13549
13550
13551
13552
13553
13554
13555
13556
13557
13558
13559
13560
13561
13562
13563
13564
13565
13566
13567
13568
13569
13570
13571
13572
13573
13574
13575
13576
13577
13578
13579
13580
13581
13582
13583
13584
13585
13586
13587
13588
13589
13590
13591
13592
13593
13594
13595
13596
13597
13598
13599
13600
13601
13602
13603
13604
13605
13606
13607
13608
13609
13610
13611
13612
13613
13614
13615
13616
13617
13618
13619
13620
13621
13622
13623
13624
13625
13626
13627
13628
13629
13630
13631
13632
13633
13634
13635
13636
13637
13638
13639
13640
13641
13642
13643
13644
13645
13646
13647
13648
13649
13650
13651
13652
13653
13654
13655
13656
13657
13658
13659
13660
13661
13662
13663
13664
13665
13666
13667
13668
13669
13670
13671
13672
13673
13674
13675
13676
13677
13678
13679
13680
13681
13682
13683
13684
13685
13686
13687
13688
13689
13690
13691
13692
13693
13694
13695
13696
13697
13698
13699
13700
13701
13702
13703
13704
13705
13706
13707
13708
13709
13710
13711
13712
13713
13714
13715
13716
13717
13718
13719
13720
13721
13722
13723
13724
13725
13726
13727
13728
13729
13730
13731
13732
13733
13734
13735
13736
13737
13738
13739
13740
13741
13742
13743
13744
13745
13746
13747
13748
13749
13750
13751
13752
13753
13754
13755
13756
13757
13758
13759
13760
13761
13762
13763
13764
13765
13766
13767
13768
13769
13770
13771
13772
13773
13774
13775
13776
13777
13778
13779
13780
13781
13782
13783
13784
13785
13786
13787
13788
13789
13790
13791
13792
13793
13794
13795
13796
13797
13798
13799
13800
13801
13802
13803
13804
13805
13806
13807
13808
13809
13810
13811
13812
13813
13814
13815
13816
13817
13818
13819
13820
13821
13822
13823
13824
13825
13826
13827
13828
13829
13830
13831
13832
13833
13834
13835
13836
13837
13838
13839
13840
13841
13842
13843
13844
13845
13846
13847
13848
13849
13850
13851
13852
13853
13854
13855
13856
13857
13858
13859
13860
13861
13862
13863
13864
13865
13866
13867
13868
13869
13870
13871
13872
13873
13874
13875
13876
13877
13878
13879
13880
13881
13882
13883
13884
13885
13886
13887
13888
13889
13890
13891
13892
13893
13894
13895
13896
13897
13898
13899
13900
13901
13902
13903
13904
13905
13906
13907
13908
13909
13910
13911
13912
13913
13914
13915
13916
13917
13918
13919
13920
13921
13922
13923
13924
13925
13926
13927
13928
13929
13930
13931
13932
13933
13934
13935
13936
13937
13938
13939
13940
13941
13942
13943
13944
13945
13946
13947
13948
13949
13950
13951
13952
13953
13954
13955
13956
13957
13958
13959
13960
13961
13962
13963
13964
13965
13966
13967
13968
13969
13970
13971
13972
13973
13974
13975
13976
13977
13978
13979
13980
13981
13982
13983
13984
13985
13986
13987
13988
13989
13990
13991
13992
13993
13994
13995
13996
13997
13998
13999
14000
14001
14002
14003
14004
14005
14006
14007
14008
14009
14010
14011
14012
14013
14014
14015
14016
14017
14018
14019
14020
14021
14022
14023
14024
14025
14026
14027
14028
14029
14030
14031
14032
14033
14034
14035
14036
14037
14038
14039
14040
14041
14042
14043
14044
14045
14046
14047
14048
14049
14050
14051
14052
14053
14054
14055
14056
14057
14058
14059
14060
14061
14062
14063
14064
14065
14066
14067
14068
14069
14070
14071
14072
14073
14074
14075
14076
14077
14078
14079
14080
14081
14082
14083
14084
14085
14086
14087
14088
14089
14090
14091
14092
14093
14094
14095
14096
14097
14098
14099
14100
14101
14102
14103
14104
14105
14106
14107
14108
14109
14110
14111
14112
14113
14114
14115
14116
14117
14118
14119
14120
14121
14122
14123
14124
14125
14126
14127
14128
14129
14130
14131
14132
14133
14134
14135
14136
14137
14138
14139
14140
14141
14142
14143
14144
14145
14146
14147
14148
14149
14150
14151
14152
14153
14154
14155
14156
14157
14158
14159
14160
14161
14162
14163
14164
14165
14166
14167
14168
14169
14170
14171
14172
14173
14174
14175
14176
14177
14178
14179
14180
14181
14182
14183
14184
14185
14186
14187
14188
14189
14190
14191
14192
14193
14194
14195
14196
14197
14198
14199
14200
14201
14202
14203
14204
14205
14206
14207
14208
14209
14210
14211
14212
14213
14214
14215
14216
14217
14218
14219
14220
14221
14222
14223
14224
14225
14226
14227
14228
14229
14230
14231
14232
14233
14234
14235
14236
14237
14238
14239
14240
14241
14242
14243
14244
14245
14246
14247
14248
14249
14250
14251
14252
14253
14254
14255
14256
14257
14258
14259
14260
14261
14262
14263
14264
14265
14266
14267
14268
14269
14270
14271
14272
14273
14274
14275
14276
14277
14278
14279
14280
14281
14282
14283
14284
14285
14286
14287
14288
14289
14290
14291
14292
14293
14294
14295
14296
14297
14298
14299
14300
14301
14302
14303
14304
14305
14306
14307
14308
14309
14310
14311
14312
14313
14314
14315
14316
14317
14318
14319
14320
14321
14322
14323
14324
14325
14326
14327
14328
14329
14330
14331
14332
14333
14334
14335
14336
14337
14338
14339
14340
14341
14342
14343
14344
14345
14346
14347
14348
14349
14350
14351
14352
14353
14354
14355
14356
14357
14358
14359
14360
14361
14362
14363
14364
14365
14366
14367
14368
14369
14370
14371
14372
14373
14374
14375
14376
14377
14378
14379
14380
14381
14382
14383
14384
14385
14386
14387
14388
14389
14390
14391
14392
14393
14394
14395
14396
14397
14398
14399
14400
14401
14402
14403
14404
14405
14406
14407
14408
14409
14410
14411
14412
14413
14414
14415
14416
14417
14418
14419
14420
14421
14422
14423
14424
14425
14426
14427
14428
14429
14430
14431
14432
14433
14434
14435
14436
14437
14438
14439
14440
14441
14442
14443
14444
14445
14446
14447
14448
14449
14450
14451
14452
14453
14454
14455
14456
14457
14458
14459
14460
14461
14462
14463
14464
14465
14466
14467
14468
14469
14470
14471
14472
14473
14474
14475
14476
14477
14478
14479
14480
14481
14482
14483
14484
14485
14486
14487
14488
14489
14490
14491
14492
14493
14494
14495
14496
14497
14498
14499
14500
14501
14502
14503
14504
14505
14506
14507
14508
14509
14510
14511
14512
14513
14514
14515
14516
14517
14518
14519
14520
14521
14522
14523
14524
14525
14526
14527
14528
14529
14530
14531
14532
14533
14534
14535
14536
14537
14538
14539
14540
14541
14542
14543
14544
14545
14546
14547
14548
14549
14550
14551
14552
14553
14554
14555
14556
14557
14558
14559
14560
14561
14562
14563
14564
14565
14566
14567
14568
14569
14570
14571
14572
14573
14574
14575
14576
14577
14578
14579
14580
14581
14582
14583
14584
14585
14586
14587
14588
14589
14590
14591
14592
14593
14594
14595
14596
14597
14598
14599
14600
14601
14602
14603
14604
14605
14606
14607
14608
14609
14610
14611
14612
14613
14614
14615
14616
14617
14618
14619
14620
14621
14622
14623
14624
14625
14626
14627
14628
14629
14630
14631
14632
14633
14634
14635
14636
14637
14638
14639
14640
14641
14642
14643
14644
14645
14646
14647
14648
14649
14650
14651
14652
14653
14654
14655
14656
14657
14658
14659
14660
14661
14662
14663
14664
14665
14666
14667
14668
14669
14670
14671
14672
14673
14674
14675
14676
14677
14678
14679
14680
14681
14682
14683
14684
14685
14686
14687
14688
14689
14690
14691
14692
14693
14694
14695
14696
14697
14698
14699
14700
14701
14702
14703
14704
14705
14706
14707
14708
14709
14710
14711
14712
14713
14714
14715
14716
14717
14718
14719
14720
14721
14722
14723
14724
14725
14726
14727
14728
14729
14730
14731
14732
14733
14734
14735
14736
14737
14738
14739
14740
14741
14742
14743
14744
14745
14746
14747
14748
14749
14750
14751
14752
14753
14754
14755
14756
14757
14758
14759
14760
14761
14762
14763
14764
14765
14766
14767
14768
14769
14770
14771
14772
14773
14774
14775
14776
14777
14778
14779
14780
14781
14782
14783
14784
14785
14786
14787
14788
14789
14790
14791
14792
14793
14794
14795
14796
14797
14798
14799
14800
14801
14802
14803
14804
14805
14806
14807
14808
14809
14810
14811
14812
14813
14814
14815
14816
14817
14818
14819
14820
14821
14822
14823
14824
14825
14826
14827
14828
14829
14830
14831
14832
14833
14834
14835
14836
14837
14838
14839
14840
14841
14842
14843
14844
14845
14846
14847
14848
14849
14850
14851
14852
14853
14854
14855
14856
14857
14858
14859
14860
14861
14862
14863
14864
14865
14866
14867
14868
14869
14870
14871
14872
14873
14874
14875
14876
14877
14878
14879
14880
14881
14882
14883
14884
14885
14886
14887
14888
14889
14890
14891
14892
14893
14894
14895
14896
14897
14898
14899
14900
14901
14902
14903
14904
14905
14906
14907
14908
14909
14910
14911
14912
14913
14914
14915
14916
14917
14918
14919
14920
14921
14922
14923
14924
14925
14926
14927
14928
14929
14930
14931
14932
14933
14934
14935
14936
14937
14938
14939
14940
14941
14942
14943
14944
14945
14946
14947
14948
14949
14950
14951
14952
14953
14954
14955
14956
14957
14958
14959
14960
14961
14962
14963
14964
14965
14966
14967
14968
14969
14970
14971
14972
14973
14974
14975
14976
14977
14978
14979
14980
14981
14982
14983
14984
14985
14986
14987
14988
14989
14990
14991
14992
14993
14994
14995
14996
14997
14998
14999
15000
15001
15002
15003
15004
15005
15006
15007
15008
15009
15010
15011
15012
15013
15014
15015
15016
15017
15018
15019
15020
15021
15022
15023
15024
15025
15026
15027
15028
15029
15030
15031
15032
15033
15034
15035
15036
15037
15038
15039
15040
15041
15042
15043
15044
15045
15046
15047
15048
15049
15050
15051
15052
15053
15054
15055
15056
15057
15058
15059
15060
15061
15062
15063
15064
15065
15066
15067
15068
15069
15070
15071
15072
15073
15074
15075
15076
15077
15078
15079
15080
15081
15082
15083
15084
15085
15086
15087
15088
15089
15090
15091
15092
15093
15094
15095
15096
15097
15098
15099
15100
15101
15102
15103
15104
15105
15106
15107
15108
15109
15110
15111
15112
15113
15114
15115
15116
15117
15118
15119
15120
15121
15122
15123
15124
15125
15126
15127
15128
15129
15130
15131
15132
15133
15134
15135
15136
15137
15138
15139
15140
15141
15142
15143
15144
15145
15146
15147
15148
15149
15150
15151
15152
15153
15154
15155
15156
15157
15158
15159
15160
15161
15162
15163
15164
15165
15166
15167
15168
15169
15170
15171
15172
15173
15174
15175
15176
15177
15178
15179
15180
15181
15182
15183
15184
15185
15186
15187
15188
15189
15190
15191
15192
15193
15194
15195
15196
15197
15198
15199
15200
15201
15202
15203
15204
15205
15206
15207
15208
15209
15210
15211
15212
15213
15214
15215
15216
15217
15218
15219
15220
15221
15222
15223
15224
15225
15226
15227
15228
15229
15230
15231
15232
15233
15234
15235
15236
15237
15238
15239
15240
15241
15242
15243
15244
15245
15246
15247
15248
15249
15250
15251
15252
15253
15254
15255
15256
15257
15258
15259
15260
15261
15262
15263
15264
15265
15266
15267
15268
15269
15270
15271
15272
15273
15274
15275
15276
15277
15278
15279
15280
15281
15282
15283
15284
15285
15286
15287
15288
15289
15290
15291
15292
15293
15294
15295
15296
15297
15298
15299
15300
15301
15302
15303
15304
15305
15306
15307
15308
15309
15310
15311
15312
15313
15314
15315
15316
15317
15318
15319
15320
15321
15322
15323
15324
15325
15326
15327
15328
15329
15330
15331
15332
15333
15334
15335
15336
15337
15338
15339
15340
15341
15342
15343
15344
15345
15346
15347
15348
15349
15350
15351
15352
15353
15354
15355
15356
15357
15358
15359
15360
15361
15362
15363
15364
15365
15366
15367
15368
15369
15370
15371
15372
15373
15374
15375
15376
15377
15378
15379
15380
15381
15382
15383
15384
15385
15386
15387
15388
15389
15390
15391
15392
15393
15394
15395
15396
15397
15398
15399
15400
15401
15402
15403
15404
15405
15406
15407
15408
15409
15410
15411
15412
15413
15414
15415
15416
15417
15418
15419
15420
15421
15422
15423
15424
15425
15426
15427
15428
15429
15430
15431
15432
15433
15434
15435
15436
15437
15438
15439
15440
15441
15442
15443
15444
15445
15446
15447
15448
15449
15450
15451
15452
15453
15454
15455
15456
15457
15458
15459
15460
15461
15462
15463
15464
15465
15466
15467
15468
15469
15470
15471
15472
15473
15474
15475
15476
15477
15478
15479
15480
15481
15482
15483
15484
15485
15486
15487
15488
15489
15490
15491
15492
15493
15494
15495
15496
15497
15498
15499
15500
15501
15502
15503
15504
15505
15506
15507
15508
15509
15510
15511
15512
15513
15514
15515
15516
15517
15518
15519
15520
15521
15522
15523
15524
15525
15526
15527
15528
15529
15530
15531
15532
15533
15534
15535
15536
15537
15538
15539
15540
15541
15542
15543
15544
15545
15546
15547
15548
15549
15550
15551
15552
15553
15554
15555
15556
15557
15558
15559
15560
15561
15562
15563
15564
15565
15566
15567
15568
15569
15570
15571
15572
15573
15574
15575
15576
15577
15578
15579
15580
15581
15582
15583
15584
15585
15586
15587
15588
15589
15590
15591
15592
15593
15594
15595
15596
15597
15598
15599
15600
15601
15602
15603
15604
15605
15606
15607
15608
15609
15610
15611
15612
15613
15614
15615
15616
15617
15618
15619
15620
15621
15622
15623
15624
15625
15626
15627
15628
15629
15630
15631
15632
15633
15634
15635
15636
15637
15638
15639
15640
15641
15642
15643
15644
15645
15646
15647
15648
15649
15650
15651
15652
15653
15654
15655
15656
15657
15658
15659
15660
15661
15662
15663
15664
15665
15666
15667
15668
15669
15670
15671
15672
15673
15674
15675
15676
15677
15678
15679
15680
15681
15682
15683
15684
15685
15686
15687
15688
15689
15690
15691
15692
15693
15694
15695
15696
15697
15698
15699
15700
15701
15702
15703
15704
15705
15706
15707
15708
15709
15710
15711
15712
15713
15714
15715
15716
15717
15718
15719
15720
15721
15722
15723
15724
15725
15726
15727
15728
15729
15730
15731
15732
15733
15734
15735
15736
15737
15738
15739
15740
15741
15742
15743
15744
15745
15746
15747
15748
15749
15750
15751
15752
15753
15754
15755
15756
15757
15758
15759
15760
15761
15762
15763
15764
15765
15766
15767
15768
15769
15770
15771
15772
15773
15774
15775
15776
15777
15778
15779
15780
15781
15782
15783
15784
15785
15786
15787
15788
15789
15790
15791
15792
15793
15794
15795
15796
15797
15798
15799
15800
15801
15802
15803
15804
15805
15806
15807
15808
15809
15810
15811
15812
15813
15814
15815
15816
15817
15818
15819
15820
15821
15822
15823
15824
15825
15826
15827
15828
15829
15830
15831
15832
15833
15834
15835
15836
15837
15838
15839
15840
15841
15842
15843
15844
15845
15846
15847
15848
15849
15850
15851
15852
15853
15854
15855
15856
15857
15858
15859
15860
15861
15862
15863
15864
15865
15866
15867
15868
15869
15870
15871
15872
15873
15874
15875
15876
15877
15878
15879
15880
15881
15882
15883
15884
15885
15886
15887
15888
15889
15890
15891
15892
15893
15894
15895
15896
15897
15898
15899
15900
15901
15902
15903
15904
15905
15906
15907
15908
15909
15910
15911
15912
15913
15914
15915
15916
15917
15918
15919
15920
15921
15922
15923
15924
15925
15926
15927
15928
15929
15930
15931
15932
15933
15934
15935
15936
15937
15938
15939
15940
15941
15942
15943
15944
15945
15946
15947
15948
15949
15950
15951
15952
15953
15954
15955
15956
15957
15958
15959
15960
15961
15962
15963
15964
15965
15966
15967
15968
15969
15970
15971
15972
15973
15974
15975
15976
15977
15978
15979
15980
15981
15982
15983
15984
15985
15986
15987
15988
15989
15990
15991
15992
15993
15994
15995
15996
15997
15998
15999
16000
16001
16002
16003
16004
16005
16006
16007
16008
16009
16010
16011
16012
16013
16014
16015
16016
16017
16018
16019
16020
16021
16022
16023
16024
16025
16026
16027
16028
16029
16030
16031
16032
16033
16034
16035
16036
16037
16038
16039
16040
16041
16042
16043
16044
16045
16046
16047
16048
16049
16050
16051
16052
16053
16054
16055
16056
16057
16058
16059
16060
16061
16062
16063
16064
16065
16066
16067
16068
16069
16070
16071
16072
16073
16074
16075
16076
16077
16078
16079
16080
16081
16082
16083
16084
16085
16086
16087
16088
16089
16090
16091
16092
16093
16094
16095
16096
16097
16098
16099
16100
16101
16102
16103
16104
16105
16106
16107
16108
16109
16110
16111
16112
16113
16114
16115
16116
16117
16118
16119
16120
16121
16122
16123
16124
16125
16126
16127
16128
16129
16130
16131
16132
16133
16134
16135
16136
16137
16138
16139
16140
16141
16142
16143
16144
16145
16146
16147
16148
16149
16150
16151
16152
16153
16154
16155
16156
16157
16158
16159
16160
16161
16162
16163
16164
16165
16166
16167
16168
16169
16170
16171
16172
16173
16174
16175
16176
16177
16178
16179
16180
16181
16182
16183
16184
16185
16186
16187
16188
16189
16190
16191
16192
16193
16194
16195
16196
16197
16198
16199
16200
16201
16202
16203
16204
16205
16206
16207
16208
16209
16210
16211
16212
16213
16214
16215
16216
16217
16218
16219
16220
16221
16222
16223
16224
16225
16226
16227
16228
16229
16230
16231
16232
16233
16234
16235
16236
16237
16238
16239
16240
16241
16242
16243
16244
16245
16246
16247
16248
16249
16250
16251
16252
16253
16254
16255
16256
16257
16258
16259
16260
16261
16262
16263
16264
16265
16266
16267
16268
16269
16270
16271
16272
16273
16274
16275
16276
16277
16278
16279
16280
16281
16282
16283
16284
16285
16286
16287
16288
16289
16290
16291
16292
16293
16294
16295
16296
16297
16298
16299
16300
16301
16302
16303
16304
16305
16306
16307
16308
16309
16310
16311
16312
16313
16314
16315
16316
16317
16318
16319
16320
16321
16322
16323
16324
16325
16326
16327
16328
16329
16330
16331
16332
16333
16334
16335
16336
16337
16338
16339
16340
16341
16342
16343
16344
16345
16346
16347
16348
16349
16350
16351
16352
16353
16354
16355
16356
16357
16358
16359
16360
16361
16362
16363
16364
16365
16366
16367
16368
16369
16370
16371
16372
16373
16374
16375
16376
16377
16378
16379
16380
16381
16382
16383
16384
16385
16386
16387
16388
16389
16390
16391
16392
16393
16394
16395
16396
16397
16398
16399
16400
16401
16402
16403
16404
16405
16406
16407
16408
16409
16410
16411
16412
16413
16414
16415
16416
16417
16418
16419
16420
16421
16422
16423
16424
16425
16426
16427
16428
16429
16430
16431
16432
16433
16434
16435
16436
16437
16438
16439
16440
16441
16442
16443
16444
16445
16446
16447
16448
16449
16450
16451
16452
16453
16454
16455
16456
16457
16458
16459
16460
16461
16462
16463
16464
16465
16466
16467
16468
16469
16470
16471
16472
16473
16474
16475
16476
16477
16478
16479
16480
16481
16482
16483
16484
16485
16486
16487
16488
16489
16490
16491
16492
16493
16494
16495
16496
16497
16498
16499
16500
16501
16502
16503
16504
16505
16506
16507
16508
16509
16510
16511
16512
16513
16514
16515
16516
16517
16518
16519
16520
16521
16522
16523
16524
16525
16526
16527
16528
16529
16530
16531
16532
16533
16534
16535
16536
16537
16538
16539
16540
16541
16542
16543
16544
16545
16546
16547
16548
16549
16550
16551
16552
16553
16554
16555
16556
16557
16558
16559
16560
16561
16562
16563
16564
16565
16566
16567
16568
16569
16570
16571
16572
16573
16574
16575
16576
16577
16578
16579
16580
16581
16582
16583
16584
16585
16586
16587
16588
16589
16590
16591
16592
16593
16594
16595
16596
16597
16598
16599
16600
16601
16602
16603
16604
16605
16606
16607
16608
16609
16610
16611
16612
16613
16614
16615
16616
16617
16618
16619
16620
16621
16622
16623
16624
16625
16626
16627
16628
16629
16630
16631
16632
16633
16634
16635
16636
16637
16638
16639
16640
16641
16642
16643
16644
16645
16646
16647
16648
16649
16650
16651
16652
16653
16654
16655
16656
16657
16658
16659
16660
16661
16662
16663
16664
16665
16666
16667
16668
16669
16670
16671
16672
16673
16674
16675
16676
16677
16678
16679
16680
16681
16682
16683
16684
16685
16686
16687
16688
16689
16690
16691
16692
16693
16694
16695
16696
16697
16698
16699
16700
16701
16702
16703
16704
16705
16706
16707
16708
16709
16710
16711
16712
16713
16714
16715
16716
16717
16718
16719
16720
16721
16722
16723
16724
16725
16726
16727
16728
16729
16730
16731
16732
16733
16734
16735
16736
16737
16738
16739
16740
16741
16742
16743
16744
16745
16746
16747
16748
16749
16750
16751
16752
16753
16754
16755
16756
16757
16758
16759
16760
16761
16762
16763
16764
16765
16766
16767
16768
16769
16770
16771
16772
16773
16774
16775
16776
16777
16778
16779
16780
16781
16782
16783
16784
16785
16786
16787
16788
16789
16790
16791
16792
16793
16794
16795
16796
16797
16798
16799
16800
16801
16802
16803
16804
16805
16806
16807
16808
16809
16810
16811
16812
16813
16814
16815
16816
16817
16818
16819
16820
16821
16822
16823
16824
16825
16826
16827
16828
16829
16830
16831
16832
16833
16834
16835
16836
16837
16838
16839
16840
16841
16842
16843
16844
16845
16846
16847
16848
16849
16850
16851
16852
16853
16854
16855
16856
16857
16858
16859
16860
16861
16862
16863
16864
16865
16866
16867
16868
16869
16870
16871
16872
16873
16874
16875
16876
16877
16878
16879
16880
16881
16882
16883
16884
16885
16886
16887
16888
16889
16890
16891
16892
16893
16894
16895
16896
16897
16898
16899
16900
16901
16902
16903
16904
16905
16906
16907
16908
16909
16910
16911
16912
16913
16914
16915
16916
16917
16918
16919
16920
16921
16922
16923
16924
16925
16926
16927
16928
16929
16930
16931
16932
16933
16934
16935
16936
16937
16938
16939
16940
16941
16942
16943
16944
16945
16946
16947
16948
16949
16950
16951
16952
16953
16954
16955
16956
16957
16958
16959
16960
16961
16962
16963
16964
16965
16966
16967
16968
16969
16970
16971
16972
16973
16974
16975
16976
16977
16978
16979
16980
16981
16982
16983
16984
16985
16986
16987
16988
16989
16990
16991
16992
16993
16994
16995
16996
16997
16998
16999
17000
17001
17002
17003
17004
17005
17006
17007
17008
17009
17010
17011
17012
17013
17014
17015
17016
17017
17018
17019
17020
17021
17022
17023
17024
17025
17026
17027
17028
17029
17030
17031
17032
17033
17034
17035
17036
17037
17038
17039
17040
17041
17042
17043
17044
17045
17046
17047
17048
17049
17050
17051
17052
17053
17054
17055
17056
17057
17058
17059
17060
17061
17062
17063
17064
17065
17066
17067
17068
17069
17070
17071
17072
17073
17074
17075
17076
17077
17078
17079
17080
17081
17082
17083
17084
17085
17086
17087
17088
17089
17090
17091
17092
17093
17094
17095
17096
17097
17098
17099
17100
17101
17102
17103
17104
17105
17106
17107
17108
17109
17110
17111
17112
17113
17114
17115
17116
17117
17118
17119
17120
17121
17122
17123
17124
17125
17126
17127
17128
17129
17130
17131
17132
17133
17134
17135
17136
17137
17138
17139
17140
17141
17142
17143
17144
17145
17146
17147
17148
17149
17150
17151
17152
17153
17154
17155
17156
17157
17158
17159
17160
17161
17162
17163
17164
17165
17166
17167
17168
17169
17170
17171
17172
17173
17174
17175
17176
17177
17178
17179
17180
17181
17182
17183
17184
17185
17186
17187
17188
17189
17190
17191
17192
17193
17194
17195
17196
17197
17198
17199
17200
17201
17202
17203
17204
17205
17206
17207
17208
17209
17210
17211
17212
17213
17214
17215
17216
17217
17218
17219
17220
17221
17222
17223
17224
17225
17226
17227
17228
17229
17230
17231
17232
17233
17234
17235
17236
17237
17238
17239
17240
17241
17242
17243
17244
17245
17246
17247
17248
17249
17250
17251
17252
17253
17254
17255
17256
17257
17258
17259
17260
17261
17262
17263
17264
17265
17266
17267
17268
17269
17270
17271
17272
17273
17274
17275
17276
17277
17278
17279
17280
17281
17282
17283
17284
17285
17286
17287
17288
17289
17290
17291
17292
17293
17294
17295
17296
17297
17298
17299
17300
17301
17302
17303
17304
17305
17306
17307
17308
17309
17310
17311
17312
17313
17314
17315
17316
17317
17318
17319
17320
17321
17322
17323
17324
17325
17326
17327
17328
17329
17330
17331
17332
17333
17334
17335
17336
17337
17338
17339
17340
17341
17342
17343
17344
17345
17346
17347
17348
17349
17350
17351
17352
17353
17354
17355
17356
17357
17358
17359
17360
17361
17362
17363
17364
17365
17366
17367
17368
17369
17370
17371
17372
17373
17374
17375
17376
17377
17378
17379
17380
17381
17382
17383
17384
17385
17386
17387
17388
17389
17390
17391
17392
17393
17394
17395
17396
17397
17398
17399
17400
17401
17402
17403
17404
17405
17406
17407
17408
17409
17410
17411
17412
17413
17414
17415
17416
17417
17418
17419
17420
17421
17422
17423
17424
17425
17426
17427
17428
17429
17430
17431
17432
17433
17434
17435
17436
17437
17438
17439
17440
17441
17442
17443
17444
17445
17446
17447
17448
17449
17450
17451
17452
17453
17454
17455
17456
17457
17458
17459
17460
17461
17462
17463
17464
17465
17466
17467
17468
17469
17470
17471
17472
17473
17474
17475
17476
17477
17478
17479
17480
17481
17482
17483
17484
17485
17486
17487
17488
17489
17490
17491
17492
17493
17494
17495
17496
17497
17498
17499
17500
17501
17502
17503
17504
17505
17506
17507
17508
17509
17510
17511
17512
17513
17514
17515
17516
17517
17518
17519
17520
17521
17522
17523
17524
17525
17526
17527
17528
17529
17530
17531
17532
17533
17534
17535
17536
17537
17538
17539
17540
17541
17542
17543
17544
17545
17546
17547
17548
17549
17550
17551
17552
17553
17554
17555
17556
17557
17558
17559
17560
17561
17562
17563
17564
17565
17566
17567
17568
17569
17570
17571
17572
17573
17574
17575
17576
17577
17578
17579
17580
17581
17582
17583
17584
17585
17586
17587
17588
17589
17590
17591
17592
17593
17594
17595
17596
17597
17598
17599
17600
17601
17602
17603
17604
17605
17606
17607
17608
17609
17610
17611
17612
17613
17614
17615
17616
17617
17618
17619
17620
17621
17622
17623
17624
17625
17626
17627
17628
17629
17630
17631
17632
17633
17634
17635
17636
17637
17638
17639
17640
17641
17642
17643
17644
17645
17646
17647
17648
17649
17650
17651
17652
17653
17654
17655
17656
17657
17658
17659
17660
17661
17662
17663
17664
17665
17666
17667
17668
17669
17670
17671
17672
17673
17674
17675
17676
17677
17678
17679
17680
17681
17682
17683
17684
17685
17686
17687
17688
17689
17690
17691
17692
17693
17694
17695
17696
17697
17698
17699
17700
17701
17702
17703
17704
17705
17706
17707
17708
17709
17710
17711
17712
17713
17714
17715
17716
17717
17718
17719
17720
17721
17722
17723
17724
17725
17726
17727
17728
17729
17730
17731
17732
17733
17734
17735
17736
17737
17738
17739
17740
17741
17742
17743
17744
17745
17746
17747
17748
17749
17750
17751
17752
17753
17754
17755
17756
17757
17758
17759
17760
17761
17762
17763
17764
17765
17766
17767
17768
17769
17770
17771
17772
17773
17774
17775
17776
17777
17778
17779
17780
17781
17782
17783
17784
17785
17786
17787
17788
17789
17790
17791
17792
17793
17794
17795
17796
17797
17798
17799
17800
17801
17802
17803
17804
17805
17806
17807
17808
17809
17810
17811
17812
17813
17814
17815
17816
17817
17818
17819
17820
17821
17822
17823
17824
17825
17826
17827
17828
17829
17830
17831
17832
17833
17834
17835
17836
17837
17838
17839
17840
17841
17842
17843
17844
17845
17846
17847
17848
17849
17850
17851
17852
17853
17854
17855
17856
17857
17858
17859
17860
17861
17862
17863
17864
17865
17866
17867
17868
17869
17870
17871
17872
17873
17874
17875
17876
17877
17878
17879
17880
17881
17882
17883
17884
17885
17886
17887
17888
17889
17890
17891
17892
17893
17894
17895
17896
17897
17898
17899
17900
17901
17902
17903
17904
17905
17906
17907
17908
17909
17910
17911
17912
17913
17914
17915
17916
17917
17918
17919
17920
17921
17922
17923
17924
17925
17926
17927
17928
17929
17930
17931
17932
17933
17934
17935
17936
17937
17938
17939
17940
17941
17942
17943
17944
17945
17946
17947
17948
17949
17950
17951
17952
17953
17954
17955
17956
17957
17958
17959
17960
17961
17962
17963
17964
17965
17966
17967
17968
17969
17970
17971
17972
17973
17974
17975
17976
17977
17978
17979
17980
17981
17982
17983
17984
17985
17986
17987
17988
17989
17990
17991
17992
17993
17994
17995
17996
17997
17998
17999
18000
18001
18002
18003
18004
18005
18006
18007
18008
18009
18010
18011
18012
18013
18014
18015
18016
18017
18018
18019
18020
18021
18022
18023
18024
18025
18026
18027
18028
18029
18030
18031
18032
18033
18034
18035
18036
18037
18038
18039
18040
18041
18042
18043
18044
18045
18046
18047
18048
18049
18050
18051
18052
18053
18054
18055
18056
18057
18058
18059
18060
18061
18062
18063
18064
18065
18066
18067
18068
18069
18070
18071
18072
18073
18074
18075
18076
18077
18078
18079
18080
18081
18082
18083
18084
18085
18086
18087
18088
18089
18090
18091
18092
18093
18094
18095
18096
18097
18098
18099
18100
18101
18102
18103
18104
18105
18106
18107
18108
18109
18110
18111
18112
18113
18114
18115
18116
18117
18118
18119
18120
18121
18122
18123
18124
18125
18126
18127
18128
18129
18130
18131
18132
18133
18134
18135
18136
18137
18138
18139
18140
18141
18142
18143
18144
18145
18146
18147
18148
18149
18150
18151
18152
18153
18154
18155
18156
18157
18158
18159
18160
18161
18162
18163
18164
18165
18166
18167
18168
18169
18170
18171
18172
18173
18174
18175
18176
18177
18178
18179
18180
18181
18182
18183
18184
18185
18186
18187
18188
18189
18190
18191
18192
18193
18194
18195
18196
18197
18198
18199
18200
18201
18202
18203
18204
18205
18206
18207
18208
18209
18210
18211
18212
18213
18214
18215
18216
18217
18218
18219
18220
18221
18222
18223
18224
18225
18226
18227
18228
18229
18230
18231
18232
18233
18234
18235
18236
18237
18238
18239
18240
18241
18242
18243
18244
18245
18246
18247
18248
18249
18250
18251
18252
18253
18254
18255
18256
18257
18258
18259
18260
18261
18262
18263
18264
18265
18266
18267
18268
18269
18270
18271
18272
18273
18274
18275
18276
18277
18278
18279
18280
18281
18282
18283
18284
18285
18286
18287
18288
18289
18290
18291
18292
18293
18294
18295
18296
18297
18298
18299
18300
18301
18302
18303
18304
18305
18306
18307
18308
18309
18310
18311
18312
18313
18314
18315
18316
18317
18318
18319
18320
18321
18322
18323
18324
18325
18326
18327
18328
18329
18330
18331
18332
18333
18334
18335
18336
18337
18338
18339
18340
18341
18342
18343
18344
18345
18346
18347
18348
18349
18350
18351
18352
18353
18354
18355
18356
18357
18358
18359
18360
18361
18362
18363
18364
18365
18366
18367
18368
18369
18370
18371
18372
18373
18374
18375
18376
18377
18378
18379
18380
18381
18382
18383
18384
18385
18386
18387
18388
18389
18390
18391
18392
18393
18394
18395
18396
18397
18398
18399
18400
18401
18402
18403
18404
18405
18406
18407
18408
18409
18410
18411
18412
18413
18414
18415
18416
18417
18418
18419
18420
18421
18422
18423
18424
18425
18426
18427
18428
18429
18430
18431
18432
18433
18434
18435
18436
18437
18438
18439
18440
18441
18442
18443
18444
18445
18446
18447
18448
18449
18450
18451
18452
18453
18454
18455
18456
18457
18458
18459
18460
18461
18462
18463
18464
18465
18466
18467
18468
18469
18470
18471
18472
18473
18474
18475
18476
18477
18478
18479
18480
18481
18482
18483
18484
18485
18486
18487
18488
18489
18490
18491
18492
18493
18494
18495
18496
18497
18498
18499
18500
18501
18502
18503
18504
18505
18506
18507
18508
18509
18510
18511
18512
18513
18514
18515
18516
18517
18518
18519
18520
18521
18522
18523
18524
18525
18526
18527
18528
18529
18530
18531
18532
18533
18534
18535
18536
18537
18538
18539
18540
18541
18542
18543
18544
18545
18546
18547
18548
18549
18550
18551
18552
18553
18554
18555
18556
18557
18558
18559
18560
18561
18562
18563
18564
18565
18566
18567
18568
18569
18570
18571
18572
18573
18574
18575
18576
18577
18578
18579
18580
18581
18582
18583
18584
18585
18586
18587
18588
18589
18590
18591
18592
18593
18594
18595
18596
18597
18598
18599
18600
18601
18602
18603
18604
18605
18606
18607
18608
18609
18610
18611
18612
18613
18614
18615
18616
18617
18618
18619
18620
18621
18622
18623
18624
18625
18626
18627
18628
18629
18630
18631
18632
18633
18634
18635
18636
18637
18638
18639
18640
18641
18642
18643
18644
18645
18646
18647
18648
18649
18650
18651
18652
18653
18654
18655
18656
18657
18658
18659
18660
18661
18662
18663
18664
18665
18666
18667
18668
18669
18670
18671
18672
18673
18674
18675
18676
18677
18678
18679
18680
18681
18682
18683
18684
18685
18686
18687
18688
18689
18690
18691
18692
18693
18694
18695
18696
18697
18698
18699
18700
18701
18702
18703
18704
18705
18706
18707
18708
18709
18710
18711
18712
18713
18714
18715
18716
18717
18718
18719
18720
18721
18722
18723
18724
18725
18726
18727
18728
18729
18730
18731
18732
18733
18734
18735
18736
18737
18738
18739
18740
18741
18742
18743
18744
18745
18746
18747
18748
18749
18750
18751
18752
18753
18754
18755
18756
18757
18758
18759
18760
18761
18762
18763
18764
18765
18766
18767
18768
18769
18770
18771
18772
18773
18774
18775
18776
18777
18778
18779
18780
18781
18782
18783
18784
18785
18786
18787
18788
18789
18790
18791
18792
18793
18794
18795
18796
18797
18798
18799
18800
18801
18802
18803
18804
18805
18806
18807
18808
18809
18810
18811
18812
18813
18814
18815
18816
18817
18818
18819
18820
18821
18822
18823
18824
18825
18826
18827
18828
18829
18830
18831
18832
18833
18834
18835
18836
18837
18838
18839
18840
18841
18842
18843
18844
18845
18846
18847
18848
18849
18850
18851
18852
18853
18854
18855
18856
18857
18858
18859
18860
18861
18862
18863
18864
18865
18866
18867
18868
18869
18870
18871
18872
18873
18874
18875
18876
18877
18878
18879
18880
18881
18882
18883
18884
18885
18886
18887
18888
18889
18890
18891
18892
18893
18894
18895
18896
18897
18898
18899
18900
18901
18902
18903
18904
18905
18906
18907
18908
18909
18910
18911
18912
18913
18914
18915
18916
18917
18918
18919
18920
18921
18922
18923
18924
18925
18926
18927
18928
18929
18930
18931
18932
18933
18934
18935
18936
18937
18938
18939
18940
18941
18942
18943
18944
18945
18946
18947
18948
18949
18950
18951
18952
18953
18954
18955
18956
18957
18958
18959
18960
18961
18962
18963
18964
18965
18966
18967
18968
18969
18970
18971
18972
18973
18974
18975
18976
18977
18978
18979
18980
18981
18982
18983
18984
18985
18986
18987
18988
18989
18990
18991
18992
18993
18994
18995
18996
18997
18998
18999
19000
19001
19002
19003
19004
19005
19006
19007
19008
19009
19010
19011
19012
19013
19014
19015
19016
19017
19018
19019
19020
19021
19022
19023
19024
19025
19026
19027
19028
19029
19030
19031
19032
19033
19034
19035
19036
19037
19038
19039
19040
19041
19042
19043
19044
19045
19046
19047
19048
19049
19050
19051
19052
19053
19054
19055
19056
19057
19058
19059
19060
19061
19062
19063
19064
19065
19066
19067
19068
19069
19070
19071
19072
19073
19074
19075
19076
19077
19078
19079
19080
19081
19082
19083
19084
19085
19086
19087
19088
19089
19090
19091
19092
19093
19094
19095
19096
19097
19098
19099
19100
19101
19102
19103
19104
19105
19106
19107
19108
19109
19110
19111
19112
19113
19114
19115
19116
19117
19118
19119
19120
19121
19122
19123
19124
19125
19126
19127
19128
19129
19130
19131
19132
19133
19134
19135
19136
19137
19138
19139
19140
19141
19142
19143
19144
19145
19146
19147
19148
19149
19150
19151
19152
19153
19154
19155
19156
19157
19158
19159
19160
19161
19162
19163
19164
19165
19166
19167
19168
19169
19170
19171
19172
19173
19174
19175
19176
19177
19178
19179
19180
19181
19182
19183
19184
19185
19186
19187
19188
19189
19190
19191
19192
19193
19194
19195
19196
19197
19198
19199
19200
19201
19202
19203
19204
19205
19206
19207
19208
19209
19210
19211
19212
19213
19214
19215
19216
19217
19218
19219
19220
19221
19222
19223
19224
19225
19226
19227
19228
19229
19230
19231
19232
19233
19234
19235
19236
19237
19238
19239
19240
19241
19242
19243
19244
19245
19246
19247
19248
19249
19250
19251
19252
19253
19254
19255
19256
19257
19258
19259
19260
19261
19262
19263
19264
19265
19266
19267
19268
19269
19270
19271
19272
19273
19274
19275
19276
19277
19278
19279
19280
19281
19282
19283
19284
19285
19286
19287
19288
19289
19290
19291
19292
19293
19294
19295
19296
19297
19298
19299
19300
19301
19302
19303
19304
19305
19306
19307
19308
19309
19310
19311
19312
19313
19314
19315
19316
19317
19318
19319
19320
19321
19322
19323
19324
19325
19326
19327
19328
19329
19330
19331
19332
19333
19334
19335
19336
19337
19338
19339
19340
19341
19342
19343
19344
19345
19346
19347
19348
19349
19350
19351
19352
19353
19354
19355
19356
19357
19358
19359
19360
19361
19362
19363
19364
19365
19366
19367
19368
19369
19370
19371
19372
19373
19374
19375
19376
19377
19378
19379
19380
19381
19382
19383
19384
19385
19386
19387
19388
19389
19390
19391
19392
19393
19394
19395
19396
19397
19398
19399
19400
19401
19402
19403
19404
19405
19406
19407
19408
19409
19410
19411
19412
19413
19414
19415
19416
19417
19418
19419
19420
19421
19422
19423
19424
19425
19426
19427
19428
19429
19430
19431
19432
19433
19434
19435
19436
19437
19438
19439
19440
19441
19442
19443
19444
19445
19446
19447
19448
19449
19450
19451
19452
19453
19454
19455
19456
19457
19458
19459
19460
19461
19462
19463
19464
19465
19466
19467
19468
19469
19470
19471
19472
19473
19474
19475
19476
19477
19478
19479
19480
19481
19482
19483
19484
19485
19486
19487
19488
19489
19490
19491
19492
19493
19494
19495
19496
19497
19498
19499
19500
19501
19502
19503
19504
19505
19506
19507
19508
19509
19510
19511
19512
19513
19514
19515
19516
19517
19518
19519
19520
19521
19522
19523
19524
19525
19526
19527
19528
19529
19530
19531
19532
19533
19534
19535
19536
19537
19538
19539
19540
19541
19542
19543
19544
19545
19546
19547
19548
19549
19550
19551
19552
19553
19554
19555
19556
19557
19558
19559
19560
19561
19562
19563
19564
19565
19566
19567
19568
19569
19570
19571
19572
19573
19574
19575
19576
19577
19578
19579
19580
19581
19582
19583
19584
19585
19586
19587
19588
19589
19590
19591
19592
19593
19594
19595
19596
19597
19598
19599
19600
19601
19602
19603
19604
19605
19606
19607
19608
19609
19610
19611
19612
19613
19614
19615
19616
19617
19618
19619
19620
19621
19622
19623
19624
19625
19626
19627
19628
19629
19630
19631
19632
19633
19634
19635
19636
19637
19638
19639
19640
19641
19642
19643
19644
19645
19646
19647
19648
19649
19650
19651
19652
19653
19654
19655
19656
19657
19658
19659
19660
19661
19662
19663
19664
19665
19666
19667
19668
19669
19670
19671
19672
19673
19674
19675
19676
19677
19678
19679
19680
19681
19682
19683
19684
19685
19686
19687
19688
19689
19690
19691
19692
19693
19694
19695
19696
19697
19698
19699
19700
19701
19702
19703
19704
19705
19706
19707
19708
19709
19710
19711
19712
19713
19714
19715
19716
19717
19718
19719
19720
19721
19722
19723
19724
19725
19726
19727
19728
19729
19730
19731
19732
19733
19734
19735
19736
19737
19738
19739
19740
19741
19742
19743
19744
19745
19746
19747
19748
19749
19750
19751
19752
19753
19754
19755
19756
19757
19758
19759
19760
19761
19762
19763
19764
19765
19766
19767
19768
19769
19770
19771
19772
19773
19774
19775
19776
19777
19778
19779
19780
19781
19782
19783
19784
19785
19786
19787
19788
19789
19790
19791
19792
19793
19794
19795
19796
19797
19798
19799
19800
19801
19802
19803
19804
19805
19806
19807
19808
19809
19810
19811
19812
19813
19814
19815
19816
19817
19818
19819
19820
19821
19822
19823
19824
19825
19826
19827
19828
19829
19830
19831
19832
19833
19834
19835
19836
19837
19838
19839
19840
19841
19842
19843
19844
19845
19846
19847
19848
19849
19850
19851
19852
19853
19854
19855
19856
19857
19858
19859
19860
19861
19862
19863
19864
19865
19866
19867
19868
19869
19870
19871
19872
19873
19874
19875
19876
19877
19878
19879
19880
19881
19882
19883
19884
19885
19886
19887
19888
19889
19890
19891
19892
19893
19894
19895
19896
19897
19898
19899
19900
19901
19902
19903
19904
19905
19906
19907
19908
19909
19910
19911
19912
19913
19914
19915
19916
19917
19918
19919
19920
19921
19922
19923
19924
19925
19926
19927
19928
19929
19930
19931
19932
19933
19934
19935
19936
19937
19938
19939
19940
19941
19942
19943
19944
19945
19946
19947
19948
19949
19950
19951
19952
19953
19954
19955
19956
19957
19958
19959
19960
19961
19962
19963
19964
19965
19966
19967
19968
19969
19970
19971
19972
19973
19974
19975
19976
19977
19978
19979
19980
19981
19982
19983
19984
19985
19986
19987
19988
19989
19990
19991
19992
19993
19994
19995
19996
19997
19998
19999
20000
20001
20002
20003
20004
20005
20006
20007
20008
20009
20010
20011
20012
20013
20014
20015
20016
20017
20018
20019
20020
20021
20022
20023
20024
20025
20026
20027
20028
20029
20030
20031
20032
20033
20034
20035
20036
20037
20038
20039
20040
20041
20042
20043
20044
20045
20046
20047
20048
20049
20050
20051
20052
20053
20054
20055
20056
20057
20058
20059
20060
20061
20062
20063
20064
20065
20066
20067
20068
20069
20070
20071
20072
20073
20074
20075
20076
20077
20078
20079
20080
20081
20082
20083
20084
20085
20086
20087
20088
20089
20090
20091
20092
20093
20094
20095
20096
20097
20098
20099
20100
20101
20102
20103
20104
20105
20106
20107
20108
20109
20110
20111
20112
20113
20114
20115
20116
20117
20118
20119
20120
20121
20122
20123
20124
20125
20126
20127
20128
20129
20130
20131
20132
20133
20134
20135
20136
20137
20138
20139
20140
20141
20142
20143
20144
20145
20146
20147
20148
20149
20150
20151
20152
20153
20154
20155
20156
20157
20158
20159
20160
20161
20162
20163
20164
20165
20166
20167
20168
20169
20170
20171
20172
20173
20174
20175
20176
20177
20178
20179
20180
20181
20182
20183
20184
20185
20186
20187
20188
20189
20190
20191
20192
20193
20194
20195
20196
20197
20198
20199
20200
20201
20202
20203
20204
20205
20206
20207
20208
20209
20210
20211
20212
20213
20214
20215
20216
20217
20218
20219
20220
20221
20222
20223
20224
20225
20226
20227
20228
20229
20230
20231
20232
20233
20234
20235
20236
20237
20238
20239
20240
20241
20242
20243
20244
20245
20246
20247
20248
20249
20250
20251
20252
20253
20254
20255
20256
20257
20258
20259
20260
20261
20262
20263
20264
20265
20266
20267
20268
20269
20270
20271
20272
20273
20274
20275
20276
20277
20278
20279
20280
20281
20282
20283
20284
20285
20286
20287
20288
20289
20290
20291
20292
20293
20294
20295
20296
20297
20298
20299
20300
20301
20302
20303
20304
20305
20306
20307
20308
20309
20310
20311
20312
20313
20314
20315
20316
20317
20318
20319
20320
20321
20322
20323
20324
20325
20326
20327
20328
20329
20330
20331
20332
20333
20334
20335
20336
20337
20338
20339
20340
20341
20342
20343
20344
20345
20346
20347
20348
20349
20350
20351
20352
20353
20354
20355
20356
20357
20358
20359
20360
20361
20362
20363
20364
20365
20366
20367
20368
20369
20370
20371
20372
20373
20374
20375
20376
20377
20378
20379
20380
20381
20382
20383
20384
20385
20386
20387
20388
20389
20390
20391
20392
20393
20394
20395
20396
20397
20398
20399
20400
20401
20402
20403
20404
20405
20406
20407
20408
20409
20410
20411
20412
20413
20414
20415
20416
20417
20418
20419
20420
20421
20422
20423
20424
20425
20426
20427
20428
20429
20430
20431
20432
20433
20434
20435
20436
20437
20438
20439
20440
20441
20442
20443
20444
20445
20446
20447
20448
20449
20450
20451
20452
20453
20454
20455
20456
20457
20458
20459
20460
20461
20462
20463
20464
20465
20466
20467
20468
20469
20470
20471
20472
20473
20474
20475
20476
20477
20478
20479
20480
20481
20482
20483
20484
20485
20486
20487
20488
20489
20490
20491
20492
20493
20494
20495
20496
20497
20498
20499
20500
20501
20502
20503
20504
20505
20506
20507
20508
20509
20510
20511
20512
20513
20514
20515
20516
20517
20518
20519
20520
20521
20522
20523
20524
20525
20526
20527
20528
20529
20530
20531
20532
20533
20534
20535
20536
20537
20538
20539
20540
20541
20542
20543
20544
20545
20546
20547
20548
20549
20550
20551
20552
20553
20554
20555
20556
20557
20558
20559
20560
20561
20562
20563
20564
20565
20566
20567
20568
20569
20570
20571
20572
20573
20574
20575
20576
20577
20578
20579
20580
20581
20582
20583
20584
20585
20586
20587
20588
20589
20590
20591
20592
20593
20594
20595
20596
20597
20598
20599
20600
20601
20602
20603
20604
20605
20606
20607
20608
20609
20610
20611
20612
20613
20614
20615
20616
20617
20618
20619
20620
20621
20622
20623
20624
20625
20626
20627
20628
20629
20630
20631
20632
20633
20634
20635
20636
20637
20638
20639
20640
20641
20642
20643
20644
20645
20646
20647
20648
20649
20650
20651
20652
20653
20654
20655
20656
20657
20658
20659
20660
20661
20662
20663
20664
20665
20666
20667
20668
20669
20670
20671
20672
20673
20674
20675
20676
20677
20678
20679
20680
20681
20682
20683
20684
20685
20686
20687
20688
20689
20690
20691
20692
20693
20694
20695
20696
20697
20698
20699
20700
20701
20702
20703
20704
20705
20706
20707
20708
20709
20710
20711
20712
20713
20714
20715
20716
20717
20718
20719
20720
20721
20722
20723
20724
20725
20726
20727
20728
20729
20730
20731
20732
20733
20734
20735
20736
20737
20738
20739
20740
20741
20742
20743
20744
20745
20746
20747
20748
20749
20750
20751
20752
20753
20754
20755
20756
20757
20758
20759
20760
20761
20762
20763
20764
20765
20766
20767
20768
20769
20770
20771
20772
20773
20774
20775
20776
20777
20778
20779
20780
20781
20782
20783
20784
20785
20786
20787
20788
20789
20790
20791
20792
20793
20794
20795
20796
20797
20798
20799
20800
20801
20802
20803
20804
20805
20806
20807
20808
20809
20810
20811
20812
20813
20814
20815
20816
20817
20818
20819
20820
20821
20822
20823
20824
20825
20826
20827
20828
20829
20830
20831
20832
20833
20834
20835
20836
20837
20838
20839
20840
20841
20842
20843
20844
20845
20846
20847
20848
20849
20850
20851
20852
20853
20854
20855
20856
20857
20858
20859
20860
20861
20862
20863
20864
20865
20866
20867
20868
20869
20870
20871
20872
20873
20874
20875
20876
20877
20878
20879
20880
20881
20882
20883
20884
20885
20886
20887
20888
20889
20890
20891
20892
20893
20894
20895
20896
20897
20898
20899
20900
20901
20902
20903
20904
20905
20906
20907
20908
20909
20910
20911
20912
20913
20914
20915
20916
20917
20918
20919
20920
20921
20922
20923
20924
20925
20926
20927
20928
20929
20930
20931
20932
20933
20934
20935
20936
20937
20938
20939
20940
20941
20942
20943
20944
20945
20946
20947
20948
20949
20950
20951
20952
20953
20954
20955
20956
20957
20958
20959
20960
20961
20962
20963
20964
20965
20966
20967
20968
20969
20970
20971
20972
20973
20974
20975
20976
20977
20978
20979
20980
20981
20982
20983
20984
20985
20986
20987
20988
20989
20990
20991
20992
20993
20994
20995
20996
20997
20998
20999
21000
21001
21002
21003
21004
21005
21006
21007
21008
21009
21010
21011
21012
21013
21014
21015
21016
21017
21018
21019
21020
21021
21022
21023
21024
21025
21026
21027
21028
21029
21030
21031
21032
21033
21034
21035
21036
21037
21038
21039
21040
21041
21042
21043
21044
21045
21046
21047
21048
21049
21050
21051
21052
21053
21054
21055
21056
21057
21058
21059
21060
21061
21062
21063
21064
21065
21066
21067
21068
21069
21070
21071
21072
21073
21074
21075
21076
21077
21078
21079
21080
21081
21082
21083
21084
21085
21086
21087
21088
21089
21090
21091
21092
21093
21094
21095
21096
21097
21098
21099
21100
21101
21102
21103
21104
21105
21106
21107
21108
21109
21110
21111
21112
21113
21114
21115
21116
21117
21118
21119
21120
21121
21122
21123
21124
21125
21126
21127
21128
21129
21130
21131
21132
21133
21134
21135
21136
21137
21138
21139
21140
21141
21142
21143
21144
21145
21146
21147
21148
21149
21150
21151
21152
21153
21154
21155
21156
21157
21158
21159
21160
21161
21162
21163
21164
21165
21166
21167
21168
21169
21170
21171
21172
21173
21174
21175
21176
21177
21178
21179
21180
21181
21182
21183
21184
21185
21186
21187
21188
21189
21190
21191
21192
21193
21194
21195
21196
21197
21198
21199
21200
21201
21202
21203
21204
21205
21206
21207
21208
21209
21210
21211
21212
21213
21214
21215
21216
21217
21218
21219
21220
21221
21222
21223
21224
21225
21226
21227
21228
21229
21230
21231
21232
21233
21234
21235
21236
21237
21238
21239
21240
21241
21242
21243
21244
21245
21246
21247
21248
21249
21250
21251
21252
21253
21254
21255
21256
21257
21258
21259
21260
21261
21262
21263
21264
21265
21266
21267
21268
21269
21270
21271
21272
21273
21274
21275
21276
21277
21278
21279
21280
21281
21282
21283
21284
21285
21286
21287
21288
21289
21290
21291
21292
21293
21294
21295
21296
21297
21298
21299
21300
21301
21302
21303
21304
21305
21306
21307
21308
21309
21310
21311
21312
21313
21314
21315
21316
21317
21318
21319
21320
21321
21322
21323
21324
21325
21326
21327
21328
21329
21330
21331
21332
21333
21334
21335
21336
21337
21338
21339
21340
21341
21342
21343
21344
21345
21346
21347
21348
21349
21350
21351
21352
21353
21354
21355
21356
21357
21358
21359
21360
21361
21362
21363
21364
21365
21366
21367
21368
21369
21370
21371
21372
21373
21374
21375
21376
21377
21378
21379
21380
21381
21382
21383
21384
21385
21386
21387
21388
21389
21390
21391
21392
21393
21394
21395
21396
21397
21398
21399
21400
21401
21402
21403
21404
21405
21406
21407
21408
21409
21410
21411
21412
21413
21414
21415
21416
21417
21418
21419
21420
21421
21422
21423
21424
21425
21426
21427
21428
21429
21430
21431
21432
21433
21434
21435
21436
21437
21438
21439
21440
21441
21442
21443
21444
21445
21446
21447
21448
21449
21450
21451
21452
21453
21454
21455
21456
21457
21458
21459
21460
21461
21462
21463
21464
21465
21466
21467
21468
21469
21470
21471
21472
21473
21474
21475
21476
21477
21478
21479
21480
21481
21482
21483
21484
21485
21486
21487
21488
21489
21490
21491
21492
21493
21494
21495
21496
21497
21498
21499
21500
21501
21502
21503
21504
21505
21506
21507
21508
21509
21510
21511
21512
21513
21514
21515
21516
21517
21518
21519
21520
21521
21522
21523
21524
21525
21526
21527
21528
21529
21530
21531
21532
21533
21534
21535
21536
21537
21538
21539
21540
21541
21542
21543
21544
21545
21546
21547
21548
21549
21550
21551
21552
21553
21554
21555
21556
21557
21558
21559
21560
21561
21562
21563
21564
21565
21566
21567
21568
21569
21570
21571
21572
21573
21574
21575
21576
21577
21578
21579
21580
21581
21582
21583
21584
21585
21586
21587
21588
21589
21590
21591
21592
21593
21594
21595
21596
21597
21598
21599
21600
21601
21602
21603
21604
21605
21606
21607
21608
21609
21610
21611
21612
21613
21614
21615
21616
21617
21618
21619
21620
21621
21622
21623
21624
21625
21626
21627
21628
21629
21630
21631
21632
21633
21634
21635
21636
21637
21638
21639
21640
21641
21642
21643
21644
21645
21646
21647
21648
21649
21650
21651
21652
21653
21654
21655
21656
21657
21658
21659
21660
21661
21662
21663
21664
21665
21666
21667
21668
21669
21670
21671
21672
21673
21674
21675
21676
21677
21678
21679
21680
21681
21682
21683
21684
21685
21686
21687
21688
21689
21690
21691
21692
21693
21694
21695
21696
21697
21698
21699
21700
21701
21702
21703
21704
21705
21706
21707
21708
21709
21710
21711
21712
21713
21714
21715
21716
21717
21718
21719
21720
21721
21722
21723
21724
21725
21726
21727
21728
21729
21730
21731
21732
21733
21734
21735
21736
21737
21738
21739
21740
21741
21742
21743
21744
21745
21746
21747
21748
21749
21750
21751
21752
21753
21754
21755
21756
21757
21758
21759
21760
21761
21762
21763
21764
21765
21766
21767
21768
21769
21770
21771
21772
21773
21774
21775
21776
21777
21778
21779
21780
21781
21782
21783
21784
21785
21786
21787
21788
21789
21790
21791
21792
21793
21794
21795
21796
21797
21798
21799
21800
21801
21802
21803
21804
21805
21806
21807
21808
21809
21810
21811
21812
21813
21814
21815
21816
21817
21818
21819
21820
21821
21822
21823
21824
21825
21826
21827
21828
21829
21830
21831
21832
21833
21834
21835
21836
21837
21838
21839
21840
21841
21842
21843
21844
21845
21846
21847
21848
21849
21850
21851
21852
21853
21854
21855
21856
21857
21858
21859
21860
21861
21862
21863
21864
21865
21866
21867
21868
21869
21870
21871
21872
21873
21874
21875
21876
21877
21878
21879
21880
21881
21882
21883
21884
21885
21886
21887
21888
21889
21890
21891
21892
21893
21894
21895
21896
21897
21898
21899
21900
21901
21902
21903
21904
21905
21906
21907
21908
21909
21910
21911
21912
21913
21914
21915
21916
21917
21918
21919
21920
21921
21922
21923
21924
21925
21926
21927
21928
21929
21930
21931
21932
21933
21934
21935
21936
21937
21938
21939
21940
21941
21942
21943
21944
21945
21946
21947
21948
21949
21950
21951
21952
21953
21954
21955
21956
21957
21958
21959
21960
21961
21962
21963
21964
21965
21966
21967
21968
21969
21970
21971
21972
21973
21974
21975
21976
21977
21978
21979
21980
21981
21982
21983
21984
21985
21986
21987
21988
21989
21990
21991
21992
21993
21994
21995
21996
21997
21998
21999
22000
22001
22002
22003
22004
22005
22006
22007
22008
22009
22010
22011
22012
22013
22014
22015
22016
22017
22018
22019
22020
22021
22022
22023
22024
22025
22026
22027
22028
22029
22030
22031
22032
22033
22034
22035
22036
22037
22038
22039
22040
22041
22042
22043
22044
22045
22046
22047
22048
22049
22050
22051
22052
22053
22054
22055
22056
22057
22058
22059
22060
22061
22062
22063
22064
22065
22066
22067
22068
22069
22070
22071
22072
22073
22074
22075
22076
22077
22078
22079
22080
22081
22082
22083
22084
22085
22086
22087
22088
22089
22090
22091
22092
22093
22094
22095
22096
22097
22098
22099
22100
22101
22102
22103
22104
22105
22106
22107
22108
22109
22110
22111
22112
22113
22114
22115
22116
22117
22118
22119
22120
22121
22122
22123
22124
22125
22126
22127
22128
22129
22130
22131
22132
22133
22134
22135
22136
22137
22138
22139
22140
22141
22142
22143
22144
22145
22146
22147
22148
22149
22150
22151
22152
22153
22154
22155
22156
22157
22158
22159
22160
22161
22162
22163
22164
22165
22166
22167
22168
22169
22170
22171
22172
22173
22174
22175
22176
22177
22178
22179
22180
22181
22182
22183
22184
22185
22186
22187
22188
22189
22190
22191
22192
22193
22194
22195
22196
22197
22198
22199
22200
22201
22202
22203
22204
22205
22206
22207
22208
22209
22210
22211
22212
22213
22214
22215
22216
22217
22218
22219
22220
22221
22222
22223
22224
22225
22226
22227
22228
22229
22230
22231
22232
22233
22234
22235
22236
22237
22238
22239
22240
22241
22242
22243
22244
22245
22246
22247
22248
22249
22250
22251
22252
22253
22254
22255
22256
22257
22258
22259
22260
22261
22262
22263
22264
22265
22266
22267
22268
22269
22270
22271
22272
22273
22274
22275
22276
22277
22278
22279
22280
22281
22282
22283
22284
22285
22286
22287
22288
22289
22290
22291
22292
22293
22294
22295
22296
22297
22298
22299
22300
22301
22302
22303
22304
22305
22306
22307
22308
22309
22310
22311
22312
22313
22314
22315
22316
22317
22318
22319
22320
22321
22322
22323
22324
22325
22326
22327
22328
22329
22330
22331
22332
22333
22334
22335
22336
22337
22338
22339
22340
22341
22342
22343
22344
22345
22346
22347
22348
22349
22350
22351
22352
22353
22354
22355
22356
22357
22358
22359
22360
22361
22362
22363
22364
22365
22366
22367
22368
22369
22370
22371
22372
22373
22374
22375
22376
22377
22378
22379
22380
22381
22382
22383
22384
22385
22386
22387
22388
22389
22390
22391
22392
22393
22394
22395
22396
22397
22398
22399
22400
22401
22402
22403
22404
22405
22406
22407
22408
22409
22410
22411
22412
22413
22414
22415
22416
22417
22418
22419
22420
22421
22422
22423
22424
22425
22426
22427
22428
22429
22430
22431
22432
22433
22434
22435
22436
22437
22438
22439
22440
22441
22442
22443
22444
22445
22446
22447
22448
22449
22450
22451
22452
22453
22454
22455
22456
22457
22458
22459
22460
22461
22462
22463
22464
22465
22466
22467
22468
22469
22470
22471
22472
22473
22474
22475
22476
22477
22478
22479
22480
22481
22482
22483
22484
22485
22486
22487
22488
22489
22490
22491
22492
22493
22494
22495
22496
22497
22498
22499
22500
22501
22502
22503
22504
22505
22506
22507
22508
22509
22510
22511
22512
22513
22514
22515
22516
22517
22518
22519
22520
22521
22522
22523
22524
22525
22526
22527
22528
22529
22530
22531
22532
22533
22534
22535
22536
22537
22538
22539
22540
22541
22542
22543
22544
22545
22546
22547
22548
22549
22550
22551
22552
22553
22554
22555
22556
22557
22558
22559
22560
22561
22562
22563
22564
22565
22566
22567
22568
22569
22570
22571
22572
22573
22574
22575
22576
22577
22578
22579
22580
22581
22582
22583
22584
22585
22586
22587
22588
22589
22590
22591
22592
22593
22594
22595
22596
22597
22598
22599
22600
22601
22602
22603
22604
22605
22606
22607
22608
22609
22610
22611
22612
22613
22614
22615
22616
22617
22618
22619
22620
22621
22622
22623
22624
22625
22626
22627
22628
22629
22630
22631
22632
22633
22634
22635
22636
22637
22638
22639
22640
22641
22642
22643
22644
22645
22646
22647
22648
22649
22650
22651
22652
22653
22654
22655
22656
22657
22658
22659
22660
22661
22662
22663
22664
22665
22666
22667
22668
22669
22670
22671
22672
22673
22674
22675
22676
22677
22678
22679
22680
22681
22682
22683
22684
22685
22686
22687
22688
22689
22690
22691
22692
22693
22694
22695
22696
22697
22698
22699
22700
22701
22702
22703
22704
22705
22706
22707
22708
22709
22710
22711
22712
22713
22714
22715
22716
22717
22718
22719
22720
22721
22722
22723
22724
22725
22726
22727
22728
22729
22730
22731
22732
22733
22734
22735
22736
22737
22738
22739
22740
22741
22742
22743
22744
22745
22746
22747
22748
22749
22750
22751
22752
22753
22754
22755
22756
22757
22758
22759
22760
22761
22762
22763
22764
22765
22766
22767
22768
22769
22770
22771
22772
22773
22774
22775
22776
22777
22778
22779
22780
22781
22782
22783
22784
22785
22786
22787
22788
22789
22790
22791
22792
22793
22794
22795
22796
22797
22798
22799
22800
22801
22802
22803
22804
22805
22806
22807
22808
22809
22810
22811
22812
22813
22814
22815
22816
22817
22818
22819
22820
22821
22822
22823
22824
22825
22826
22827
22828
22829
22830
22831
22832
22833
22834
22835
22836
22837
22838
22839
22840
22841
22842
22843
22844
22845
22846
22847
22848
22849
22850
22851
22852
22853
22854
22855
22856
22857
22858
22859
22860
22861
22862
22863
22864
22865
22866
22867
22868
22869
22870
22871
22872
22873
22874
22875
22876
22877
22878
22879
22880
22881
22882
22883
22884
22885
22886
22887
22888
22889
22890
22891
22892
22893
22894
22895
22896
22897
22898
22899
22900
22901
22902
22903
22904
22905
22906
22907
22908
22909
22910
22911
22912
22913
22914
22915
22916
22917
22918
22919
22920
22921
22922
22923
22924
22925
22926
22927
22928
22929
22930
22931
22932
22933
22934
22935
22936
22937
22938
22939
22940
22941
22942
22943
22944
22945
22946
22947
22948
22949
22950
22951
22952
22953
22954
22955
22956
22957
22958
22959
22960
22961
22962
22963
22964
22965
22966
22967
22968
22969
22970
22971
22972
22973
22974
22975
22976
22977
22978
22979
22980
22981
22982
22983
22984
22985
22986
22987
22988
22989
22990
22991
22992
22993
22994
22995
22996
22997
22998
22999
23000
23001
23002
23003
23004
23005
23006
23007
23008
23009
23010
23011
23012
23013
23014
23015
23016
23017
23018
23019
23020
23021
23022
23023
23024
23025
23026
23027
23028
23029
23030
23031
23032
23033
23034
23035
23036
23037
23038
23039
23040
23041
23042
23043
23044
23045
23046
23047
23048
23049
23050
23051
23052
23053
23054
23055
23056
23057
23058
23059
23060
23061
23062
23063
23064
23065
23066
23067
23068
23069
23070
23071
23072
23073
23074
23075
23076
23077
23078
23079
23080
23081
23082
23083
23084
23085
23086
23087
23088
23089
23090
23091
23092
23093
23094
23095
23096
23097
23098
23099
23100
23101
23102
23103
23104
23105
23106
23107
23108
23109
23110
23111
23112
23113
23114
23115
23116
23117
23118
23119
23120
23121
23122
23123
23124
23125
23126
23127
23128
23129
23130
23131
23132
23133
23134
23135
23136
23137
23138
23139
23140
23141
23142
23143
23144
23145
23146
23147
23148
23149
23150
23151
23152
23153
23154
23155
23156
23157
23158
23159
23160
23161
23162
23163
23164
23165
23166
23167
23168
23169
23170
23171
23172
23173
23174
23175
23176
23177
23178
23179
23180
23181
23182
23183
23184
23185
23186
23187
23188
23189
23190
23191
23192
23193
23194
23195
23196
23197
23198
23199
23200
23201
23202
23203
23204
23205
23206
23207
23208
23209
23210
23211
23212
23213
23214
23215
23216
23217
23218
23219
23220
23221
23222
23223
23224
23225
23226
23227
23228
23229
23230
23231
23232
23233
23234
23235
23236
23237
23238
23239
23240
23241
23242
23243
23244
23245
23246
23247
23248
23249
23250
23251
23252
23253
23254
23255
23256
23257
23258
23259
23260
23261
23262
23263
23264
23265
23266
23267
23268
23269
23270
23271
23272
23273
23274
23275
23276
23277
23278
23279
23280
23281
23282
23283
23284
23285
23286
23287
23288
23289
23290
23291
23292
23293
23294
23295
23296
23297
23298
23299
23300
23301
23302
23303
23304
23305
23306
23307
23308
23309
23310
23311
23312
23313
23314
23315
23316
23317
23318
23319
23320
23321
23322
23323
23324
23325
23326
23327
23328
23329
23330
23331
23332
23333
23334
23335
23336
23337
23338
23339
23340
23341
23342
23343
23344
23345
23346
23347
23348
23349
23350
23351
23352
23353
23354
23355
23356
23357
23358
23359
23360
23361
23362
23363
23364
23365
23366
23367
23368
23369
23370
23371
23372
23373
23374
23375
23376
23377
23378
23379
23380
23381
23382
23383
23384
23385
23386
23387
23388
23389
23390
23391
23392
23393
23394
23395
23396
23397
23398
23399
23400
23401
23402
23403
23404
23405
23406
23407
23408
23409
23410
23411
23412
23413
23414
23415
23416
23417
23418
23419
23420
23421
23422
23423
23424
23425
23426
23427
23428
23429
23430
23431
23432
23433
23434
23435
23436
23437
23438
23439
23440
23441
23442
23443
23444
23445
23446
23447
23448
23449
23450
23451
23452
23453
23454
23455
23456
23457
23458
23459
23460
23461
23462
23463
23464
23465
23466
23467
23468
23469
23470
23471
23472
23473
23474
23475
23476
23477
23478
23479
23480
23481
23482
23483
23484
23485
23486
23487
23488
23489
23490
23491
23492
23493
23494
23495
23496
23497
23498
23499
23500
23501
23502
23503
23504
23505
23506
23507
23508
23509
23510
23511
23512
23513
23514
23515
23516
23517
23518
23519
23520
23521
23522
23523
23524
23525
23526
23527
23528
23529
23530
23531
23532
23533
23534
23535
23536
23537
23538
23539
23540
23541
23542
23543
23544
23545
23546
23547
23548
23549
23550
23551
23552
23553
23554
23555
23556
23557
23558
23559
23560
23561
23562
23563
23564
23565
23566
23567
23568
23569
23570
23571
23572
23573
23574
23575
23576
23577
23578
23579
23580
23581
23582
23583
23584
23585
23586
23587
23588
23589
23590
23591
23592
23593
23594
23595
23596
23597
23598
23599
23600
23601
23602
23603
23604
23605
23606
23607
23608
23609
23610
23611
23612
23613
23614
23615
23616
23617
23618
23619
23620
23621
23622
23623
23624
23625
23626
23627
23628
23629
23630
23631
23632
23633
23634
23635
23636
23637
23638
23639
23640
23641
23642
23643
23644
23645
23646
23647
23648
23649
23650
23651
23652
23653
23654
23655
23656
23657
23658
23659
23660
23661
23662
23663
23664
23665
23666
23667
23668
23669
23670
23671
23672
23673
23674
23675
23676
23677
23678
23679
23680
23681
23682
23683
23684
23685
23686
23687
23688
23689
23690
23691
23692
23693
23694
23695
23696
23697
23698
23699
23700
23701
23702
23703
23704
23705
23706
23707
23708
23709
23710
23711
23712
23713
23714
23715
23716
23717
23718
23719
23720
23721
23722
23723
23724
23725
23726
23727
23728
23729
23730
23731
23732
23733
23734
23735
23736
23737
23738
23739
23740
23741
23742
23743
23744
23745
23746
23747
23748
23749
23750
23751
23752
23753
23754
23755
23756
23757
23758
23759
23760
23761
23762
23763
23764
23765
23766
23767
23768
23769
23770
23771
23772
23773
23774
23775
23776
23777
23778
23779
23780
23781
23782
23783
23784
23785
23786
23787
23788
23789
23790
23791
23792
23793
23794
23795
23796
23797
23798
23799
23800
23801
23802
23803
23804
23805
23806
23807
23808
23809
23810
23811
23812
23813
23814
23815
23816
23817
23818
23819
23820
23821
23822
23823
23824
23825
23826
23827
23828
23829
23830
23831
23832
23833
23834
23835
23836
23837
23838
23839
23840
23841
23842
23843
23844
23845
23846
23847
23848
23849
23850
23851
23852
23853
23854
23855
23856
23857
23858
23859
23860
23861
23862
23863
23864
23865
23866
23867
23868
23869
23870
23871
23872
23873
23874
23875
23876
23877
23878
23879
23880
23881
23882
23883
23884
23885
23886
23887
23888
23889
23890
23891
23892
23893
23894
23895
23896
23897
23898
23899
23900
23901
23902
23903
23904
23905
23906
23907
23908
23909
23910
23911
23912
23913
23914
23915
23916
23917
23918
23919
23920
23921
23922
23923
23924
23925
23926
23927
23928
23929
23930
23931
23932
23933
23934
23935
23936
23937
23938
23939
23940
23941
23942
23943
23944
23945
23946
23947
23948
23949
23950
23951
23952
23953
23954
23955
23956
23957
23958
23959
23960
23961
23962
23963
23964
23965
23966
23967
23968
23969
23970
23971
23972
23973
23974
23975
23976
23977
23978
23979
23980
23981
23982
23983
23984
23985
23986
23987
23988
23989
23990
23991
23992
23993
23994
23995
23996
23997
23998
23999
24000
24001
24002
24003
24004
24005
24006
24007
24008
24009
24010
24011
24012
24013
24014
24015
24016
24017
24018
24019
24020
24021
24022
24023
24024
24025
24026
24027
24028
24029
24030
24031
24032
24033
24034
24035
24036
24037
24038
24039
24040
24041
24042
24043
24044
24045
24046
24047
24048
24049
24050
24051
24052
24053
24054
24055
24056
24057
24058
24059
24060
24061
24062
24063
24064
24065
24066
24067
24068
24069
24070
24071
24072
24073
24074
24075
24076
24077
24078
24079
24080
24081
24082
24083
24084
24085
24086
24087
24088
24089
24090
24091
24092
24093
24094
24095
24096
24097
24098
24099
24100
24101
24102
24103
24104
24105
24106
24107
24108
24109
24110
24111
24112
24113
24114
24115
24116
24117
24118
24119
24120
24121
24122
24123
24124
24125
24126
24127
24128
24129
24130
24131
24132
24133
24134
24135
24136
24137
24138
24139
24140
24141
24142
24143
24144
24145
24146
24147
24148
24149
24150
24151
24152
24153
24154
24155
24156
24157
24158
24159
24160
24161
24162
24163
24164
24165
24166
24167
24168
24169
24170
24171
24172
24173
24174
24175
24176
24177
24178
24179
24180
24181
24182
24183
24184
24185
24186
24187
24188
24189
24190
24191
24192
24193
24194
24195
24196
24197
24198
24199
24200
24201
24202
24203
24204
24205
24206
24207
24208
24209
24210
24211
24212
24213
24214
24215
24216
24217
24218
24219
24220
24221
24222
24223
24224
24225
24226
24227
24228
24229
24230
24231
24232
24233
24234
24235
24236
24237
24238
24239
24240
24241
24242
24243
24244
24245
24246
24247
24248
24249
24250
24251
24252
24253
24254
24255
24256
24257
24258
24259
24260
24261
24262
24263
24264
24265
24266
24267
24268
24269
24270
24271
24272
24273
24274
24275
24276
24277
24278
24279
24280
24281
24282
24283
24284
24285
24286
24287
24288
24289
24290
24291
24292
24293
24294
24295
24296
24297
24298
24299
24300
24301
24302
24303
24304
24305
24306
24307
24308
24309
24310
24311
24312
24313
24314
24315
24316
24317
24318
24319
24320
24321
24322
24323
24324
24325
24326
24327
24328
24329
24330
24331
24332
24333
24334
24335
24336
24337
24338
24339
24340
24341
24342
24343
24344
24345
24346
24347
24348
24349
24350
24351
24352
24353
24354
24355
24356
24357
24358
24359
24360
24361
24362
24363
24364
24365
24366
24367
24368
24369
24370
24371
24372
24373
24374
24375
24376
24377
24378
24379
24380
24381
24382
24383
24384
24385
24386
24387
24388
24389
24390
24391
24392
24393
24394
24395
24396
24397
24398
24399
24400
24401
24402
24403
24404
24405
24406
24407
24408
24409
24410
24411
24412
24413
24414
24415
24416
24417
24418
24419
24420
24421
24422
24423
24424
24425
24426
24427
24428
24429
24430
24431
24432
24433
24434
24435
24436
24437
24438
24439
24440
24441
24442
24443
24444
24445
24446
24447
24448
24449
24450
24451
24452
24453
24454
24455
24456
24457
24458
24459
24460
24461
24462
24463
24464
24465
24466
24467
24468
24469
24470
24471
24472
24473
24474
24475
24476
24477
24478
24479
24480
24481
24482
24483
24484
24485
24486
24487
24488
24489
24490
24491
24492
24493
24494
24495
24496
24497
24498
24499
24500
24501
24502
24503
24504
24505
24506
24507
24508
24509
24510
24511
24512
24513
24514
24515
24516
24517
24518
24519
24520
24521
24522
24523
24524
24525
24526
24527
24528
24529
24530
24531
24532
24533
24534
24535
24536
24537
24538
24539
24540
24541
24542
24543
24544
24545
24546
24547
24548
24549
24550
24551
24552
24553
24554
24555
24556
24557
24558
24559
24560
24561
24562
24563
24564
24565
24566
24567
24568
24569
24570
24571
24572
24573
24574
24575
24576
24577
24578
24579
24580
24581
24582
24583
24584
24585
24586
24587
24588
24589
24590
24591
24592
24593
24594
24595
24596
24597
24598
24599
24600
24601
24602
24603
24604
24605
24606
24607
24608
24609
24610
24611
24612
24613
24614
24615
24616
24617
24618
24619
24620
24621
24622
24623
24624
24625
24626
24627
24628
24629
24630
24631
24632
24633
24634
24635
24636
24637
24638
24639
24640
24641
24642
24643
24644
24645
24646
24647
24648
24649
24650
24651
24652
24653
24654
24655
24656
24657
24658
24659
24660
24661
24662
24663
24664
24665
24666
24667
24668
24669
24670
24671
24672
24673
24674
24675
24676
24677
24678
24679
24680
24681
24682
24683
24684
24685
24686
24687
24688
24689
24690
24691
24692
24693
24694
24695
24696
24697
24698
24699
24700
24701
24702
24703
24704
24705
24706
24707
24708
24709
24710
24711
24712
24713
24714
24715
24716
24717
24718
24719
24720
24721
24722
24723
24724
24725
24726
24727
24728
24729
24730
24731
24732
24733
24734
24735
24736
24737
24738
24739
24740
24741
24742
24743
24744
24745
24746
24747
24748
24749
24750
24751
24752
24753
24754
24755
24756
24757
24758
24759
24760
24761
24762
24763
24764
24765
24766
24767
24768
24769
24770
24771
24772
24773
24774
24775
24776
24777
24778
24779
24780
24781
24782
24783
24784
24785
24786
24787
24788
24789
24790
24791
24792
24793
24794
24795
24796
24797
24798
24799
24800
24801
24802
24803
24804
24805
24806
24807
24808
24809
24810
24811
24812
24813
24814
24815
24816
24817
24818
24819
24820
24821
24822
24823
24824
24825
24826
24827
24828
24829
24830
24831
24832
24833
24834
24835
24836
24837
24838
24839
24840
24841
24842
24843
24844
24845
24846
24847
24848
24849
24850
24851
24852
24853
24854
24855
24856
24857
24858
24859
24860
24861
24862
24863
24864
24865
24866
24867
24868
24869
24870
24871
24872
24873
24874
24875
24876
24877
24878
24879
24880
24881
24882
24883
24884
24885
24886
24887
24888
24889
24890
24891
24892
24893
24894
24895
24896
24897
24898
24899
24900
24901
24902
24903
24904
24905
24906
24907
24908
24909
24910
24911
24912
24913
24914
24915
24916
24917
24918
24919
24920
24921
24922
24923
24924
24925
24926
24927
24928
24929
24930
24931
24932
24933
24934
24935
24936
24937
24938
24939
24940
24941
24942
24943
24944
24945
24946
24947
24948
24949
24950
24951
24952
24953
24954
24955
24956
24957
24958
24959
24960
24961
24962
24963
24964
24965
24966
24967
24968
24969
24970
24971
24972
24973
24974
24975
24976
24977
24978
24979
24980
24981
24982
24983
24984
24985
24986
24987
24988
24989
24990
24991
24992
24993
24994
24995
24996
24997
24998
24999
25000
25001
25002
25003
25004
25005
25006
25007
25008
25009
25010
25011
25012
25013
25014
25015
25016
25017
25018
25019
25020
25021
25022
25023
25024
25025
25026
25027
25028
25029
25030
25031
25032
25033
25034
25035
25036
25037
25038
25039
25040
25041
25042
25043
25044
25045
25046
25047
25048
25049
25050
25051
25052
25053
25054
25055
25056
25057
25058
25059
25060
25061
25062
25063
25064
25065
25066
25067
25068
25069
25070
25071
25072
25073
25074
25075
25076
25077
25078
25079
25080
25081
25082
25083
25084
25085
25086
25087
25088
25089
25090
25091
25092
25093
25094
25095
25096
25097
25098
25099
25100
25101
25102
25103
25104
25105
25106
25107
25108
25109
25110
25111
25112
25113
25114
25115
25116
25117
25118
25119
25120
25121
25122
25123
25124
25125
25126
25127
25128
25129
25130
25131
25132
25133
25134
25135
25136
25137
25138
25139
25140
25141
25142
25143
25144
25145
25146
25147
25148
25149
25150
25151
25152
25153
25154
25155
25156
25157
25158
25159
25160
25161
25162
25163
25164
25165
25166
25167
25168
25169
25170
25171
25172
25173
25174
25175
25176
25177
25178
25179
25180
25181
25182
25183
25184
25185
25186
25187
25188
25189
25190
25191
25192
25193
25194
25195
25196
25197
25198
25199
25200
25201
25202
25203
25204
25205
25206
25207
25208
25209
25210
25211
25212
25213
25214
25215
25216
25217
25218
25219
25220
25221
25222
25223
25224
25225
25226
25227
25228
25229
25230
25231
25232
25233
25234
25235
25236
25237
25238
25239
25240
25241
25242
25243
25244
25245
25246
25247
25248
25249
25250
25251
25252
25253
25254
25255
25256
25257
25258
25259
25260
25261
25262
25263
25264
25265
25266
25267
25268
25269
25270
25271
25272
25273
25274
25275
25276
25277
25278
25279
25280
25281
25282
25283
25284
25285
25286
25287
25288
25289
25290
25291
25292
25293
25294
25295
25296
25297
25298
25299
25300
25301
25302
25303
25304
25305
25306
25307
25308
25309
25310
25311
25312
25313
25314
25315
25316
25317
25318
25319
25320
25321
25322
25323
25324
25325
25326
25327
25328
25329
25330
25331
25332
25333
25334
25335
25336
25337
25338
25339
25340
25341
25342
25343
25344
25345
25346
25347
25348
25349
25350
25351
25352
25353
25354
25355
25356
25357
25358
25359
25360
25361
25362
25363
25364
25365
25366
25367
25368
25369
25370
25371
25372
25373
25374
25375
25376
25377
25378
25379
25380
25381
25382
25383
25384
25385
25386
25387
25388
25389
25390
25391
25392
25393
25394
25395
25396
25397
25398
25399
25400
25401
25402
25403
25404
25405
25406
25407
25408
25409
25410
25411
25412
25413
25414
25415
25416
25417
25418
25419
25420
25421
25422
25423
25424
25425
25426
25427
25428
25429
25430
25431
25432
25433
25434
25435
25436
25437
25438
25439
25440
25441
25442
25443
25444
25445
25446
25447
25448
25449
25450
25451
25452
25453
25454
25455
25456
25457
25458
25459
25460
25461
25462
25463
25464
25465
25466
25467
25468
25469
25470
25471
25472
25473
25474
25475
25476
25477
25478
25479
25480
25481
25482
25483
25484
25485
25486
25487
25488
25489
25490
25491
25492
25493
25494
25495
25496
25497
25498
25499
25500
25501
25502
25503
25504
25505
25506
25507
25508
25509
25510
25511
25512
25513
25514
25515
25516
25517
25518
25519
25520
25521
25522
25523
25524
25525
25526
25527
25528
25529
25530
25531
25532
25533
25534
25535
25536
25537
25538
25539
25540
25541
25542
25543
25544
25545
25546
25547
25548
25549
25550
25551
25552
25553
25554
25555
25556
25557
25558
25559
25560
25561
25562
25563
25564
25565
25566
25567
25568
25569
25570
25571
25572
25573
25574
25575
25576
25577
25578
25579
25580
25581
25582
25583
25584
25585
25586
25587
25588
25589
25590
25591
25592
25593
25594
25595
25596
25597
25598
25599
25600
25601
25602
25603
25604
25605
25606
25607
25608
25609
25610
25611
25612
25613
25614
25615
25616
25617
25618
25619
25620
25621
25622
25623
25624
25625
25626
25627
25628
25629
25630
25631
25632
25633
25634
25635
25636
25637
25638
25639
25640
25641
25642
25643
25644
25645
25646
25647
25648
25649
25650
25651
25652
25653
25654
25655
25656
25657
25658
25659
25660
25661
25662
25663
25664
25665
25666
25667
25668
25669
25670
25671
25672
25673
25674
25675
25676
25677
25678
25679
25680
25681
25682
25683
25684
25685
25686
25687
25688
25689
25690
25691
25692
25693
25694
25695
25696
25697
25698
25699
25700
25701
25702
25703
25704
25705
25706
25707
25708
25709
25710
25711
25712
25713
25714
25715
25716
25717
25718
25719
25720
25721
25722
25723
25724
25725
25726
25727
25728
25729
25730
25731
25732
25733
25734
25735
25736
25737
25738
25739
25740
25741
25742
25743
25744
25745
25746
25747
25748
25749
25750
25751
25752
25753
25754
25755
25756
25757
25758
25759
25760
25761
25762
25763
25764
25765
25766
25767
25768
25769
25770
25771
25772
25773
25774
25775
25776
25777
25778
25779
25780
25781
25782
25783
25784
25785
25786
25787
25788
25789
25790
25791
25792
25793
25794
25795
25796
25797
25798
25799
25800
25801
25802
25803
25804
25805
25806
25807
25808
25809
25810
25811
25812
25813
25814
25815
25816
25817
25818
25819
25820
25821
25822
25823
25824
25825
25826
25827
25828
25829
25830
25831
25832
25833
25834
25835
25836
25837
25838
25839
25840
25841
25842
25843
25844
25845
25846
25847
25848
25849
25850
25851
25852
25853
25854
25855
25856
25857
25858
25859
25860
25861
25862
25863
25864
25865
25866
25867
25868
25869
25870
25871
25872
25873
25874
25875
25876
25877
25878
25879
25880
25881
25882
25883
25884
25885
25886
25887
25888
25889
25890
25891
25892
25893
25894
25895
25896
25897
25898
25899
25900
25901
25902
25903
25904
25905
25906
25907
25908
25909
25910
25911
25912
25913
25914
25915
25916
25917
25918
25919
25920
25921
25922
25923
25924
25925
25926
25927
25928
25929
25930
25931
25932
25933
25934
25935
25936
25937
25938
25939
25940
25941
25942
25943
25944
25945
25946
25947
25948
25949
25950
25951
25952
25953
25954
25955
25956
25957
25958
25959
25960
25961
25962
25963
25964
25965
25966
25967
25968
25969
25970
25971
25972
25973
25974
25975
25976
25977
25978
25979
25980
25981
25982
25983
25984
25985
25986
25987
25988
25989
25990
25991
25992
25993
25994
25995
25996
25997
25998
25999
26000
26001
26002
26003
26004
26005
26006
26007
26008
26009
26010
26011
26012
26013
26014
26015
26016
26017
26018
26019
26020
26021
26022
26023
26024
26025
26026
26027
26028
26029
26030
26031
26032
26033
26034
26035
26036
26037
26038
26039
26040
26041
26042
26043
26044
26045
26046
26047
26048
26049
26050
26051
26052
26053
26054
26055
26056
26057
26058
26059
26060
26061
26062
26063
26064
26065
26066
26067
26068
26069
26070
26071
26072
26073
26074
26075
26076
26077
26078
26079
26080
26081
26082
26083
26084
26085
26086
26087
26088
26089
26090
26091
26092
26093
26094
26095
26096
26097
26098
26099
26100
26101
26102
26103
26104
26105
26106
26107
26108
26109
26110
26111
26112
26113
26114
26115
26116
26117
26118
26119
26120
26121
26122
26123
26124
26125
26126
26127
26128
26129
26130
26131
26132
26133
26134
26135
26136
26137
26138
26139
26140
26141
26142
26143
26144
26145
26146
26147
26148
26149
26150
26151
26152
26153
26154
26155
26156
26157
26158
26159
26160
26161
26162
26163
26164
26165
26166
26167
26168
26169
26170
26171
26172
26173
26174
26175
26176
26177
26178
26179
26180
26181
26182
26183
26184
26185
26186
26187
26188
26189
26190
26191
26192
26193
26194
26195
26196
26197
26198
26199
26200
26201
26202
26203
26204
26205
26206
26207
26208
26209
26210
26211
26212
26213
26214
26215
26216
26217
26218
26219
26220
26221
26222
26223
26224
26225
26226
26227
26228
26229
26230
26231
26232
26233
26234
26235
26236
26237
26238
26239
26240
26241
26242
26243
26244
26245
26246
26247
26248
26249
26250
26251
26252
26253
26254
26255
26256
26257
26258
26259
26260
26261
26262
26263
26264
26265
26266
26267
26268
26269
26270
26271
26272
26273
26274
26275
26276
26277
26278
26279
26280
26281
26282
26283
26284
26285
26286
26287
26288
26289
26290
26291
26292
26293
26294
26295
26296
26297
26298
26299
26300
26301
26302
26303
26304
26305
26306
26307
26308
26309
26310
26311
26312
26313
26314
26315
26316
26317
26318
26319
26320
26321
26322
26323
26324
26325
26326
26327
26328
26329
26330
26331
26332
26333
26334
26335
26336
26337
26338
26339
26340
26341
26342
26343
26344
26345
26346
26347
26348
26349
26350
26351
26352
26353
26354
26355
26356
26357
26358
26359
26360
26361
26362
26363
26364
26365
26366
26367
26368
26369
26370
26371
26372
26373
26374
26375
26376
26377
26378
26379
26380
26381
26382
26383
26384
26385
26386
26387
26388
26389
26390
26391
26392
26393
26394
26395
26396
26397
26398
26399
26400
26401
26402
26403
26404
26405
26406
26407
26408
26409
26410
26411
26412
26413
26414
26415
26416
26417
26418
26419
26420
26421
26422
26423
26424
26425
26426
26427
26428
26429
26430
26431
26432
26433
26434
26435
26436
26437
26438
26439
26440
26441
26442
26443
26444
26445
26446
26447
26448
26449
26450
26451
26452
26453
26454
26455
26456
26457
26458
26459
26460
26461
26462
26463
26464
26465
26466
26467
26468
26469
26470
26471
26472
26473
26474
26475
26476
26477
26478
26479
26480
26481
26482
26483
26484
26485
26486
26487
26488
26489
26490
26491
26492
26493
26494
26495
26496
26497
26498
26499
26500
26501
26502
26503
26504
26505
26506
26507
26508
26509
26510
26511
26512
26513
26514
26515
26516
26517
26518
26519
26520
26521
26522
26523
26524
26525
26526
26527
26528
26529
26530
26531
26532
26533
26534
26535
26536
26537
26538
26539
26540
26541
26542
26543
26544
26545
26546
26547
26548
26549
26550
26551
26552
26553
26554
26555
26556
26557
26558
26559
26560
26561
26562
26563
26564
26565
26566
26567
26568
26569
26570
26571
26572
26573
26574
26575
26576
26577
26578
26579
26580
26581
26582
26583
26584
26585
26586
26587
26588
26589
26590
26591
26592
26593
26594
26595
26596
26597
26598
26599
26600
26601
26602
26603
26604
26605
26606
26607
26608
26609
26610
26611
26612
26613
26614
26615
26616
26617
26618
26619
26620
26621
26622
26623
26624
26625
26626
26627
26628
26629
26630
26631
26632
26633
26634
26635
26636
26637
26638
26639
26640
26641
26642
26643
26644
26645
26646
26647
26648
26649
26650
26651
26652
26653
26654
26655
26656
26657
26658
26659
26660
26661
26662
26663
26664
26665
26666
26667
26668
26669
26670
26671
26672
26673
26674
26675
26676
26677
26678
26679
26680
26681
26682
26683
26684
26685
26686
26687
26688
26689
26690
26691
26692
26693
26694
26695
26696
26697
26698
26699
26700
26701
26702
26703
26704
26705
26706
26707
26708
26709
26710
26711
26712
26713
26714
26715
26716
26717
26718
26719
26720
26721
26722
26723
26724
26725
26726
26727
26728
26729
26730
26731
26732
26733
26734
26735
26736
26737
26738
26739
26740
26741
26742
26743
26744
26745
26746
26747
26748
26749
26750
26751
26752
26753
26754
26755
26756
26757
26758
26759
26760
26761
26762
26763
26764
26765
26766
26767
26768
26769
26770
26771
26772
26773
26774
26775
26776
26777
26778
26779
26780
26781
26782
26783
26784
26785
26786
26787
26788
26789
26790
26791
26792
26793
26794
26795
26796
26797
26798
26799
26800
26801
26802
26803
26804
26805
26806
26807
26808
26809
26810
26811
26812
26813
26814
26815
26816
26817
26818
26819
26820
26821
26822
26823
26824
26825
26826
26827
26828
26829
26830
26831
26832
26833
26834
26835
26836
26837
26838
26839
26840
26841
26842
26843
26844
26845
26846
26847
26848
26849
26850
26851
26852
26853
26854
26855
26856
26857
26858
26859
26860
26861
26862
26863
26864
26865
26866
26867
26868
26869
26870
26871
26872
26873
26874
26875
26876
26877
26878
26879
26880
26881
26882
26883
26884
26885
26886
26887
26888
26889
26890
26891
26892
26893
26894
26895
26896
26897
26898
26899
26900
26901
26902
26903
26904
26905
26906
26907
26908
26909
26910
26911
26912
26913
26914
26915
26916
26917
26918
26919
26920
26921
26922
26923
26924
26925
26926
26927
26928
26929
26930
26931
26932
26933
26934
26935
26936
26937
26938
26939
26940
26941
26942
26943
26944
26945
26946
26947
26948
26949
26950
26951
26952
26953
26954
26955
26956
26957
26958
26959
26960
26961
26962
26963
26964
26965
26966
26967
26968
26969
26970
26971
26972
26973
26974
26975
26976
26977
26978
26979
26980
26981
26982
26983
26984
26985
26986
26987
26988
26989
26990
26991
26992
26993
26994
26995
26996
26997
26998
26999
27000
27001
27002
27003
27004
27005
27006
27007
27008
27009
27010
27011
27012
27013
27014
27015
27016
27017
27018
27019
27020
27021
27022
27023
27024
27025
27026
27027
27028
27029
27030
27031
27032
27033
27034
27035
27036
27037
27038
27039
27040
27041
27042
27043
27044
27045
27046
27047
27048
27049
27050
27051
27052
27053
27054
27055
27056
27057
27058
27059
27060
27061
27062
27063
27064
27065
27066
27067
27068
27069
27070
27071
27072
27073
27074
27075
27076
27077
27078
27079
27080
27081
27082
27083
27084
27085
27086
27087
27088
27089
27090
27091
27092
27093
27094
27095
27096
27097
27098
27099
27100
27101
27102
27103
27104
27105
27106
27107
27108
27109
27110
27111
27112
27113
27114
27115
27116
27117
27118
27119
27120
27121
27122
27123
27124
27125
27126
27127
27128
27129
27130
27131
27132
27133
27134
27135
27136
27137
27138
27139
27140
27141
27142
27143
27144
27145
27146
27147
27148
27149
27150
27151
27152
27153
27154
27155
27156
27157
27158
27159
27160
27161
27162
27163
27164
27165
27166
27167
27168
27169
27170
27171
27172
27173
27174
27175
27176
27177
27178
27179
27180
27181
27182
27183
27184
27185
27186
27187
27188
27189
27190
27191
27192
27193
27194
27195
27196
27197
27198
27199
27200
27201
27202
27203
27204
27205
27206
27207
27208
27209
27210
27211
27212
27213
27214
27215
27216
27217
27218
27219
27220
27221
27222
27223
27224
27225
27226
27227
27228
27229
27230
27231
27232
27233
27234
27235
27236
27237
27238
27239
27240
27241
27242
27243
27244
27245
27246
27247
27248
27249
27250
27251
27252
27253
27254
27255
27256
27257
27258
27259
27260
27261
27262
27263
27264
27265
27266
27267
27268
27269
27270
27271
27272
27273
27274
27275
27276
27277
27278
27279
27280
27281
27282
27283
27284
27285
27286
27287
27288
27289
27290
27291
27292
27293
27294
27295
27296
27297
27298
27299
27300
27301
27302
27303
27304
27305
27306
27307
27308
27309
27310
27311
27312
27313
27314
27315
27316
27317
27318
27319
27320
27321
27322
27323
27324
27325
27326
27327
27328
27329
27330
27331
27332
27333
27334
27335
27336
27337
27338
27339
27340
27341
27342
27343
27344
27345
27346
27347
27348
27349
27350
27351
27352
27353
27354
27355
27356
27357
27358
27359
27360
27361
27362
27363
27364
27365
27366
27367
27368
27369
27370
27371
27372
27373
27374
27375
27376
27377
27378
27379
27380
27381
27382
27383
27384
27385
27386
27387
27388
27389
27390
27391
27392
27393
27394
27395
27396
27397
27398
27399
27400
27401
27402
27403
27404
27405
27406
27407
27408
27409
27410
27411
27412
27413
27414
27415
27416
27417
27418
27419
27420
27421
27422
27423
27424
27425
27426
27427
27428
27429
27430
27431
27432
27433
27434
27435
27436
27437
27438
27439
27440
27441
27442
27443
27444
27445
27446
27447
27448
27449
27450
27451
27452
27453
27454
27455
27456
27457
27458
27459
27460
27461
27462
27463
27464
27465
27466
27467
27468
27469
27470
27471
27472
27473
27474
27475
27476
27477
27478
27479
27480
27481
27482
27483
27484
27485
27486
27487
27488
27489
27490
27491
27492
27493
27494
27495
27496
27497
27498
27499
27500
27501
27502
27503
27504
27505
27506
27507
27508
27509
27510
27511
27512
27513
27514
27515
27516
27517
27518
27519
27520
27521
27522
27523
27524
27525
27526
27527
27528
27529
27530
27531
27532
27533
27534
27535
27536
27537
27538
27539
27540
27541
27542
27543
27544
27545
27546
27547
27548
27549
27550
27551
27552
27553
27554
27555
27556
27557
27558
27559
27560
27561
27562
27563
27564
27565
27566
27567
27568
27569
27570
27571
27572
27573
27574
27575
27576
27577
27578
27579
27580
27581
27582
27583
27584
27585
27586
27587
27588
27589
27590
27591
27592
27593
27594
27595
27596
27597
27598
27599
27600
27601
27602
27603
27604
27605
27606
27607
27608
27609
27610
27611
27612
27613
27614
27615
27616
27617
27618
27619
27620
27621
27622
27623
27624
27625
27626
27627
27628
27629
27630
27631
27632
27633
27634
27635
27636
27637
27638
27639
27640
27641
27642
27643
27644
27645
27646
27647
27648
27649
27650
27651
27652
27653
27654
27655
27656
27657
27658
27659
27660
27661
27662
27663
27664
27665
27666
27667
27668
27669
27670
27671
27672
27673
27674
27675
27676
27677
27678
27679
27680
27681
27682
27683
27684
27685
27686
27687
27688
27689
27690
27691
27692
27693
27694
27695
27696
27697
27698
27699
27700
27701
27702
27703
27704
27705
27706
27707
27708
27709
27710
27711
27712
27713
27714
27715
27716
27717
27718
27719
27720
27721
27722
27723
27724
27725
27726
27727
27728
27729
27730
27731
27732
27733
27734
27735
27736
27737
27738
27739
27740
27741
27742
27743
27744
27745
27746
27747
27748
27749
27750
27751
27752
27753
27754
27755
27756
27757
27758
27759
27760
27761
27762
27763
27764
27765
27766
27767
27768
27769
27770
27771
27772
27773
27774
27775
27776
27777
27778
27779
27780
27781
27782
27783
27784
27785
27786
27787
27788
27789
27790
27791
27792
27793
27794
27795
27796
27797
27798
27799
27800
27801
27802
27803
27804
27805
27806
27807
27808
27809
27810
27811
27812
27813
27814
27815
27816
27817
27818
27819
27820
27821
27822
27823
27824
27825
27826
27827
27828
27829
27830
27831
27832
27833
27834
27835
27836
27837
27838
27839
27840
27841
27842
27843
27844
27845
27846
27847
27848
27849
27850
27851
27852
27853
27854
27855
27856
27857
27858
27859
27860
27861
27862
27863
27864
27865
27866
27867
27868
27869
27870
27871
27872
27873
27874
27875
27876
27877
27878
27879
27880
27881
27882
27883
27884
27885
27886
27887
27888
27889
27890
27891
27892
27893
27894
27895
27896
27897
27898
27899
27900
27901
27902
27903
27904
27905
27906
27907
27908
27909
27910
27911
27912
27913
27914
27915
27916
27917
27918
27919
27920
27921
27922
27923
27924
27925
27926
27927
27928
27929
27930
27931
27932
27933
27934
27935
27936
27937
27938
27939
27940
27941
27942
27943
27944
27945
27946
27947
27948
27949
27950
27951
27952
27953
27954
27955
27956
27957
27958
27959
27960
27961
27962
27963
27964
27965
27966
27967
27968
27969
27970
27971
27972
27973
27974
27975
27976
27977
27978
27979
27980
27981
27982
27983
27984
27985
27986
27987
27988
27989
27990
27991
27992
27993
27994
27995
27996
27997
27998
27999
28000
28001
28002
28003
28004
28005
28006
28007
28008
28009
28010
28011
28012
28013
28014
28015
28016
28017
28018
28019
28020
28021
28022
28023
28024
28025
28026
28027
28028
28029
28030
28031
28032
28033
28034
28035
28036
28037
28038
28039
28040
28041
28042
28043
28044
28045
28046
28047
28048
28049
28050
28051
28052
28053
28054
28055
28056
28057
28058
28059
28060
28061
28062
28063
28064
28065
28066
28067
28068
28069
28070
28071
28072
28073
28074
28075
28076
28077
28078
28079
28080
28081
28082
28083
28084
28085
28086
28087
28088
28089
28090
28091
28092
28093
28094
28095
28096
28097
28098
28099
28100
28101
28102
28103
28104
28105
28106
28107
28108
28109
28110
28111
28112
28113
28114
28115
28116
28117
28118
28119
28120
28121
28122
28123
28124
28125
28126
28127
28128
28129
28130
28131
28132
28133
28134
28135
28136
28137
28138
28139
28140
28141
28142
28143
28144
28145
28146
28147
28148
28149
28150
28151
28152
28153
28154
28155
28156
28157
28158
28159
28160
28161
28162
28163
28164
28165
28166
28167
28168
28169
28170
28171
28172
28173
28174
28175
28176
28177
28178
28179
28180
28181
28182
28183
28184
28185
28186
28187
28188
28189
28190
28191
28192
28193
28194
28195
28196
28197
28198
28199
28200
28201
28202
28203
28204
28205
28206
28207
28208
28209
28210
28211
28212
28213
28214
28215
28216
28217
28218
28219
28220
28221
28222
28223
28224
28225
28226
28227
28228
28229
28230
28231
28232
28233
28234
28235
28236
28237
28238
28239
28240
28241
28242
28243
28244
28245
28246
28247
28248
28249
28250
28251
28252
28253
28254
28255
28256
28257
28258
28259
28260
28261
28262
28263
28264
28265
28266
28267
28268
28269
28270
28271
28272
28273
28274
28275
28276
28277
28278
28279
28280
28281
28282
28283
28284
28285
28286
28287
28288
28289
28290
28291
28292
28293
28294
28295
28296
28297
28298
28299
28300
28301
28302
28303
28304
28305
28306
28307
28308
28309
28310
28311
28312
28313
28314
28315
28316
28317
28318
28319
28320
28321
28322
28323
28324
28325
28326
28327
28328
28329
28330
28331
28332
28333
28334
28335
28336
28337
28338
28339
28340
28341
28342
28343
28344
28345
28346
28347
28348
28349
28350
28351
28352
28353
28354
28355
28356
28357
28358
28359
28360
28361
28362
28363
28364
28365
28366
28367
28368
28369
28370
28371
28372
28373
28374
28375
28376
28377
28378
28379
28380
28381
28382
28383
28384
28385
28386
28387
28388
28389
28390
28391
28392
28393
28394
28395
28396
28397
28398
28399
28400
28401
28402
28403
28404
28405
28406
28407
28408
28409
28410
28411
28412
28413
28414
28415
28416
28417
28418
28419
28420
28421
28422
28423
28424
28425
28426
28427
28428
28429
28430
28431
28432
28433
28434
28435
28436
28437
28438
28439
28440
28441
28442
28443
28444
28445
28446
28447
28448
28449
28450
28451
28452
28453
28454
28455
28456
28457
28458
28459
28460
28461
28462
28463
28464
28465
28466
28467
28468
28469
28470
28471
28472
28473
28474
28475
28476
28477
28478
28479
28480
28481
28482
28483
28484
28485
28486
28487
28488
28489
28490
28491
28492
28493
28494
28495
28496
28497
28498
28499
28500
28501
28502
28503
28504
28505
28506
28507
28508
28509
28510
28511
28512
28513
28514
28515
28516
28517
28518
28519
28520
28521
28522
28523
28524
28525
28526
28527
28528
28529
28530
28531
28532
28533
28534
28535
28536
28537
28538
28539
28540
28541
28542
28543
28544
28545
28546
28547
28548
28549
28550
28551
28552
28553
28554
28555
28556
28557
28558
28559
28560
28561
28562
28563
28564
28565
28566
28567
28568
28569
28570
28571
28572
28573
28574
28575
28576
28577
28578
28579
28580
28581
28582
28583
28584
28585
28586
28587
28588
28589
28590
28591
28592
28593
28594
28595
28596
28597
28598
28599
28600
28601
28602
28603
28604
28605
28606
28607
28608
28609
28610
28611
28612
28613
28614
28615
28616
28617
28618
28619
28620
28621
28622
28623
28624
28625
28626
28627
28628
28629
28630
28631
28632
28633
28634
28635
28636
28637
28638
28639
28640
28641
28642
28643
28644
28645
28646
28647
28648
28649
28650
28651
28652
28653
28654
28655
28656
28657
28658
28659
28660
28661
28662
28663
28664
28665
28666
28667
28668
28669
28670
28671
28672
28673
28674
28675
28676
28677
28678
28679
28680
28681
28682
28683
28684
28685
28686
28687
28688
28689
28690
28691
28692
28693
28694
28695
28696
28697
28698
28699
28700
28701
28702
28703
28704
28705
28706
28707
28708
28709
28710
28711
28712
28713
28714
28715
28716
28717
28718
28719
28720
28721
28722
28723
28724
28725
28726
28727
28728
28729
28730
28731
28732
28733
28734
28735
28736
28737
28738
28739
28740
28741
28742
28743
28744
28745
28746
28747
28748
28749
28750
28751
28752
28753
28754
28755
28756
28757
28758
28759
28760
28761
28762
28763
28764
28765
28766
28767
28768
28769
28770
28771
28772
28773
28774
28775
28776
28777
28778
28779
28780
28781
28782
28783
28784
28785
28786
28787
28788
28789
28790
28791
28792
28793
28794
28795
28796
28797
28798
28799
28800
28801
28802
28803
28804
28805
28806
28807
28808
28809
28810
28811
28812
28813
28814
28815
28816
28817
28818
28819
28820
28821
28822
28823
28824
28825
28826
28827
28828
28829
28830
28831
28832
28833
28834
28835
28836
28837
28838
28839
28840
28841
28842
28843
28844
28845
28846
28847
28848
28849
28850
28851
28852
28853
28854
28855
28856
28857
28858
28859
28860
28861
28862
28863
28864
28865
28866
28867
28868
28869
28870
28871
28872
28873
28874
28875
28876
28877
28878
28879
28880
28881
28882
28883
28884
28885
28886
28887
28888
28889
28890
28891
28892
28893
28894
28895
28896
28897
28898
28899
28900
28901
28902
28903
28904
28905
28906
28907
28908
28909
28910
28911
28912
28913
28914
28915
28916
28917
28918
28919
28920
28921
28922
28923
28924
28925
28926
28927
28928
28929
28930
28931
28932
28933
28934
28935
28936
28937
28938
28939
28940
28941
28942
28943
28944
28945
28946
28947
28948
28949
28950
28951
28952
28953
28954
28955
28956
28957
28958
28959
28960
28961
28962
28963
28964
28965
28966
28967
28968
28969
28970
28971
28972
28973
28974
28975
28976
28977
28978
28979
28980
28981
28982
28983
28984
28985
28986
28987
28988
28989
28990
28991
28992
28993
28994
28995
28996
28997
28998
28999
29000
29001
29002
29003
29004
29005
29006
29007
29008
29009
29010
29011
29012
29013
29014
29015
29016
29017
29018
29019
29020
29021
29022
29023
29024
29025
29026
29027
29028
29029
29030
29031
29032
29033
29034
29035
29036
29037
29038
29039
29040
29041
29042
29043
29044
29045
29046
29047
29048
29049
29050
29051
29052
29053
29054
29055
29056
29057
29058
29059
29060
29061
29062
29063
29064
29065
29066
29067
29068
29069
29070
29071
29072
29073
29074
29075
29076
29077
29078
29079
29080
29081
29082
29083
29084
29085
29086
29087
29088
29089
29090
29091
29092
29093
29094
29095
29096
29097
29098
29099
29100
29101
29102
29103
29104
29105
29106
29107
29108
29109
29110
29111
29112
29113
29114
29115
29116
29117
29118
29119
29120
29121
29122
29123
29124
29125
29126
29127
29128
29129
29130
29131
29132
29133
29134
29135
29136
29137
29138
29139
29140
29141
29142
29143
29144
29145
29146
29147
29148
29149
29150
29151
29152
29153
29154
29155
29156
29157
29158
29159
29160
29161
29162
29163
29164
29165
29166
29167
29168
29169
29170
29171
29172
29173
29174
29175
29176
29177
29178
29179
29180
29181
29182
29183
29184
29185
29186
29187
29188
29189
29190
29191
29192
29193
29194
29195
29196
29197
29198
29199
29200
29201
29202
29203
29204
29205
29206
29207
29208
29209
29210
29211
29212
29213
29214
29215
29216
29217
29218
29219
29220
29221
29222
29223
29224
29225
29226
29227
29228
29229
29230
29231
29232
29233
29234
29235
29236
29237
29238
29239
29240
29241
29242
29243
29244
29245
29246
29247
29248
29249
29250
29251
29252
29253
29254
29255
29256
29257
29258
29259
29260
29261
29262
29263
29264
29265
29266
29267
29268
29269
29270
29271
29272
29273
29274
29275
29276
29277
29278
29279
29280
29281
29282
29283
29284
29285
29286
29287
29288
29289
29290
29291
29292
29293
29294
29295
29296
29297
29298
29299
29300
29301
29302
29303
29304
29305
29306
29307
29308
29309
29310
29311
29312
29313
29314
29315
29316
29317
29318
29319
29320
29321
29322
29323
29324
29325
29326
29327
29328
29329
29330
29331
29332
29333
29334
29335
29336
29337
29338
29339
29340
29341
29342
29343
29344
29345
29346
29347
29348
29349
29350
29351
29352
29353
29354
29355
29356
29357
29358
29359
29360
29361
29362
29363
29364
29365
29366
29367
29368
29369
29370
29371
29372
29373
29374
29375
29376
29377
29378
29379
29380
29381
29382
29383
29384
29385
29386
29387
29388
29389
29390
29391
29392
29393
29394
29395
29396
29397
29398
29399
29400
29401
29402
29403
29404
29405
29406
29407
29408
29409
29410
29411
29412
29413
29414
29415
29416
29417
29418
29419
29420
29421
29422
29423
29424
29425
29426
29427
29428
29429
29430
29431
29432
29433
29434
29435
29436
29437
29438
29439
29440
29441
29442
29443
29444
29445
29446
29447
29448
29449
29450
29451
29452
29453
29454
29455
29456
29457
29458
29459
29460
29461
29462
29463
29464
29465
29466
29467
29468
29469
29470
29471
29472
29473
29474
29475
29476
29477
29478
29479
29480
29481
29482
29483
29484
29485
29486
29487
29488
29489
29490
29491
29492
29493
29494
29495
29496
29497
29498
29499
29500
29501
29502
29503
29504
29505
29506
29507
29508
29509
29510
29511
29512
29513
29514
29515
29516
29517
29518
29519
29520
29521
29522
29523
29524
29525
29526
29527
29528
29529
29530
29531
29532
29533
29534
29535
29536
29537
29538
29539
29540
29541
29542
29543
29544
29545
29546
29547
29548
29549
29550
29551
29552
29553
29554
29555
29556
29557
29558
29559
29560
29561
29562
29563
29564
29565
29566
29567
29568
29569
29570
29571
29572
29573
29574
29575
29576
29577
29578
29579
29580
29581
29582
29583
29584
29585
29586
29587
29588
29589
29590
29591
29592
29593
29594
29595
29596
29597
29598
29599
29600
29601
29602
29603
29604
29605
29606
29607
29608
29609
29610
29611
29612
29613
29614
29615
29616
29617
29618
29619
29620
29621
29622
29623
29624
29625
29626
29627
29628
29629
29630
29631
29632
29633
29634
29635
29636
29637
29638
29639
29640
29641
29642
29643
29644
29645
29646
29647
29648
29649
29650
29651
29652
29653
29654
29655
29656
29657
29658
29659
29660
29661
29662
29663
29664
29665
29666
29667
29668
29669
29670
29671
29672
29673
29674
29675
29676
29677
29678
29679
29680
29681
29682
29683
29684
29685
29686
29687
29688
29689
29690
29691
29692
29693
29694
29695
29696
29697
29698
29699
29700
29701
29702
29703
29704
29705
29706
29707
29708
29709
29710
29711
29712
29713
29714
29715
29716
29717
29718
29719
29720
29721
29722
29723
29724
29725
29726
29727
29728
29729
29730
29731
29732
29733
29734
29735
29736
29737
29738
29739
29740
29741
29742
29743
29744
29745
29746
29747
29748
29749
29750
29751
29752
29753
29754
29755
29756
29757
29758
29759
29760
29761
29762
29763
29764
29765
29766
29767
29768
29769
29770
29771
29772
29773
29774
29775
29776
29777
29778
29779
29780
29781
29782
29783
29784
29785
29786
29787
29788
29789
29790
29791
29792
29793
29794
29795
29796
29797
29798
29799
29800
29801
29802
29803
29804
29805
29806
29807
29808
29809
29810
29811
29812
29813
29814
29815
29816
29817
29818
29819
29820
29821
29822
29823
29824
29825
29826
29827
29828
29829
29830
29831
29832
29833
29834
29835
29836
29837
29838
29839
29840
29841
29842
29843
29844
29845
29846
29847
29848
29849
29850
29851
29852
29853
29854
29855
29856
29857
29858
29859
29860
29861
29862
29863
29864
29865
29866
29867
29868
29869
29870
29871
29872
29873
29874
29875
29876
29877
29878
29879
29880
29881
29882
29883
29884
29885
29886
29887
29888
29889
29890
29891
29892
29893
29894
29895
29896
29897
29898
29899
29900
29901
29902
29903
29904
29905
29906
29907
29908
29909
29910
29911
29912
29913
29914
29915
29916
29917
29918
29919
29920
29921
29922
29923
29924
29925
29926
29927
29928
29929
29930
29931
29932
29933
29934
29935
29936
29937
29938
29939
29940
29941
29942
29943
29944
29945
29946
29947
29948
29949
29950
29951
29952
29953
29954
29955
29956
29957
29958
29959
29960
29961
29962
29963
29964
29965
29966
29967
29968
29969
29970
29971
29972
29973
29974
29975
29976
29977
29978
29979
29980
29981
29982
29983
29984
29985
29986
29987
29988
29989
29990
29991
29992
29993
29994
29995
29996
29997
29998
29999
30000
30001
30002
30003
30004
30005
30006
30007
30008
30009
30010
30011
30012
30013
30014
30015
30016
30017
30018
30019
30020
30021
30022
30023
30024
30025
30026
30027
30028
30029
30030
30031
30032
30033
30034
30035
30036
30037
30038
30039
30040
30041
30042
30043
30044
30045
30046
30047
30048
30049
30050
30051
30052
30053
30054
30055
30056
30057
30058
30059
30060
30061
30062
30063
30064
30065
30066
30067
30068
30069
30070
30071
30072
30073
30074
30075
30076
30077
30078
30079
30080
30081
30082
30083
30084
30085
30086
30087
30088
30089
30090
30091
30092
30093
30094
30095
30096
30097
30098
30099
30100
30101
30102
30103
30104
30105
30106
30107
30108
30109
30110
30111
30112
30113
30114
30115
30116
30117
30118
30119
30120
30121
30122
30123
30124
30125
30126
30127
30128
30129
30130
30131
30132
30133
30134
30135
30136
30137
30138
30139
30140
30141
30142
30143
30144
30145
30146
30147
30148
30149
30150
30151
30152
30153
30154
30155
30156
30157
30158
30159
30160
30161
30162
30163
30164
30165
30166
30167
30168
30169
30170
30171
30172
30173
30174
30175
30176
30177
30178
30179
30180
30181
30182
30183
30184
30185
30186
30187
30188
30189
30190
30191
30192
30193
30194
30195
30196
30197
30198
30199
30200
30201
30202
30203
30204
30205
30206
30207
30208
30209
30210
30211
30212
30213
30214
30215
30216
30217
30218
30219
30220
30221
30222
30223
30224
30225
30226
30227
30228
30229
30230
30231
30232
30233
30234
30235
30236
30237
30238
30239
30240
30241
30242
30243
30244
30245
30246
30247
30248
30249
30250
30251
30252
30253
30254
30255
30256
30257
30258
30259
30260
30261
30262
30263
30264
30265
30266
30267
30268
30269
30270
30271
30272
30273
30274
30275
30276
30277
30278
30279
30280
30281
30282
30283
30284
30285
30286
30287
30288
30289
30290
30291
30292
30293
30294
30295
30296
30297
30298
30299
30300
30301
30302
30303
30304
30305
30306
30307
30308
30309
30310
30311
30312
30313
30314
30315
30316
30317
30318
30319
30320
30321
30322
30323
30324
30325
30326
30327
30328
30329
30330
30331
30332
30333
30334
30335
30336
30337
30338
30339
30340
30341
30342
30343
30344
30345
30346
30347
30348
30349
30350
30351
30352
30353
30354
30355
30356
30357
30358
30359
30360
30361
30362
30363
30364
30365
30366
30367
30368
30369
30370
30371
30372
30373
30374
30375
30376
30377
30378
30379
30380
30381
30382
30383
30384
30385
30386
30387
30388
30389
30390
30391
30392
30393
30394
30395
30396
30397
30398
30399
30400
30401
30402
30403
30404
30405
30406
30407
30408
30409
30410
30411
30412
30413
30414
30415
30416
30417
30418
30419
30420
30421
30422
30423
30424
30425
30426
30427
30428
30429
30430
30431
30432
30433
30434
30435
30436
30437
30438
30439
30440
30441
30442
30443
30444
30445
30446
30447
30448
30449
30450
30451
30452
30453
30454
30455
30456
30457
30458
30459
30460
30461
30462
30463
30464
30465
30466
30467
30468
30469
30470
30471
30472
30473
30474
30475
30476
30477
30478
30479
30480
30481
30482
30483
30484
30485
30486
30487
30488
30489
30490
30491
30492
30493
30494
30495
30496
30497
30498
30499
30500
30501
30502
30503
30504
30505
30506
30507
30508
30509
30510
30511
30512
30513
30514
30515
30516
30517
30518
30519
30520
30521
30522
30523
30524
30525
30526
30527
30528
30529
30530
30531
30532
30533
30534
30535
30536
30537
30538
30539
30540
30541
30542
30543
30544
30545
30546
30547
30548
30549
30550
30551
30552
30553
30554
30555
30556
30557
30558
30559
30560
30561
30562
30563
30564
30565
30566
30567
30568
30569
30570
30571
30572
30573
30574
30575
30576
30577
30578
30579
30580
30581
30582
30583
30584
30585
30586
30587
30588
30589
30590
30591
30592
30593
30594
30595
30596
30597
30598
30599
30600
30601
30602
30603
30604
30605
30606
30607
30608
30609
30610
30611
30612
30613
30614
30615
30616
30617
30618
30619
30620
30621
30622
30623
30624
30625
30626
30627
30628
30629
30630
30631
30632
30633
30634
30635
30636
30637
30638
30639
30640
30641
30642
30643
30644
30645
30646
30647
30648
30649
30650
30651
30652
30653
30654
30655
30656
30657
30658
30659
30660
30661
30662
30663
30664
30665
30666
30667
30668
30669
30670
30671
30672
30673
30674
30675
30676
30677
30678
30679
30680
30681
30682
30683
30684
30685
30686
30687
30688
30689
30690
30691
30692
30693
30694
30695
30696
30697
30698
30699
30700
30701
30702
30703
30704
30705
30706
30707
30708
30709
30710
30711
30712
30713
30714
30715
30716
30717
30718
30719
30720
30721
30722
30723
30724
30725
30726
30727
30728
30729
30730
30731
30732
30733
30734
30735
30736
30737
30738
30739
30740
30741
30742
30743
30744
30745
30746
30747
30748
30749
30750
30751
30752
30753
30754
30755
30756
30757
30758
30759
30760
30761
30762
30763
30764
30765
30766
30767
30768
30769
30770
30771
30772
30773
30774
30775
30776
30777
30778
30779
30780
30781
30782
30783
30784
30785
30786
30787
30788
30789
30790
30791
30792
30793
30794
30795
30796
30797
30798
30799
30800
30801
30802
30803
30804
30805
30806
30807
30808
30809
30810
30811
30812
30813
30814
30815
30816
30817
30818
30819
30820
30821
30822
30823
30824
30825
30826
30827
30828
30829
30830
30831
30832
30833
30834
30835
30836
30837
30838
30839
30840
30841
30842
30843
30844
30845
30846
30847
30848
30849
30850
30851
30852
30853
30854
30855
30856
30857
30858
30859
30860
30861
30862
30863
30864
30865
30866
30867
30868
30869
30870
30871
30872
30873
30874
30875
30876
30877
30878
30879
30880
30881
30882
30883
30884
30885
30886
30887
30888
30889
30890
30891
30892
30893
30894
30895
30896
30897
30898
30899
30900
30901
30902
30903
30904
30905
30906
30907
30908
30909
30910
30911
30912
30913
30914
30915
30916
30917
30918
30919
30920
30921
30922
30923
30924
30925
30926
30927
30928
30929
30930
30931
30932
30933
30934
30935
30936
30937
30938
30939
30940
30941
30942
30943
30944
30945
30946
30947
30948
30949
30950
30951
30952
30953
30954
30955
30956
30957
30958
30959
30960
30961
30962
30963
30964
30965
30966
30967
30968
30969
30970
30971
30972
30973
30974
30975
30976
30977
30978
30979
30980
30981
30982
30983
30984
30985
30986
30987
30988
30989
30990
30991
30992
30993
30994
30995
30996
30997
30998
30999
31000
31001
31002
31003
31004
31005
31006
31007
31008
31009
31010
31011
31012
31013
31014
31015
31016
31017
31018
31019
31020
31021
31022
31023
31024
31025
31026
31027
31028
31029
31030
31031
31032
31033
31034
31035
31036
31037
31038
31039
31040
31041
31042
31043
31044
31045
31046
31047
31048
31049
31050
31051
31052
31053
31054
31055
31056
31057
31058
31059
31060
31061
31062
31063
31064
31065
31066
31067
31068
31069
31070
31071
31072
31073
31074
31075
31076
31077
31078
31079
31080
31081
31082
31083
31084
31085
31086
31087
31088
31089
31090
31091
31092
31093
31094
31095
31096
31097
31098
31099
31100
31101
31102
31103
31104
31105
31106
31107
31108
31109
31110
31111
31112
31113
31114
31115
31116
31117
31118
31119
31120
31121
31122
31123
31124
31125
31126
31127
31128
31129
31130
31131
31132
31133
31134
31135
31136
31137
31138
31139
31140
31141
31142
31143
31144
31145
31146
31147
31148
31149
31150
31151
31152
31153
31154
31155
31156
31157
31158
31159
31160
31161
31162
31163
31164
31165
31166
31167
31168
31169
31170
31171
31172
31173
31174
31175
31176
31177
31178
31179
31180
31181
31182
31183
31184
31185
31186
31187
31188
31189
31190
31191
31192
31193
31194
31195
31196
31197
31198
31199
31200
31201
31202
31203
31204
31205
31206
31207
31208
31209
31210
31211
31212
31213
31214
31215
31216
31217
31218
31219
31220
31221
31222
31223
31224
31225
31226
31227
31228
31229
31230
31231
31232
31233
31234
31235
31236
31237
31238
31239
31240
31241
31242
31243
31244
31245
31246
31247
31248
31249
31250
31251
31252
31253
31254
31255
31256
31257
31258
31259
31260
31261
31262
31263
31264
31265
31266
31267
31268
31269
31270
31271
31272
31273
31274
31275
31276
31277
31278
31279
31280
31281
31282
31283
31284
31285
31286
31287
31288
31289
31290
31291
31292
31293
31294
31295
31296
31297
31298
31299
31300
31301
31302
31303
31304
31305
31306
31307
31308
31309
31310
31311
31312
31313
31314
31315
31316
31317
31318
31319
31320
31321
31322
31323
31324
31325
31326
31327
31328
31329
31330
31331
31332
31333
31334
31335
31336
31337
31338
31339
31340
31341
31342
31343
31344
31345
31346
31347
31348
31349
31350
31351
31352
31353
31354
31355
31356
31357
31358
31359
31360
31361
31362
31363
31364
31365
31366
31367
31368
31369
31370
31371
31372
31373
31374
31375
31376
31377
31378
31379
31380
31381
31382
31383
31384
31385
31386
31387
31388
31389
31390
31391
31392
31393
31394
31395
31396
31397
31398
31399
31400
31401
31402
31403
31404
31405
31406
31407
31408
31409
31410
31411
31412
31413
31414
31415
31416
31417
31418
31419
31420
31421
31422
31423
31424
31425
31426
31427
31428
31429
31430
31431
31432
31433
31434
31435
31436
31437
31438
31439
31440
31441
31442
31443
31444
31445
31446
31447
31448
31449
31450
31451
31452
31453
31454
31455
31456
31457
31458
31459
31460
31461
31462
31463
31464
31465
31466
31467
31468
31469
31470
31471
31472
31473
31474
31475
31476
31477
31478
31479
31480
31481
31482
31483
31484
31485
31486
31487
31488
31489
31490
31491
31492
31493
31494
31495
31496
31497
31498
31499
31500
31501
31502
31503
31504
31505
31506
31507
31508
31509
31510
31511
31512
31513
31514
31515
31516
31517
31518
31519
31520
31521
31522
31523
31524
31525
31526
31527
31528
31529
31530
31531
31532
31533
31534
31535
31536
31537
31538
31539
31540
31541
31542
31543
31544
31545
31546
31547
31548
31549
31550
31551
31552
31553
31554
31555
31556
31557
31558
31559
31560
31561
31562
31563
31564
31565
31566
31567
31568
31569
31570
31571
31572
31573
31574
31575
31576
31577
31578
31579
31580
31581
31582
31583
31584
31585
31586
31587
31588
31589
31590
31591
31592
31593
31594
31595
31596
31597
31598
31599
31600
31601
31602
31603
31604
31605
31606
31607
31608
31609
31610
31611
31612
31613
31614
31615
31616
31617
31618
31619
31620
31621
31622
31623
31624
31625
31626
31627
31628
31629
31630
31631
31632
31633
31634
31635
31636
31637
31638
31639
31640
31641
31642
31643
31644
31645
31646
31647
31648
31649
31650
31651
31652
31653
31654
31655
31656
31657
31658
31659
31660
31661
31662
31663
31664
31665
31666
31667
31668
31669
31670
31671
31672
31673
31674
31675
31676
31677
31678
31679
31680
31681
31682
31683
31684
31685
31686
31687
31688
31689
31690
31691
31692
31693
31694
31695
31696
31697
31698
31699
31700
31701
31702
31703
31704
31705
31706
31707
31708
31709
31710
31711
31712
31713
31714
31715
31716
31717
31718
31719
31720
31721
31722
31723
31724
31725
31726
31727
31728
31729
31730
31731
31732
31733
31734
31735
31736
31737
31738
31739
31740
31741
31742
31743
31744
31745
31746
31747
31748
31749
31750
31751
31752
31753
31754
31755
31756
31757
31758
31759
31760
31761
31762
31763
31764
31765
31766
31767
31768
31769
31770
31771
31772
31773
31774
31775
31776
31777
31778
31779
31780
31781
31782
31783
31784
31785
31786
31787
31788
31789
31790
31791
31792
31793
31794
31795
31796
31797
31798
31799
31800
31801
31802
31803
31804
31805
31806
31807
31808
31809
31810
31811
31812
31813
31814
31815
31816
31817
31818
31819
31820
31821
31822
31823
31824
31825
31826
31827
31828
31829
31830
31831
31832
31833
31834
31835
31836
31837
31838
31839
31840
31841
31842
31843
31844
31845
31846
31847
31848
31849
31850
31851
31852
31853
31854
31855
31856
31857
31858
31859
31860
31861
31862
31863
31864
31865
31866
31867
31868
31869
31870
31871
31872
31873
31874
31875
31876
31877
31878
31879
31880
31881
31882
31883
31884
31885
31886
31887
31888
31889
31890
31891
31892
31893
31894
31895
31896
31897
31898
31899
31900
31901
31902
31903
31904
31905
31906
31907
31908
31909
31910
31911
31912
31913
31914
31915
31916
31917
31918
31919
31920
31921
31922
31923
31924
31925
31926
31927
31928
31929
31930
31931
31932
31933
31934
31935
31936
31937
31938
31939
31940
31941
31942
31943
31944
31945
31946
31947
31948
31949
31950
31951
31952
31953
31954
31955
31956
31957
31958
31959
31960
31961
31962
31963
31964
31965
31966
31967
31968
31969
31970
31971
31972
31973
31974
31975
31976
31977
31978
31979
31980
31981
31982
31983
31984
31985
31986
31987
31988
31989
31990
31991
31992
31993
31994
31995
31996
31997
31998
31999
32000
32001
32002
32003
32004
32005
32006
32007
32008
32009
32010
32011
32012
32013
32014
32015
32016
32017
32018
32019
32020
32021
32022
32023
32024
32025
32026
32027
32028
32029
32030
32031
32032
32033
32034
32035
32036
32037
32038
32039
32040
32041
32042
32043
32044
32045
32046
32047
32048
32049
32050
32051
32052
32053
32054
32055
32056
32057
32058
32059
32060
32061
32062
32063
32064
32065
32066
32067
32068
32069
32070
32071
32072
32073
32074
32075
32076
32077
32078
32079
32080
32081
32082
32083
32084
32085
32086
32087
32088
32089
32090
32091
32092
32093
32094
32095
32096
32097
32098
32099
32100
32101
32102
32103
32104
32105
32106
32107
32108
32109
32110
32111
32112
32113
32114
32115
32116
32117
32118
32119
32120
32121
32122
32123
32124
32125
32126
32127
32128
32129
32130
32131
32132
32133
32134
32135
32136
32137
32138
32139
32140
32141
32142
32143
32144
32145
32146
32147
32148
32149
32150
32151
32152
32153
32154
32155
32156
32157
32158
32159
32160
32161
32162
32163
32164
32165
32166
32167
32168
32169
32170
32171
32172
32173
32174
32175
32176
32177
32178
32179
32180
32181
32182
32183
32184
32185
32186
32187
32188
32189
32190
32191
32192
32193
32194
32195
32196
32197
32198
32199
32200
32201
32202
32203
32204
32205
32206
32207
32208
32209
32210
32211
32212
32213
32214
32215
32216
32217
32218
32219
32220
32221
32222
32223
32224
32225
32226
32227
32228
32229
32230
32231
32232
32233
32234
32235
32236
32237
32238
32239
32240
32241
32242
32243
32244
32245
32246
32247
32248
32249
32250
32251
32252
32253
32254
32255
32256
32257
32258
32259
32260
32261
32262
32263
32264
32265
32266
32267
32268
32269
32270
32271
32272
32273
32274
32275
32276
32277
32278
32279
32280
32281
32282
32283
32284
32285
32286
32287
32288
32289
32290
32291
32292
32293
32294
32295
32296
32297
32298
32299
32300
32301
32302
32303
32304
32305
32306
32307
32308
32309
32310
32311
32312
32313
32314
32315
32316
32317
32318
32319
32320
32321
32322
32323
32324
32325
32326
32327
32328
32329
32330
32331
32332
32333
32334
32335
32336
32337
32338
32339
32340
32341
32342
32343
32344
32345
32346
32347
32348
32349
32350
32351
32352
32353
32354
32355
32356
32357
32358
32359
32360
32361
32362
32363
32364
32365
32366
32367
32368
32369
32370
32371
32372
32373
32374
32375
32376
32377
32378
32379
32380
32381
32382
32383
32384
32385
32386
32387
32388
32389
32390
32391
32392
32393
32394
32395
32396
32397
32398
32399
32400
32401
32402
32403
32404
32405
32406
32407
32408
32409
32410
32411
32412
32413
32414
32415
32416
32417
32418
32419
32420
32421
32422
32423
32424
32425
32426
32427
32428
32429
32430
32431
32432
32433
32434
32435
32436
32437
32438
32439
32440
32441
32442
32443
32444
32445
32446
32447
32448
32449
32450
32451
32452
32453
32454
32455
32456
32457
32458
32459
32460
32461
32462
32463
32464
32465
32466
32467
32468
32469
32470
32471
32472
32473
32474
32475
32476
32477
32478
32479
32480
32481
32482
32483
32484
32485
32486
32487
32488
32489
32490
32491
32492
32493
32494
32495
32496
32497
32498
32499
32500
32501
32502
32503
32504
32505
32506
32507
32508
32509
32510
32511
32512
32513
32514
32515
32516
32517
32518
32519
32520
32521
32522
32523
32524
32525
32526
32527
32528
32529
32530
32531
32532
32533
32534
32535
32536
32537
32538
32539
32540
32541
32542
32543
32544
32545
32546
32547
32548
32549
32550
32551
32552
32553
32554
32555
32556
32557
32558
32559
32560
32561
32562
32563
32564
32565
32566
32567
32568
32569
32570
32571
32572
32573
32574
32575
32576
32577
32578
32579
32580
32581
32582
32583
32584
32585
32586
32587
32588
32589
32590
32591
32592
32593
32594
32595
32596
32597
32598
32599
32600
32601
32602
32603
32604
32605
32606
32607
32608
32609
32610
32611
32612
32613
32614
32615
32616
32617
32618
32619
32620
32621
32622
32623
32624
32625
32626
32627
32628
32629
32630
32631
32632
32633
32634
32635
32636
32637
32638
32639
32640
32641
32642
32643
32644
32645
32646
32647
32648
32649
32650
32651
32652
32653
32654
32655
32656
32657
32658
32659
32660
32661
32662
32663
32664
32665
32666
32667
32668
32669
32670
32671
32672
32673
32674
32675
32676
32677
32678
32679
32680
32681
32682
32683
32684
32685
32686
32687
32688
32689
32690
32691
32692
32693
32694
32695
32696
32697
32698
32699
32700
32701
32702
32703
32704
32705
32706
32707
32708
32709
32710
32711
32712
32713
32714
32715
32716
32717
32718
32719
32720
32721
32722
32723
32724
32725
32726
32727
32728
32729
32730
32731
32732
32733
32734
32735
32736
32737
32738
32739
32740
32741
32742
32743
32744
32745
32746
32747
32748
32749
32750
32751
32752
32753
32754
32755
32756
32757
32758
32759
32760
32761
32762
32763
32764
32765
32766
32767
32768
32769
32770
32771
32772
32773
32774
32775
32776
32777
32778
32779
32780
32781
32782
32783
32784
32785
32786
32787
32788
32789
32790
32791
32792
32793
32794
32795
32796
32797
32798
32799
32800
32801
32802
32803
32804
32805
32806
32807
32808
32809
32810
32811
32812
32813
32814
32815
32816
32817
32818
32819
32820
32821
32822
32823
32824
32825
32826
32827
32828
32829
32830
32831
32832
32833
32834
32835
32836
32837
32838
32839
32840
32841
32842
32843
32844
32845
32846
32847
32848
32849
32850
32851
32852
32853
32854
32855
32856
32857
32858
32859
32860
32861
32862
32863
32864
32865
32866
32867
32868
32869
32870
32871
32872
32873
32874
32875
32876
32877
32878
32879
32880
32881
32882
32883
32884
32885
32886
32887
32888
32889
32890
32891
32892
32893
32894
32895
32896
32897
32898
32899
32900
32901
32902
32903
32904
32905
32906
32907
32908
32909
32910
32911
32912
32913
32914
32915
32916
32917
32918
32919
32920
32921
32922
32923
32924
32925
32926
32927
32928
32929
32930
32931
32932
32933
32934
32935
32936
32937
32938
32939
32940
32941
32942
32943
32944
32945
32946
32947
32948
32949
32950
32951
32952
32953
32954
32955
32956
32957
32958
32959
32960
32961
32962
32963
32964
32965
32966
32967
32968
32969
32970
32971
32972
32973
32974
32975
32976
32977
32978
32979
32980
32981
32982
32983
32984
32985
32986
32987
32988
32989
32990
32991
32992
32993
32994
32995
32996
32997
32998
32999
33000
33001
33002
33003
33004
33005
33006
33007
33008
33009
33010
33011
33012
33013
33014
33015
33016
33017
33018
33019
33020
33021
33022
33023
33024
33025
33026
33027
33028
33029
33030
33031
33032
33033
33034
33035
33036
33037
33038
33039
33040
33041
33042
33043
33044
33045
33046
33047
33048
33049
33050
33051
33052
33053
33054
33055
33056
33057
33058
33059
33060
33061
33062
33063
33064
33065
33066
33067
33068
33069
33070
33071
33072
33073
33074
33075
33076
33077
33078
33079
33080
33081
33082
33083
33084
33085
33086
33087
33088
33089
33090
33091
33092
33093
33094
33095
33096
33097
33098
33099
33100
33101
33102
33103
33104
33105
33106
33107
33108
33109
33110
33111
33112
33113
33114
33115
33116
33117
33118
33119
33120
33121
33122
33123
33124
33125
33126
33127
33128
33129
33130
33131
33132
33133
33134
33135
33136
33137
33138
33139
33140
33141
33142
33143
33144
33145
33146
33147
33148
33149
33150
33151
33152
33153
33154
33155
33156
33157
33158
33159
33160
33161
33162
33163
33164
33165
33166
33167
33168
33169
33170
33171
33172
33173
33174
33175
33176
33177
33178
33179
33180
33181
33182
33183
33184
33185
33186
33187
33188
33189
33190
33191
33192
33193
33194
33195
33196
33197
33198
33199
33200
33201
33202
33203
33204
33205
33206
33207
33208
33209
33210
33211
33212
33213
33214
33215
33216
33217
33218
33219
33220
33221
33222
33223
33224
33225
33226
33227
33228
33229
33230
33231
33232
33233
33234
33235
33236
33237
33238
33239
33240
33241
33242
33243
33244
33245
33246
33247
33248
33249
33250
33251
33252
33253
33254
33255
33256
33257
33258
33259
33260
33261
33262
33263
33264
33265
33266
33267
33268
33269
33270
33271
33272
33273
33274
33275
33276
33277
33278
33279
33280
33281
33282
33283
33284
33285
33286
33287
33288
33289
33290
33291
33292
33293
33294
33295
33296
33297
33298
33299
33300
33301
33302
33303
33304
33305
33306
33307
33308
33309
33310
33311
33312
33313
33314
33315
33316
33317
33318
33319
33320
33321
33322
33323
33324
33325
33326
33327
33328
33329
33330
33331
33332
33333
33334
33335
33336
33337
33338
33339
33340
33341
33342
33343
33344
33345
33346
33347
33348
33349
33350
33351
33352
33353
33354
33355
33356
33357
33358
33359
33360
33361
33362
33363
33364
33365
33366
33367
33368
33369
33370
33371
33372
33373
33374
33375
33376
33377
33378
33379
33380
33381
33382
33383
33384
33385
33386
33387
33388
33389
33390
33391
33392
33393
33394
33395
33396
33397
33398
33399
33400
33401
33402
33403
33404
33405
33406
33407
33408
33409
33410
33411
33412
33413
33414
33415
33416
33417
33418
33419
33420
33421
33422
33423
33424
33425
33426
33427
33428
33429
33430
33431
33432
33433
33434
33435
33436
33437
33438
33439
33440
33441
33442
33443
33444
33445
33446
33447
33448
33449
33450
33451
33452
33453
33454
33455
33456
33457
33458
33459
33460
33461
33462
33463
33464
33465
33466
33467
33468
33469
33470
33471
33472
33473
33474
33475
33476
33477
33478
33479
33480
33481
33482
33483
33484
33485
33486
33487
33488
33489
33490
33491
33492
33493
33494
33495
33496
33497
33498
33499
33500
33501
33502
33503
33504
33505
33506
33507
33508
33509
33510
33511
33512
33513
33514
33515
33516
33517
33518
33519
33520
33521
33522
33523
33524
33525
33526
33527
33528
33529
33530
33531
33532
33533
33534
33535
33536
33537
33538
33539
33540
33541
33542
33543
33544
33545
33546
33547
33548
33549
33550
33551
33552
33553
33554
33555
33556
33557
33558
33559
33560
33561
33562
33563
33564
33565
33566
33567
33568
33569
33570
33571
33572
33573
33574
33575
33576
33577
33578
33579
33580
33581
33582
33583
33584
33585
33586
33587
33588
33589
33590
33591
33592
33593
33594
33595
33596
33597
33598
33599
33600
33601
33602
33603
33604
33605
33606
33607
33608
33609
33610
33611
33612
33613
33614
33615
33616
33617
33618
33619
33620
33621
33622
33623
33624
33625
33626
33627
33628
33629
33630
33631
33632
33633
33634
33635
33636
33637
33638
33639
33640
33641
33642
33643
33644
33645
33646
33647
33648
33649
33650
33651
33652
33653
33654
33655
33656
33657
33658
33659
33660
33661
33662
33663
33664
33665
33666
33667
33668
33669
33670
33671
33672
33673
33674
33675
33676
33677
33678
33679
33680
33681
33682
33683
33684
33685
33686
33687
33688
33689
33690
33691
33692
33693
33694
33695
33696
33697
33698
33699
33700
33701
33702
33703
33704
33705
33706
33707
33708
33709
33710
33711
33712
33713
33714
33715
33716
33717
33718
33719
33720
33721
33722
33723
33724
33725
33726
33727
33728
33729
33730
33731
33732
33733
33734
33735
33736
33737
33738
33739
33740
33741
33742
33743
33744
33745
33746
33747
33748
33749
33750
33751
33752
33753
33754
33755
33756
33757
33758
33759
33760
33761
33762
33763
33764
33765
33766
33767
33768
33769
33770
33771
33772
33773
33774
33775
33776
33777
33778
33779
33780
33781
33782
33783
33784
33785
33786
33787
33788
33789
33790
33791
33792
33793
33794
33795
33796
33797
33798
33799
33800
33801
33802
33803
33804
33805
33806
33807
33808
33809
33810
33811
33812
33813
33814
33815
33816
33817
33818
33819
33820
33821
33822
33823
33824
33825
33826
33827
33828
33829
33830
33831
33832
33833
33834
33835
33836
33837
33838
33839
33840
33841
33842
33843
33844
33845
33846
33847
33848
33849
33850
33851
33852
33853
33854
33855
33856
33857
33858
33859
33860
33861
33862
33863
33864
33865
33866
33867
33868
33869
33870
33871
33872
33873
33874
33875
33876
33877
33878
33879
33880
33881
33882
33883
33884
33885
33886
33887
33888
33889
33890
33891
33892
33893
33894
33895
33896
33897
33898
33899
33900
33901
33902
33903
33904
33905
33906
33907
33908
33909
33910
33911
33912
33913
33914
33915
33916
33917
33918
33919
33920
33921
33922
33923
33924
33925
33926
33927
33928
33929
33930
33931
33932
33933
33934
33935
33936
33937
33938
33939
33940
33941
33942
33943
33944
33945
33946
33947
33948
33949
33950
33951
33952
33953
33954
33955
33956
33957
33958
33959
33960
33961
33962
33963
33964
33965
33966
33967
33968
33969
33970
33971
33972
33973
33974
33975
33976
33977
33978
33979
33980
33981
33982
33983
33984
33985
33986
33987
33988
33989
33990
33991
33992
33993
33994
33995
33996
33997
33998
33999
34000
34001
34002
34003
34004
34005
34006
34007
34008
34009
34010
34011
34012
34013
34014
34015
34016
34017
34018
34019
34020
34021
34022
34023
34024
34025
34026
34027
34028
34029
34030
34031
34032
34033
34034
34035
34036
34037
34038
34039
34040
34041
34042
34043
34044
34045
34046
34047
34048
34049
34050
34051
34052
34053
34054
34055
34056
34057
34058
34059
34060
34061
34062
34063
34064
34065
34066
34067
34068
34069
34070
34071
34072
34073
34074
34075
34076
34077
34078
34079
34080
34081
34082
34083
34084
34085
34086
34087
34088
34089
34090
34091
34092
34093
34094
34095
34096
34097
34098
34099
34100
34101
34102
34103
34104
34105
34106
34107
34108
34109
34110
34111
34112
34113
34114
34115
34116
34117
34118
34119
34120
34121
34122
34123
34124
34125
34126
34127
34128
34129
34130
34131
34132
34133
34134
34135
34136
34137
34138
34139
34140
34141
34142
34143
34144
34145
34146
34147
34148
34149
34150
34151
34152
34153
34154
34155
34156
34157
34158
34159
34160
34161
34162
34163
34164
34165
34166
34167
34168
34169
34170
34171
34172
34173
34174
34175
34176
34177
34178
34179
34180
34181
34182
34183
34184
34185
34186
34187
34188
34189
34190
34191
34192
34193
34194
34195
34196
34197
34198
34199
34200
34201
34202
34203
34204
34205
34206
34207
34208
34209
34210
34211
34212
34213
34214
34215
34216
34217
34218
34219
34220
34221
34222
34223
34224
34225
34226
34227
34228
34229
34230
34231
34232
34233
34234
34235
34236
34237
34238
34239
34240
34241
34242
34243
34244
34245
34246
34247
34248
34249
34250
34251
34252
34253
34254
34255
34256
34257
34258
34259
34260
34261
34262
34263
34264
34265
34266
34267
34268
34269
34270
34271
34272
34273
34274
34275
34276
34277
34278
34279
34280
34281
34282
34283
34284
34285
34286
34287
34288
34289
34290
34291
34292
34293
34294
34295
34296
34297
34298
34299
34300
34301
34302
34303
34304
34305
34306
34307
34308
34309
34310
34311
34312
34313
34314
34315
34316
34317
34318
34319
34320
34321
34322
34323
34324
34325
34326
34327
34328
34329
34330
34331
34332
34333
34334
34335
34336
34337
34338
34339
34340
34341
34342
34343
34344
34345
34346
34347
34348
34349
34350
34351
34352
34353
34354
34355
34356
34357
34358
34359
34360
34361
34362
34363
34364
34365
34366
34367
34368
34369
34370
34371
34372
34373
34374
34375
34376
34377
34378
34379
34380
34381
34382
34383
34384
34385
34386
34387
34388
34389
34390
34391
34392
34393
34394
34395
34396
34397
34398
34399
34400
34401
34402
34403
34404
34405
34406
34407
34408
34409
34410
34411
34412
34413
34414
34415
34416
34417
34418
34419
34420
34421
34422
34423
34424
34425
34426
34427
34428
34429
34430
34431
34432
34433
34434
34435
34436
34437
34438
34439
34440
34441
34442
34443
34444
34445
34446
34447
34448
34449
34450
34451
34452
34453
34454
34455
34456
34457
34458
34459
34460
34461
34462
34463
34464
34465
34466
34467
34468
34469
34470
34471
34472
34473
34474
34475
34476
34477
34478
34479
34480
34481
34482
34483
34484
34485
34486
34487
34488
34489
34490
34491
34492
34493
34494
34495
34496
34497
34498
34499
34500
34501
34502
34503
34504
34505
34506
34507
34508
34509
34510
34511
34512
34513
34514
34515
34516
34517
34518
34519
34520
34521
34522
34523
34524
34525
34526
34527
34528
34529
34530
34531
34532
34533
34534
34535
34536
34537
34538
34539
34540
34541
34542
34543
34544
34545
34546
34547
34548
34549
34550
34551
34552
34553
34554
34555
34556
34557
34558
34559
34560
34561
34562
34563
34564
34565
34566
34567
34568
34569
34570
34571
34572
34573
34574
34575
34576
34577
34578
34579
34580
34581
34582
34583
34584
34585
34586
34587
34588
34589
34590
34591
34592
34593
34594
34595
34596
34597
34598
34599
34600
34601
34602
34603
34604
34605
34606
34607
34608
34609
34610
34611
34612
34613
34614
34615
34616
34617
34618
34619
34620
34621
34622
34623
34624
34625
34626
34627
34628
34629
34630
34631
34632
34633
34634
34635
34636
34637
34638
34639
34640
34641
34642
34643
34644
34645
34646
34647
34648
34649
34650
34651
34652
34653
34654
34655
34656
34657
34658
34659
34660
34661
34662
34663
34664
34665
34666
34667
34668
34669
34670
34671
34672
34673
34674
34675
34676
34677
34678
34679
34680
34681
34682
34683
34684
34685
34686
34687
34688
34689
34690
34691
34692
34693
34694
34695
34696
34697
34698
34699
34700
34701
34702
34703
34704
34705
34706
34707
34708
34709
34710
34711
34712
34713
34714
34715
34716
34717
34718
34719
34720
34721
34722
34723
34724
34725
34726
34727
34728
34729
34730
34731
34732
34733
34734
34735
34736
34737
34738
34739
34740
34741
34742
34743
34744
34745
34746
34747
34748
34749
34750
34751
34752
34753
34754
34755
34756
34757
34758
34759
34760
34761
34762
34763
34764
34765
34766
34767
34768
34769
34770
34771
34772
34773
34774
34775
34776
34777
34778
34779
34780
34781
34782
34783
34784
34785
34786
34787
34788
34789
34790
34791
34792
34793
34794
34795
34796
34797
34798
34799
34800
34801
34802
34803
34804
34805
34806
34807
34808
34809
34810
34811
34812
34813
34814
34815
34816
34817
34818
34819
34820
34821
34822
34823
34824
34825
34826
34827
34828
34829
34830
34831
34832
34833
34834
34835
34836
34837
34838
34839
34840
34841
34842
34843
34844
34845
34846
34847
34848
34849
34850
34851
34852
34853
34854
34855
34856
34857
34858
34859
34860
34861
34862
34863
34864
34865
34866
34867
34868
34869
34870
34871
34872
34873
34874
34875
34876
34877
34878
34879
34880
34881
34882
34883
34884
34885
34886
34887
34888
34889
34890
34891
34892
34893
34894
34895
34896
34897
34898
34899
34900
34901
34902
34903
34904
34905
34906
34907
34908
34909
34910
34911
34912
34913
34914
34915
34916
34917
34918
34919
34920
34921
34922
34923
34924
34925
34926
34927
34928
34929
34930
34931
34932
34933
34934
34935
34936
34937
34938
34939
34940
34941
34942
34943
34944
34945
34946
34947
34948
34949
34950
34951
34952
34953
34954
34955
34956
34957
34958
34959
34960
34961
34962
34963
34964
34965
34966
34967
34968
34969
34970
34971
34972
34973
34974
34975
34976
34977
34978
34979
34980
34981
34982
34983
34984
34985
34986
34987
34988
34989
34990
34991
34992
34993
34994
34995
34996
34997
34998
34999
35000
35001
35002
35003
35004
35005
35006
35007
35008
35009
35010
35011
35012
35013
35014
35015
35016
35017
35018
35019
35020
35021
35022
35023
35024
35025
35026
35027
35028
35029
35030
35031
35032
35033
35034
35035
35036
35037
35038
35039
35040
35041
35042
35043
35044
35045
35046
35047
35048
35049
35050
35051
35052
35053
35054
35055
35056
35057
35058
35059
35060
35061
35062
35063
35064
35065
35066
35067
35068
35069
35070
35071
35072
35073
35074
35075
35076
35077
35078
35079
35080
35081
35082
35083
35084
35085
35086
35087
35088
35089
35090
35091
35092
35093
35094
35095
35096
35097
35098
35099
35100
35101
35102
35103
35104
35105
35106
35107
35108
35109
35110
35111
35112
35113
35114
35115
35116
35117
35118
35119
35120
35121
35122
35123
35124
35125
35126
35127
35128
35129
35130
35131
35132
35133
35134
35135
35136
35137
35138
35139
35140
35141
35142
35143
35144
35145
35146
35147
35148
35149
35150
35151
35152
35153
35154
35155
35156
35157
35158
35159
35160
35161
35162
35163
35164
35165
35166
35167
35168
35169
35170
35171
35172
35173
35174
35175
35176
35177
35178
35179
35180
35181
35182
35183
35184
35185
35186
35187
35188
35189
35190
35191
35192
35193
35194
35195
35196
35197
35198
35199
35200
35201
35202
35203
35204
35205
35206
35207
35208
35209
35210
35211
35212
35213
35214
35215
35216
35217
35218
35219
35220
35221
35222
35223
35224
35225
35226
35227
35228
35229
35230
35231
35232
35233
35234
35235
35236
35237
35238
35239
35240
35241
35242
35243
35244
35245
35246
35247
35248
35249
35250
35251
35252
35253
35254
35255
35256
35257
35258
35259
35260
35261
35262
35263
35264
35265
35266
35267
35268
35269
35270
35271
35272
35273
35274
35275
35276
35277
35278
35279
35280
35281
35282
35283
35284
35285
35286
35287
35288
35289
35290
35291
35292
35293
35294
35295
35296
35297
35298
35299
35300
35301
35302
35303
35304
35305
35306
35307
35308
35309
35310
35311
35312
35313
35314
35315
35316
35317
35318
35319
35320
35321
35322
35323
35324
35325
35326
35327
35328
35329
35330
35331
35332
35333
35334
35335
35336
35337
35338
35339
35340
35341
35342
35343
35344
35345
35346
35347
35348
35349
35350
35351
35352
35353
35354
35355
35356
35357
35358
35359
35360
35361
35362
35363
35364
35365
35366
35367
35368
35369
35370
35371
35372
35373
35374
35375
35376
35377
35378
35379
35380
35381
35382
35383
35384
35385
35386
35387
35388
35389
35390
35391
35392
35393
35394
35395
35396
35397
35398
35399
35400
35401
35402
35403
35404
35405
35406
35407
35408
35409
35410
35411
35412
35413
35414
35415
35416
35417
35418
35419
35420
35421
35422
35423
35424
35425
35426
35427
35428
35429
35430
35431
35432
35433
35434
35435
35436
35437
35438
35439
35440
35441
35442
35443
35444
35445
35446
35447
35448
35449
35450
35451
35452
35453
35454
35455
35456
35457
35458
35459
35460
35461
35462
35463
35464
35465
35466
35467
35468
35469
35470
35471
35472
35473
35474
35475
35476
35477
35478
35479
35480
35481
35482
35483
35484
35485
35486
35487
35488
35489
35490
35491
35492
35493
35494
35495
35496
35497
35498
35499
35500
35501
35502
35503
35504
35505
35506
35507
35508
35509
35510
35511
35512
35513
35514
35515
35516
35517
35518
35519
35520
35521
35522
35523
35524
35525
35526
35527
35528
35529
35530
35531
35532
35533
35534
35535
35536
35537
35538
35539
35540
35541
35542
35543
35544
35545
35546
35547
35548
35549
35550
35551
35552
35553
35554
35555
35556
35557
35558
35559
35560
35561
35562
35563
35564
35565
35566
35567
35568
35569
35570
35571
35572
35573
35574
35575
35576
35577
35578
35579
35580
35581
35582
35583
35584
35585
35586
35587
35588
35589
35590
35591
35592
35593
35594
35595
35596
35597
35598
35599
35600
35601
35602
35603
35604
35605
35606
35607
35608
35609
35610
35611
35612
35613
35614
35615
35616
35617
35618
35619
35620
35621
35622
35623
35624
35625
35626
35627
35628
35629
35630
35631
35632
35633
35634
35635
35636
35637
35638
35639
35640
35641
35642
35643
35644
35645
35646
35647
35648
35649
35650
35651
35652
35653
35654
35655
35656
35657
35658
35659
35660
35661
35662
35663
35664
35665
35666
35667
35668
35669
35670
35671
35672
35673
35674
35675
35676
35677
35678
35679
35680
35681
35682
35683
35684
35685
35686
35687
35688
35689
35690
35691
35692
35693
35694
35695
35696
35697
35698
35699
35700
35701
35702
35703
35704
35705
35706
35707
35708
35709
35710
35711
35712
35713
35714
35715
35716
35717
35718
35719
35720
35721
35722
35723
35724
35725
35726
35727
35728
35729
35730
35731
35732
35733
35734
35735
35736
35737
35738
35739
35740
35741
35742
35743
35744
35745
35746
35747
35748
35749
35750
35751
35752
35753
35754
35755
35756
35757
35758
35759
35760
35761
35762
35763
35764
35765
35766
35767
35768
35769
35770
35771
35772
35773
35774
35775
35776
35777
35778
35779
35780
35781
35782
35783
35784
35785
35786
35787
35788
35789
35790
35791
35792
35793
35794
35795
35796
35797
35798
35799
35800
35801
35802
35803
35804
35805
35806
35807
35808
35809
35810
35811
35812
35813
35814
35815
35816
35817
35818
35819
35820
35821
35822
35823
35824
35825
35826
35827
35828
35829
35830
35831
35832
35833
35834
35835
35836
35837
35838
35839
35840
35841
35842
35843
35844
35845
35846
35847
35848
35849
35850
35851
35852
35853
35854
35855
35856
35857
35858
35859
35860
35861
35862
35863
35864
35865
35866
35867
35868
35869
35870
35871
35872
35873
35874
35875
35876
35877
35878
35879
35880
35881
35882
35883
35884
35885
35886
35887
35888
35889
35890
35891
35892
35893
35894
35895
35896
35897
35898
35899
35900
35901
35902
35903
35904
35905
35906
35907
35908
35909
35910
35911
35912
35913
35914
35915
35916
35917
35918
35919
35920
35921
35922
35923
35924
35925
35926
35927
35928
35929
35930
35931
35932
35933
35934
35935
35936
35937
35938
35939
35940
35941
35942
35943
35944
35945
35946
35947
35948
35949
35950
35951
35952
35953
35954
35955
35956
35957
35958
35959
35960
35961
35962
35963
35964
35965
35966
35967
35968
35969
35970
35971
35972
35973
35974
35975
35976
35977
35978
35979
35980
35981
35982
35983
35984
35985
35986
35987
35988
35989
35990
35991
35992
35993
35994
35995
35996
35997
35998
35999
36000
36001
36002
36003
36004
36005
36006
36007
36008
36009
36010
36011
36012
36013
36014
36015
36016
36017
36018
36019
36020
36021
36022
36023
36024
36025
36026
36027
36028
36029
36030
36031
36032
36033
36034
36035
36036
36037
36038
36039
36040
36041
36042
36043
36044
36045
36046
36047
36048
36049
36050
36051
36052
36053
36054
36055
36056
36057
36058
36059
36060
36061
36062
36063
36064
36065
36066
36067
36068
36069
36070
36071
36072
36073
36074
36075
36076
36077
36078
36079
36080
36081
36082
36083
36084
36085
36086
36087
36088
36089
36090
36091
36092
36093
36094
36095
36096
36097
36098
36099
36100
36101
36102
36103
36104
36105
36106
36107
36108
36109
36110
36111
36112
36113
36114
36115
36116
36117
36118
36119
36120
36121
36122
36123
36124
36125
36126
36127
36128
36129
36130
36131
36132
36133
36134
36135
36136
36137
36138
36139
36140
36141
36142
36143
36144
36145
36146
36147
36148
36149
36150
36151
36152
36153
36154
36155
36156
36157
36158
36159
36160
36161
36162
36163
36164
36165
36166
36167
36168
36169
36170
36171
36172
36173
36174
36175
36176
36177
36178
36179
36180
36181
36182
36183
36184
36185
36186
36187
36188
36189
36190
36191
36192
36193
36194
36195
36196
36197
36198
36199
36200
36201
36202
36203
36204
36205
36206
36207
36208
36209
36210
36211
36212
36213
36214
36215
36216
36217
36218
36219
36220
36221
36222
36223
36224
36225
36226
36227
36228
36229
36230
36231
36232
36233
36234
36235
36236
36237
36238
36239
36240
36241
36242
36243
36244
36245
36246
36247
36248
36249
36250
36251
36252
36253
36254
36255
36256
36257
36258
36259
36260
36261
36262
36263
36264
36265
36266
36267
36268
36269
36270
36271
36272
36273
36274
36275
36276
36277
36278
36279
36280
36281
36282
36283
36284
36285
36286
36287
36288
36289
36290
36291
36292
36293
36294
36295
36296
36297
36298
36299
36300
36301
36302
36303
36304
36305
36306
36307
36308
36309
36310
36311
36312
36313
36314
36315
36316
36317
36318
36319
36320
36321
36322
36323
36324
36325
36326
36327
36328
36329
36330
36331
36332
36333
36334
36335
36336
36337
36338
36339
36340
36341
36342
36343
36344
36345
36346
36347
36348
36349
36350
36351
36352
36353
36354
36355
36356
36357
36358
36359
36360
36361
36362
36363
36364
36365
36366
36367
36368
36369
36370
36371
36372
36373
36374
36375
36376
36377
36378
36379
36380
36381
36382
36383
36384
36385
36386
36387
36388
36389
36390
36391
36392
36393
36394
36395
36396
36397
36398
36399
36400
36401
36402
36403
36404
36405
36406
36407
36408
36409
36410
36411
36412
36413
36414
36415
36416
36417
36418
36419
36420
36421
36422
36423
36424
36425
36426
36427
36428
36429
36430
36431
36432
36433
36434
36435
36436
36437
36438
36439
36440
36441
36442
36443
36444
36445
36446
36447
36448
36449
36450
36451
36452
36453
36454
36455
36456
36457
36458
36459
36460
36461
36462
36463
36464
36465
36466
36467
36468
36469
36470
36471
36472
36473
36474
36475
36476
36477
36478
36479
36480
36481
36482
36483
36484
36485
36486
36487
36488
36489
36490
36491
36492
36493
36494
36495
36496
36497
36498
36499
36500
36501
36502
36503
36504
36505
36506
36507
36508
36509
36510
36511
36512
36513
36514
36515
36516
36517
36518
36519
36520
36521
36522
36523
36524
36525
36526
36527
36528
36529
36530
36531
36532
36533
36534
36535
36536
36537
36538
36539
36540
36541
36542
36543
36544
36545
36546
36547
36548
36549
36550
36551
36552
36553
36554
36555
36556
36557
36558
36559
36560
36561
36562
36563
36564
36565
36566
36567
36568
36569
36570
36571
36572
36573
36574
36575
36576
36577
36578
36579
36580
36581
36582
36583
36584
36585
36586
36587
36588
36589
36590
36591
36592
36593
36594
36595
36596
36597
36598
36599
36600
36601
36602
36603
36604
36605
36606
36607
36608
36609
36610
36611
36612
36613
36614
36615
36616
36617
36618
36619
36620
36621
36622
36623
36624
36625
36626
36627
36628
36629
36630
36631
36632
36633
36634
36635
36636
36637
36638
36639
36640
36641
36642
36643
36644
36645
36646
36647
36648
36649
36650
36651
36652
36653
36654
36655
36656
36657
36658
36659
36660
36661
36662
36663
36664
36665
36666
36667
36668
36669
36670
36671
36672
36673
36674
36675
36676
36677
36678
36679
36680
36681
36682
36683
36684
36685
36686
36687
36688
36689
36690
36691
36692
36693
36694
36695
36696
36697
36698
36699
36700
36701
36702
36703
36704
36705
36706
36707
36708
36709
36710
36711
36712
36713
36714
36715
36716
36717
36718
36719
36720
36721
36722
36723
36724
36725
36726
36727
36728
36729
36730
36731
36732
36733
36734
36735
36736
36737
36738
36739
36740
36741
36742
36743
36744
36745
36746
36747
36748
36749
36750
36751
36752
36753
36754
36755
36756
36757
36758
36759
36760
36761
36762
36763
36764
36765
36766
36767
36768
36769
36770
36771
36772
36773
36774
36775
36776
36777
36778
36779
36780
36781
36782
36783
36784
36785
36786
36787
36788
36789
36790
36791
36792
36793
36794
36795
36796
36797
36798
36799
36800
36801
36802
36803
36804
36805
36806
36807
36808
36809
36810
36811
36812
36813
36814
36815
36816
36817
36818
36819
36820
36821
36822
36823
36824
36825
36826
36827
36828
36829
36830
36831
36832
36833
36834
36835
36836
36837
36838
36839
36840
36841
36842
36843
36844
36845
36846
36847
36848
36849
36850
36851
36852
36853
36854
36855
36856
36857
36858
36859
36860
36861
36862
36863
36864
36865
36866
36867
36868
36869
36870
36871
36872
36873
36874
36875
36876
36877
36878
36879
36880
36881
36882
36883
36884
36885
36886
36887
36888
36889
36890
36891
36892
36893
36894
36895
36896
36897
36898
36899
36900
36901
36902
36903
36904
36905
36906
36907
36908
36909
36910
36911
36912
36913
36914
36915
36916
36917
36918
36919
36920
36921
36922
36923
36924
36925
36926
36927
36928
36929
36930
36931
36932
36933
36934
36935
36936
36937
36938
36939
36940
36941
36942
36943
36944
36945
36946
36947
36948
36949
36950
36951
36952
36953
36954
36955
36956
36957
36958
36959
36960
36961
36962
36963
36964
36965
36966
36967
36968
36969
36970
36971
36972
36973
36974
36975
36976
36977
36978
36979
36980
36981
36982
36983
36984
36985
36986
36987
36988
36989
36990
36991
36992
36993
36994
36995
36996
36997
36998
36999
37000
37001
37002
37003
37004
37005
37006
37007
37008
37009
37010
37011
37012
37013
37014
37015
37016
37017
37018
37019
37020
37021
37022
37023
37024
37025
37026
37027
37028
37029
37030
37031
37032
37033
37034
37035
37036
37037
37038
37039
37040
37041
37042
37043
37044
37045
37046
37047
37048
37049
37050
37051
37052
37053
37054
37055
37056
37057
37058
37059
37060
37061
37062
37063
37064
37065
37066
37067
37068
37069
37070
37071
37072
37073
37074
37075
37076
37077
37078
37079
37080
37081
37082
37083
37084
37085
37086
37087
37088
37089
37090
37091
37092
37093
37094
37095
37096
37097
37098
37099
37100
37101
37102
37103
37104
37105
37106
37107
37108
37109
37110
37111
37112
37113
37114
37115
37116
37117
37118
37119
37120
37121
37122
37123
37124
37125
37126
37127
37128
37129
37130
37131
37132
37133
37134
37135
37136
37137
37138
37139
37140
37141
37142
37143
37144
37145
37146
37147
37148
37149
37150
37151
37152
37153
37154
37155
37156
37157
37158
37159
37160
37161
37162
37163
37164
37165
37166
37167
37168
37169
37170
37171
37172
37173
37174
37175
37176
37177
37178
37179
37180
37181
37182
37183
37184
37185
37186
37187
37188
37189
37190
37191
37192
37193
37194
37195
37196
37197
37198
37199
37200
37201
37202
37203
37204
37205
37206
37207
37208
37209
37210
37211
37212
37213
37214
37215
37216
37217
37218
37219
37220
37221
37222
37223
37224
37225
37226
37227
37228
37229
37230
37231
37232
37233
37234
37235
37236
37237
37238
37239
37240
37241
37242
37243
37244
37245
37246
37247
37248
37249
37250
37251
37252
37253
37254
37255
37256
37257
37258
37259
37260
37261
37262
37263
37264
37265
37266
37267
37268
37269
37270
37271
37272
37273
37274
37275
37276
37277
37278
37279
37280
37281
37282
37283
37284
37285
37286
37287
37288
37289
37290
37291
37292
37293
37294
37295
37296
37297
37298
37299
37300
37301
37302
37303
37304
37305
37306
37307
37308
37309
37310
37311
37312
37313
37314
37315
37316
37317
37318
37319
37320
37321
37322
37323
37324
37325
37326
37327
37328
37329
37330
37331
37332
37333
37334
37335
37336
37337
37338
37339
37340
37341
37342
37343
37344
37345
37346
37347
37348
37349
37350
37351
37352
37353
37354
37355
37356
37357
37358
37359
37360
37361
37362
37363
37364
37365
37366
37367
37368
37369
37370
37371
37372
37373
37374
37375
37376
37377
37378
37379
37380
37381
37382
37383
37384
37385
37386
37387
37388
37389
37390
37391
37392
37393
37394
37395
37396
37397
37398
37399
37400
37401
37402
37403
37404
37405
37406
37407
37408
37409
37410
37411
37412
37413
37414
37415
37416
37417
37418
37419
37420
37421
37422
37423
37424
37425
37426
37427
37428
37429
37430
37431
37432
37433
37434
37435
37436
37437
37438
37439
37440
37441
37442
37443
37444
37445
37446
37447
37448
37449
37450
37451
37452
37453
37454
37455
37456
37457
37458
37459
37460
37461
37462
37463
37464
37465
37466
37467
37468
37469
37470
37471
37472
37473
37474
37475
37476
37477
37478
37479
37480
37481
37482
37483
37484
37485
37486
37487
37488
37489
37490
37491
37492
37493
37494
37495
37496
37497
37498
37499
37500
37501
37502
37503
37504
37505
37506
37507
37508
37509
37510
37511
37512
37513
37514
37515
37516
37517
37518
37519
37520
37521
37522
37523
37524
37525
37526
37527
37528
37529
37530
37531
37532
37533
37534
37535
37536
37537
37538
37539
37540
37541
37542
37543
37544
37545
37546
37547
37548
37549
37550
37551
37552
37553
37554
37555
37556
37557
37558
37559
37560
37561
37562
37563
37564
37565
37566
37567
37568
37569
37570
37571
37572
37573
37574
37575
37576
37577
37578
37579
37580
37581
37582
37583
37584
37585
37586
37587
37588
37589
37590
37591
37592
37593
37594
37595
37596
37597
37598
37599
37600
37601
37602
37603
37604
37605
37606
37607
37608
37609
37610
37611
37612
37613
37614
37615
37616
37617
37618
37619
37620
37621
37622
37623
37624
37625
37626
37627
37628
37629
37630
37631
37632
37633
37634
37635
37636
37637
37638
37639
37640
37641
37642
37643
37644
37645
37646
37647
37648
37649
37650
37651
37652
37653
37654
37655
37656
37657
37658
37659
37660
37661
37662
37663
37664
37665
37666
37667
37668
37669
37670
37671
37672
37673
37674
37675
37676
37677
37678
37679
37680
37681
37682
37683
37684
37685
37686
37687
37688
37689
37690
37691
37692
37693
37694
37695
37696
37697
37698
37699
37700
37701
37702
37703
37704
37705
37706
37707
37708
37709
37710
37711
37712
37713
37714
37715
37716
37717
37718
37719
37720
37721
37722
37723
37724
37725
37726
37727
37728
37729
37730
37731
37732
37733
37734
37735
37736
37737
37738
37739
37740
37741
37742
37743
37744
37745
37746
37747
37748
37749
37750
37751
37752
37753
37754
37755
37756
37757
37758
37759
37760
37761
37762
37763
37764
37765
37766
37767
37768
37769
37770
37771
37772
37773
37774
37775
37776
37777
37778
37779
37780
37781
37782
37783
37784
37785
37786
37787
37788
37789
37790
37791
37792
37793
37794
37795
37796
37797
37798
37799
37800
37801
37802
37803
37804
37805
37806
37807
37808
37809
37810
37811
37812
37813
37814
37815
37816
37817
37818
37819
37820
37821
37822
37823
37824
37825
37826
37827
37828
37829
37830
37831
37832
37833
37834
37835
37836
37837
37838
37839
37840
37841
37842
37843
37844
37845
37846
37847
37848
37849
37850
37851
37852
37853
37854
37855
37856
37857
37858
37859
37860
37861
37862
37863
37864
37865
37866
37867
37868
37869
37870
37871
37872
37873
37874
37875
37876
37877
37878
37879
37880
37881
37882
37883
37884
37885
37886
37887
37888
37889
37890
37891
37892
37893
37894
37895
37896
37897
37898
37899
37900
37901
37902
37903
37904
37905
37906
37907
37908
37909
37910
37911
37912
37913
37914
37915
37916
37917
37918
37919
37920
37921
37922
37923
37924
37925
37926
37927
37928
37929
37930
37931
37932
37933
37934
37935
37936
37937
37938
37939
37940
37941
37942
37943
37944
37945
37946
37947
37948
37949
37950
37951
37952
37953
37954
37955
37956
37957
37958
37959
37960
37961
37962
37963
37964
37965
37966
37967
37968
37969
37970
37971
37972
37973
37974
37975
37976
37977
37978
37979
37980
37981
37982
37983
37984
37985
37986
37987
37988
37989
37990
37991
37992
37993
37994
37995
37996
37997
37998
37999
38000
38001
38002
38003
38004
38005
38006
38007
38008
38009
38010
38011
38012
38013
38014
38015
38016
38017
38018
38019
38020
38021
38022
38023
38024
38025
38026
38027
38028
38029
38030
38031
38032
38033
38034
38035
38036
38037
38038
38039
38040
38041
38042
38043
38044
38045
38046
38047
38048
38049
38050
38051
38052
38053
38054
38055
38056
38057
38058
38059
38060
38061
38062
38063
38064
38065
38066
38067
38068
38069
38070
38071
38072
38073
38074
38075
38076
38077
38078
38079
38080
38081
38082
38083
38084
38085
38086
38087
38088
38089
38090
38091
38092
38093
38094
38095
38096
38097
38098
38099
38100
38101
38102
38103
38104
38105
38106
38107
38108
38109
38110
38111
38112
38113
38114
38115
38116
38117
38118
38119
38120
38121
38122
38123
38124
38125
38126
38127
38128
38129
38130
38131
38132
38133
38134
38135
38136
38137
38138
38139
38140
38141
38142
38143
38144
38145
38146
38147
38148
38149
38150
38151
38152
38153
38154
38155
38156
38157
38158
38159
38160
38161
38162
38163
38164
38165
38166
38167
38168
38169
38170
38171
38172
38173
38174
38175
38176
38177
38178
38179
38180
38181
38182
38183
38184
38185
38186
38187
38188
38189
38190
38191
38192
38193
38194
38195
38196
38197
38198
38199
38200
38201
38202
38203
38204
38205
38206
38207
38208
38209
38210
38211
38212
38213
38214
38215
38216
38217
38218
38219
38220
38221
38222
38223
38224
38225
38226
38227
38228
38229
38230
38231
38232
38233
38234
38235
38236
38237
38238
38239
38240
38241
38242
38243
38244
38245
38246
38247
38248
38249
38250
38251
38252
38253
38254
38255
38256
38257
38258
38259
38260
38261
38262
38263
38264
38265
38266
38267
38268
38269
38270
38271
38272
38273
38274
38275
38276
38277
38278
38279
38280
38281
38282
38283
38284
38285
38286
38287
38288
38289
38290
38291
38292
38293
38294
38295
38296
38297
38298
38299
38300
38301
38302
38303
38304
38305
38306
38307
38308
38309
38310
38311
38312
38313
38314
38315
38316
38317
38318
38319
38320
38321
38322
38323
38324
38325
38326
38327
38328
38329
38330
38331
38332
38333
38334
38335
38336
38337
38338
38339
38340
38341
38342
38343
38344
38345
38346
38347
38348
38349
38350
38351
38352
38353
38354
38355
38356
38357
38358
38359
38360
38361
38362
38363
38364
38365
38366
38367
38368
38369
38370
38371
38372
38373
38374
38375
38376
38377
38378
38379
38380
38381
38382
38383
38384
38385
38386
38387
38388
38389
38390
38391
38392
38393
38394
38395
38396
38397
38398
38399
38400
38401
38402
38403
38404
38405
38406
38407
38408
38409
38410
38411
38412
38413
38414
38415
38416
38417
38418
38419
38420
38421
38422
38423
38424
38425
38426
38427
38428
38429
38430
38431
38432
38433
38434
38435
38436
38437
38438
38439
38440
38441
38442
38443
38444
38445
38446
38447
38448
38449
38450
38451
38452
38453
38454
38455
38456
38457
38458
38459
38460
38461
38462
38463
38464
38465
38466
38467
38468
38469
38470
38471
38472
38473
38474
38475
38476
38477
38478
38479
38480
38481
38482
38483
38484
38485
38486
38487
38488
38489
38490
38491
38492
38493
38494
38495
38496
38497
38498
38499
38500
38501
38502
38503
38504
38505
38506
38507
38508
38509
38510
38511
38512
38513
38514
38515
38516
38517
38518
38519
38520
38521
38522
38523
38524
38525
38526
38527
38528
38529
38530
38531
38532
38533
38534
38535
38536
38537
38538
38539
38540
38541
38542
38543
38544
38545
38546
38547
38548
38549
38550
38551
38552
38553
38554
38555
38556
38557
38558
38559
38560
38561
38562
38563
38564
38565
38566
38567
38568
38569
38570
38571
38572
38573
38574
38575
38576
38577
38578
38579
38580
38581
38582
38583
38584
38585
38586
38587
38588
38589
38590
38591
38592
38593
38594
38595
38596
38597
38598
38599
38600
38601
38602
38603
38604
38605
38606
38607
38608
38609
38610
38611
38612
38613
38614
38615
38616
38617
38618
38619
38620
38621
38622
38623
38624
38625
38626
38627
38628
38629
38630
38631
38632
38633
38634
38635
38636
38637
38638
38639
38640
38641
38642
38643
38644
38645
38646
38647
38648
38649
38650
38651
38652
38653
38654
38655
38656
38657
38658
38659
38660
38661
38662
38663
38664
38665
38666
38667
38668
38669
38670
38671
38672
38673
38674
38675
38676
38677
38678
38679
38680
38681
38682
38683
38684
38685
38686
38687
38688
38689
38690
38691
38692
38693
38694
38695
38696
38697
38698
38699
38700
38701
38702
38703
38704
38705
38706
38707
38708
38709
38710
38711
38712
38713
38714
38715
38716
38717
38718
38719
38720
38721
38722
38723
38724
38725
38726
38727
38728
38729
38730
38731
38732
38733
38734
38735
38736
38737
38738
38739
38740
38741
38742
38743
38744
38745
38746
38747
38748
38749
38750
38751
38752
38753
38754
38755
38756
38757
38758
38759
38760
38761
38762
38763
38764
38765
38766
38767
38768
38769
38770
38771
38772
38773
38774
38775
38776
38777
38778
38779
38780
38781
38782
38783
38784
38785
38786
38787
38788
38789
38790
38791
38792
38793
38794
38795
38796
38797
38798
38799
38800
38801
38802
38803
38804
38805
38806
38807
38808
38809
38810
38811
38812
38813
38814
38815
38816
38817
38818
38819
38820
38821
38822
38823
38824
38825
38826
38827
38828
38829
38830
38831
38832
38833
38834
38835
38836
38837
38838
38839
38840
38841
38842
38843
38844
38845
38846
38847
38848
38849
38850
38851
38852
38853
38854
38855
38856
38857
38858
38859
38860
38861
38862
38863
38864
38865
38866
38867
38868
38869
38870
38871
38872
38873
38874
38875
38876
38877
38878
38879
38880
38881
38882
38883
38884
38885
38886
38887
38888
38889
38890
38891
38892
38893
38894
38895
38896
38897
38898
38899
38900
38901
38902
38903
38904
38905
38906
38907
38908
38909
38910
38911
38912
38913
38914
38915
38916
38917
38918
38919
38920
38921
38922
38923
38924
38925
38926
38927
38928
38929
38930
38931
38932
38933
38934
38935
38936
38937
38938
38939
38940
38941
38942
38943
38944
38945
38946
38947
38948
38949
38950
38951
38952
38953
38954
38955
38956
38957
38958
38959
38960
38961
38962
38963
38964
38965
38966
38967
38968
38969
38970
38971
38972
38973
38974
38975
38976
38977
38978
38979
38980
38981
38982
38983
38984
38985
38986
38987
38988
38989
38990
38991
38992
38993
38994
38995
38996
38997
38998
38999
39000
39001
39002
39003
39004
39005
39006
39007
39008
39009
39010
39011
39012
39013
39014
39015
39016
39017
39018
39019
39020
39021
39022
39023
39024
39025
39026
39027
39028
39029
39030
39031
39032
39033
39034
39035
39036
39037
39038
39039
39040
39041
39042
39043
39044
39045
39046
39047
39048
39049
39050
39051
39052
39053
39054
39055
39056
39057
39058
39059
39060
39061
39062
39063
39064
39065
39066
39067
39068
39069
39070
39071
39072
39073
39074
39075
39076
39077
39078
39079
39080
39081
39082
39083
39084
39085
39086
39087
39088
39089
39090
39091
39092
39093
39094
39095
39096
39097
39098
39099
39100
39101
39102
39103
39104
39105
39106
39107
39108
39109
39110
39111
39112
39113
39114
39115
39116
39117
39118
39119
39120
39121
39122
39123
39124
39125
39126
39127
39128
39129
39130
39131
39132
39133
39134
39135
39136
39137
39138
39139
39140
39141
39142
39143
39144
39145
39146
39147
39148
39149
39150
39151
39152
39153
39154
39155
39156
39157
39158
39159
39160
39161
39162
39163
39164
39165
39166
39167
39168
39169
39170
39171
39172
39173
39174
39175
39176
39177
39178
39179
39180
39181
39182
39183
39184
39185
39186
39187
39188
39189
39190
39191
39192
39193
39194
39195
39196
39197
39198
39199
39200
39201
39202
39203
39204
39205
39206
39207
39208
39209
39210
39211
39212
39213
39214
39215
39216
39217
39218
39219
39220
39221
39222
39223
39224
39225
39226
39227
39228
39229
39230
39231
39232
39233
39234
39235
39236
39237
39238
39239
39240
39241
39242
39243
39244
39245
39246
39247
39248
39249
39250
39251
39252
39253
39254
39255
39256
39257
39258
39259
39260
39261
39262
39263
39264
39265
39266
39267
39268
39269
39270
39271
39272
39273
39274
39275
39276
39277
39278
39279
39280
39281
39282
39283
39284
39285
39286
39287
39288
39289
39290
39291
39292
39293
39294
39295
39296
39297
39298
39299
39300
39301
39302
39303
39304
39305
39306
39307
39308
39309
39310
39311
39312
39313
39314
39315
39316
39317
39318
39319
39320
39321
39322
39323
39324
39325
39326
39327
39328
39329
39330
39331
39332
39333
39334
39335
39336
39337
39338
39339
39340
39341
39342
39343
39344
39345
39346
39347
39348
39349
39350
39351
39352
39353
39354
39355
39356
39357
39358
39359
39360
39361
39362
39363
39364
39365
39366
39367
39368
39369
39370
39371
39372
39373
39374
39375
39376
39377
39378
39379
39380
39381
39382
39383
39384
39385
39386
39387
39388
39389
39390
39391
39392
39393
39394
39395
39396
39397
39398
39399
39400
39401
39402
39403
39404
39405
39406
39407
39408
39409
39410
39411
39412
39413
39414
39415
39416
39417
39418
39419
39420
39421
39422
39423
39424
39425
39426
39427
39428
39429
39430
39431
39432
39433
39434
39435
39436
39437
39438
39439
39440
39441
39442
39443
39444
39445
39446
39447
39448
39449
39450
39451
39452
39453
39454
39455
39456
39457
39458
39459
39460
39461
39462
39463
39464
39465
39466
39467
39468
39469
39470
39471
39472
39473
39474
39475
39476
39477
39478
39479
39480
39481
39482
39483
39484
39485
39486
39487
39488
39489
39490
39491
39492
39493
39494
39495
39496
39497
39498
39499
39500
39501
39502
39503
39504
39505
39506
39507
39508
39509
39510
39511
39512
39513
39514
39515
39516
39517
39518
39519
39520
39521
39522
39523
39524
39525
39526
39527
39528
39529
39530
39531
39532
39533
39534
39535
39536
39537
39538
39539
39540
39541
39542
39543
39544
39545
39546
39547
39548
39549
39550
39551
39552
39553
39554
39555
39556
39557
39558
39559
39560
39561
39562
39563
39564
39565
39566
39567
39568
39569
39570
39571
39572
39573
39574
39575
39576
39577
39578
39579
39580
39581
39582
39583
39584
39585
39586
39587
39588
39589
39590
39591
39592
39593
39594
39595
39596
39597
39598
39599
39600
39601
39602
39603
39604
39605
39606
39607
39608
39609
39610
39611
39612
39613
39614
39615
39616
39617
39618
39619
39620
39621
39622
39623
39624
39625
39626
39627
39628
39629
39630
39631
39632
39633
39634
39635
39636
39637
39638
39639
39640
39641
39642
39643
39644
39645
39646
39647
39648
39649
39650
39651
39652
39653
39654
39655
39656
39657
39658
39659
39660
39661
39662
39663
39664
39665
39666
39667
39668
39669
39670
39671
39672
39673
39674
39675
39676
39677
39678
39679
39680
39681
39682
39683
39684
39685
39686
39687
39688
39689
39690
39691
39692
39693
39694
39695
39696
39697
39698
39699
39700
39701
39702
39703
39704
39705
39706
39707
39708
39709
39710
39711
39712
39713
39714
39715
39716
39717
39718
39719
39720
39721
39722
39723
39724
39725
39726
39727
39728
39729
39730
39731
39732
39733
39734
39735
39736
39737
39738
39739
39740
39741
39742
39743
39744
39745
39746
39747
39748
39749
39750
39751
39752
39753
39754
39755
39756
39757
39758
39759
39760
39761
39762
39763
39764
39765
39766
39767
39768
39769
39770
39771
39772
39773
39774
39775
39776
39777
39778
39779
39780
39781
39782
39783
39784
39785
39786
39787
39788
39789
39790
39791
39792
39793
39794
39795
39796
39797
39798
39799
39800
39801
39802
39803
39804
39805
39806
39807
39808
39809
39810
39811
39812
39813
39814
39815
39816
39817
39818
39819
39820
39821
39822
39823
39824
39825
39826
39827
39828
39829
39830
39831
39832
39833
39834
39835
39836
39837
39838
39839
39840
39841
39842
39843
39844
39845
39846
39847
39848
39849
39850
39851
39852
39853
39854
39855
39856
39857
39858
39859
39860
39861
39862
39863
39864
39865
39866
39867
39868
39869
39870
39871
39872
39873
39874
39875
39876
39877
39878
39879
39880
39881
39882
39883
39884
39885
39886
39887
39888
39889
39890
39891
39892
39893
39894
39895
39896
39897
39898
39899
39900
39901
39902
39903
39904
39905
39906
39907
39908
39909
39910
39911
39912
39913
39914
39915
39916
39917
39918
39919
39920
39921
39922
39923
39924
39925
39926
39927
39928
39929
39930
39931
39932
39933
39934
39935
39936
39937
39938
39939
39940
39941
39942
39943
39944
39945
39946
39947
39948
39949
39950
39951
39952
39953
39954
39955
39956
39957
39958
39959
39960
39961
39962
39963
39964
39965
39966
39967
39968
39969
39970
39971
39972
39973
39974
39975
39976
39977
39978
39979
39980
39981
39982
39983
39984
39985
39986
39987
39988
39989
39990
39991
39992
39993
39994
39995
39996
39997
39998
39999
40000
40001
40002
40003
40004
40005
40006
40007
40008
40009
40010
40011
40012
40013
40014
40015
40016
40017
40018
40019
40020
40021
40022
40023
40024
40025
40026
40027
40028
40029
40030
40031
40032
40033
40034
40035
40036
40037
40038
40039
40040
40041
40042
40043
40044
40045
40046
40047
40048
40049
40050
40051
40052
40053
40054
40055
40056
40057
40058
40059
40060
40061
40062
40063
40064
40065
40066
40067
40068
40069
40070
40071
40072
40073
40074
40075
40076
40077
40078
40079
40080
40081
40082
40083
40084
40085
40086
40087
40088
40089
40090
40091
40092
40093
40094
40095
40096
40097
40098
40099
40100
40101
40102
40103
40104
40105
40106
40107
40108
40109
40110
40111
40112
40113
40114
40115
40116
40117
40118
40119
40120
40121
40122
40123
40124
40125
40126
40127
40128
40129
40130
40131
40132
40133
40134
40135
40136
40137
40138
40139
40140
40141
40142
40143
40144
40145
40146
40147
40148
40149
40150
40151
40152
40153
40154
40155
40156
40157
40158
40159
40160
40161
40162
40163
40164
40165
40166
40167
40168
40169
40170
40171
40172
40173
40174
40175
40176
40177
40178
40179
40180
40181
40182
40183
40184
40185
40186
40187
40188
40189
40190
40191
40192
40193
40194
40195
40196
40197
40198
40199
40200
40201
40202
40203
40204
40205
40206
40207
40208
40209
40210
40211
40212
40213
40214
40215
40216
40217
40218
40219
40220
40221
40222
40223
40224
40225
40226
40227
40228
40229
40230
40231
40232
40233
40234
40235
40236
40237
40238
40239
40240
40241
40242
40243
40244
40245
40246
40247
40248
40249
40250
40251
40252
40253
40254
40255
40256
40257
40258
40259
40260
40261
40262
40263
40264
40265
40266
40267
40268
40269
40270
40271
40272
40273
40274
40275
40276
40277
40278
40279
40280
40281
40282
40283
40284
40285
40286
40287
40288
40289
40290
40291
40292
40293
40294
40295
40296
40297
40298
40299
40300
40301
40302
40303
40304
40305
40306
40307
40308
40309
40310
40311
40312
40313
40314
40315
40316
40317
40318
40319
40320
40321
40322
40323
40324
40325
40326
40327
40328
40329
40330
40331
40332
40333
40334
40335
40336
40337
40338
40339
40340
40341
40342
40343
40344
40345
40346
40347
40348
40349
40350
40351
40352
40353
40354
40355
40356
40357
40358
40359
40360
40361
40362
40363
40364
40365
40366
40367
40368
40369
40370
40371
40372
40373
40374
40375
40376
40377
40378
40379
40380
40381
40382
40383
40384
40385
40386
40387
40388
40389
40390
40391
40392
40393
40394
40395
40396
40397
40398
40399
40400
40401
40402
40403
40404
40405
40406
40407
40408
40409
40410
40411
40412
40413
40414
40415
40416
40417
40418
40419
40420
40421
40422
40423
40424
40425
40426
40427
40428
40429
40430
40431
40432
40433
40434
40435
40436
40437
40438
40439
40440
40441
40442
40443
40444
40445
40446
40447
40448
40449
40450
40451
40452
40453
40454
40455
40456
40457
40458
40459
40460
40461
40462
40463
40464
40465
40466
40467
40468
40469
40470
40471
40472
40473
40474
40475
40476
40477
40478
40479
40480
40481
40482
40483
40484
40485
40486
40487
40488
40489
40490
40491
40492
40493
40494
40495
40496
40497
40498
40499
40500
40501
40502
40503
40504
40505
40506
40507
40508
40509
40510
40511
40512
40513
40514
40515
40516
40517
40518
40519
40520
40521
40522
40523
40524
40525
40526
40527
40528
40529
40530
40531
40532
40533
40534
40535
40536
40537
40538
40539
40540
40541
40542
40543
40544
40545
40546
40547
40548
40549
40550
40551
40552
40553
40554
40555
40556
40557
40558
40559
40560
40561
40562
40563
40564
40565
40566
40567
40568
40569
40570
40571
40572
40573
40574
40575
40576
40577
40578
40579
40580
40581
40582
40583
40584
40585
40586
40587
40588
40589
40590
40591
40592
40593
40594
40595
40596
40597
40598
40599
40600
40601
40602
40603
40604
40605
40606
40607
40608
40609
40610
40611
40612
40613
40614
40615
40616
40617
40618
40619
40620
40621
40622
40623
40624
40625
40626
40627
40628
40629
40630
40631
40632
40633
40634
40635
40636
40637
40638
40639
40640
40641
40642
40643
40644
40645
40646
40647
40648
40649
40650
40651
40652
40653
40654
40655
40656
40657
40658
40659
40660
40661
40662
40663
40664
40665
40666
40667
40668
40669
40670
40671
40672
40673
40674
40675
40676
40677
40678
40679
40680
40681
40682
40683
40684
40685
40686
40687
40688
40689
40690
40691
40692
40693
40694
40695
40696
40697
40698
40699
40700
40701
40702
40703
40704
40705
40706
40707
40708
40709
40710
40711
40712
40713
40714
40715
40716
40717
40718
40719
40720
40721
40722
40723
40724
40725
40726
40727
40728
40729
40730
40731
40732
40733
40734
40735
40736
40737
40738
40739
40740
40741
40742
40743
40744
40745
40746
40747
40748
40749
40750
40751
40752
40753
40754
40755
40756
40757
40758
40759
40760
40761
40762
40763
40764
40765
40766
40767
40768
40769
40770
40771
40772
40773
40774
40775
40776
40777
40778
40779
40780
40781
40782
40783
40784
40785
40786
40787
40788
40789
40790
40791
40792
40793
40794
40795
40796
40797
40798
40799
40800
40801
40802
40803
40804
40805
40806
40807
40808
40809
40810
40811
40812
40813
40814
40815
40816
40817
40818
40819
40820
40821
40822
40823
40824
40825
40826
40827
40828
40829
40830
40831
40832
40833
40834
40835
40836
40837
40838
40839
40840
40841
40842
40843
40844
40845
40846
40847
40848
40849
40850
40851
40852
40853
40854
40855
40856
40857
40858
40859
40860
40861
40862
40863
40864
40865
40866
40867
40868
40869
40870
40871
40872
40873
40874
40875
40876
40877
40878
40879
40880
40881
40882
40883
40884
40885
40886
40887
40888
40889
40890
40891
40892
40893
40894
40895
40896
40897
40898
40899
40900
40901
40902
40903
40904
40905
40906
40907
40908
40909
40910
40911
40912
40913
40914
40915
40916
40917
40918
40919
40920
40921
40922
40923
40924
40925
40926
40927
40928
40929
40930
40931
40932
40933
40934
40935
40936
40937
40938
40939
40940
40941
40942
40943
40944
40945
40946
40947
40948
40949
40950
40951
40952
40953
40954
40955
40956
40957
40958
40959
40960
40961
40962
40963
40964
40965
40966
40967
40968
40969
40970
40971
40972
40973
40974
40975
40976
40977
40978
40979
40980
40981
40982
40983
40984
40985
40986
40987
40988
40989
40990
40991
40992
40993
40994
40995
40996
40997
40998
40999
41000
41001
41002
41003
41004
41005
41006
41007
41008
41009
41010
41011
41012
41013
41014
41015
41016
41017
41018
41019
41020
41021
41022
41023
41024
41025
41026
41027
41028
41029
41030
41031
41032
41033
41034
41035
41036
41037
41038
41039
41040
41041
41042
41043
41044
41045
41046
41047
41048
41049
41050
41051
41052
41053
41054
41055
41056
41057
41058
41059
41060
41061
41062
41063
41064
41065
41066
41067
41068
41069
41070
41071
41072
41073
41074
41075
41076
41077
41078
41079
41080
41081
41082
41083
41084
41085
41086
41087
41088
41089
41090
41091
41092
41093
41094
41095
41096
41097
41098
41099
41100
41101
41102
41103
41104
41105
41106
41107
41108
41109
41110
41111
41112
41113
41114
41115
41116
41117
41118
41119
41120
41121
41122
41123
41124
41125
41126
41127
41128
41129
41130
41131
41132
41133
41134
41135
41136
41137
41138
41139
41140
41141
41142
41143
41144
41145
41146
41147
41148
41149
41150
41151
41152
41153
41154
41155
41156
41157
41158
41159
41160
41161
41162
41163
41164
41165
41166
41167
41168
41169
41170
41171
41172
41173
41174
41175
41176
41177
41178
41179
41180
41181
41182
41183
41184
41185
41186
41187
41188
41189
41190
41191
41192
41193
41194
41195
41196
41197
41198
41199
41200
41201
41202
41203
41204
41205
41206
41207
41208
41209
41210
41211
41212
41213
41214
41215
41216
41217
41218
41219
41220
41221
41222
41223
41224
41225
41226
41227
41228
41229
41230
41231
41232
41233
41234
41235
41236
41237
41238
41239
41240
41241
41242
41243
41244
41245
41246
41247
41248
41249
41250
41251
41252
41253
41254
41255
41256
41257
41258
41259
41260
41261
41262
41263
41264
41265
41266
41267
41268
41269
41270
41271
41272
41273
41274
41275
41276
41277
41278
41279
41280
41281
41282
41283
41284
41285
41286
41287
41288
41289
41290
41291
41292
41293
41294
41295
41296
41297
41298
41299
41300
41301
41302
41303
41304
41305
41306
41307
41308
41309
41310
41311
41312
41313
41314
41315
41316
41317
41318
41319
41320
41321
41322
41323
41324
41325
41326
41327
41328
41329
41330
41331
41332
41333
41334
41335
41336
41337
41338
41339
41340
41341
41342
41343
41344
41345
41346
41347
41348
41349
41350
41351
41352
41353
41354
41355
41356
41357
41358
41359
41360
41361
41362
41363
41364
41365
41366
41367
41368
41369
41370
41371
41372
41373
41374
41375
41376
41377
41378
41379
41380
41381
41382
41383
41384
41385
41386
41387
41388
41389
41390
41391
41392
41393
41394
41395
41396
41397
41398
41399
41400
41401
41402
41403
41404
41405
41406
41407
41408
41409
41410
41411
41412
41413
41414
41415
41416
41417
41418
41419
41420
41421
41422
41423
41424
41425
41426
41427
41428
41429
41430
41431
41432
41433
41434
41435
41436
41437
41438
41439
41440
41441
41442
41443
41444
41445
41446
41447
41448
41449
41450
41451
41452
41453
41454
41455
41456
41457
41458
41459
41460
41461
41462
41463
41464
41465
41466
41467
41468
41469
41470
41471
41472
41473
41474
41475
41476
41477
41478
41479
41480
41481
41482
41483
41484
41485
41486
41487
41488
41489
41490
41491
41492
41493
41494
41495
41496
41497
41498
41499
41500
41501
41502
41503
41504
41505
41506
41507
41508
41509
41510
41511
41512
41513
41514
41515
41516
41517
41518
41519
41520
41521
41522
41523
41524
41525
41526
41527
41528
41529
41530
41531
41532
41533
41534
41535
41536
41537
41538
41539
41540
41541
41542
41543
41544
41545
41546
41547
41548
41549
41550
41551
41552
41553
41554
41555
41556
41557
41558
41559
41560
41561
41562
41563
41564
41565
41566
41567
41568
41569
41570
41571
41572
41573
41574
41575
41576
41577
41578
41579
41580
41581
41582
41583
41584
41585
41586
41587
41588
41589
41590
41591
41592
41593
41594
41595
41596
41597
41598
41599
41600
41601
41602
41603
41604
41605
41606
41607
41608
41609
41610
41611
41612
41613
41614
41615
41616
41617
41618
41619
41620
41621
41622
41623
41624
41625
41626
41627
41628
41629
41630
41631
41632
41633
41634
41635
41636
41637
41638
41639
41640
41641
41642
41643
41644
41645
41646
41647
41648
41649
41650
41651
41652
41653
41654
41655
41656
41657
41658
41659
41660
41661
41662
41663
41664
41665
41666
41667
41668
41669
41670
41671
41672
41673
41674
41675
41676
41677
41678
41679
41680
41681
41682
41683
41684
41685
41686
41687
41688
41689
41690
41691
41692
41693
41694
41695
41696
41697
41698
41699
41700
41701
41702
41703
41704
41705
41706
41707
41708
41709
41710
41711
41712
41713
41714
41715
41716
41717
41718
41719
41720
41721
41722
41723
41724
41725
41726
41727
41728
41729
41730
41731
41732
41733
41734
41735
41736
41737
41738
41739
41740
41741
41742
41743
41744
41745
41746
41747
41748
41749
41750
41751
41752
41753
41754
41755
41756
41757
41758
41759
41760
41761
41762
41763
41764
41765
41766
41767
41768
41769
41770
41771
41772
41773
41774
41775
41776
41777
41778
41779
41780
41781
41782
41783
41784
41785
41786
41787
41788
41789
41790
41791
41792
41793
41794
41795
41796
41797
41798
41799
41800
41801
41802
41803
41804
41805
41806
41807
41808
41809
41810
41811
41812
41813
41814
41815
41816
41817
41818
41819
41820
41821
41822
41823
41824
41825
41826
41827
41828
41829
41830
41831
41832
41833
41834
41835
41836
41837
41838
41839
41840
41841
41842
41843
41844
41845
41846
41847
41848
41849
41850
41851
41852
41853
41854
41855
41856
41857
41858
41859
41860
41861
41862
41863
41864
41865
41866
41867
41868
41869
41870
41871
41872
41873
41874
41875
41876
41877
41878
41879
41880
41881
41882
41883
41884
41885
41886
41887
41888
41889
41890
41891
41892
41893
41894
41895
41896
41897
41898
41899
41900
41901
41902
41903
41904
41905
41906
41907
41908
41909
41910
41911
41912
41913
41914
41915
41916
41917
41918
41919
41920
41921
41922
41923
41924
41925
41926
41927
41928
41929
41930
41931
41932
41933
41934
41935
41936
41937
41938
41939
41940
41941
41942
41943
41944
41945
41946
41947
41948
41949
41950
41951
41952
41953
41954
41955
41956
41957
41958
41959
41960
41961
41962
41963
41964
41965
41966
41967
41968
41969
41970
41971
41972
41973
41974
41975
41976
41977
41978
41979
41980
41981
41982
41983
41984
41985
41986
41987
41988
41989
41990
41991
41992
41993
41994
41995
41996
41997
41998
41999
42000
42001
42002
42003
42004
42005
42006
42007
42008
42009
42010
42011
42012
42013
42014
42015
42016
42017
42018
42019
42020
42021
42022
42023
42024
42025
42026
42027
42028
42029
42030
42031
42032
42033
42034
42035
42036
42037
42038
42039
42040
42041
42042
42043
42044
42045
42046
42047
42048
42049
42050
42051
42052
42053
42054
42055
42056
42057
42058
42059
42060
42061
42062
42063
42064
42065
42066
42067
42068
42069
42070
42071
42072
42073
42074
42075
42076
42077
42078
42079
42080
42081
42082
42083
42084
42085
42086
42087
42088
42089
42090
42091
42092
42093
42094
42095
42096
42097
42098
42099
42100
42101
42102
42103
42104
42105
42106
42107
42108
42109
42110
42111
42112
42113
42114
42115
42116
42117
42118
42119
42120
42121
42122
42123
42124
42125
42126
42127
42128
42129
42130
42131
42132
42133
42134
42135
42136
42137
42138
42139
42140
42141
42142
42143
42144
42145
42146
42147
42148
42149
42150
42151
42152
42153
42154
42155
42156
42157
42158
42159
42160
42161
42162
42163
42164
42165
42166
42167
42168
42169
42170
42171
42172
42173
42174
42175
42176
42177
42178
42179
42180
42181
42182
42183
42184
42185
42186
42187
42188
42189
42190
42191
42192
42193
42194
42195
42196
42197
42198
42199
42200
42201
42202
42203
42204
42205
42206
42207
42208
42209
42210
42211
42212
42213
42214
42215
42216
42217
42218
42219
42220
42221
42222
42223
42224
42225
42226
42227
42228
42229
42230
42231
42232
42233
42234
42235
42236
42237
42238
42239
42240
42241
42242
42243
42244
42245
42246
42247
42248
42249
42250
42251
42252
42253
42254
42255
42256
42257
42258
42259
42260
42261
42262
42263
42264
42265
42266
42267
42268
42269
42270
42271
42272
42273
42274
42275
42276
42277
42278
42279
42280
42281
42282
42283
42284
42285
42286
42287
42288
42289
42290
42291
42292
42293
42294
42295
42296
42297
42298
42299
42300
42301
42302
42303
42304
42305
42306
42307
42308
42309
42310
42311
42312
42313
42314
42315
42316
42317
42318
42319
42320
42321
42322
42323
42324
42325
42326
42327
42328
42329
42330
42331
42332
42333
42334
42335
42336
42337
42338
42339
42340
42341
42342
42343
42344
42345
42346
42347
42348
42349
42350
42351
42352
42353
42354
42355
42356
42357
42358
42359
42360
42361
42362
42363
42364
42365
42366
42367
42368
42369
42370
42371
42372
42373
42374
42375
42376
42377
42378
42379
42380
42381
42382
42383
42384
42385
42386
42387
42388
42389
42390
42391
42392
42393
42394
42395
42396
42397
42398
42399
42400
42401
42402
42403
42404
42405
42406
42407
42408
42409
42410
42411
42412
42413
42414
42415
42416
42417
42418
42419
42420
42421
42422
42423
42424
42425
42426
42427
42428
42429
42430
42431
42432
42433
42434
42435
42436
42437
42438
42439
42440
42441
42442
42443
42444
42445
42446
42447
42448
42449
42450
42451
42452
42453
42454
42455
42456
42457
42458
42459
42460
42461
42462
42463
42464
42465
42466
42467
42468
42469
42470
42471
42472
42473
42474
42475
42476
42477
42478
42479
42480
42481
42482
42483
42484
42485
42486
42487
42488
42489
42490
42491
42492
42493
42494
42495
42496
42497
42498
42499
42500
42501
42502
42503
42504
42505
42506
42507
42508
42509
42510
42511
42512
42513
42514
42515
42516
42517
42518
42519
42520
42521
42522
42523
42524
42525
42526
42527
42528
42529
42530
42531
42532
42533
42534
42535
42536
42537
42538
42539
42540
42541
42542
42543
42544
42545
42546
42547
42548
42549
42550
42551
42552
42553
42554
42555
42556
42557
42558
42559
42560
42561
42562
42563
42564
42565
42566
42567
42568
42569
42570
42571
42572
42573
42574
42575
42576
42577
42578
42579
42580
42581
42582
42583
42584
42585
42586
42587
42588
42589
42590
42591
42592
42593
42594
42595
42596
42597
42598
42599
42600
42601
42602
42603
42604
42605
42606
42607
42608
42609
42610
42611
42612
42613
42614
42615
42616
42617
42618
42619
42620
42621
42622
42623
42624
42625
42626
42627
42628
42629
42630
42631
42632
42633
42634
42635
42636
42637
42638
42639
42640
42641
42642
42643
42644
42645
42646
42647
42648
42649
42650
42651
42652
42653
42654
42655
42656
42657
42658
42659
42660
42661
42662
42663
42664
42665
42666
42667
42668
42669
42670
42671
42672
42673
42674
42675
42676
42677
42678
42679
42680
42681
42682
42683
42684
42685
42686
42687
42688
42689
42690
42691
42692
42693
42694
42695
42696
42697
42698
42699
42700
42701
42702
42703
42704
42705
42706
42707
42708
42709
42710
42711
42712
42713
42714
42715
42716
42717
42718
42719
42720
42721
42722
42723
42724
42725
42726
42727
42728
42729
42730
42731
42732
42733
42734
42735
42736
42737
42738
42739
42740
42741
42742
42743
42744
42745
42746
42747
42748
42749
42750
42751
42752
42753
42754
42755
42756
42757
42758
42759
42760
42761
42762
42763
42764
42765
42766
42767
42768
42769
42770
42771
42772
42773
42774
42775
42776
42777
42778
42779
42780
42781
42782
42783
42784
42785
42786
42787
42788
42789
42790
42791
42792
42793
42794
42795
42796
42797
42798
42799
42800
42801
42802
42803
42804
42805
42806
42807
42808
42809
42810
42811
42812
42813
42814
42815
42816
42817
42818
42819
42820
42821
42822
42823
42824
42825
42826
42827
42828
42829
42830
42831
42832
42833
42834
42835
42836
42837
42838
42839
42840
42841
42842
42843
42844
42845
42846
42847
42848
42849
42850
42851
42852
42853
42854
42855
42856
42857
42858
42859
42860
42861
42862
42863
42864
42865
42866
42867
42868
42869
42870
42871
42872
42873
42874
42875
42876
42877
42878
42879
42880
42881
42882
42883
42884
42885
42886
42887
42888
42889
42890
42891
42892
42893
42894
42895
42896
42897
42898
42899
42900
42901
42902
42903
42904
42905
42906
42907
42908
42909
42910
42911
42912
42913
42914
42915
42916
42917
42918
42919
42920
42921
42922
42923
42924
42925
42926
42927
42928
42929
42930
42931
42932
42933
42934
42935
42936
42937
42938
42939
42940
42941
42942
42943
42944
42945
42946
42947
42948
42949
42950
42951
42952
42953
42954
42955
42956
42957
42958
42959
42960
42961
42962
42963
42964
42965
42966
42967
42968
42969
42970
42971
42972
42973
42974
42975
42976
42977
42978
42979
42980
42981
42982
42983
42984
42985
42986
42987
42988
42989
42990
42991
42992
42993
42994
42995
42996
42997
42998
42999
43000
43001
43002
43003
43004
43005
43006
43007
43008
43009
43010
43011
43012
43013
43014
43015
43016
43017
43018
43019
43020
43021
43022
43023
43024
43025
43026
43027
43028
43029
43030
43031
43032
43033
43034
43035
43036
43037
43038
43039
43040
43041
43042
43043
43044
43045
43046
43047
43048
43049
43050
43051
43052
43053
43054
43055
43056
43057
43058
43059
43060
43061
43062
43063
43064
43065
43066
43067
43068
43069
43070
43071
43072
43073
43074
43075
43076
43077
43078
43079
43080
43081
43082
43083
43084
43085
43086
43087
43088
43089
43090
43091
43092
43093
43094
43095
43096
43097
43098
43099
43100
43101
43102
43103
43104
43105
43106
43107
43108
43109
43110
43111
43112
43113
43114
43115
43116
43117
43118
43119
43120
43121
43122
43123
43124
43125
43126
43127
43128
43129
43130
43131
43132
43133
43134
43135
43136
43137
43138
43139
43140
43141
43142
43143
43144
43145
43146
43147
43148
43149
43150
43151
43152
43153
43154
43155
43156
43157
43158
43159
43160
43161
43162
43163
43164
43165
43166
43167
43168
43169
43170
43171
43172
43173
43174
43175
43176
43177
43178
43179
43180
43181
43182
43183
43184
43185
43186
43187
43188
43189
43190
43191
43192
43193
43194
43195
43196
43197
43198
43199
43200
43201
43202
43203
43204
43205
43206
43207
43208
43209
43210
43211
43212
43213
43214
43215
43216
43217
43218
43219
43220
43221
43222
43223
43224
43225
43226
43227
43228
43229
43230
43231
43232
43233
43234
43235
43236
43237
43238
43239
43240
43241
43242
43243
43244
43245
43246
43247
43248
43249
43250
43251
43252
43253
43254
43255
43256
43257
43258
43259
43260
43261
43262
43263
43264
43265
43266
43267
43268
43269
43270
43271
43272
43273
43274
43275
43276
43277
43278
43279
43280
43281
43282
43283
43284
43285
43286
43287
43288
43289
43290
43291
43292
43293
43294
43295
43296
43297
43298
43299
43300
43301
43302
43303
43304
43305
43306
43307
43308
43309
43310
43311
43312
43313
43314
43315
43316
43317
43318
43319
43320
43321
43322
43323
43324
43325
43326
43327
43328
43329
43330
43331
43332
43333
43334
43335
43336
43337
43338
43339
43340
43341
43342
43343
43344
43345
43346
43347
43348
43349
43350
43351
43352
43353
43354
43355
43356
43357
43358
43359
43360
43361
43362
43363
43364
43365
43366
43367
43368
43369
43370
43371
43372
43373
43374
43375
43376
43377
43378
43379
43380
43381
43382
43383
43384
43385
43386
43387
43388
43389
43390
43391
43392
43393
43394
43395
43396
43397
43398
43399
43400
43401
43402
43403
43404
43405
43406
43407
43408
43409
43410
43411
43412
43413
43414
43415
43416
43417
43418
43419
43420
43421
43422
43423
43424
43425
43426
43427
43428
43429
43430
43431
43432
43433
43434
43435
43436
43437
43438
43439
43440
43441
43442
43443
43444
43445
43446
43447
43448
43449
43450
43451
43452
43453
43454
43455
43456
43457
43458
43459
43460
43461
43462
43463
43464
43465
43466
43467
43468
43469
43470
43471
43472
43473
43474
43475
43476
43477
43478
43479
43480
43481
43482
43483
43484
43485
43486
43487
43488
43489
43490
43491
43492
43493
43494
43495
43496
43497
43498
43499
43500
43501
43502
43503
43504
43505
43506
43507
43508
43509
43510
43511
43512
43513
43514
43515
43516
43517
43518
43519
43520
43521
43522
43523
43524
43525
43526
43527
43528
43529
43530
43531
43532
43533
43534
43535
43536
43537
43538
43539
43540
43541
43542
43543
43544
43545
43546
43547
43548
43549
43550
43551
43552
43553
43554
43555
43556
43557
43558
43559
43560
43561
43562
43563
43564
43565
43566
43567
43568
43569
43570
43571
43572
43573
43574
43575
43576
43577
43578
43579
43580
43581
43582
43583
43584
43585
43586
43587
43588
43589
43590
43591
43592
43593
43594
43595
43596
43597
43598
43599
43600
43601
43602
43603
43604
43605
43606
43607
43608
43609
43610
43611
43612
43613
43614
43615
43616
43617
43618
43619
43620
43621
43622
43623
43624
43625
43626
43627
43628
43629
43630
43631
43632
43633
43634
43635
43636
43637
43638
43639
43640
43641
43642
43643
43644
43645
43646
43647
43648
43649
43650
43651
43652
43653
43654
43655
43656
43657
43658
43659
43660
43661
43662
43663
43664
43665
43666
43667
43668
43669
43670
43671
43672
43673
43674
43675
43676
43677
43678
43679
43680
43681
43682
43683
43684
43685
43686
43687
43688
43689
43690
43691
43692
43693
43694
43695
43696
43697
43698
43699
43700
43701
43702
43703
43704
43705
43706
43707
43708
43709
43710
43711
43712
43713
43714
43715
43716
43717
43718
43719
43720
43721
43722
43723
43724
43725
43726
43727
43728
43729
43730
43731
43732
43733
43734
43735
43736
43737
43738
43739
43740
43741
43742
43743
43744
43745
43746
43747
43748
43749
43750
43751
43752
43753
43754
43755
43756
43757
43758
43759
43760
43761
43762
43763
43764
43765
43766
43767
43768
43769
43770
43771
43772
43773
43774
43775
43776
43777
43778
43779
43780
43781
43782
43783
43784
43785
43786
43787
43788
43789
43790
43791
43792
43793
43794
43795
43796
43797
43798
43799
43800
43801
43802
43803
43804
43805
43806
43807
43808
43809
43810
43811
43812
43813
43814
43815
43816
43817
43818
43819
43820
43821
43822
43823
43824
43825
43826
43827
43828
43829
43830
43831
43832
43833
43834
43835
43836
43837
43838
43839
43840
43841
43842
43843
43844
43845
43846
43847
43848
43849
43850
43851
43852
43853
43854
43855
43856
43857
43858
43859
43860
43861
43862
43863
43864
43865
43866
43867
43868
43869
43870
43871
43872
43873
43874
43875
43876
43877
43878
43879
43880
43881
43882
43883
43884
43885
43886
43887
43888
43889
43890
43891
43892
43893
43894
43895
43896
43897
43898
43899
43900
43901
43902
43903
43904
43905
43906
43907
43908
43909
43910
43911
43912
43913
43914
43915
43916
43917
43918
43919
43920
43921
43922
43923
43924
43925
43926
43927
43928
43929
43930
43931
43932
43933
43934
43935
43936
43937
43938
43939
43940
43941
43942
43943
43944
43945
43946
43947
43948
43949
43950
43951
43952
43953
43954
43955
43956
43957
43958
43959
43960
43961
43962
43963
43964
43965
43966
43967
43968
43969
43970
43971
43972
43973
43974
43975
43976
43977
43978
43979
43980
43981
43982
43983
43984
43985
43986
43987
43988
43989
43990
43991
43992
43993
43994
43995
43996
43997
43998
43999
44000
44001
44002
44003
44004
44005
44006
44007
44008
44009
44010
44011
44012
44013
44014
44015
44016
44017
44018
44019
44020
44021
44022
44023
44024
44025
44026
44027
44028
44029
44030
44031
44032
44033
44034
44035
44036
44037
44038
44039
44040
44041
44042
44043
44044
44045
44046
44047
44048
44049
44050
44051
44052
44053
44054
44055
44056
44057
44058
44059
44060
44061
44062
44063
44064
44065
44066
44067
44068
44069
44070
44071
44072
44073
44074
44075
44076
44077
44078
44079
44080
44081
44082
44083
44084
44085
44086
44087
44088
44089
44090
44091
44092
44093
44094
44095
44096
44097
44098
44099
44100
44101
44102
44103
44104
44105
44106
44107
44108
44109
44110
44111
44112
44113
44114
44115
44116
44117
44118
44119
44120
44121
44122
44123
44124
44125
44126
44127
44128
44129
44130
44131
44132
44133
44134
44135
44136
44137
44138
44139
44140
44141
44142
44143
44144
44145
44146
44147
44148
44149
44150
44151
44152
44153
44154
44155
44156
44157
44158
44159
44160
44161
44162
44163
44164
44165
44166
44167
44168
44169
44170
44171
44172
44173
44174
44175
44176
44177
44178
44179
44180
44181
44182
44183
44184
44185
44186
44187
44188
44189
44190
44191
44192
44193
44194
44195
44196
44197
44198
44199
44200
44201
44202
44203
44204
44205
44206
44207
44208
44209
44210
44211
44212
44213
44214
44215
44216
44217
44218
44219
44220
44221
44222
44223
44224
44225
44226
44227
44228
44229
44230
44231
44232
44233
44234
44235
44236
44237
44238
44239
44240
44241
44242
44243
44244
44245
44246
44247
44248
44249
44250
44251
44252
44253
44254
44255
44256
44257
44258
44259
44260
44261
44262
44263
44264
44265
44266
44267
44268
44269
44270
44271
44272
44273
44274
44275
44276
44277
44278
44279
44280
44281
44282
44283
44284
44285
44286
44287
44288
44289
44290
44291
44292
44293
44294
44295
44296
44297
44298
44299
44300
44301
44302
44303
44304
44305
44306
44307
44308
44309
44310
44311
44312
44313
44314
44315
44316
44317
44318
44319
44320
44321
44322
44323
44324
44325
44326
44327
44328
44329
44330
44331
44332
44333
44334
44335
44336
44337
44338
44339
44340
44341
44342
44343
44344
44345
44346
44347
44348
44349
44350
44351
44352
44353
44354
44355
44356
44357
44358
44359
44360
44361
44362
44363
44364
44365
44366
44367
44368
44369
44370
44371
44372
44373
44374
44375
44376
44377
44378
44379
44380
44381
44382
44383
44384
44385
44386
44387
44388
44389
44390
44391
44392
44393
44394
44395
44396
44397
44398
44399
44400
44401
44402
44403
44404
44405
44406
44407
44408
44409
44410
44411
44412
44413
44414
44415
44416
44417
44418
44419
44420
44421
44422
44423
44424
44425
44426
44427
44428
44429
44430
44431
44432
44433
44434
44435
44436
44437
44438
44439
44440
44441
44442
44443
44444
44445
44446
44447
44448
44449
44450
44451
44452
44453
44454
44455
44456
44457
44458
44459
44460
44461
44462
44463
44464
44465
44466
44467
44468
44469
44470
44471
44472
44473
44474
44475
44476
44477
44478
44479
44480
44481
44482
44483
44484
44485
44486
44487
44488
44489
44490
44491
44492
44493
44494
44495
44496
44497
44498
44499
44500
44501
44502
44503
44504
44505
44506
44507
44508
44509
44510
44511
44512
44513
44514
44515
44516
44517
44518
44519
44520
44521
44522
44523
44524
44525
44526
44527
44528
44529
44530
44531
44532
44533
44534
44535
44536
44537
44538
44539
44540
44541
44542
44543
44544
44545
44546
44547
44548
44549
44550
44551
44552
44553
44554
44555
44556
44557
44558
44559
44560
44561
44562
44563
44564
44565
44566
44567
44568
44569
44570
44571
44572
44573
44574
44575
44576
44577
44578
44579
44580
44581
44582
44583
44584
44585
44586
44587
44588
44589
44590
44591
44592
44593
44594
44595
44596
44597
44598
44599
44600
44601
44602
44603
44604
44605
44606
44607
44608
44609
44610
44611
44612
44613
44614
44615
44616
44617
44618
44619
44620
44621
44622
44623
44624
44625
44626
44627
44628
44629
44630
44631
44632
44633
44634
44635
44636
44637
44638
44639
44640
44641
44642
44643
44644
44645
44646
44647
44648
44649
44650
44651
44652
44653
44654
44655
44656
44657
44658
44659
44660
44661
44662
44663
44664
44665
44666
44667
44668
44669
44670
44671
44672
44673
44674
44675
44676
44677
44678
44679
44680
44681
44682
44683
44684
44685
44686
44687
44688
44689
44690
44691
44692
44693
44694
44695
44696
44697
44698
44699
44700
44701
44702
44703
44704
44705
44706
44707
44708
44709
44710
44711
44712
44713
44714
44715
44716
44717
44718
44719
44720
44721
44722
44723
44724
44725
44726
44727
44728
44729
44730
44731
44732
44733
44734
44735
44736
44737
44738
44739
44740
44741
44742
44743
44744
44745
44746
44747
44748
44749
44750
44751
44752
44753
44754
44755
44756
44757
44758
44759
44760
44761
44762
44763
44764
44765
44766
44767
44768
44769
44770
44771
44772
44773
44774
44775
44776
44777
44778
44779
44780
44781
44782
44783
44784
44785
44786
44787
44788
44789
44790
44791
44792
44793
44794
44795
44796
44797
44798
44799
44800
44801
44802
44803
44804
44805
44806
44807
44808
44809
44810
44811
44812
44813
44814
44815
44816
44817
44818
44819
44820
44821
44822
44823
44824
44825
44826
44827
44828
44829
44830
44831
44832
44833
44834
44835
44836
44837
44838
44839
44840
44841
44842
44843
44844
44845
44846
44847
44848
44849
44850
44851
44852
44853
44854
44855
44856
44857
44858
44859
44860
44861
44862
44863
44864
44865
44866
44867
44868
44869
44870
44871
44872
44873
44874
44875
44876
44877
44878
44879
44880
44881
44882
44883
44884
44885
44886
44887
44888
44889
44890
44891
44892
44893
44894
44895
44896
44897
44898
44899
44900
44901
44902
44903
44904
44905
44906
44907
44908
44909
44910
44911
44912
44913
44914
44915
44916
44917
44918
44919
44920
44921
44922
44923
44924
44925
44926
44927
44928
44929
44930
44931
44932
44933
44934
44935
44936
44937
44938
44939
44940
44941
44942
44943
44944
44945
44946
44947
44948
44949
44950
44951
44952
44953
44954
44955
44956
44957
44958
44959
44960
44961
44962
44963
44964
44965
44966
44967
44968
44969
44970
44971
44972
44973
44974
44975
44976
44977
44978
44979
44980
44981
44982
44983
44984
44985
44986
44987
44988
44989
44990
44991
44992
44993
44994
44995
44996
44997
44998
44999
45000
45001
45002
45003
45004
45005
45006
45007
45008
45009
45010
45011
45012
45013
45014
45015
45016
45017
45018
45019
45020
45021
45022
45023
45024
45025
45026
45027
45028
45029
45030
45031
45032
45033
45034
45035
45036
45037
45038
45039
45040
45041
45042
45043
45044
45045
45046
45047
45048
45049
45050
45051
45052
45053
45054
45055
45056
45057
45058
45059
45060
45061
45062
45063
45064
45065
45066
45067
45068
45069
45070
45071
45072
45073
45074
45075
45076
45077
45078
45079
45080
45081
45082
45083
45084
45085
45086
45087
45088
45089
45090
45091
45092
45093
45094
45095
45096
45097
45098
45099
45100
45101
45102
45103
45104
45105
45106
45107
45108
45109
45110
45111
45112
45113
45114
45115
45116
45117
45118
45119
45120
45121
45122
45123
45124
45125
45126
45127
45128
45129
45130
45131
45132
45133
45134
45135
45136
45137
45138
45139
45140
45141
45142
45143
45144
45145
45146
45147
45148
45149
45150
45151
45152
45153
45154
45155
45156
45157
45158
45159
45160
45161
45162
45163
45164
45165
45166
45167
45168
45169
45170
45171
45172
45173
45174
45175
45176
45177
45178
45179
45180
45181
45182
45183
45184
45185
45186
45187
45188
45189
45190
45191
45192
45193
45194
45195
45196
45197
45198
45199
45200
45201
45202
45203
45204
45205
45206
45207
45208
45209
45210
45211
45212
45213
45214
45215
45216
45217
45218
45219
45220
45221
45222
45223
45224
45225
45226
45227
45228
45229
45230
45231
45232
45233
45234
45235
45236
45237
45238
45239
45240
45241
45242
45243
45244
45245
45246
45247
45248
45249
45250
45251
45252
45253
45254
45255
45256
45257
45258
45259
45260
45261
45262
45263
45264
45265
45266
45267
45268
45269
45270
45271
45272
45273
45274
45275
45276
45277
45278
45279
45280
45281
45282
45283
45284
45285
45286
45287
45288
45289
45290
45291
45292
45293
45294
45295
45296
45297
45298
45299
45300
45301
45302
45303
45304
45305
45306
45307
45308
45309
45310
45311
45312
45313
45314
45315
45316
45317
45318
45319
45320
45321
45322
45323
45324
45325
45326
45327
45328
45329
45330
45331
45332
45333
45334
45335
45336
45337
45338
45339
45340
45341
45342
45343
45344
45345
45346
45347
45348
45349
45350
45351
45352
45353
45354
45355
45356
45357
45358
45359
45360
45361
45362
45363
45364
45365
45366
45367
45368
45369
45370
45371
45372
45373
45374
45375
45376
45377
45378
45379
45380
45381
45382
45383
45384
45385
45386
45387
45388
45389
45390
45391
45392
45393
45394
45395
45396
45397
45398
45399
45400
45401
45402
45403
45404
45405
45406
45407
45408
45409
45410
45411
45412
45413
45414
45415
45416
45417
45418
45419
45420
45421
45422
45423
45424
45425
45426
45427
45428
45429
45430
45431
45432
45433
45434
45435
45436
45437
45438
45439
45440
45441
45442
45443
45444
45445
45446
45447
45448
45449
45450
45451
45452
45453
45454
45455
45456
45457
45458
45459
45460
45461
45462
45463
45464
45465
45466
45467
45468
45469
45470
45471
45472
45473
45474
45475
45476
45477
45478
45479
45480
45481
45482
45483
45484
45485
45486
45487
45488
45489
45490
45491
45492
45493
45494
45495
45496
45497
45498
45499
45500
45501
45502
45503
45504
45505
45506
45507
45508
45509
45510
45511
45512
45513
45514
45515
45516
45517
45518
45519
45520
45521
45522
45523
45524
45525
45526
45527
45528
45529
45530
45531
45532
45533
45534
45535
45536
45537
45538
45539
45540
45541
45542
45543
45544
45545
45546
45547
45548
45549
45550
45551
45552
45553
45554
45555
45556
45557
45558
45559
45560
45561
45562
45563
45564
45565
45566
45567
45568
45569
45570
45571
45572
45573
45574
45575
45576
45577
45578
45579
45580
45581
45582
45583
45584
45585
45586
45587
45588
45589
45590
45591
45592
45593
45594
45595
45596
45597
45598
45599
45600
45601
45602
45603
45604
45605
45606
45607
45608
45609
45610
45611
45612
45613
45614
45615
45616
45617
45618
45619
45620
45621
45622
45623
45624
45625
45626
45627
45628
45629
45630
45631
45632
45633
45634
45635
45636
45637
45638
45639
45640
45641
45642
45643
45644
45645
45646
45647
45648
45649
45650
45651
45652
45653
45654
45655
45656
45657
45658
45659
45660
45661
45662
45663
45664
45665
45666
45667
45668
45669
45670
45671
45672
45673
45674
45675
45676
45677
45678
45679
45680
45681
45682
45683
45684
45685
45686
45687
45688
45689
45690
45691
45692
45693
45694
45695
45696
45697
45698
45699
45700
45701
45702
45703
45704
45705
45706
45707
45708
45709
45710
45711
45712
45713
45714
45715
45716
45717
45718
45719
45720
45721
45722
45723
45724
45725
45726
45727
45728
45729
45730
45731
45732
45733
45734
45735
45736
45737
45738
45739
45740
45741
45742
45743
45744
45745
45746
45747
45748
45749
45750
45751
45752
45753
45754
45755
45756
45757
45758
45759
45760
45761
45762
45763
45764
45765
45766
45767
45768
45769
45770
45771
45772
45773
45774
45775
45776
45777
45778
45779
45780
45781
45782
45783
45784
45785
45786
45787
45788
45789
45790
45791
45792
45793
45794
45795
45796
45797
45798
45799
45800
45801
45802
45803
45804
45805
45806
45807
45808
45809
45810
45811
45812
45813
45814
45815
45816
45817
45818
45819
45820
45821
45822
45823
45824
45825
45826
45827
45828
45829
45830
45831
45832
45833
45834
45835
45836
45837
45838
45839
45840
45841
45842
45843
45844
45845
45846
45847
45848
45849
45850
45851
45852
45853
45854
45855
45856
45857
45858
45859
45860
45861
45862
45863
45864
45865
45866
45867
45868
45869
45870
45871
45872
45873
45874
45875
45876
45877
45878
45879
45880
45881
45882
45883
45884
45885
45886
45887
45888
45889
45890
45891
45892
45893
45894
45895
45896
45897
45898
45899
45900
45901
45902
45903
45904
45905
45906
45907
45908
45909
45910
45911
45912
45913
45914
45915
45916
45917
45918
45919
45920
45921
45922
45923
45924
45925
45926
45927
45928
45929
45930
45931
45932
45933
45934
45935
45936
45937
45938
45939
45940
45941
45942
45943
45944
45945
45946
45947
45948
45949
45950
45951
45952
45953
45954
45955
45956
45957
45958
45959
45960
45961
45962
45963
45964
45965
45966
45967
45968
45969
45970
45971
45972
45973
45974
45975
45976
45977
45978
45979
45980
45981
45982
45983
45984
45985
45986
45987
45988
45989
45990
45991
45992
45993
45994
45995
45996
45997
45998
45999
46000
46001
46002
46003
46004
46005
46006
46007
46008
46009
46010
46011
46012
46013
46014
46015
46016
46017
46018
46019
46020
46021
46022
46023
46024
46025
46026
46027
46028
46029
46030
46031
46032
46033
46034
46035
46036
46037
46038
46039
46040
46041
46042
46043
46044
46045
46046
46047
46048
46049
46050
46051
46052
46053
46054
46055
46056
46057
46058
46059
46060
46061
46062
46063
46064
46065
46066
46067
46068
46069
46070
46071
46072
46073
46074
46075
46076
46077
46078
46079
46080
46081
46082
46083
46084
46085
46086
46087
46088
46089
46090
46091
46092
46093
46094
46095
46096
46097
46098
46099
46100
46101
46102
46103
46104
46105
46106
46107
46108
46109
46110
46111
46112
46113
46114
46115
46116
46117
46118
46119
46120
46121
46122
46123
46124
46125
46126
46127
46128
46129
46130
46131
46132
46133
46134
46135
46136
46137
46138
46139
46140
46141
46142
46143
46144
46145
46146
46147
46148
46149
46150
46151
46152
46153
46154
46155
46156
46157
46158
46159
46160
46161
46162
46163
46164
46165
46166
46167
46168
46169
46170
46171
46172
46173
46174
46175
46176
46177
46178
46179
46180
46181
46182
46183
46184
46185
46186
46187
46188
46189
46190
46191
46192
46193
46194
46195
46196
46197
46198
46199
46200
46201
46202
46203
46204
46205
46206
46207
46208
46209
46210
46211
46212
46213
46214
46215
46216
46217
46218
46219
46220
46221
46222
46223
46224
46225
46226
46227
46228
46229
46230
46231
46232
46233
46234
46235
46236
46237
46238
46239
46240
46241
46242
46243
46244
46245
46246
46247
46248
46249
46250
46251
46252
46253
46254
46255
46256
46257
46258
46259
46260
46261
46262
46263
46264
46265
46266
46267
46268
46269
46270
46271
46272
46273
46274
46275
46276
46277
46278
46279
46280
46281
46282
46283
46284
46285
46286
46287
46288
46289
46290
46291
46292
46293
46294
46295
46296
46297
46298
46299
46300
46301
46302
46303
46304
46305
46306
46307
46308
46309
46310
46311
46312
46313
46314
46315
46316
46317
46318
46319
46320
46321
46322
46323
46324
46325
46326
46327
46328
46329
46330
46331
46332
46333
46334
46335
46336
46337
46338
46339
46340
46341
46342
46343
46344
46345
46346
46347
46348
46349
46350
46351
46352
46353
46354
46355
46356
46357
46358
46359
46360
46361
46362
46363
46364
46365
46366
46367
46368
46369
46370
46371
46372
46373
46374
46375
46376
46377
46378
46379
46380
46381
46382
46383
46384
46385
46386
46387
46388
46389
46390
46391
46392
46393
46394
46395
46396
46397
46398
46399
46400
46401
46402
46403
46404
46405
46406
46407
46408
46409
46410
46411
46412
46413
46414
46415
46416
46417
46418
46419
46420
46421
46422
46423
46424
46425
46426
46427
46428
46429
46430
46431
46432
46433
46434
46435
46436
46437
46438
46439
46440
46441
46442
46443
46444
46445
46446
46447
46448
46449
46450
46451
46452
46453
46454
46455
46456
46457
46458
46459
46460
46461
46462
46463
46464
46465
46466
46467
46468
46469
46470
46471
46472
46473
46474
46475
46476
46477
46478
46479
46480
46481
46482
46483
46484
46485
46486
46487
46488
46489
46490
46491
46492
46493
46494
46495
46496
46497
46498
46499
46500
46501
46502
46503
46504
46505
46506
46507
46508
46509
46510
46511
46512
46513
46514
46515
46516
46517
46518
46519
46520
46521
46522
46523
46524
46525
46526
46527
46528
46529
46530
46531
46532
46533
46534
46535
46536
46537
46538
46539
46540
46541
46542
46543
46544
46545
46546
46547
46548
46549
46550
46551
46552
46553
46554
46555
46556
46557
46558
46559
46560
46561
46562
46563
46564
46565
46566
46567
46568
46569
46570
46571
46572
46573
46574
46575
46576
46577
46578
46579
46580
46581
46582
46583
46584
46585
46586
46587
46588
46589
46590
46591
46592
46593
46594
46595
46596
46597
46598
46599
46600
46601
46602
46603
46604
46605
46606
46607
46608
46609
46610
46611
46612
46613
46614
46615
46616
46617
46618
46619
46620
46621
46622
46623
46624
46625
46626
46627
46628
46629
46630
46631
46632
46633
46634
46635
46636
46637
46638
46639
46640
46641
46642
46643
46644
46645
46646
46647
46648
46649
46650
46651
46652
46653
46654
46655
46656
46657
46658
46659
46660
46661
46662
46663
46664
46665
46666
46667
46668
46669
46670
46671
46672
46673
46674
46675
46676
46677
46678
46679
46680
46681
46682
46683
46684
46685
46686
46687
46688
46689
46690
46691
46692
46693
46694
46695
46696
46697
46698
46699
46700
46701
46702
46703
46704
46705
46706
46707
46708
46709
46710
46711
46712
46713
46714
46715
46716
46717
46718
46719
46720
46721
46722
46723
46724
46725
46726
46727
46728
46729
46730
46731
46732
46733
46734
46735
46736
46737
46738
46739
46740
46741
46742
46743
46744
46745
46746
46747
46748
46749
46750
46751
46752
46753
46754
46755
46756
46757
46758
46759
46760
46761
46762
46763
46764
46765
46766
46767
46768
46769
46770
46771
46772
46773
46774
46775
46776
46777
46778
46779
46780
46781
46782
46783
46784
46785
46786
46787
46788
46789
46790
46791
46792
46793
46794
46795
46796
46797
46798
46799
46800
46801
46802
46803
46804
46805
46806
46807
46808
46809
46810
46811
46812
46813
46814
46815
46816
46817
46818
46819
46820
46821
46822
46823
46824
46825
46826
46827
46828
46829
46830
46831
46832
46833
46834
46835
46836
46837
46838
46839
46840
46841
46842
46843
46844
46845
46846
46847
46848
46849
46850
46851
46852
46853
46854
46855
46856
46857
46858
46859
46860
46861
46862
46863
46864
46865
46866
46867
46868
46869
46870
46871
46872
46873
46874
46875
46876
46877
46878
46879
46880
46881
46882
46883
46884
46885
46886
46887
46888
46889
46890
46891
46892
46893
46894
46895
46896
46897
46898
46899
46900
46901
46902
46903
46904
46905
46906
46907
46908
46909
46910
46911
46912
46913
46914
46915
46916
46917
46918
46919
46920
46921
46922
46923
46924
46925
46926
46927
46928
46929
46930
46931
46932
46933
46934
46935
46936
46937
46938
46939
46940
46941
46942
46943
46944
46945
46946
46947
46948
46949
46950
46951
46952
46953
46954
46955
46956
46957
46958
46959
46960
46961
46962
46963
46964
46965
46966
46967
46968
46969
46970
46971
46972
46973
46974
46975
46976
46977
46978
46979
46980
46981
46982
46983
46984
46985
46986
46987
46988
46989
46990
46991
46992
46993
46994
46995
46996
46997
46998
46999
47000
47001
47002
47003
47004
47005
47006
47007
47008
47009
47010
47011
47012
47013
47014
47015
47016
47017
47018
47019
47020
47021
47022
47023
47024
47025
47026
47027
47028
47029
47030
47031
47032
47033
47034
47035
47036
47037
47038
47039
47040
47041
47042
47043
47044
47045
47046
47047
47048
47049
47050
47051
47052
47053
47054
47055
47056
47057
47058
47059
47060
47061
47062
47063
47064
47065
47066
47067
47068
47069
47070
47071
47072
47073
47074
47075
47076
47077
47078
47079
47080
47081
47082
47083
47084
47085
47086
47087
47088
47089
47090
47091
47092
47093
47094
47095
47096
47097
47098
47099
47100
47101
47102
47103
47104
47105
47106
47107
47108
47109
47110
47111
47112
47113
47114
47115
47116
47117
47118
47119
47120
47121
47122
47123
47124
47125
47126
47127
47128
47129
47130
47131
47132
47133
47134
47135
47136
47137
47138
47139
47140
47141
47142
47143
47144
47145
47146
47147
47148
47149
47150
47151
47152
47153
47154
47155
47156
47157
47158
47159
47160
47161
47162
47163
47164
47165
47166
47167
47168
47169
47170
47171
47172
47173
47174
47175
47176
47177
47178
47179
47180
47181
47182
47183
47184
47185
47186
47187
47188
47189
47190
47191
47192
47193
47194
47195
47196
47197
47198
47199
47200
47201
47202
47203
47204
47205
47206
47207
47208
47209
47210
47211
47212
47213
47214
47215
47216
47217
47218
47219
47220
47221
47222
47223
47224
47225
47226
47227
47228
47229
47230
47231
47232
47233
47234
47235
47236
47237
47238
47239
47240
47241
47242
47243
47244
47245
47246
47247
47248
47249
47250
47251
47252
47253
47254
47255
47256
47257
47258
47259
47260
47261
47262
47263
47264
47265
47266
47267
47268
47269
47270
47271
47272
47273
47274
47275
47276
47277
47278
47279
47280
47281
47282
47283
47284
47285
47286
47287
47288
47289
47290
47291
47292
47293
47294
47295
47296
47297
47298
47299
47300
47301
47302
47303
47304
47305
47306
47307
47308
47309
47310
47311
47312
47313
47314
47315
47316
47317
47318
47319
47320
47321
47322
47323
47324
47325
47326
47327
47328
47329
47330
47331
47332
47333
47334
47335
47336
47337
47338
47339
47340
47341
47342
47343
47344
47345
47346
47347
47348
47349
47350
47351
47352
47353
47354
47355
47356
47357
47358
47359
47360
47361
47362
47363
47364
47365
47366
47367
47368
47369
47370
47371
47372
47373
47374
47375
47376
47377
47378
47379
47380
47381
47382
47383
47384
47385
47386
47387
47388
47389
47390
47391
47392
47393
47394
47395
47396
47397
47398
47399
47400
47401
47402
47403
47404
47405
47406
47407
47408
47409
47410
47411
47412
47413
47414
47415
47416
47417
47418
47419
47420
47421
47422
47423
47424
47425
47426
47427
47428
47429
47430
47431
47432
47433
47434
47435
47436
47437
47438
47439
47440
47441
47442
47443
47444
47445
47446
47447
47448
47449
47450
47451
47452
47453
47454
47455
47456
47457
47458
47459
47460
47461
47462
47463
47464
47465
47466
47467
47468
47469
47470
47471
47472
47473
47474
47475
47476
47477
47478
47479
47480
47481
47482
47483
47484
47485
47486
47487
47488
47489
47490
47491
47492
47493
47494
47495
47496
47497
47498
47499
47500
47501
47502
47503
47504
47505
47506
47507
47508
47509
47510
47511
47512
47513
47514
47515
47516
47517
47518
47519
47520
47521
47522
47523
47524
47525
47526
47527
47528
47529
47530
47531
47532
47533
47534
47535
47536
47537
47538
47539
47540
47541
47542
47543
47544
47545
47546
47547
47548
47549
47550
47551
47552
47553
47554
47555
47556
47557
47558
47559
47560
47561
47562
47563
47564
47565
47566
47567
47568
47569
47570
47571
47572
47573
47574
47575
47576
47577
47578
47579
47580
47581
47582
47583
47584
47585
47586
47587
47588
47589
47590
47591
47592
47593
47594
47595
47596
47597
47598
47599
47600
47601
47602
47603
47604
47605
47606
47607
47608
47609
47610
47611
47612
47613
47614
47615
47616
47617
47618
47619
47620
47621
47622
47623
47624
47625
47626
47627
47628
47629
47630
47631
47632
47633
47634
47635
47636
47637
47638
47639
47640
47641
47642
47643
47644
47645
47646
47647
47648
47649
47650
47651
47652
47653
47654
47655
47656
47657
47658
47659
47660
47661
47662
47663
47664
47665
47666
47667
47668
47669
47670
47671
47672
47673
47674
47675
47676
47677
47678
47679
47680
47681
47682
47683
47684
47685
47686
47687
47688
47689
47690
47691
47692
47693
47694
47695
47696
47697
47698
47699
47700
47701
47702
47703
47704
47705
47706
47707
47708
47709
47710
47711
47712
47713
47714
47715
47716
47717
47718
47719
47720
47721
47722
47723
47724
47725
47726
47727
47728
47729
47730
47731
47732
47733
47734
47735
47736
47737
47738
47739
47740
47741
47742
47743
47744
47745
47746
47747
47748
47749
47750
47751
47752
47753
47754
47755
47756
47757
47758
47759
47760
47761
47762
47763
47764
47765
47766
47767
47768
47769
47770
47771
47772
47773
47774
47775
47776
47777
47778
47779
47780
47781
47782
47783
47784
47785
47786
47787
47788
47789
47790
47791
47792
47793
47794
47795
47796
47797
47798
47799
47800
47801
47802
47803
47804
47805
47806
47807
47808
47809
47810
47811
47812
47813
47814
47815
47816
47817
47818
47819
47820
47821
47822
47823
47824
47825
47826
47827
47828
47829
47830
47831
47832
47833
47834
47835
47836
47837
47838
47839
47840
47841
47842
47843
47844
47845
47846
47847
47848
47849
47850
47851
47852
47853
47854
47855
47856
47857
47858
47859
47860
47861
47862
47863
47864
47865
47866
47867
47868
47869
47870
47871
47872
47873
47874
47875
47876
47877
47878
47879
47880
47881
47882
47883
47884
47885
47886
47887
47888
47889
47890
47891
47892
47893
47894
47895
47896
47897
47898
47899
47900
47901
47902
47903
47904
47905
47906
47907
47908
47909
47910
47911
47912
47913
47914
47915
47916
47917
47918
47919
47920
47921
47922
47923
47924
47925
47926
47927
47928
47929
47930
47931
47932
47933
47934
47935
47936
47937
47938
47939
47940
47941
47942
47943
47944
47945
47946
47947
47948
47949
47950
47951
47952
47953
47954
47955
47956
47957
47958
47959
47960
47961
47962
47963
47964
47965
47966
47967
47968
47969
47970
47971
47972
47973
47974
47975
47976
47977
47978
47979
47980
47981
47982
47983
47984
47985
47986
47987
47988
47989
47990
47991
47992
47993
47994
47995
47996
47997
47998
47999
48000
48001
48002
48003
48004
48005
48006
48007
48008
48009
48010
48011
48012
48013
48014
48015
48016
48017
48018
48019
48020
48021
48022
48023
48024
48025
48026
48027
48028
48029
48030
48031
48032
48033
48034
48035
48036
48037
48038
48039
48040
48041
48042
48043
48044
48045
48046
48047
48048
48049
48050
48051
48052
48053
48054
48055
48056
48057
48058
48059
48060
48061
48062
48063
48064
48065
48066
48067
48068
48069
48070
48071
48072
48073
48074
48075
48076
48077
48078
48079
48080
48081
48082
48083
48084
48085
48086
48087
48088
48089
48090
48091
48092
48093
48094
48095
48096
48097
48098
48099
48100
48101
48102
48103
48104
48105
48106
48107
48108
48109
48110
48111
48112
48113
48114
48115
48116
48117
48118
48119
48120
48121
48122
48123
48124
48125
48126
48127
48128
48129
48130
48131
48132
48133
48134
48135
48136
48137
48138
48139
48140
48141
48142
48143
48144
48145
48146
48147
48148
48149
48150
48151
48152
48153
48154
48155
48156
48157
48158
48159
48160
48161
48162
48163
48164
48165
48166
48167
48168
48169
48170
48171
48172
48173
48174
48175
48176
48177
48178
48179
48180
48181
48182
48183
48184
48185
48186
48187
48188
48189
48190
48191
48192
48193
48194
48195
48196
48197
48198
48199
48200
48201
48202
48203
48204
48205
48206
48207
48208
48209
48210
48211
48212
48213
48214
48215
48216
48217
48218
48219
48220
48221
48222
48223
48224
48225
48226
48227
48228
48229
48230
48231
48232
48233
48234
48235
48236
48237
48238
48239
48240
48241
48242
48243
48244
48245
48246
48247
48248
48249
48250
48251
48252
48253
48254
48255
48256
48257
48258
48259
48260
48261
48262
48263
48264
48265
48266
48267
48268
48269
48270
48271
48272
48273
48274
48275
48276
48277
48278
48279
48280
48281
48282
48283
48284
48285
48286
48287
48288
48289
48290
48291
48292
48293
48294
48295
48296
48297
48298
48299
48300
48301
48302
48303
48304
48305
48306
48307
48308
48309
48310
48311
48312
48313
48314
48315
48316
48317
48318
48319
48320
48321
48322
48323
48324
48325
48326
48327
48328
48329
48330
48331
48332
48333
48334
48335
48336
48337
48338
48339
48340
48341
48342
48343
48344
48345
48346
48347
48348
48349
48350
48351
48352
48353
48354
48355
48356
48357
48358
48359
48360
48361
48362
48363
48364
48365
48366
48367
48368
48369
48370
48371
48372
48373
48374
48375
48376
48377
48378
48379
48380
48381
48382
48383
48384
48385
48386
48387
48388
48389
48390
48391
48392
48393
48394
48395
48396
48397
48398
48399
48400
48401
48402
48403
48404
48405
48406
48407
48408
48409
48410
48411
48412
48413
48414
48415
48416
48417
48418
48419
48420
48421
48422
48423
48424
48425
48426
48427
48428
48429
48430
48431
48432
48433
48434
48435
48436
48437
48438
48439
48440
48441
48442
48443
48444
48445
48446
48447
48448
48449
48450
48451
48452
48453
48454
48455
48456
48457
48458
48459
48460
48461
48462
48463
48464
48465
48466
48467
48468
48469
48470
48471
48472
48473
48474
48475
48476
48477
48478
48479
48480
48481
48482
48483
48484
48485
48486
48487
48488
48489
48490
48491
48492
48493
48494
48495
48496
48497
48498
48499
48500
48501
48502
48503
48504
48505
48506
48507
48508
48509
48510
48511
48512
48513
48514
48515
48516
48517
48518
48519
48520
48521
48522
48523
48524
48525
48526
48527
48528
48529
48530
48531
48532
48533
48534
48535
48536
48537
48538
48539
48540
48541
48542
48543
48544
48545
48546
48547
48548
48549
48550
48551
48552
48553
48554
48555
48556
48557
48558
48559
48560
48561
48562
48563
48564
48565
48566
48567
48568
48569
48570
48571
48572
48573
48574
48575
48576
48577
48578
48579
48580
48581
48582
48583
48584
48585
48586
48587
48588
48589
48590
48591
48592
48593
48594
48595
48596
48597
48598
48599
48600
48601
48602
48603
48604
48605
48606
48607
48608
48609
48610
48611
48612
48613
48614
48615
48616
48617
48618
48619
48620
48621
48622
48623
48624
48625
48626
48627
48628
48629
48630
48631
48632
48633
48634
48635
48636
48637
48638
48639
48640
48641
48642
48643
48644
48645
48646
48647
48648
48649
48650
48651
48652
48653
48654
48655
48656
48657
48658
48659
48660
48661
48662
48663
48664
48665
48666
48667
48668
48669
48670
48671
48672
48673
48674
48675
48676
48677
48678
48679
48680
48681
48682
48683
48684
48685
48686
48687
48688
48689
48690
48691
48692
48693
48694
48695
48696
48697
48698
48699
48700
48701
48702
48703
48704
48705
48706
48707
48708
48709
48710
48711
48712
48713
48714
48715
48716
48717
48718
48719
48720
48721
48722
48723
48724
48725
48726
48727
48728
48729
48730
48731
48732
48733
48734
48735
48736
48737
48738
48739
48740
48741
48742
48743
48744
48745
48746
48747
48748
48749
48750
48751
48752
48753
48754
48755
48756
48757
48758
48759
48760
48761
48762
48763
48764
48765
48766
48767
48768
48769
48770
48771
48772
48773
48774
48775
48776
48777
48778
48779
48780
48781
48782
48783
48784
48785
48786
48787
48788
48789
48790
48791
48792
48793
48794
48795
48796
48797
48798
48799
48800
48801
48802
48803
48804
48805
48806
48807
48808
48809
48810
48811
48812
48813
48814
48815
48816
48817
48818
48819
48820
48821
48822
48823
48824
48825
48826
48827
48828
48829
48830
48831
48832
48833
48834
48835
48836
48837
48838
48839
48840
48841
48842
48843
48844
48845
48846
48847
48848
48849
48850
48851
48852
48853
48854
48855
48856
48857
48858
48859
48860
48861
48862
48863
48864
48865
48866
48867
48868
48869
48870
48871
48872
48873
48874
48875
48876
48877
48878
48879
48880
48881
48882
48883
48884
48885
48886
48887
48888
48889
48890
48891
48892
48893
48894
48895
48896
48897
48898
48899
48900
48901
48902
48903
48904
48905
48906
48907
48908
48909
48910
48911
48912
48913
48914
48915
48916
48917
48918
48919
48920
48921
48922
48923
48924
48925
48926
48927
48928
48929
48930
48931
48932
48933
48934
48935
48936
48937
48938
48939
48940
48941
48942
48943
48944
48945
48946
48947
48948
48949
48950
48951
48952
48953
48954
48955
48956
48957
48958
48959
48960
48961
48962
48963
48964
48965
48966
48967
48968
48969
48970
48971
48972
48973
48974
48975
48976
48977
48978
48979
48980
48981
48982
48983
48984
48985
48986
48987
48988
48989
48990
48991
48992
48993
48994
48995
48996
48997
48998
48999
49000
49001
49002
49003
49004
49005
49006
49007
49008
49009
49010
49011
49012
49013
49014
49015
49016
49017
49018
49019
49020
49021
49022
49023
49024
49025
49026
49027
49028
49029
49030
49031
49032
49033
49034
49035
49036
49037
49038
49039
49040
49041
49042
49043
49044
49045
49046
49047
49048
49049
49050
49051
49052
49053
49054
49055
49056
49057
49058
49059
49060
49061
49062
49063
49064
49065
49066
49067
49068
49069
49070
49071
49072
49073
49074
49075
49076
49077
49078
49079
49080
49081
49082
49083
49084
49085
49086
49087
49088
49089
49090
49091
49092
49093
49094
49095
49096
49097
49098
49099
49100
49101
49102
49103
49104
49105
49106
49107
49108
49109
49110
49111
49112
49113
49114
49115
49116
49117
49118
49119
49120
49121
49122
49123
49124
49125
49126
49127
49128
49129
49130
49131
49132
49133
49134
49135
49136
49137
49138
49139
49140
49141
49142
49143
49144
49145
49146
49147
49148
49149
49150
49151
49152
49153
49154
49155
49156
49157
49158
49159
49160
49161
49162
49163
49164
49165
49166
49167
49168
49169
49170
49171
49172
49173
49174
49175
49176
49177
49178
49179
49180
49181
49182
49183
49184
49185
49186
49187
49188
49189
49190
49191
49192
49193
49194
49195
49196
49197
49198
49199
49200
49201
49202
49203
49204
49205
49206
49207
49208
49209
49210
49211
49212
49213
49214
49215
49216
49217
49218
49219
49220
49221
49222
49223
49224
49225
49226
49227
49228
49229
49230
49231
49232
49233
49234
49235
49236
49237
49238
49239
49240
49241
49242
49243
49244
49245
49246
49247
49248
49249
49250
49251
49252
49253
49254
49255
49256
49257
49258
49259
49260
49261
49262
49263
49264
49265
49266
49267
49268
49269
49270
49271
49272
49273
49274
49275
49276
49277
49278
49279
49280
49281
49282
49283
49284
49285
49286
49287
49288
49289
49290
49291
49292
49293
49294
49295
49296
49297
49298
49299
49300
49301
49302
49303
49304
49305
49306
49307
49308
49309
49310
49311
49312
49313
49314
49315
49316
49317
49318
49319
49320
49321
49322
49323
49324
49325
49326
49327
49328
49329
49330
49331
49332
49333
49334
49335
49336
49337
49338
49339
49340
49341
49342
49343
49344
49345
49346
49347
49348
49349
49350
49351
49352
49353
49354
49355
49356
49357
49358
49359
49360
49361
49362
49363
49364
49365
49366
49367
49368
49369
49370
49371
49372
49373
49374
49375
49376
49377
49378
49379
49380
49381
49382
49383
49384
49385
49386
49387
49388
49389
49390
49391
49392
49393
49394
49395
49396
49397
49398
49399
49400
49401
49402
49403
49404
49405
49406
49407
49408
49409
49410
49411
49412
49413
49414
49415
49416
49417
49418
49419
49420
49421
49422
49423
49424
49425
49426
49427
49428
49429
49430
49431
49432
49433
49434
49435
49436
49437
49438
49439
49440
49441
49442
49443
49444
49445
49446
49447
49448
49449
49450
49451
49452
49453
49454
49455
49456
49457
49458
49459
49460
49461
49462
49463
49464
49465
49466
49467
49468
49469
49470
49471
49472
49473
49474
49475
49476
49477
49478
49479
49480
49481
49482
49483
49484
49485
49486
49487
49488
49489
49490
49491
49492
49493
49494
49495
49496
49497
49498
49499
49500
49501
49502
49503
49504
49505
49506
49507
49508
49509
49510
49511
49512
49513
49514
49515
49516
49517
49518
49519
49520
49521
49522
49523
49524
49525
49526
49527
49528
49529
49530
49531
49532
49533
49534
49535
49536
49537
49538
49539
49540
49541
49542
49543
49544
49545
49546
49547
49548
49549
49550
49551
49552
49553
49554
49555
49556
49557
49558
49559
49560
49561
49562
49563
49564
49565
49566
49567
49568
49569
49570
49571
49572
49573
49574
49575
49576
49577
49578
49579
49580
49581
49582
49583
49584
49585
49586
49587
49588
49589
49590
49591
49592
49593
49594
49595
49596
49597
49598
49599
49600
49601
49602
49603
49604
49605
49606
49607
49608
49609
49610
49611
49612
49613
49614
49615
49616
49617
49618
49619
49620
49621
49622
49623
49624
49625
49626
49627
49628
49629
49630
49631
49632
49633
49634
49635
49636
49637
49638
49639
49640
49641
49642
49643
49644
49645
49646
49647
49648
49649
49650
49651
49652
49653
49654
49655
49656
49657
49658
49659
49660
49661
49662
49663
49664
49665
49666
49667
49668
49669
49670
49671
49672
49673
49674
49675
49676
49677
49678
49679
49680
49681
49682
49683
49684
49685
49686
49687
49688
49689
49690
49691
49692
49693
49694
49695
49696
49697
49698
49699
49700
49701
49702
49703
49704
49705
49706
49707
49708
49709
49710
49711
49712
49713
49714
49715
49716
49717
49718
49719
49720
49721
49722
49723
49724
49725
49726
49727
49728
49729
49730
49731
49732
49733
49734
49735
49736
49737
49738
49739
49740
49741
49742
49743
49744
49745
49746
49747
49748
49749
49750
49751
49752
49753
49754
49755
49756
49757
49758
49759
49760
49761
49762
49763
49764
49765
49766
49767
49768
49769
49770
49771
49772
49773
49774
49775
49776
49777
49778
49779
49780
49781
49782
49783
49784
49785
49786
49787
49788
49789
49790
49791
49792
49793
49794
49795
49796
49797
49798
49799
49800
49801
49802
49803
49804
49805
49806
49807
49808
49809
49810
49811
49812
49813
49814
49815
49816
49817
49818
49819
49820
49821
49822
49823
49824
49825
49826
49827
49828
49829
49830
49831
49832
49833
49834
49835
49836
49837
49838
49839
49840
49841
49842
49843
49844
49845
49846
49847
49848
49849
49850
49851
49852
49853
49854
49855
49856
49857
49858
49859
49860
49861
49862
49863
49864
49865
49866
49867
49868
49869
49870
49871
49872
49873
49874
49875
49876
49877
49878
49879
49880
49881
49882
49883
49884
49885
49886
49887
49888
49889
49890
49891
49892
49893
49894
49895
49896
49897
49898
49899
49900
49901
49902
49903
49904
49905
49906
49907
49908
49909
49910
49911
49912
49913
49914
49915
49916
49917
49918
49919
49920
49921
49922
49923
49924
49925
49926
49927
49928
49929
49930
49931
49932
49933
49934
49935
49936
49937
49938
49939
49940
49941
49942
49943
49944
49945
49946
49947
49948
49949
49950
49951
49952
49953
49954
49955
49956
49957
49958
49959
49960
49961
49962
49963
49964
49965
49966
49967
49968
49969
49970
49971
49972
49973
49974
49975
49976
49977
49978
49979
49980
49981
49982
49983
49984
49985
49986
49987
49988
49989
49990
49991
49992
49993
49994
49995
49996
49997
49998
49999
50000
50001
50002
50003
50004
50005
50006
50007
50008
50009
50010
50011
50012
50013
50014
50015
50016
50017
50018
50019
50020
50021
50022
50023
50024
50025
50026
50027
50028
50029
50030
50031
50032
50033
50034
50035
50036
50037
50038
50039
50040
50041
50042
50043
50044
50045
50046
50047
50048
50049
50050
50051
50052
50053
50054
50055
50056
50057
50058
50059
50060
50061
50062
50063
50064
50065
50066
50067
50068
50069
50070
50071
50072
50073
50074
50075
50076
50077
50078
50079
50080
50081
50082
50083
50084
50085
50086
50087
50088
50089
50090
50091
50092
50093
50094
50095
50096
50097
50098
50099
50100
50101
50102
50103
50104
50105
50106
50107
50108
50109
50110
50111
50112
50113
50114
50115
50116
50117
50118
50119
50120
50121
50122
50123
50124
50125
50126
50127
50128
50129
50130
50131
50132
50133
50134
50135
50136
50137
50138
50139
50140
50141
50142
50143
50144
50145
50146
50147
50148
50149
50150
50151
50152
50153
50154
50155
50156
50157
50158
50159
50160
50161
50162
50163
50164
50165
50166
50167
50168
50169
50170
50171
50172
50173
50174
50175
50176
50177
50178
50179
50180
50181
50182
50183
50184
50185
50186
50187
50188
50189
50190
50191
50192
50193
50194
50195
50196
50197
50198
50199
50200
50201
50202
50203
50204
50205
50206
50207
50208
50209
50210
50211
50212
50213
50214
50215
50216
50217
50218
50219
50220
50221
50222
50223
50224
50225
50226
50227
50228
50229
50230
50231
50232
50233
50234
50235
50236
50237
50238
50239
50240
50241
50242
50243
50244
50245
50246
50247
50248
50249
50250
50251
50252
50253
50254
50255
50256
50257
50258
50259
50260
50261
50262
50263
50264
50265
50266
50267
50268
50269
50270
50271
50272
50273
50274
50275
50276
50277
50278
50279
50280
50281
50282
50283
50284
50285
50286
50287
50288
50289
50290
50291
50292
50293
50294
50295
50296
50297
50298
50299
50300
50301
50302
50303
50304
50305
50306
50307
50308
50309
50310
50311
50312
50313
50314
50315
50316
50317
50318
50319
50320
50321
50322
50323
50324
50325
50326
50327
50328
50329
50330
50331
50332
50333
50334
50335
50336
50337
50338
50339
50340
50341
50342
50343
50344
50345
50346
50347
50348
50349
50350
50351
50352
50353
50354
50355
50356
50357
50358
50359
50360
50361
50362
50363
50364
50365
50366
50367
50368
50369
50370
50371
50372
50373
50374
50375
50376
50377
50378
50379
50380
50381
50382
50383
50384
50385
50386
50387
50388
50389
50390
50391
50392
50393
50394
50395
50396
50397
50398
50399
50400
50401
50402
50403
50404
50405
50406
50407
50408
50409
50410
50411
50412
50413
50414
50415
50416
50417
50418
50419
50420
50421
50422
50423
50424
50425
50426
50427
50428
50429
50430
50431
50432
50433
50434
50435
50436
50437
50438
50439
50440
50441
50442
50443
50444
50445
50446
50447
50448
50449
50450
50451
50452
50453
50454
50455
50456
50457
50458
50459
50460
50461
50462
50463
50464
50465
50466
50467
50468
50469
50470
50471
50472
50473
50474
50475
50476
50477
50478
50479
50480
50481
50482
50483
50484
50485
50486
50487
50488
50489
50490
50491
50492
50493
50494
50495
50496
50497
50498
50499
50500
50501
50502
50503
50504
50505
50506
50507
50508
50509
50510
50511
50512
50513
50514
50515
50516
50517
50518
50519
50520
50521
50522
50523
50524
50525
50526
50527
50528
50529
50530
50531
50532
50533
50534
50535
50536
50537
50538
50539
50540
50541
50542
50543
50544
50545
50546
50547
50548
50549
50550
50551
50552
50553
50554
50555
50556
50557
50558
50559
50560
50561
50562
50563
50564
50565
50566
50567
50568
50569
50570
50571
50572
50573
50574
50575
50576
50577
50578
50579
50580
50581
50582
50583
50584
50585
50586
50587
50588
50589
50590
50591
50592
50593
50594
50595
50596
50597
50598
50599
50600
50601
50602
50603
50604
50605
50606
50607
50608
50609
50610
50611
50612
50613
50614
50615
50616
50617
50618
50619
50620
50621
50622
50623
50624
50625
50626
50627
50628
50629
50630
50631
50632
50633
50634
50635
50636
50637
50638
50639
50640
50641
50642
50643
50644
50645
50646
50647
50648
50649
50650
50651
50652
50653
50654
50655
50656
50657
50658
50659
50660
50661
50662
50663
50664
50665
50666
50667
50668
50669
50670
50671
50672
50673
50674
50675
50676
50677
50678
50679
50680
50681
50682
50683
50684
50685
50686
50687
50688
50689
50690
50691
50692
50693
50694
50695
50696
50697
50698
50699
50700
50701
50702
50703
50704
50705
50706
50707
50708
50709
50710
50711
50712
50713
50714
50715
50716
50717
50718
50719
50720
50721
50722
50723
50724
50725
50726
50727
50728
50729
50730
50731
50732
50733
50734
50735
50736
50737
50738
50739
50740
50741
50742
50743
50744
50745
50746
50747
50748
50749
50750
50751
50752
50753
50754
50755
50756
50757
50758
50759
50760
50761
50762
50763
50764
50765
50766
50767
50768
50769
50770
50771
50772
50773
50774
50775
50776
50777
50778
50779
50780
50781
50782
50783
50784
50785
50786
50787
50788
50789
50790
50791
50792
50793
50794
50795
50796
50797
50798
50799
50800
50801
50802
50803
50804
50805
50806
50807
50808
50809
50810
50811
50812
50813
50814
50815
50816
50817
50818
50819
50820
50821
50822
50823
50824
50825
50826
50827
50828
50829
50830
50831
50832
50833
50834
50835
50836
50837
50838
50839
50840
50841
50842
50843
50844
50845
50846
50847
50848
50849
50850
50851
50852
50853
50854
50855
50856
50857
50858
50859
50860
50861
50862
50863
50864
50865
50866
50867
50868
50869
50870
50871
50872
50873
50874
50875
50876
50877
50878
50879
50880
50881
50882
50883
50884
50885
50886
50887
50888
50889
50890
50891
50892
50893
50894
50895
50896
50897
50898
50899
50900
50901
50902
50903
50904
50905
50906
50907
50908
50909
50910
50911
50912
50913
50914
50915
50916
50917
50918
50919
50920
50921
50922
50923
50924
50925
50926
50927
50928
50929
50930
50931
50932
50933
50934
50935
50936
50937
50938
50939
50940
50941
50942
50943
50944
50945
50946
50947
50948
50949
50950
50951
50952
50953
50954
50955
50956
50957
50958
50959
50960
50961
50962
50963
50964
50965
50966
50967
50968
50969
50970
50971
50972
50973
50974
50975
50976
50977
50978
50979
50980
50981
50982
50983
50984
50985
50986
50987
50988
50989
50990
50991
50992
50993
50994
50995
50996
50997
50998
50999
51000
51001
51002
51003
51004
51005
51006
51007
51008
51009
51010
51011
51012
51013
51014
51015
51016
51017
51018
51019
51020
51021
51022
51023
51024
51025
51026
51027
51028
51029
51030
51031
51032
51033
51034
51035
51036
51037
51038
51039
51040
51041
51042
51043
51044
51045
51046
51047
51048
51049
51050
51051
51052
51053
51054
51055
51056
51057
51058
51059
51060
51061
51062
51063
51064
51065
51066
51067
51068
51069
51070
51071
51072
51073
51074
51075
51076
51077
51078
51079
51080
51081
51082
51083
51084
51085
51086
51087
51088
51089
51090
51091
51092
51093
51094
51095
51096
51097
51098
51099
51100
51101
51102
51103
51104
51105
51106
51107
51108
51109
51110
51111
51112
51113
51114
51115
51116
51117
51118
51119
51120
51121
51122
51123
51124
51125
51126
51127
51128
51129
51130
51131
51132
51133
51134
51135
51136
51137
51138
51139
51140
51141
51142
51143
51144
51145
51146
51147
51148
51149
51150
51151
51152
51153
51154
51155
51156
51157
51158
51159
51160
51161
51162
51163
51164
51165
51166
51167
51168
51169
51170
51171
51172
51173
51174
51175
51176
51177
51178
51179
51180
51181
51182
51183
51184
51185
51186
51187
51188
51189
51190
51191
51192
51193
51194
51195
51196
51197
51198
51199
51200
51201
51202
51203
51204
51205
51206
51207
51208
51209
51210
51211
51212
51213
51214
51215
51216
51217
51218
51219
51220
51221
51222
51223
51224
51225
51226
51227
51228
51229
51230
51231
51232
51233
51234
51235
51236
51237
51238
51239
51240
51241
51242
51243
51244
51245
51246
51247
51248
51249
51250
51251
51252
51253
51254
51255
51256
51257
51258
51259
51260
51261
51262
51263
51264
51265
51266
51267
51268
51269
51270
51271
51272
51273
51274
51275
51276
51277
51278
51279
51280
51281
51282
51283
51284
51285
51286
51287
51288
51289
51290
51291
51292
51293
51294
51295
51296
51297
51298
51299
51300
51301
51302
51303
51304
51305
51306
51307
51308
51309
51310
51311
51312
51313
51314
51315
51316
51317
51318
51319
51320
51321
51322
51323
51324
51325
51326
51327
51328
51329
51330
51331
51332
51333
51334
51335
51336
51337
51338
51339
51340
51341
51342
51343
51344
51345
51346
51347
51348
51349
51350
51351
51352
51353
51354
51355
51356
51357
51358
51359
51360
51361
51362
51363
51364
51365
51366
51367
51368
51369
51370
51371
51372
51373
51374
51375
51376
51377
51378
51379
51380
51381
51382
51383
51384
51385
51386
51387
51388
51389
51390
51391
51392
51393
51394
51395
51396
51397
51398
51399
51400
51401
51402
51403
51404
51405
51406
51407
51408
51409
51410
51411
51412
51413
51414
51415
51416
51417
51418
51419
51420
51421
51422
51423
51424
51425
51426
51427
51428
51429
51430
51431
51432
51433
51434
51435
51436
51437
51438
51439
51440
51441
51442
51443
51444
51445
51446
51447
51448
51449
51450
51451
51452
51453
51454
51455
51456
51457
51458
51459
51460
51461
51462
51463
51464
51465
51466
51467
51468
51469
51470
51471
51472
51473
51474
51475
51476
51477
51478
51479
51480
51481
51482
51483
51484
51485
51486
51487
51488
51489
51490
51491
51492
51493
51494
51495
51496
51497
51498
51499
51500
51501
51502
51503
51504
51505
51506
51507
51508
51509
51510
51511
51512
51513
51514
51515
51516
51517
51518
51519
51520
51521
51522
51523
51524
51525
51526
51527
51528
51529
51530
51531
51532
51533
51534
51535
51536
51537
51538
51539
51540
51541
51542
51543
51544
51545
51546
51547
51548
51549
51550
51551
51552
51553
51554
51555
51556
51557
51558
51559
51560
51561
51562
51563
51564
51565
51566
51567
51568
51569
51570
51571
51572
51573
51574
51575
51576
51577
51578
51579
51580
51581
51582
51583
51584
51585
51586
51587
51588
51589
51590
51591
51592
51593
51594
51595
51596
51597
51598
51599
51600
51601
51602
51603
51604
51605
51606
51607
51608
51609
51610
51611
51612
51613
51614
51615
51616
51617
51618
51619
51620
51621
51622
51623
51624
51625
51626
51627
51628
51629
51630
51631
51632
51633
51634
51635
51636
51637
51638
51639
51640
51641
51642
51643
51644
51645
51646
51647
51648
51649
51650
51651
51652
51653
51654
51655
51656
51657
51658
51659
51660
51661
51662
51663
51664
51665
51666
51667
51668
51669
51670
51671
51672
51673
51674
51675
51676
51677
51678
51679
51680
51681
51682
51683
51684
51685
51686
51687
51688
51689
51690
51691
51692
51693
51694
51695
51696
51697
51698
51699
51700
51701
51702
51703
51704
51705
51706
51707
51708
51709
51710
51711
51712
51713
51714
51715
51716
51717
51718
51719
51720
51721
51722
51723
51724
51725
51726
51727
51728
51729
51730
51731
51732
51733
51734
51735
51736
51737
51738
51739
51740
51741
51742
51743
51744
51745
51746
51747
51748
51749
51750
51751
51752
51753
51754
51755
51756
51757
51758
51759
51760
51761
51762
51763
51764
51765
51766
51767
51768
51769
51770
51771
51772
51773
51774
51775
51776
51777
51778
51779
51780
51781
51782
51783
51784
51785
51786
51787
51788
51789
51790
51791
51792
51793
51794
51795
51796
51797
51798
51799
51800
51801
51802
51803
51804
51805
51806
51807
51808
51809
51810
51811
51812
51813
51814
51815
51816
51817
51818
51819
51820
51821
51822
51823
51824
51825
51826
51827
51828
51829
51830
51831
51832
51833
51834
51835
51836
51837
51838
51839
51840
51841
51842
51843
51844
51845
51846
51847
51848
51849
51850
51851
51852
51853
51854
51855
51856
51857
51858
51859
51860
51861
51862
51863
51864
51865
51866
51867
51868
51869
51870
51871
51872
51873
51874
51875
51876
51877
51878
51879
51880
51881
51882
51883
51884
51885
51886
51887
51888
51889
51890
51891
51892
51893
51894
51895
51896
51897
51898
51899
51900
51901
51902
51903
51904
51905
51906
51907
51908
51909
51910
51911
51912
51913
51914
51915
51916
51917
51918
51919
51920
51921
51922
51923
51924
51925
51926
51927
51928
51929
51930
51931
51932
51933
51934
51935
51936
51937
51938
51939
51940
51941
51942
51943
51944
51945
51946
51947
51948
51949
51950
51951
51952
51953
51954
51955
51956
51957
51958
51959
51960
51961
51962
51963
51964
51965
51966
51967
51968
51969
51970
51971
51972
51973
51974
51975
51976
51977
51978
51979
51980
51981
51982
51983
51984
51985
51986
51987
51988
51989
51990
51991
51992
51993
51994
51995
51996
51997
51998
51999
52000
52001
52002
52003
52004
52005
52006
52007
52008
52009
52010
52011
52012
52013
52014
52015
52016
52017
52018
52019
52020
52021
52022
52023
52024
52025
52026
52027
52028
52029
52030
52031
52032
52033
52034
52035
52036
52037
52038
52039
52040
52041
52042
52043
52044
52045
52046
52047
52048
52049
52050
52051
52052
52053
52054
52055
52056
52057
52058
52059
52060
52061
52062
52063
52064
52065
52066
52067
52068
52069
52070
52071
52072
52073
52074
52075
52076
52077
52078
52079
52080
52081
52082
52083
52084
52085
52086
52087
52088
52089
52090
52091
52092
52093
52094
52095
52096
52097
52098
52099
52100
52101
52102
52103
52104
52105
52106
52107
52108
52109
52110
52111
52112
52113
52114
52115
52116
52117
52118
52119
52120
52121
52122
52123
52124
52125
52126
52127
52128
52129
52130
52131
52132
52133
52134
52135
52136
52137
52138
52139
52140
52141
52142
52143
52144
52145
52146
52147
52148
52149
52150
52151
52152
52153
52154
52155
52156
52157
52158
52159
52160
52161
52162
52163
52164
52165
52166
52167
52168
52169
52170
52171
52172
52173
52174
52175
52176
52177
52178
52179
52180
52181
52182
52183
52184
52185
52186
52187
52188
52189
52190
52191
52192
52193
52194
52195
52196
52197
52198
52199
52200
52201
52202
52203
52204
52205
52206
52207
52208
52209
52210
52211
52212
52213
52214
52215
52216
52217
52218
52219
52220
52221
52222
52223
52224
52225
52226
52227
52228
52229
52230
52231
52232
52233
52234
52235
52236
52237
52238
52239
52240
52241
52242
52243
52244
52245
52246
52247
52248
52249
52250
52251
52252
52253
52254
52255
52256
52257
52258
52259
52260
52261
52262
52263
52264
52265
52266
52267
52268
52269
52270
52271
52272
52273
52274
52275
52276
52277
52278
52279
52280
52281
52282
52283
52284
52285
52286
52287
52288
52289
52290
52291
52292
52293
52294
52295
52296
52297
52298
52299
52300
52301
52302
52303
52304
52305
52306
52307
52308
52309
52310
52311
52312
52313
52314
52315
52316
52317
52318
52319
52320
52321
52322
52323
52324
52325
52326
52327
52328
52329
52330
52331
52332
52333
52334
52335
52336
52337
52338
52339
52340
52341
52342
52343
52344
52345
52346
52347
52348
52349
52350
52351
52352
52353
52354
52355
52356
52357
52358
52359
52360
52361
52362
52363
52364
52365
52366
52367
52368
52369
52370
52371
52372
52373
52374
52375
52376
52377
52378
52379
52380
52381
52382
52383
52384
52385
52386
52387
52388
52389
52390
52391
52392
52393
52394
52395
52396
52397
52398
52399
52400
52401
52402
52403
52404
52405
52406
52407
52408
52409
52410
52411
52412
52413
52414
52415
52416
52417
52418
52419
52420
52421
52422
52423
52424
52425
52426
52427
52428
52429
52430
52431
52432
52433
52434
52435
52436
52437
52438
52439
52440
52441
52442
52443
52444
52445
52446
52447
52448
52449
52450
52451
52452
52453
52454
52455
52456
52457
52458
52459
52460
52461
52462
52463
52464
52465
52466
52467
52468
52469
52470
52471
52472
52473
52474
52475
52476
52477
52478
52479
52480
52481
52482
52483
52484
52485
52486
52487
52488
52489
52490
52491
52492
52493
52494
52495
52496
52497
52498
52499
52500
52501
52502
52503
52504
52505
52506
52507
52508
52509
52510
52511
52512
52513
52514
52515
52516
52517
52518
52519
52520
52521
52522
52523
52524
52525
52526
52527
52528
52529
52530
52531
52532
52533
52534
52535
52536
52537
52538
52539
52540
52541
52542
52543
52544
52545
52546
52547
52548
52549
52550
52551
52552
52553
52554
52555
52556
52557
52558
52559
52560
52561
52562
52563
52564
52565
52566
52567
52568
52569
52570
52571
52572
52573
52574
52575
52576
52577
52578
52579
52580
52581
52582
52583
52584
52585
52586
52587
52588
52589
52590
52591
52592
52593
52594
52595
52596
52597
52598
52599
52600
52601
52602
52603
52604
52605
52606
52607
52608
52609
52610
52611
52612
52613
52614
52615
52616
52617
52618
52619
52620
52621
52622
52623
52624
52625
52626
52627
52628
52629
52630
52631
52632
52633
52634
52635
52636
52637
52638
52639
52640
52641
52642
52643
52644
52645
52646
52647
52648
52649
52650
52651
52652
52653
52654
52655
52656
*version9.txt*	For MNV version 10.0.  Last change: 2026 Mar 25


		  MNV REFERENCE MANUAL	  by Bram Moolenaar


				*mnv-9.0* *mnv-9* *version-9.0* *version9.0*
Welcome to MNV 9!  Several years have passed since the previous release.
A large number of bugs have been fixed, many nice features have been added
and the MNV9 script syntax is here!  This file mentions all the new things and
changes to existing features since MNV 8.2.0. The patches up to MNV 8.2 can be
found here: |mnv-8.2|.

Use this command to see the full version and features information of the MNV
program you are using: >
	:version

NEW FEATURES					|new-9|
   MNV script enhancements			|new-mnv-script-9|
   Command line completion in a popup menu	|new-popup-compl|
   Updated colorschemes				|new-colorschemes-9|
   Various new items				|new-items-9|

INCOMPATIBLE CHANGES				|incompatible-9|

IMPROVEMENTS					|improvements-9|

COMPILE TIME CHANGES				|compile-changes-9|

PATCHES						|patches-9|

VERSION 9.1					|version-9.1|
   Changed					|changed-9.1|
   Added					|added-9.1|
   Patches					|patches-9.1|

VERSION 9.2					|version-9.2|
   Changed					|changed-9.2|
   Added					|added-9.2|
   Patches					|patches-9.2|

VERSION 9.3					|version-9.3|
   Changed					|changed-9.3|
   Added					|added-9.3|
   Patches					|patches-9.3|


See |vi_diff.txt| for an overview of differences between Vi and MNV 9.0.
See |version4.txt|, |version5.txt|, |version6.txt|, |version7.txt| and
|version8.txt| for differences between MNV versions.

You can find an overview of the most important changes (according to Martin
Tournoij) on this site: https://www.arp242.net/mnvlog/

							*Sven-Guckes*
MNV version 9.0 is dedicated to Sven Guckes, who passed away in February 2022
when the release was being prepared.  Sven was a long time supporter of MNV.
He registered the mnv.org domain and created the first MNV website.  We will
remember him!

						 *Bram* *Moolenaar* *Bram-Moolenaar*
MNV version 9.1 is dedicated to Bram Moolenaar, who passed away on August 3rd
2023 while still working full-time on MNV.  The MNV project would not exist
without his ongoing passion to lead and develop MNV and the community for more
than 30 years.  Bram was also passionate about his ICCF foundation to help
children in Uganda.  If you enjoy using MNV, please consider donating! We will
miss his guidance, passion and leadership.

Obituary Articles: https://github.com/Project-Tick/Project-Tick/discussions/12742
Say Farewell: https://github.com/Project-Tick/Project-Tick/discussions/12737

==============================================================================
NEW FEATURES						*new-9*

First an overview of the more interesting new features.  A comprehensive list
is below.


MNV9 script ~
							*new-mnv-script-9*
The MNV script language has been changed step by step over many years,
preserving backwards compatibility.  Several choices made in the early days
got in the way of making it work better.  At the same time, MNV script is
being used much more often, since there are so many plugins being used.

MNV9 script provides a syntax that is much more similar to other languages.
In other words: "less weird".  Compiled functions are introduced which allow
for a large speed improvement.  You can expect around ten times faster
execution, or even more.  The price to pay is that MNV9 script is not
backwards compatible.  But don't worry, you can still use your old scripts,
the new script language is added, it does not replace the legacy script.

Information about MNV9 script can be found in the |MNV9| help file.


Command line completion in a popup menu ~
							*new-popup-compl*
Before there was the 'wildmenu' option, which uses the space of one line above
the statusline to show matches.  Only a few matches fit there.

Now a popup menu can be used by setting 'wildoptions' to "pum".  This allows
for showing many more matches.  This requires redrawing more of the display,
but since computers are fast enough that is not a problem.


Updated colorschemes ~
							*new-colorschemes-9*
Colorschemes from https://github.com/mnv/colorschemes have been included.
They were made to work consistently across many types of terminals.  Although
generally an improvement, a lot of personal preference is involved.  You can
always get the old version if you prefer it, look here:
https://github.com/mnv/colorschemes/blob/master/legacy_colors/


Various new items ~
							*new-items-9*
Options: ~

'autoshelldir'		change directory to the shell's current directory
'cdhome'		change directory to the home directory by ":cd"
'cinscopedecls'		words that are recognized by 'cino-g'
'guiligatures'		GTK GUI: ASCII characters that can form shapes
'mousemoveevent'	report mouse moves with <MouseMove>
'quickfixtextfunc'	function for the text in the quickfix window
'spelloptions'		options for spell checking
'thesaurusfunc'		function to be used for thesaurus completion
'xtermcodes'		request terminal codes from an xterm


Ex commands: ~

|:abstract|		(reserved for future use)
|:argdedupe|		remove duplicates from the argument list
|:balt|			like ":badd" but also set the alternate file
|:class|		(reserved for future use)
|:def|			define a MNV9 user function
|:defcompile|		compile MNV9 user functions in current script
|:disassemble|		disassemble MNV9 user function
|:echoconsole|		like :echomsg but write to stdout
|:endinterface|		(reserved for future use)
|:endclass|		(reserved for future use)
|:enddef|		end of a user function started with :def
|:endenum|		(reserved for future use)
|:enum|			(reserved for future use)
|:eval|			evaluate an expression and discard the result
|:export|		MNV9: export an item from a script
|:final|		declare an immutable variable in MNV9
|:import|		MNV9: import an item from another script
|:interface|		(reserved for future use)
|:static|		(reserved for future use)
|:type|			(reserved for future use)
|:var|			variable declaration in MNV9
|:mnv9script|		indicates MNV9 script file


Ex command modifiers: ~

|:legacy|		make following command use legacy script syntax
|:mnv9cmd|		make following command use MNV9 script syntax


New and extended functions: ~

|assert_nobeep()|	assert that a command does not cause a beep
|autocmd_add()|		add a list of autocmds and groups
|autocmd_delete()|	delete a list of autocmds and groups
|autocmd_get()|		return a list of autocmds
|blob2list()|		get a list of numbers from a blob
|charclass()|		class of a character
|charcol()|		character number of the cursor or a mark
|charidx()|		character index of a byte in a string
|digraph_get()|		get digraph
|digraph_getlist()|	get all digraphs
|digraph_set()|		register digraph
|digraph_setlist()|	register multiple digraphs
|echoraw()|		output characters as-is
|exists_compiled()|	like exists() but check at compile time
|extendnew()|		make a new Dictionary and append items
|flatten()|		flatten a List
|flattennew()|		flatten a copy of a List
|fullcommand()|		get full command name
|getcharpos()|		get character position of cursor, mark, etc.
|getcharstr()|		get a character from the user as a string
|getcmdcompltype()|	return current cmdline completion type
|getcmdscreenpos()|	return the current cursor position in the cmdline
|getcursorcharpos()|	get character position of the cursor
|getmarklist()|		list of global/local marks
|getreginfo()|		get information about a register
|gettext()|		lookup message translation
|hlget()|		get highlight group attributes
|hlset()|		set highlight group attributes
|isabsolutepath()|	check if a path is absolute
|list2blob()|		get a blob from a list of numbers
|maplist()|		list of all mappings, a dict for each
|mapnew()|		make a new List with changed items
|mapset()|		restore a mapping
|matchfuzzy()|		fuzzy matches a string in a list of strings
|matchfuzzypos()|	fuzzy matches a string in a list of strings
|menu_info()|		get information about a menu item
|popup_list()|		get list of all popup window IDs
|prompt_getprompt()|	get the effective prompt text for a buffer
|prop_add_list()|	attach a property at multiple positions
|prop_find()|		search for a property
|readblob()|		read a file into a Blob
|readdirex()|		get a List of file information in a directory
|reduce()|		reduce a List to a value
|searchcount()|		get number of matches before/after the cursor
|setcellwidths()|	set character cell width overrides
|setcharpos()|		set character position of cursor, mark, etc.
|setcursorcharpos()|	set character position of the cursor
|slice()|		take a slice of a List
|strcharlen()|		length of a string in characters
|terminalprops()|	properties of the terminal
|test_gui_event()|	generate a GUI event for testing
|test_null_function()|	return a null Funcref
|test_srand_seed()|	set the seed value for srand()
|test_unknown()|	return a value with unknown type
|test_void()|		return a value with void type
|typename()|		type of a variable as text
|virtcol2col()|		byte index of a character on screen
|win_gettype()|		get type of window
|win_move_separator()|	move window vertical separator
|win_move_statusline()|	move window status line
|windowsversion()|	get MS-Windows version


New MNV variables: ~

|v:numbermax|		maximum value of a number
|v:numbermin|		minimum value of a number (negative)
|v:numbersize|		number of bits in a Number
|v:collate|		current locale setting for collation order
|v:exiting|		mnv exit code
|v:colornames|		dictionary that maps color names to hex color strings
|v:sizeofint|		number of bytes in an int
|v:sizeoflong|		number of bytes in a long
|v:sizeofpointer|	number of bytes in a pointer
|v:maxcol|		maximum line length


New autocommand events: ~

|CompleteDonePre|	after Insert mode completion done, before clearing info
|DirChangedPre|		before the working directory will change
|InsertLeavePre|	just before leaving Insert mode
|ModeChanged|		after changing the mode
|SigUSR1|		after the SIGUSR1 signal has been detected
|WinClosed|		after closing a window
|WinScrolled|		after scrolling or resizing a window
|MNVSuspend|		when suspending MNV
|MNVResume|		when MNV is resumed after being suspended


New operators: ~

|>>|			bitwise right shift
|<<|			bitwise left shift
|??|			falsy operator

New runtime files: ~

Too many to list here.

==============================================================================
INCOMPATIBLE CHANGES				*incompatible-9*

There is only one change that is incompatible with previous releases:

- Lua arrays are now one-based, they used to be zero-based.

Note that when using |MNV9| script several things work differently, see
|mnv9-differences|.

==============================================================================
IMPROVEMENTS						*improvements-9*

Various small and useful improvements have been made since MNV 8.2, here is a
summary.

Many memory leaks, invalid memory accesses and crashes have been fixed.
See the list of patches below: |bug-fixes-9|.

Support for MNV expression evaluation in a string. |interpolated-string|
Support for evaluating MNV expressions in a heredoc. |:let-heredoc|

Support for fuzzy matching:
- a string in a List of strings. |fuzzy-matching|
- completion support for command line completion using 'wildoptions'.
- for |:mnvgrep|.

Added support for the |Haiku| OS.

Support for "lsp" channel mode to simplify LSP server RPC communication
|language-server-protocol|.  Support for using a Unix domain socket with a
|channel|.  IPv6 support in channels |channel-address|.

Support for sourcing lines from the current buffer. |:source-range|

Terminal window improvements:
- Support for opening a terminal in a popup window. |popup-terminal|
- Allow setting underline color in terminal.
- Detect focus events in terminal (|FocusGained| and |FocusLost|).
- Add bell support for the terminal window. ('belloff')
- Support mouse left-right scrolling in a terminal window.

Support for stopping profiling a MNV script: `:profile stop` and dumping the
report to a file: `:profile dump` .  |:profile|

Completion improvements:
- Argument completion support for the |:breakadd|, |:breakdel|, |:diffget|,
  |:diffput|, |:profile|, |:profdel| and |:scriptnames| commands.
- Support using any MNV type for user_data with the completion functions
  (|complete-items|).
- Stop insert mode completion without changing text (|i_CTRL-X_CTRL-Z|).
- Add the "cmdline" option to |getcompletion()| to return the command line
  arguments.

Support for setting the 'foldtext', 'completefunc', 'omnifunc',
'operatorfunc', 'thesaurusfunc', 'quickfixtextfunc', 'tagfunc',
'imactivatefunc' and 'imstatusfunc' options to a function reference or a
lambda function or a script-local function.

Support directly setting the 'balloonexpr', 'charconvert' 'foldexpr',
'formatexpr', 'includeexpr', 'printexpr', 'patchexpr', 'indentexpr',
'modelineexpr', 'diffexpr' and 'printexpr' options to a script-local function.

Improvements in 'fillchars':
- Support for configuring the character used to mark the beginning of a fold,
  show a closed fold and show a fold separator using "foldopen", "foldclose"
  and "foldsep" respectively in 'fillchars'.
- Support for configuring the character displayed in non existing lines using
  "eob" in 'fillchars'.
- Support for using multibyte items with the "stl", "stlnc", "foldopen",
  "foldclose" and "foldsep" items in the 'fillchars' option.

Support for the XChaCha20 encryption method. 'cryptmethod'

Spell checking:
- Spell check current word with |z=| even when 'spell' is off.
- Add "timeout" to 'spellsuggest' to limit the searching time for spell
  suggestions.
- Add support for spell checking CamelCased words by adding "camel" to
  'spelloptions'.

Support for executing Ex commands in a map without changing the current mode
|<Cmd>| and |<ScriptCmd>|.

Add optional error code to |:cquit|.

Recognize numbers as unsigned when "unsigned" is set in 'nrformats'.

Expand script ID using expand('<SID>') and script name using
expand('<script>'). |expand()|

Jump to the last accessed tab page using |g<Tab>| and support using the
last accessed tab page in |:tabnext| et al.

Locale aware sorting using |:sort| and |sort()|.

Hide cursor when sleeping using |:sleep!|.

Add "multispace" to 'listchars' to show two or more spaces no matter where
they appear.  Add "leadmultispace" to 'listchars' to show two or more leading
spaces.  Add "lead" to 'listchars' to set the character used to show leading
spaces.  Support specifying a character using the hexadecimal notation in
'listchars' (\x, \u and \U).

Make 'listchars', 'virtualedit' and 'thesaurusfunc' global-local options.

Support for looping over a string using `:for`.

Don't reset 'wrap' for diff windows when "followwrap" is set in 'diffopt'.

Support for re-evaluating the 'statusline' expression as a statusline format
string (%{% expr %})

Add |zp| and |zP| to paste in block mode without adding trailing white space.
Add |zy| to yank without trailing white space in block mode.

Add the 'P' command in visual mode to paste text in Visual mode without
yanking the deleted text to the unnamed register.  |put-Visual-mode|

Add \%.l, \%<.l and \%>.l atoms to match the line the cursor is currently on.
See |/\%l| for more information.

Add "list" to 'breakindentopt' to add additional indent for lines that match
a numbered or bulleted list.  Add "column" to 'breakindentopt' to indent
soft-wrapped lines at a specific column.

Add the |hl-CursorLineSign| and |hl-CursorLineFold| default highlight groups to
adjust sign highlighting for 'cursorline'.

Add the |hl-CurSearch| default highlight group for the current search match.

Add support for logging on MNV startup (|--log|).

Add support for customizing the quickfix buffer contents using
'quickfixtextfunc'.  Support for the "note" error type (%t) in |errorformat|.
Add support for parsing the end line number (%e) and end column number (%k)
using 'errorformat'.

Support truncating the tag stack using |settagstack()|.

Display every option in a separate line when "!" is used with |:set|.

Add "nostop" to 'backspace' to allow backspacing over the start of insert for
|CTRL-W| and |CTRL-U| also.

Sync the undo file if 'fsync' is set.

Support excluding the 'runtimepath' and 'packpath' options from a session file
using "skiprtp" in 'sessionoptions'.

Support for getting the number of lines (line count) in a buffer using
|getbufinfo()|.

Support |filter()| and |map()| for blob and string types.

Support for using a multi-byte character for the tag kind. |tags-file-format|

Add support for checking whether a function name is valid using |exists()|.

Update xdiff to version 2.33.  Update libvterm to revision 789.

Support 'trim' for Python/Lua/Perl/Tcl/Ruby/MzScheme interface heredoc.

Add the |t_AU| and |t_8u| termcap codes for underline and undercurl.  Add the
t_fd and t_fe termcap codes for detecting focus events.

Support for indenting C pragmas like normal code. (|cino-P|)

Add support for defining the syntax fold level. (|:syn-foldlevel|)

Add support for using \<*xxx> in a string to prepend a modifier to a
character. (|expr-quote|)

Add support trimming characters at the beginning or end of a string using
|trim()|.

Make ":verbose pwd" show the scope of the directory. |:pwd-verbose|

Add the "0o" notation for specifying octal numbers. |scriptversion-4|

Support for changing to the previous tab-local and window-local directories
using the "tcd -" and "lcd -" commands. (|:tcd-| and |:lcd-|)

Add support for skipping an expression using |search()|.

Add support for sorting the directory contents returned by the |readdir()|
and |readdirex()| functions by case.

Add support for executing (|:@|) a register containing line continuation.

Lua support:
- Call MNV functions from Lua (mnv.call() and mnv.fn()).
- Convert a Lua function and a closure to a MNV funcref so that it can be
  accessed in a MNV script (|lua-funcref|).
- Not backwards compatible: Make Lua arrays one based.
- Add support for using table.insert() and table.remove() functions with MNV
  lists.
- Support for running multiple Ex-mode commands using mnv.command().
- Add mnv.lua_version to get the Lua version.
- Add support for accessing MNV namespace dictionaries from Lua
  (|lua-mnv-variables|).

Support for new UTF-8 characters from Unicode release 13.

Support for using a command block (|:command-repl|) when defining a |:command|
or an |:autocmd|.

Support for using |:z!| to use the MNV display height instead of the current
window height.

Support for deleting a buffer-local command using ":delcommand -buffer {cmd}".

When formatting a // comment after a statement, find the start of the line
comment, insert the comment leader and indent the comment properly (|fo-/|).

Add the "numhl" argument to `:sign define` to use a separate highlight group
for the line number on a line where a sign is placed.  |:sign-define|

When $SHELL ends in "nologin" or "false", start MNV in restricted mode.

TermDebug enhancements:
- Support for showing the disassembled code in a separate window.
- Support for the GDB until command.
- Use a separate group for the signs.

xxd: Support for showing offset as a decimal number (-d).

The C omni-complete plugin (|ft-c-omni|), the file type detection script
(ft.mnv) and the syntax menu generation script (makemenu.mnv) have been
rewritten using the MNV9 script syntax.

A large number of tests have been added to verify the MNV functionality.  Most
of the old style tests have been converted to new style tests using the new
style assert_* functions.

Many Coverity static analysis warnings have been fixed.

==============================================================================
COMPILE TIME CHANGES					*compile-changes-9*

The following features are now enabled in all the builds:
  |+cindent|
  |+jumplist|
  |+lispindent|
  |+num64|
  |+smartindent|
  |+tag_binary|
  |+title|

The following features have been removed.  They are either obsolete or didn't
work properly:
  - Athena and neXTaw GUI support (use Motif instead)
  - EBCDIC support
  - Atari MiNT and BeOS
  - Mac Carbon GUI (use MacMNV instead)

The rgb.txt file is no longer included, use colors/lists/default.mnv instead.

Several large source files were split, mainly to make it easier to inspect
code coverage information.  Source files have also been refactored for
maintainability.

Support for building MNV with Mingw64 clang compiler on MS-Windows.

Support for building MNV with Python 3.10, Lua 5.4.4, Perl 5.34 and
Ruby 3.1.0.

==============================================================================
PATCHES						*patches-9* *bug-fixes-9*
						*patches-after-8.2*

The list of patches that got included since 8.2.0.  This includes all the new
features, but does not include runtime file changes (syntax, indent, help,
etc.)

Patch 8.2.0001
Problem:    #endif comments do not reflect corresponding #ifdef.
Solution:   Update the comments. (Rene Nyffenegger, closes #5351)
Files:      src/ui.c

Patch 8.2.0002
Problem:    "dj" only deletes first line of closed fold.
Solution:   Adjust last line of operator for linewise motion. (closes #5354)
Files:      src/ops.c, src/testdir/test_fold.mnv

Patch 8.2.0003
Problem:    Build file dependencies are incomplete.
Solution:   Fix the dependencies. (Ken Takata, closes #5356)
Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms,
            src/Makefile

Patch 8.2.0004
Problem:    Get E685 and E931 if buffer reload is interrupted.
Solution:   Do not abort deleting a dummy buffer. (closes #5361)
Files:      src/buffer.c, src/proto/buffer.pro, src/testdir/test_trycatch.mnv,
            src/ex_cmds.c, src/ex_getln.c, src/misc2.c, src/quickfix.c,
            src/window.c, src/mnv.h

Patch 8.2.0005
Problem:    Duplication in version info.
Solution:   Use preprocessor string concatenation. (Ken Takata, closes #5357)
Files:      src/version.h

Patch 8.2.0006
Problem:    Test using long file name may fail. (Vladimir Lomov)
Solution:   Limit the name length. (Christian Brabandt, closes #5358)
Files:      src/testdir/test_display.mnv

Patch 8.2.0007
Problem:    Popup menu positioned wrong with folding in two tabs.
Solution:   Update the cursor line height. (closes #5353)
Files:      src/move.c, src/proto/move.pro, src/popupmenu.c,
            src/testdir/test_ins_complete.mnv,
            src/testdir/dumps/Test_pum_with_folds_two_tabs.dump

Patch 8.2.0008
Problem:    Test72 is old style.
Solution:   Convert to new style test. (Yegappan Lakshmanan, closes #5362)
Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms,
            src/testdir/test72.in, src/testdir/test72.ok,
            src/testdir/test_undo.mnv

Patch 8.2.0009
Problem:    VMS: terminal version doesn't build.
Solution:   Move MIN definition.  Adjust #ifdefs. (Zoltan Arpadffy)
Files:      src/bufwrite.c, src/fileio.c, src/ui.c, src/xxd/Make_vms.mms

Patch 8.2.0010
Problem:    Test64 is old style.
Solution:   Convert to new style test. (Yegappan Lakshmanan, closes #5363)
Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms,
            src/testdir/test64.in, src/testdir/test64.ok,
            src/testdir/test95.in, src/testdir/test_regexp_latin.mnv

Patch 8.2.0011
Problem:    Screen updating wrong when opening preview window.
Solution:   Redraw the window when the preview window opens.
Files:      src/popupmenu.c, src/testdir/test_ins_complete.mnv,
            src/testdir/dumps/Test_pum_with_preview_win.dump

Patch 8.2.0012
Problem:    Some undo functionality is not tested.
Solution:   Add a few more test cases. (Dominique Pellé, closes #5364)
Files:      src/testdir/test_undo.mnv

Patch 8.2.0013
Problem:    Not using a typedef for condstack.
Solution:   Add a typedef.
Files:      src/structs.h, src/ex_docmd.c, src/ex_eval.c, src/userfunc.c,
            src/ex_cmds.h, src/proto/ex_eval.pro

Patch 8.2.0014
Problem:    Test69 and test95 are old style.
Solution:   Convert to new style tests. (Yegappan Lakshmanan, closes #5365)
Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms,
            src/testdir/test69.in, src/testdir/test69.ok,
            src/testdir/test95.in, src/testdir/test95.ok,
            src/testdir/test_regexp_utf8.mnv, src/testdir/test_textformat.mnv

Patch 8.2.0015
Problem:    Not all modeline variants are tested.
Solution:   Add modeline tests. (Dominique Pellé, closes #5369)
Files:      src/testdir/test_modeline.mnv

Patch 8.2.0016
Problem:    Test name used twice, option not restored properly.
Solution:   Rename function, restore option with "&".
Files:      src/testdir/test_textformat.mnv

Patch 8.2.0017
Problem:    OS/2 and MS-DOS are still mentioned, even though support was
            removed long ago.
Solution:   Update documentation. (Yegappan Lakshmanan, closes #5368)
Files:      runtime/doc/autocmd.txt, runtime/doc/change.txt,
            runtime/doc/cmdline.txt, runtime/doc/editing.txt,
            runtime/doc/eval.txt, runtime/doc/gui.txt, runtime/doc/insert.txt,
            runtime/doc/options.txt, runtime/doc/print.txt,
            runtime/doc/quickfix.txt, runtime/doc/repeat.txt,
            runtime/doc/starting.txt, runtime/doc/usr_01.txt,
            runtime/doc/usr_05.txt, runtime/doc/usr_41.txt,
            runtime/doc/vi_diff.txt, runtime/gmnvrc_example.mnv,
            runtime/tools/README.txt, runtime/mnvrc_example.mnv, src/feature.h

Patch 8.2.0018
Problem:    :join does not add white space where it should. (Zdenek Dohnal)
Solution:   Handle joining multiple lines properly.
Files:      src/ops.c, src/testdir/test_join.mnv

Patch 8.2.0019
Problem:    Cannot get number of lines of another buffer.
Solution:   Add "linecount" to getbufinfo(). (Yasuhiro Matsumoto,
            closes #5370)
Files:      src/evalbuffer.c, src/testdir/test_bufwintabinfo.mnv,
            runtime/doc/eval.txt

Patch 8.2.0020
Problem:    Mouse clicks in the command line not tested.
Solution:   Add tests. (Dominique Pellé, closes #5366)
Files:      src/testdir/test_termcodes.mnv

Patch 8.2.0021
Problem:    Timer test fails too often on Travis with macOS.
Solution:   Be less strict with the time.
Files:      src/testdir/test_timers.mnv

Patch 8.2.0022
Problem:    Click in popup window doesn't close it in the GUI. (Sergey Vlasov)
Solution:   When processing the selection also send a button release event.
            (closes #5367)
Files:      src/gui.c

Patch 8.2.0023
Problem:    Command line editing not sufficiently tested.
Solution:   Add more tests. (Dominique Pellé, closes #5374)
Files:      src/testdir/Make_all.mak, src/testdir/test_alot.mnv,
            src/testdir/test_cmdline.mnv, src/testdir/test_ex_mode.mnv

Patch 8.2.0024
Problem:    Filetype Rego not recognized.
Solution:   Add *.rego. (Matt Dunford, closes #5376)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.0025
Problem:    Repeated word in comment.
Solution:   Remove one. (Rene Nyffenegger, closes #5384)
Files:      src/structs.h

Patch 8.2.0026
Problem:    Still some /* */ comments.
Solution:   Convert to // comments.
Files:      src/message.c, src/message_test.c, src/misc1.c, src/misc2.c,
            src/move.c

Patch 8.2.0027
Problem:    Still some /* */ comments.
Solution:   Convert to // comments.
Files:      src/iid_ole.c, src/indent.c, src/insexpand.c, src/iscygpty.c,
            src/version.c

Patch 8.2.0028
Problem:    Searchpairpos() is not tested.
Solution:   Add tests.  Also improve searchpair() testing. (Dominique Pellé,
            closes #5388)
Files:      src/testdir/test_search.mnv

Patch 8.2.0029
Problem:    MS-Windows: crash with empty job command.
Solution:   Check for NULL result. (Yasuhiro Matsumoto, closes #5390)
Files:      src/channel.c, src/testdir/test_channel.mnv

Patch 8.2.0030
Problem:    "gF" does not work on output of "verbose command".
Solution:   Recognize " line " and translations. (closes #5391)
Files:      src/globals.h, src/eval.c, src/findfile.c, src/testdir/test_gf.mnv

Patch 8.2.0031 (after 8.2.0029)
Problem:    MS-Windows: test for empty job fails
Solution:   Check for error message, make it also fail on Unix.
Files:      src/channel.c, src/testdir/test_channel.mnv

Patch 8.2.0032 (after 8.2.0031)
Problem:    MS-Windows: test for blank job fails
Solution:   Check before escaping.
Files:      src/channel.c, src/testdir/test_channel.mnv

Patch 8.2.0033
Problem:    Crash when make_extmatch() runs out of memory.
Solution:   Check for NULL. (Dominique Pellé, closes #5392)
Files:      src/regexp_bt.c, src/regexp_nfa.c

Patch 8.2.0034
Problem:    Missing check for out of memory.
Solution:   Check for NULL after mnv_strsave(). (Dominique Pellé,
            closes #5393)
Files:      src/filepath.c

Patch 8.2.0035
Problem:    Saving and restoring called_emsg is clumsy.
Solution:   Count the number of error messages.
Files:      src/message.c, src/buffer.c, src/channel.c, src/drawscreen.c,
            src/ex_cmds2.c, src/gui.c, src/highlight.c, src/main.c,
            src/regexp.c, src/search.c, src/testing.c, src/globals.h

Patch 8.2.0036
Problem:    Not enough test coverage for match functions.
Solution:   Add a few more test cases.  (Dominique Pellé, closes #5394)
            Add error number.
Files:      src/testdir/test_match.mnv

Patch 8.2.0037
Problem:    Missing renamed message.
Solution:   Now really add the error number.
Files:      src/highlight.c

Patch 8.2.0038
Problem:    Spell suggestions insufficiently tested.
Solution:   Add spell suggestion tests. (Dominique Pellé, closes #5398)
Files:      src/testdir/test_spell.mnv

Patch 8.2.0039
Problem:    Memory access error when "z=" has no suggestions.
Solution:   Check for negative index.
Files:      src/testdir/test_spell.mnv, src/spellsuggest.c

Patch 8.2.0040
Problem:    Timers test is still flaky on Travis for Mac.
Solution:   Run separately instead of as part of test_alot.
Files:      src/testdir/Make_all.mak, src/testdir/test_alot.mnv

Patch 8.2.0041
Problem:    Leaking memory when selecting spell suggestion.
Solution:   Free previous value at the right time.
Files:      src/spellsuggest.c

Patch 8.2.0042
Problem:    Clearing funccal values twice.
Solution:   Remove clearing individual fields.
Files:      src/userfunc.c

Patch 8.2.0043
Problem:    Timers test is still flaky on Travis for Mac.
Solution:   Increase maximum expected time.
Files:      src/testdir/test_timers.mnv

Patch 8.2.0044
Problem:    Expression type is used inconsistently.
Solution:   Add "ETYPE_IS" and "ETYPE_ISNOT" as separate enum values.  Rename
            "TYPE_" to "ETYPE_" to avoid confusion.
Files:      src/structs.h, src/eval.c, src/proto/eval.pro, src/debugger.c

Patch 8.2.0045 (after 8.2.0044)
Problem:    Script test fails.
Solution:   For numbers "is" and "isnot" work like "==" and "!=".
Files:      src/eval.c

Patch 8.2.0046
Problem:    Tests for spell suggestions are slow.
Solution:   Use shorter words. Test with latin1 and utf-8 to cover more code.
            (Dominique Pellé, closes #5399)
Files:      src/testdir/test_spell.mnv

Patch 8.2.0047
Problem:    Cannot skip tests for specific MS-Windows platform.
Solution:   Add windowsversion().
Files:      src/os_win32.c, src/globals.h, src/evalfunc.c,
            runtime/doc/eval.txt, src/testdir/gen_opt_test.mnv,
            src/testdir/test_options.mnv

Patch 8.2.0048
Problem:    Another timers test is flaky on Travis for Mac.
Solution:   Increase maximum expected time.
Files:      src/testdir/test_timers.mnv

Patch 8.2.0049
Problem:    Command line completion not fully tested.
Solution:   Add more test cases.  Make help sorting stable. (Dominique Pellé,
            closes #5402)
Files:      src/ex_cmds.c, src/testdir/test_cd.mnv,
            src/testdir/test_cmdline.mnv, src/testdir/test_help.mnv,
            src/testdir/test_menu.mnv, src/testdir/test_options.mnv,
            src/testdir/test_syntax.mnv

Patch 8.2.0050
Problem:    After deleting a file mark it is still in mnvinfo.
Solution:   When a file mark was deleted more recently than the mark in the
            merged mnvinfo file was updated, do not store the mark. (Pavol
            Juhas, closes #5401, closes #1339)
Files:      src/mark.c, src/testdir/test_marks.mnv,
            src/testdir/test_mnvinfo.mnv, src/mnvinfo.c

Patch 8.2.0051 (after 8.2.0049)
Problem:    Command line completion test skipped. (Christian Brabandt)
Solution:   Invert condition.
Files:      src/testdir/test_cmdline.mnv

Patch 8.2.0052
Problem:    More-prompt not properly tested.
Solution:   Add a test case. (Dominique Pellé, closes #5404)
Files:      src/testdir/test_messages.mnv

Patch 8.2.0053
Problem:    windowsversion() does not always return the right value.
Solution:   Add a compatibility section in the manifest. (Ken Takata,
            closes #5407)
Files:      src/gmnv.exe.mnf

Patch 8.2.0054
Problem:    :diffget and :diffput don't have good completion.
Solution:   Add proper completion. (Dominique Pellé, closes #5409)
Files:      runtime/doc/eval.txt, src/buffer.c, src/cmdexpand.c,
            src/testdir/test_diffmode.mnv, src/usercmd.c, src/mnv.h

Patch 8.2.0055
Problem:    Cannot use ":gui" in mnvrc with MNVDLL enabled.
Solution:   Change the logic, check "gui.starting". (Ken Takata, closes #5408)
Files:      src/gui.c

Patch 8.2.0056
Problem:    Execution stack is incomplete and inefficient.
Solution:   Introduce a proper execution stack and use it instead of
            sourcing_name/sourcing_lnum.  Create a string only when used.
Files:      src/structs.h, src/globals.h, src/autocmd.c, src/buffer.c
            src/debugger.c, src/ex_docmd.c, src/ex_eval.c, src/highlight.c,
            src/main.c, src/map.c, src/message.c, src/proto/scriptfile.pro,
            src/scriptfile.c, src/option.c, src/profiler.c, src/spellfile.c,
            src/term.c, src/testing.c, src/usercmd.c, src/userfunc.c,
            src/kword_test.c, src/testdir/test_debugger.mnv

Patch 8.2.0057 (after 8.2.0056)
Problem:    Cannot build with small features.
Solution:   Add #ifdefs.
Files:      src/scriptfile.c

Patch 8.2.0058
Problem:    Running tests changes ~/.mnvinfo.
Solution:   Make 'mnvinfo' empty when summarizing tests results. (closes #5414)
Files:      src/testdir/summarize.mnv

Patch 8.2.0059
Problem:    Compiler warnings for unused variables in small build. (Tony
            Mechelynck)
Solution:   Add #ifdef.
Files:      src/scriptfile.c

Patch 8.2.0060
Problem:    Message test only runs with one encoding. (Dominique Pellé)
Solution:   Run the test with "utf-8" and "latin1".  Fix underflow. (related
            to #5410)
Files:      src/message_test.c, src/message.c

Patch 8.2.0061
Problem:    The execute stack can grow big and never shrinks.
Solution:   Reduce the size in garbage collect.
Files:      src/eval.c

Patch 8.2.0062
Problem:    Memory test is flaky on FreeBSD.
Solution:   Add a short sleep before getting the first size.
Files:      src/testdir/test_memory_usage.mnv

Patch 8.2.0063
Problem:    Wrong size argument to mnv_snprintf(). (Dominique Pellé)
Solution:   Reduce the size by the length. (related to #5410)
Files:      src/ops.c

Patch 8.2.0064
Problem:    Diffmode completion doesn't use per-window setting.
Solution:   Check if a window is in diff mode. (Dominique Pellé, closes #5419)
Files:      src/buffer.c, src/testdir/test_diffmode.mnv

Patch 8.2.0065
Problem:    Amiga and alikes: autoopen only used on Amiga OS4.
Solution:   Adjust #ifdefs. (Ola Söder, closes #5413)
Files:      src/os_amiga.c

Patch 8.2.0066
Problem:    Some corners of mnv_snprintf() are not tested.
Solution:   Add a test in C. (Dominique Pellé, closes #5422)
Files:      src/message_test.c

Patch 8.2.0067
Problem:    ERROR_UNKNOWN clashes on some systems.
Solution:   Rename ERROR_ to FCERR_. (Ola Söder, closes #5415)
Files:      src/evalfunc.c, src/userfunc.c, src/mnv.h

Patch 8.2.0068
Problem:    Crash when using Python 3 with "utf32" encoding. (Dominique Pellé)
Solution:   Use "utf-8" whenever enc_utf8 is set. (closes #5423)
Files:      src/testdir/test_python3.mnv, src/if_py_both.h

Patch 8.2.0069
Problem:    ETYPE_ is used for two different enums.
Solution:   Rename one to use EXPR_.
Files:      src/structs.h, src/eval.c, src/debugger.c

Patch 8.2.0070
Problem:    Crash when using Python 3 with "debug" encoding. (Dominique Pellé)
Solution:   Use "euc-jp" whenever enc_dbcs is set.
Files:      src/testdir/test_python3.mnv, src/if_py_both.h

Patch 8.2.0071
Problem:    Memory test often fails on Cirrus CI.
Solution:   Allow for more tolerance in the upper limit.  Remove sleep.
Files:      src/testdir/test_memory_usage.mnv

Patch 8.2.0072 (after 8.2.0071)
Problem:    Memory test still fails on Cirrus CI.
Solution:   Allow for a tiny bit more tolerance in the upper limit.
Files:      src/testdir/test_memory_usage.mnv

Patch 8.2.0073
Problem:    Initializing globals with COMMA is clumsy.
Solution:   Use INIT2(), INIT3(), etc.
Files:      src/mnv.h, src/globals.h

Patch 8.2.0074
Problem:    Python 3 unicode test sometimes fails.
Solution:   Make 'termencoding' empty.  Correct number of error message.
Files:      src/change.c, runtime/doc/options.txt, runtime/doc/message.txt,
            src/testdir/test_python3.mnv

Patch 8.2.0075
Problem:    Python 3 unicode test still sometimes fails.
Solution:   Skip the test when 'termencoding' is not empty.
Files:      src/testdir/test_python3.mnv

Patch 8.2.0076
Problem:    Python 3 unicode test fails on MS-Windows.
Solution:   Do not set 'encoding' to "debug" on MS-Windows.
Files:      src/testdir/test_python3.mnv

Patch 8.2.0077
Problem:    settagstack() cannot truncate at current index.
Solution:   Add the "t" action. (Yegappan Lakshmanan, closes #5417)
Files:      runtime/doc/eval.txt, src/evalfunc.c, src/tag.c,
            src/testdir/test_tagjump.mnv

Patch 8.2.0078
Problem:    Expanding <sfile> works differently the second time.
Solution:   Keep the expanded name when redefining a function. (closes #5425)
Files:      src/testdir/test_mnvscript.mnv, src/userfunc.c

Patch 8.2.0079
Problem:    Python 3 unicode test still fails on MS-Windows.
Solution:   Do not set 'encoding' to "euc-tw" on MS-Windows.
Files:      src/testdir/test_python3.mnv

Patch 8.2.0080
Problem:    Globals using INIT4() are not in the tags file.
Solution:   Adjust the tags command.
Files:      src/configure.ac, src/auto/configure

Patch 8.2.0081
Problem:    MS-Windows also need the change to support INIT4().
Solution:   Add the ctags arguments. (Ken Takata)
Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak

Patch 8.2.0082
Problem:    When reusing a buffer listeners are not cleared. (Axel Forsman)
Solution:   Clear listeners when reusing a buffer. (closes #5431)
Files:      src/testdir/test_listener.mnv, src/buffer.c

Patch 8.2.0083
Problem:    Text properties wrong when tabs and spaces are exchanged.
Solution:   Take text properties into account. (Nobuhiro Takasaki,
            closes #5427)
Files:      src/edit.c, src/testdir/test_textprop.mnv

Patch 8.2.0084
Problem:    Complete item "user_data" can only be a string.
Solution:   Accept any type of variable. (closes #5412)
Files:      src/testdir/test_ins_complete.mnv, src/insexpand.c, src/dict.c,
            src/proto/dict.pro, src/eval.c, runtime/doc/insert.txt

Patch 8.2.0085
Problem:    Dead code in builtin functions.
Solution:   Clean up the code.
Files:      src/evalvars.c, src/sound.c, src/textprop.c

Patch 8.2.0086 (after 8.2.0084)
Problem:    Build error for small version. (Tony Mechelynck)
Solution:   Only use "user_data" with the +eval feature. Remove unused
            variable.
Files:      src/insexpand.c, src/dict.c

Patch 8.2.0087
Problem:    Crash in command line expansion when out of memory.
Solution:   Check for NULL pointer.  Also make ExpandGeneric() static.
            (Dominique Pellé, closes #5437)
Files:      src/cmdexpand.c, src/proto/cmdexpand.pro

Patch 8.2.0088
Problem:    Insufficient tests for tags; bug in using extra tag field when
            using an ex command to position the cursor.
Solution:   Fix the bug, add more tests. (Yegappan Lakshmanan, closes #5439)
Files:      runtime/doc/tagsrch.txt, src/tag.c,
            src/testdir/test_ins_complete.mnv, src/testdir/test_tagfunc.mnv,
            src/testdir/test_tagjump.mnv, src/testdir/test_taglist.mnv

Patch 8.2.0089
Problem:    Crash when running out of memory in :setfiletype completion.
Solution:   Do not allocate memory. (Dominique Pellé, closes #5438)
Files:      src/cmdexpand.c

Patch 8.2.0090
Problem:    Generated files show up in git status.
Solution:   Ignore a few more files.
Files:      .gitignore

Patch 8.2.0091
Problem:    Compiler warnings for size_t / int types.
Solution:   Change type to size_t. (Mike Williams)
Files:      src/scriptfile.c

Patch 8.2.0092
Problem:    Tags functionality insufficiently tested.
Solution:   Add more tags tests. (Yegappan Lakshmanan, closes #5446)
Files:      src/testdir/test_tagjump.mnv

Patch 8.2.0093
Problem:    win_splitmove() can make MNV hang.
Solution:   Check windows exists in the current tab page. (closes #5444)
Files:      src/testdir/test_window_cmd.mnv, src/evalwindow.c

Patch 8.2.0094
Problem:    MS-Windows: cannot build with Strawberry Perl 5.30.
Solution:   Define __builtin_expect() as a workaround. (Ken Takata,
            closes #5267)
Files:      src/if_perl.xs

Patch 8.2.0095
Problem:    Cannot specify exit code for :cquit.
Solution:   Add optional argument. (Thinca, Yegappan Lakshmanan, closes #5442)
Files:      runtime/doc/quickfix.txt, src/ex_cmds.h, src/ex_docmd.c,
            src/testdir/test_quickfix.mnv

Patch 8.2.0096
Problem:    Cannot create tiny popup window in last column. (Daniel Steinberg)
Solution:   Remove position limit. (closes #5447)
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv,
            src/testdir/dumps/Test_popupwin_20.dump,
            src/testdir/dumps/Test_popupwin_21.dump

Patch 8.2.0097
Problem:    Crash with autocommand and spellfile. (Tim Pope)
Solution:   Do not pop exestack when not pushed. (closes #5450)
Files:      src/testdir/test_autocmd.mnv, src/spellfile.c

Patch 8.2.0098
Problem:    Exe stack length can be wrong without being detected.
Solution:   Add a check when ABORT_ON_INTERNAL_ERROR is defined.
Files:      src/macros.h, src/autocmd.c, src/buffer.c, src/ex_docmd.c,
            src/main.c, src/map.c, src/scriptfile.c, src/spellfile.c,
            src/userfunc.c

Patch 8.2.0099
Problem:    Use of NULL pointer when out of memory.
Solution:   Check for NULL pointer. (Dominique Pellé, closes #5449)
Files:      src/cmdexpand.c

Patch 8.2.0100
Problem:    Macros for Ruby are too complicated.
Solution:   Do not use DYNAMIC_RUBY_VER, use RUBY_VERSION. (Ken Takata,
            closes #5452)
Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak, src/auto/configure,
            src/configure.ac, src/if_ruby.c

Patch 8.2.0101
Problem:    Crash when passing null object to ":echomsg".
Solution:   Check for NULL pointer. (Yasuhiro Matsumoto, closes #5460)
Files:      src/eval.c, src/testdir/test_messages.mnv

Patch 8.2.0102
Problem:    Messages test fails in small version.
Solution:   Only use test_null_job() when available.
Files:      src/testdir/test_messages.mnv

Patch 8.2.0103
Problem:    Using null object with execute() has strange effects.
Solution:   Give an error message for Job and Channel.
Files:      src/testdir/test_execute_func.mnv, src/globals.h, src/eval.c,
            src/evalfunc.c

Patch 8.2.0104
Problem:    Using channel or job with ":execute" has strange effects.
Solution:   Give an error message for Job and Channel.
Files:      src/testdir/test_eval_stuff.mnv, src/eval.c

Patch 8.2.0105
Problem:    MNV license not easy to find on github.
Solution:   Add a separate LICENCE file. (closes #5458)
Files:      LICENSE, Filelist

Patch 8.2.0106
Problem:    Printf formats are not exactly right.
Solution:   Adjust signed/unsigned conversions. (Frazer Clews, closes #5456)
Files:      runtime/tools/ccfilter.c, src/libvterm/src/parser.c,
            src/libvterm/src/pen.c, src/ui.c

Patch 8.2.0107
Problem:    Hgignore is out of sync from gitignore.
Solution:   Add lines to hgignore. (Ken Takata)
Files:      .hgignore

Patch 8.2.0108
Problem:    When sign text is changed a manual redraw is needed. (Pontus
            Lietzler)
Solution:   Redraw automatically. (closes #5455)
Files:      src/testdir/test_signs.mnv, src/sign.c,
            src/testdir/dumps/Test_sign_cursor_1.dump,
            src/testdir/dumps/Test_sign_cursor_2.dump,
            src/testdir/dumps/Test_sign_cursor_3.dump,
            src/testdir/dumps/Test_sign_cursor_01.dump,
            src/testdir/dumps/Test_sign_cursor_02.dump

Patch 8.2.0109
Problem:    Corrupted text properties when expanding spaces.
Solution:   Reallocate the line. (Nobuhiro Takasaki, closes #5457)
Files:      src/edit.c, src/testdir/test_textprop.mnv

Patch 8.2.0110
Problem:    prop_find() is not implemented.
Solution:   Implement prop_find(). (Ryan Hackett, closes #5421, closes #4970)
Files:      src/evalfunc.c, src/proto/textprop.pro,
            src/testdir/test_textprop.mnv, src/textprop.c,
            runtime/doc/textprop.txt

Patch 8.2.0111
Problem:    VAR_SPECIAL is also used for booleans.
Solution:   Add VAR_BOOL for better type checking.
Files:      src/structs.h, src/dict.c, src/eval.c, src/evalfunc.c,
            src/evalvars.c, src/if_lua.c, src/if_mzsch.c, src/if_py_both.h,
            src/if_ruby.c, src/json.c, src/popupmenu.c, src/proto/dict.pro,
            src/testing.c, src/mnv.h, src/mnvinfo.c

Patch 8.2.0112
Problem:    Illegal memory access when using 'cindent'.
Solution:   Check for NUL byte. (Dominique Pellé, closes #5470)
Files:      src/cindent.c, src/testdir/test_cindent.mnv

Patch 8.2.0113 (after 8.2.0095)
Problem:    "make cmdidxs" fails.
Solution:   Allow address for ":cquit".  Add --not-a-term to avoid a delay.
Files:      src/ex_cmds.h, src/Makefile, src/Make_cyg_ming.mak,
            src/Make_mvc.mak

Patch 8.2.0114
Problem:    Info about sourced scripts is scattered.
Solution:   Use scriptitem_T for info about a script, including s: variables.
            Drop ga_scripts.
Files:      src/structs.h, src/evalvars.c, src/scriptfile.c, src/eval.c

Patch 8.2.0115
Problem:    Byte2line() does not work correctly with text properties. (Billie
            Cleek)
Solution:   Take the bytes of the text properties into account.
            (closes #5334)
Files:      src/testdir/test_textprop.mnv, src/memline.c

Patch 8.2.0116
Problem:    BufEnter autocmd not triggered on ":tab drop". (Andy Stewart)
Solution:   Decrement autocmd_no_enter for the last file. (closes #1660,
            closes #5473)
Files:      src/arglist.c, src/testdir/test_tabpage.mnv

Patch 8.2.0117
Problem:    Crash when using gettabwinvar() with invalid arguments. (Yilin
            Yang)
Solution:   Use "curtab" if "tp" is NULL. (closes #5475)
Files:      src/evalwindow.c, src/testdir/test_getvar.mnv

Patch 8.2.0118
Problem:    Crash when cycling to buffers involving popup window.
Solution:   Do not decrement buffer reference count.
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv,
            src/testdir/dumps/Test_popupwin_infopopup_7.dump

Patch 8.2.0119
Problem:    Message test fails on some platforms. (Elimar Riesebieter)
Solution:   Add type cast to mnv_snprintf() argument. (Dominique Pellé)
Files:      src/message_test.c

Patch 8.2.0120
Problem:    virtcol() does not check arguments to be valid, which may lead to
            a crash.
Solution:   Check the column to be valid.  Do not decrement MAXCOL.
            (closes #5480)
Files:      src/evalfunc.c, src/testdir/test_marks.mnv

Patch 8.2.0121
Problem:    filter() and map() on blob don't work.
Solution:   Correct the code. (closes #5483)
Files:      src/list.c, src/testdir/test_blob.mnv

Patch 8.2.0122
Problem:    Readme files still mention MS-DOS.
Solution:   Update readme files. (Ken Takata, closes #5486)
Files:      README.md, README.txt, READMEdir/README_dos.txt,
            READMEdir/README_srcdos.txt, READMEdir/README_w32s.txt,
            runtime/doc/os_win32.txt

Patch 8.2.0123
Problem:    complete_info() does not work when CompleteDone is triggered.
Solution:   Trigger CompleteDone before clearing the info.
Files:      src/insexpand.c, runtime/doc/autocmd.txt,
            src/testdir/test_ins_complete.mnv

Patch 8.2.0124
Problem:    Compiler warnings for variable types.
Solution:   Change type, add type cast. (Mike Williams)
Files:      src/memline.c

Patch 8.2.0125
Problem:    :mode no longer works for any system.
Solution:   Always give an error message.
Files:      src/ex_docmd.c, runtime/doc/quickref.txt, src/os_amiga.c,
            src/proto/os_amiga.pro, src/os_mswin.c, src/proto/os_mswin.pro,
            src/os_unix.c, src/proto/os_unix.pro

Patch 8.2.0126 (after 8.2.0124)
Problem:    Textprop test fails.
Solution:   Fix sign in computation.
Files:      src/memline.c

Patch 8.2.0127
Problem:    Some buffer commands work in a popup window.
Solution:   Disallow :bnext, :bprev, etc. (Naruhiko Nishino, closes #5494)
Files:      src/ex_docmd.c, src/testdir/test_popupwin.mnv

Patch 8.2.0128
Problem:    Cannot list options one per line.
Solution:   Use ":set!" to list one option per line.
Files:      src/ex_docmd.c, src/option.c, src/proto/option.pro, src/mnv.h,
            src/ex_cmds.h, src/optiondefs.h, src/testdir/test_options.mnv,
            runtime/doc/options.txt

Patch 8.2.0129
Problem:    MS-Windows installer doesn't use Turkish translations.
Solution:   Enable the Turkish translations and fix a few. (Emir Sarı,
            closes #5493)
Files:      nsis/gmnv.nsi, nsis/lang/turkish.nsi

Patch 8.2.0130
Problem:    Python3 ranges are not tested.
Solution:   Add test. (Dominique Pellé, closes #5498)
Files:      src/testdir/test_python3.mnv

Patch 8.2.0131
Problem:    Command line is not cleared when switching tabs and the command
            line height differs.
Solution:   Set the "clear_cmdline" flag when needed. (Naruhiko Nishino,
            closes #5495)
Files:      src/testdir/dumps/Test_cmdlineclear_tabenter.dump,
            src/testdir/test_cmdline.mnv, src/window.c

Patch 8.2.0132
Problem:    Script may be re-used when deleting and creating a new one.
Solution:   When the inode matches, also check the file name.
Files:      src/scriptfile.c, src/testdir/test_source.mnv

Patch 8.2.0133
Problem:    Invalid memory access with search command.
Solution:   When :normal runs out of characters in bracketed paste mode break
            out of the loop.(closes #5511)
Files:      src/testdir/test_search.mnv, src/edit.c

Patch 8.2.0134
Problem:    Some map functionality not covered by tests.
Solution:   Add tests. (Yegappan Lakshmanan, closes #5504)
Files:      src/testdir/test_maparg.mnv, src/testdir/test_mapping.mnv

Patch 8.2.0135 (after 8.2.0133)
Problem:    Bracketed paste can still cause invalid memory access. (Dominique
            Pellé)
Solution:   Check for NULL pointer.
Files:      src/edit.c, src/testdir/test_search.mnv

Patch 8.2.0136
Problem:    Stray ch_logfile() call.
Solution:   Remove it. (closes #5503)
Files:      src/testdir/test_source.mnv

Patch 8.2.0137
Problem:    Crash when using win_execute() from a new tab.
Solution:   Set the tp_*win pointers. (Ozaki Kiichi, closes #5512)
Files:      src/testdir/test_winbuf_close.mnv, src/window.c

Patch 8.2.0138
Problem:    Memory leak when starting a job fails.
Solution:   Free the list of arguments. (Ozaki Kiichi, closes #5510)
Files:      src/channel.c, src/testdir/test_channel.mnv

Patch 8.2.0139
Problem:    MS-Windows: default for IME is inconsistent.
Solution:   Also make IME default enabled with MVC. (Ken Takata, closes #5508)
Files:      src/Make_mvc.mak

Patch 8.2.0140
Problem:    CI does not test building doc tags.
Solution:   Add the mnvtags/gcc build. Cleanup showing version. (Ozaki Kiichi,
            closes #5513)
Files:      .travis.yml, Filelist, ci/if_ver-1.mnv, ci/if_ver-2.mnv,
            ci/if_ver-cmd.mnv, runtime/doc/Makefile, runtime/doc/doctags.mnv,
            src/testdir/if_ver-1.mnv, src/testdir/if_ver-2.mnv

Patch 8.2.0141
Problem:    No swift filetype detection.
Solution:   Add swift, swiftgyb and sil. (Emir Sarı, closes #5517)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.0142
Problem:    Possible to enter popup window with CTRL-W p. (John Devin)
Solution:   Check entered window is not a popup window. (closes #5515)
Files:      src/window.c, src/popupwin.c, src/testdir/test_popupwin.mnv,
            src/testdir/dumps/Test_popupwin_previewpopup_9.dump,
            src/testdir/dumps/Test_popupwin_previewpopup_10.dump

Patch 8.2.0143
Problem:    Coverity warning for possible use of NULL pointer.
Solution:   Check argv is not NULL.
Files:      src/channel.c

Patch 8.2.0144
Problem:    Some mapping code is not fully tested.
Solution:   Add more test cases. (Yegappan Lakshmanan, closes #5519)
Files:      src/testdir/test_langmap.mnv, src/testdir/test_maparg.mnv,
            src/testdir/test_mapping.mnv

Patch 8.2.0145
Problem:    Using #error for compilation errors should be OK now.
Solution:   Use #error. (Ken Takata, closes #5299)
Files:      src/blowfish.c, src/mnv.h

Patch 8.2.0146
Problem:    Wrong indent when 'showbreak' and 'breakindent' are set and
            'briopt' includes "sbr".
Solution:   Reset "need_showbreak" where needed. (Ken Takata, closes #5523)
Files:      src/drawline.c, src/testdir/test_breakindent.mnv

Patch 8.2.0147
Problem:    Block Visual mode operators not correct when 'linebreak' set.
Solution:   Set w_p_lbr to lbr_saved more often. (Ken Takata, closes #5524)
Files:      src/ops.c, src/testdir/test_listlbr.mnv

Patch 8.2.0148
Problem:    Mapping related function in wrong source file.
Solution:   Move the function.  Add a few more test cases. (Yegappan
            Lakshmanan, closes #5528)
Files:      src/map.c, src/proto/term.pro, src/term.c,
            src/testdir/test_mapping.mnv

Patch 8.2.0149
Problem:    Maintaining a MNV9 branch separately is more work.
Solution:   Merge the MNV9 script changes.
Files:      README.md, README_MNV9.md, runtime/doc/Makefile,
            runtime/doc/eval.txt, runtime/doc/options.txt, runtime/doc/tags,
            runtime/doc/mnv9.txt, runtime/ftplugin/mnv.mnv,
            runtime/indent/mnv.mnv, runtime/syntax/mnv.mnv,
            src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Makefile, src/blob.c,
            src/channel.c, src/dict.c, src/eval.c, src/evalbuffer.c,
            src/evalfunc.c, src/evalvars.c, src/ex_cmdidxs.h, src/ex_cmds.h,
            src/ex_docmd.c, src/ex_eval.c, src/filepath.c, src/globals.h,
            src/gui.c, src/if_lua.c, src/if_py_both.h, src/insexpand.c,
            src/json.c, src/list.c, src/macros.h, src/main.c, src/message.c,
            src/misc1.c, src/proto.h, src/proto/blob.pro, src/proto/eval.pro,
            src/proto/evalfunc.pro, src/proto/evalvars.pro,
            src/proto/ex_docmd.pro, src/proto/ex_eval.pro, src/proto/list.pro,
            src/proto/message.pro, src/proto/scriptfile.pro,
            src/proto/userfunc.pro, src/proto/mnv9compile.pro,
            src/proto/mnv9execute.pro, src/proto/mnv9script.pro,
            src/scriptfile.c, src/session.c, src/structs.h, src/syntax.c,
            src/testdir/Make_all.mak, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_script.mnv, src/testing.c, src/userfunc.c,
            src/mnv.h, src/mnv9.h, src/mnv9compile.c, src/mnv9execute.c,
            src/mnv9script.c, src/mnvinfo.c

Patch 8.2.0150
Problem:    Cannot define python function when using :execute. (Yasuhiro
            Matsumoto)
Solution:   Do not recognize "def" inside "function.
Files:      src/testdir/test_mnv9_script.mnv, src/userfunc.c

Patch 8.2.0151
Problem:    Detecting a script was already sourced is unreliable.
Solution:   Do not use the inode number.
Files:      src/scriptfile.c, src/structs.h, src/testdir/test_mnv9_script.mnv

Patch 8.2.0152
Problem:    Restoring ctrl_x_mode is not needed.
Solution:   Remove restoring the old value, it's changed again soon.
Files:      src/insexpand.c

Patch 8.2.0153
Problem:    Warning shows when listing version info.
Solution:   Use "-u NONE". (Ozaki Kiichi, closes #5534)
Files:      .travis.yml

Patch 8.2.0154
Problem:    Reallocating the list of scripts is inefficient.
Solution:   Instead of using a growarray of scriptitem_T, store pointers and
            allocate each scriptitem_T separately.  Also avoids that the
            growarray pointers change when sourcing a new script.
Files:      src/globals.h, src/eval.c, src/evalvars.c, src/ex_docmd.c,
            src/profiler.c, src/scriptfile.c, src/mnv9compile.c,
            src/mnv9execute.c, src/mnv9script.c

Patch 8.2.0155
Problem:    Warnings from MinGW compiler. (John Marriott) Json test fails when
            building without +float feature.
Solution:   Init variables. Fix Json parsing. Skip a few tests that require
            the +float feature.
Files:      src/mnv9script.c, src/mnv9compile.c, src/mnv9execute.c,
            src/if_py_both.h, src/json.c, src/testdir/test_method.mnv

Patch 8.2.0156
Problem:    Various typos in source files and tests.
Solution:   Fix the typos. (Emir Sarı, closes #5532)
Files:      Makefile, src/INSTALLvms.txt, src/Make_vms.mms, src/beval.h,
            src/buffer.c, src/charset.c, src/evalvars.c, src/ex_cmds.c,
            src/ex_docmd.c, src/getchar.c, src/gui.c, src/gui_mac.c,
            src/gui_photon.c, src/if_perl.xs,
            src/libvterm/t/11state_movecursor.test,
            src/libvterm/t/41screen_unicode.test, src/mbyte.c, src/memline.c,
            src/normal.c, src/ops.c, src/option.c, src/option.h,
            src/os_unix.c, src/os_win32.c, src/quickfix.c, src/register.c,
            src/spell.c, src/tag.c, src/term.c,
            src/testdir/test_breakindent.mnv, src/testdir/test_channel.mnv,
            src/testdir/test_cindent.mnv, src/testdir/test_digraph.mnv,
            src/testdir/test_edit.mnv, src/testdir/test_netbeans.mnv,
            src/testdir/test_quickfix.mnv, src/testdir/test_registers.mnv,
            src/testdir/test_stat.mnv, src/ui.c, src/xxd/xxd.c

Patch 8.2.0157
Problem:    MNV9 script files not in list of distributed files.
Solution:   Add the entries.
Files:      Filelist

Patch 8.2.0158 (after 8.2.0123)
Problem:    Triggering CompleteDone earlier is not backwards compatible.
            (Daniel Hahler)
Solution:   Add CompleteDonePre instead.
Files:      src/insexpand.c, runtime/doc/autocmd.txt, src/autocmd.c,
            src/mnv.h, src/testdir/test_ins_complete.mnv

Patch 8.2.0159
Problem:    Non-materialized range() list causes problems. (Fujiwara Takuya)
Solution:   Materialize the list where needed.
Files:      src/testdir/test_functions.mnv, src/testdir/test_python3.mnv,
            src/userfunc.c, src/evalfunc.c, src/highlight.c, src/evalvars.c,
            src/popupmenu.c, src/insexpand.c, src/json.c, src/channel.c,
            src/eval.c

Patch 8.2.0160 (after 8.2.0159)
Problem:    Range test fails.
Solution:   Include change in list code. (#5541)
Files:      src/list.c

Patch 8.2.0161
Problem:    Not recognizing .gv file as dot filetype.
Solution:   Add *.gv to dot pattern. (closes #5544)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.0162
Problem:    Balloon test fails in the GUI.
Solution:   Skip test in the GUI.
Files:      src/testdir/test_functions.mnv

Patch 8.2.0163
Problem:    Test hangs on MS-Windows console.
Solution:   use feedkeys() instead of test_feedinput(). (Ken Takata)
Files:      src/testdir/test_functions.mnv, src/testing.c

Patch 8.2.0164
Problem:    Test_alot takes too long.
Solution:   Run several tests individually.
Files:      src/testdir/test_alot.mnv, src/testdir/Make_all.mak

Patch 8.2.0165
Problem:    Coverity warning for using NULL pointer.
Solution:   Add missing "else".
Files:      src/mnv9compile.c

Patch 8.2.0166
Problem:    Coverity warning for using uninitialized variable.
Solution:   Check for failure.
Files:      src/mnv9execute.c

Patch 8.2.0167
Problem:    Coverity warning for ignoring return value.
Solution:   Check the return value and jump if failed.
Files:      src/mnv9execute.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.0168
Problem:    Coverity warning for assigning NULL to an option.
Solution:   Use empty string instead of NULL.
Files:      src/mnv9execute.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.0169
Problem:    Coverity warning for dead code.
Solution:   Check if inside try-finally.
Files:      src/mnv9execute.c

Patch 8.2.0170
Problem:    Coverity warning for ignoring return value.
Solution:   Check the return value and return if failed.
Files:      src/mnv9compile.c

Patch 8.2.0171
Problem:    Coverity warning for using uninitialized buffer.
Solution:   Check the skip flag.
Files:      src/userfunc.c

Patch 8.2.0172
Problem:    Coverity warning for not restoring character.
Solution:   Restore the character also in case of failure.
Files:      src/mnv9script.c

Patch 8.2.0173
Problem:    Build fails with old compiler.
Solution:   Do not use anonymous unions. (John Marriott)
Files:      src/mnv9compile.c, src/evalvars.c, src/list.c, src/structs.h,
            src/evalfunc.c, src/channel.c, src/if_mzsch.c, src/if_py_both.h

Patch 8.2.0174
Problem:    Various commands not completely tested.
Solution:   Add more test cases. (Yegappan Lakshmanan, closes #5551)
Files:      src/testdir/test_excmd.mnv, src/testdir/test_fnameescape.mnv,
            src/testdir/test_ga.mnv, src/testdir/test_global.mnv,
            src/testdir/test_move.mnv, src/testdir/test_options.mnv,
            src/testdir/test_packadd.mnv, src/testdir/test_sort.mnv,
            src/testdir/test_substitute.mnv, src/testdir/test_textformat.mnv,
            src/testdir/test_writefile.mnv

Patch 8.2.0175
Problem:    Crash when removing list element in map().
Solution:   Lock the list. (closes #2652)
Files:      src/testdir/test_filter_map.mnv, src/list.c

Patch 8.2.0176
Problem:    Generating os headers does not work for Swedish.
Solution:   Set the locale to C. (Christian Brabandt, closes #5258)
Files:      src/osdef.sh

Patch 8.2.0177
Problem:    Memory leak in get_tags().
Solution:   Free matches when finding a pseudo-tag line. (Dominique Pellé,
            closes #5553)
Files:      src/tag.c

Patch 8.2.0178
Problem:    With VTP the screen may not be restored properly.
Solution:   Add another set of saved RGB values. (Nobuhiro Takasaki,
            closes #5548)
Files:      src/os_win32.c

Patch 8.2.0179
Problem:    Still a few places where range() does not work.
Solution:   Fix using range() causing problems.
Files:      src/terminal.c, src/testdir/test_functions.mnv,
            src/testdir/test_popupwin.mnv, src/popupwin.c, src/tag.c,
            src/testdir/dumps/Test_popupwin_20.dump,
            src/testdir/dumps/Test_popupwin_21.dump,
            src/testdir/dumps/Test_popup_settext_07.dump, src/globals.h

Patch 8.2.0180
Problem:    Test for wrapmargin fails if terminal is not 80 columns.
Solution:   Vertical split the window. (Ken Takata, closes #5554)
Files:      src/testdir/test_textformat.mnv

Patch 8.2.0181
Problem:    Problems parsing :term arguments.
Solution:   Improve parsing, fix memory leak, add tests. (Ozaki Kiichi,
            closes #5536)
Files:      src/channel.c, src/proto/channel.pro, src/structs.h,
            src/terminal.c, src/testdir/test_terminal.mnv

Patch 8.2.0182
Problem:    Min() and max() materialize a range() list.
Solution:   Compute the result without materializing the list. (#5541)
Files:      src/evalfunc.c

Patch 8.2.0183
Problem:    Tests fail when the float feature is disabled.
Solution:   Skip tests that don't work without float support.
Files:      src/testdir/shared.mnv, src/testdir/test_blob.mnv,
            src/testdir/test_channel.mnv, src/testdir/test_cscope.mnv,
            src/testdir/test_execute_func.mnv, src/testdir/test_expr.mnv,
            src/testdir/test_functions.mnv, src/testdir/test_lambda.mnv,
            src/testdir/test_listdict.mnv, src/testdir/test_lua.mnv,
            src/testdir/test_options.mnv, src/testdir/test_partial.mnv,
            src/testdir/test_ruby.mnv, src/testdir/test_sort.mnv,
            src/testdir/test_timers.mnv, src/testdir/test_true_false.mnv,
            src/testdir/test_user_func.mnv, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnvscript.mnv, src/testdir/test_regexp_latin.mnv,
            src/testdir/test_glob2regpat.mnv

Patch 8.2.0184
Problem:    Blob test fails.
Solution:   Check for different error when float feature is missing.
Files:      src/testdir/test_blob.mnv

Patch 8.2.0185
Problem:    MNV9 script: cannot use "if has()" to skip lines.
Solution:   Evaluate constant expression at runtime.
Files:      src/mnv9compile.c, src/evalfunc.c, src/proto/evalfunc.pro,
            src/userfunc.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.0186
Problem:    A couple of tests may fail when features are missing.
Solution:   Check for features. (Dominique Pellé, closes #5561)
Files:      src/testdir/test_functions.mnv, src/testdir/test_highlight.mnv

Patch 8.2.0187
Problem:    Redundant code.
Solution:   Remove unused assignments. (Dominique Pellé, closes #5557)
Files:      src/mnv9compile.c

Patch 8.2.0188
Problem:    Check commands don't work well with MNV9 script.
Solution:   Improve constant expression handling.
Files:      src/mnv9compile.c, src/testdir/check.mnv,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.0189
Problem:    cd() with NULL argument crashes.
Solution:   Check for NULL. (Ken Takata, closes #5558)
Files:      src/testdir/test_cd.mnv, src/ex_docmd.c

Patch 8.2.0190
Problem:    Kotlin files are not recognized.
Solution:   Detect Kotlin files. (Alkeryn, closes #5560)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.0191
Problem:    Cannot put a terminal in a popup window.
Solution:   Allow opening a terminal in a popup window.  It will always have
            keyboard focus until closed.
Files:      src/popupwin.c, src/proto/popupwin.pro, src/terminal.c,
            src/proto/terminal.pro, src/macros.h, src/mouse.c,
            src/highlight.c, src/drawline.c, src/optionstr.c, src/window.c,
            src/testdir/test_terminal.mnv,
            src/testdir/dumps/Test_terminal_popup_1.dump,
            src/testdir/dumps/Test_terminal_popup_2.dump,
            src/testdir/dumps/Test_terminal_popup_3.dump

Patch 8.2.0192 (after 8.2.0191)
Problem:    Build failure without +terminal feature.
Solution:   Add #ifdefs.
Files:      src/popupwin.c

Patch 8.2.0193 (after 8.2.0191)
Problem:    Still build failure without +terminal feature.
Solution:   Add more #ifdefs.
Files:      src/macros.h

Patch 8.2.0194 (after 8.2.0193)
Problem:    Some commands can cause problems in terminal popup.
Solution:   Disallow more commands.
Files:      src/macros.h, src/popupwin.c, src/proto/popupwin.pro,
            src/arglist.c, src/ex_docmd.c, src/window.c,
            src/testdir/test_terminal.mnv

Patch 8.2.0195
Problem:    Some tests fail when run in the GUI.
Solution:   Make sure the window width is enough.  In the GUI run terminal MNV
            in the terminal, if possible.
Files:      src/testdir/test_highlight.mnv, src/testdir/check.mnv,
            src/testdir/test_terminal.mnv

Patch 8.2.0196
Problem:    Blocking commands for a finished job in a popup window.
Solution:   Do not block commands if the job has finished.  Adjust test.
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv, src/window.c,
            src/terminal.c, src/proto/terminal.pro

Patch 8.2.0197
Problem:    Some Ex commands not sufficiently tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5565)
Files:      src/testdir/test_global.mnv, src/testdir/test_help.mnv,
            src/testdir/test_help_tagjump.mnv, src/testdir/test_options.mnv,
            src/testdir/test_substitute.mnv, src/testdir/test_textformat.mnv,
            src/testdir/test_writefile.mnv

Patch 8.2.0198
Problem:    No tests for y/n prompt.
Solution:   Add tests. (Dominique Pellé, closes #5564)
Files:      src/testdir/test_messages.mnv

Patch 8.2.0199
Problem:    MNV9 script commands not sufficiently tested.
Solution:   Add more tests.  Fix script-local function use.
Files:      src/mnv9execute.c, src/testdir/test_mnv9_script.mnv,
            src/userfunc.c

Patch 8.2.0200
Problem:    MNV9 script commands not sufficiently tested.
Solution:   Add more tests.  Fix storing global variable.  Make script
            variables work.
Files:      src/mnv9compile.c, src/mnv9execute.c, src/mnv9.h, src/evalvars.c,
            src/proto/evalvars.pro, src/testdir/test_mnv9_script.mnv,
            src/misc1.c, src/proto/misc1.pro

Patch 8.2.0201
Problem:    Cannot assign to an imported variable.
Solution:   Make it work.
Files:      src/evalvars.c, src/mnv9compile.c, src/proto/mnv9compile.pro,
            src/userfunc.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.0202
Problem:    When 'lazyredraw' is set the window title may not be updated.
Solution:   Set "do_redraw" before entering the main loop. (Jason Franklin)
Files:      src/main.c

Patch 8.2.0203
Problem:    :helptags and some other functionality not tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5567)
Files:      src/testdir/test_compiler.mnv, src/testdir/test_ex_mode.mnv,
            src/testdir/test_excmd.mnv, src/testdir/test_filechanged.mnv,
            src/testdir/test_help.mnv, src/testdir/test_help_tagjump.mnv,
            src/testdir/test_timers.mnv, src/testdir/test_window_cmd.mnv

Patch 8.2.0204
Problem:    Crash when using winnr('j') in a popup window.
Solution:   Do not search for neighbors in a popup window. (closes #5568)
Files:      src/window.c, src/testdir/test_popupwin.mnv, src/evalwindow.c

Patch 8.2.0205
Problem:    Error code E899 used twice.
Solution:   Use E863 for the terminal in popup error.
Files:      src/popupwin.c

Patch 8.2.0206
Problem:    Calling MNV9 function using default argument fails.
Solution:   Give an appropriate error. (closes #5572)
Files:      src/testdir/test_mnv9_script.mnv, src/mnv9compile.c,
            src/mnv9execute.c

Patch 8.2.0207
Problem:    Crash when missing member type on list argument.
Solution:   Check for invalid type. (closes #5572)
Files:      src/userfunc.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.0208
Problem:    Fnamemodify() does not apply ":~" when followed by ":.".
Solution:   Don't let a failing ":." cause the ":~" to be skipped. (Yasuhiro
            Matsumoto, closes #5577)
Files:      runtime/doc/cmdline.txt, src/filepath.c,
            src/testdir/test_fnamemodify.mnv

Patch 8.2.0209
Problem:    Function a bit far away from where it's used.
Solution:   Move function close to where it's used. (Ken Takata, closes #5569)
Files:      src/fileio.c, src/filepath.c

Patch 8.2.0210
Problem:    Coverity complains about uninitialized field.
Solution:   Initialize the field.
Files:      src/mnv9compile.c

Patch 8.2.0211
Problem:    Test for ANSI colors fails without an "ls" command.
Solution:   Use "dir". (Ken Takata, closes #5582)
Files:      src/testdir/test_functions.mnv

Patch 8.2.0212
Problem:    Missing search/substitute pattern hardly tested.
Solution:   Add test_clear_search_pat() and tests. (Yegappan Lakshmanan,
            closes #5579)
Files:      runtime/doc/eval.txt, runtime/doc/testing.txt,
            runtime/doc/usr_41.txt, src/evalfunc.c, src/proto/regexp.pro,
            src/proto/search.pro, src/proto/testing.pro, src/regexp.c,
            src/search.c, src/testdir/test_quickfix.mnv,
            src/testdir/test_search.mnv, src/testdir/test_sort.mnv,
            src/testdir/test_substitute.mnv, src/testing.c

Patch 8.2.0213
Problem:    Configure does not recognize gcc 10.0 and later.
Solution:   Adjust the pattern matching the version number. (Sergei
            Trofimovich, closes #5580)
Files:      src/configure.ac, src/auto/configure

Patch 8.2.0214
Problem:    A popup window with a terminal can be made hidden.
Solution:   Disallow hiding a terminal popup.
Files:      src/testdir/test_terminal.mnv, src/popupwin.c,
            src/testdir/dumps/Test_terminal_popup_4.dump

Patch 8.2.0215 (after 8.2.0208)
Problem:    Wrong file name shortening. (Ingo Karkat)
Solution:   Better check for path separator. (Yasuhiro Matsumoto,
            closes #5583, closes #5584)
Files:      src/filepath.c, src/testdir/test_fnamemodify.mnv

Patch 8.2.0216
Problem:    Several MNV9 instructions are not tested.
Solution:   Add more tests. Fix :disassemble output. Make catch with pattern
            work.
Files:      src/testdir/test_mnv9_script.mnv, src/mnv9execute.c,
            src/mnv9compile.c

Patch 8.2.0217 (after 8.2.0214)
Problem:    Terminal test fails on Mac.
Solution:   Add a short wait.
Files:      src/testdir/test_terminal.mnv

Patch 8.2.0218
Problem:    Several MNV9 instructions are not tested.
Solution:   Add more tests.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.0219 (after 8.2.0217)
Problem:    Terminal test still fails on Mac.
Solution:   Skip part of the test on Mac.
Files:      src/testdir/test_terminal.mnv

Patch 8.2.0220
Problem:    Terminal test did pass on Mac.
Solution:   Remove the skip again.
Files:      src/testdir/test_terminal.mnv

Patch 8.2.0221
Problem:    No test for MNV9 += and ..=.
Solution:   Add tests.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.0222
Problem:    MNV9: optional function arguments don't work yet.
Solution:   Implement optional function arguments.
Files:      src/userfunc.c, src/mnv9compile.c, src/mnv9execute.c,
            src/structs.h, src/testdir/test_mnv9_script.mnv

Patch 8.2.0223
Problem:    Some instructions not yet tested.
Solution:   Disassemble more instructions.  Move tests to a new file.  Compile
            call to s:function().
Files:      src/testdir/test_mnv9_script.mnv, src/testdir/Make_all.mak,
            src/testdir/test_mnv9_disassemble.mnv, src/mnv9compile.c,
            src/userfunc.c, src/proto/userfunc.pro, src/mnv.h

Patch 8.2.0224
Problem:    compiling :elseif not tested yet.
Solution:   Add test for :elseif.  Fix generating jumps.
Files:      src/testdir/test_mnv9_script.mnv, src/mnv9compile.c,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.0225
Problem:    compiling lambda not tested yet.
Solution:   Add test for lambda and funcref. Drop unused instruction arg.
Files:      src/testdir/test_mnv9_disassemble.mnv, src/mnv9.h,
            src/mnv9execute.c

Patch 8.2.0226
Problem:    Compiling for loop not tested.
Solution:   Add a test.  Make variable initialization work for more types.
Files:      src/testdir/test_mnv9_disassemble.mnv, src/mnv9compile.c

Patch 8.2.0227
Problem:    Compiling a few instructions not tested.
Solution:   Add more test cases.
Files:      src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.0228
Problem:    Configure does not recognize gcc version on BSD.
Solution:   Do not use "\+" in the pattern matching the version number. (Ozaki
            Kiichi, closes #5590)
Files:      src/configure.ac, src/auto/configure

Patch 8.2.0229
Problem:    Compare instructions not tested.
Solution:   Add test cases.  Fix disassemble with line continuation.
Files:      src/testdir/test_mnv9_disassemble.mnv, src/mnv9execute.c,
            src/mnv9compile.c

Patch 8.2.0230
Problem:    Terminal popup test is flaky.
Solution:   Increase wait time a bit.
Files:      src/testdir/test_terminal.mnv

Patch 8.2.0231
Problem:    Silent system command may clear the screen.
Solution:   Do not clear the screen in t_te.
Files:      src/term.c

Patch 8.2.0232
Problem:    The :compiler command causes a crash. (Daniel Steinberg)
Solution:   Do not use the script index if it isn't set.
Files:      src/ex_docmd.c, src/testdir/test_compiler.mnv

Patch 8.2.0233
Problem:    Crash when using garbagecollect() in between rand().
Solution:   Redesign the rand() and srand() implementation. (Yasuhiro
            Matsumoto, closes #5587, closes #5588)
Files:      src/evalfunc.c, src/testdir/test_random.mnv,
            runtime/doc/testing.txt, runtime/doc/eval.txt

Patch 8.2.0234
Problem:    Message test fails on SunOS.
Solution:   Adjust expectation for printf "%p". (Ozaki Kiichi, closes #5595)
Files:      src/message_test.c

Patch 8.2.0235
Problem:    Draw error when an empty group is removed from 'statusline'.
Solution:   Do not use highlighting from a removed group.
Files:      src/buffer.c, src/testdir/test_statusline.mnv,
            src/testdir/dumps/Test_statusline_1.dump

Patch 8.2.0236
Problem:    MS-Windows uninstall doesn't delete mnvtutor.bat.
Solution:   Change directory before deletion. (Ken Takata, closes #5603)
Files:      src/uninstall.c

Patch 8.2.0237
Problem:    Crash when setting 'wincolor' on finished terminal window.
            (Bakudankun)
Solution:   Check that the vterm is not NULL. (Yasuhiro Matsumoto, closes
            #5607, closes #5610)
Files:      src/terminal.c, src/testdir/test_terminal.mnv

Patch 8.2.0238
Problem:    MS-Windows: job_stop() results in exit value zero.
Solution:   Call TerminateJobObject() with -1 instead of 0. (Yasuhiro
            Matsumoto, closes #5150, closes #5614)
Files:      src/os_win32.c, src/testdir/test_channel.mnv

Patch 8.2.0239
Problem:    MS-Windows: 'env' job option does not override existing
            environment variables.  (Tim Pope)
Solution:   Set the environment variables later. (Yasuhiro Matsumoto,
            closes #5485, closes #5608)
Files:      src/os_win32.c, src/testdir/test_channel.mnv

Patch 8.2.0240
Problem:    Using memory after it was freed. (Dominique Pellé)
Solution:   Do not mix conversion buffer with other buffer.
Files:      src/mnvinfo.c, src/mnv.h

Patch 8.2.0241
Problem:    Crash when setting 'buftype' to "quickfix".
Solution:   Check that error list is not NULL. (closes #5613)
Files:      src/quickfix.c, src/testdir/test_quickfix.mnv

Patch 8.2.0242
Problem:    Preview popup window test fails with long directory name. (Jakub
            Kądziołka)
Solution:   Use "silent cd". (closes #5615)
Files:      src/testdir/test_popupwin.mnv

Patch 8.2.0243
Problem:    Insufficient code coverage for ex_docmd.c functions.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5618)
Files:      src/testdir/Make_all.mak, src/testdir/test_arglist.mnv,
            src/testdir/test_buffer.mnv, src/testdir/test_cd.mnv,
            src/testdir/test_cmdline.mnv, src/testdir/test_ex_mode.mnv,
            src/testdir/test_excmd.mnv, src/testdir/test_mapping.mnv,
            src/testdir/test_quickfix.mnv, src/testdir/test_search.mnv,
            src/testdir/test_sort.mnv, src/testdir/test_source.mnv,
            src/testdir/test_substitute.mnv, src/testdir/test_undo.mnv,
            src/testdir/test_mnvscript.mnv, src/testdir/test_window_cmd.mnv,
            src/testdir/test_writefile.mnv

Patch 8.2.0244
Problem:    Compiler warning in Lua interface.
Solution:   Add type cast. (Ken Takata, closes #5621)
Files:      src/if_lua.c

Patch 8.2.0245
Problem:    MSVC: error message if the auto directory already exists.
Solution:   Add "if not exists". (Ken Takata, closes #5620)
Files:      src/Make_mvc.mak

Patch 8.2.0246
Problem:    MSVC: deprecation warnings with Ruby.
Solution:   Move _CRT_SECURE_NO_DEPRECATE to build file. (Ken Takata,
            closes #5622)
Files:      src/Make_mvc.mak, src/if_ruby.c, src/os_win32.h, src/mnv.h,
            src/mnvio.h

Patch 8.2.0247
Problem:    Misleading comment in NSIS installer script.
Solution:   Negate the meaning of the comment. (Ken Takata, closes #5627)
Files:      nsis/gmnv.nsi

Patch 8.2.0248
Problem:    MS-Windows: dealing with deprecation is too complicated.
Solution:   Use io.h directly. Move _CRT_SECURE_NO_DEPRECATE to the build
            file. Suppress C4091 warning by setting "_WIN32_WINNT". (Ken
            Takata, closes #5626)
Files:      src/Make_mvc.mak, src/dosinst.h, src/mnv.h, src/mnvio.h,
            src/winclip.c, Filelist

Patch 8.2.0249
Problem:    MS-Windows: various warnings.
Solution:   Set the charset to utf-8. Add _WIN32_WINNT and _USING_V110_SDK71_.
            (Ken Takata, closes #5625)
Files:      src/GmnvExt/Makefile, src/Make_mvc.mak

Patch 8.2.0250
Problem:    test_clear_search_pat() is unused.
Solution:   Remove the function. (Yegappan Lakshmanan, closes #5624)
Files:      runtime/doc/eval.txt, runtime/doc/testing.txt,
            runtime/doc/usr_41.txt, src/evalfunc.c, src/proto/regexp.pro,
            src/proto/search.pro, src/proto/testing.pro, src/regexp.c,
            src/search.c, src/testdir/test_writefile.mnv, src/testing.c

Patch 8.2.0251
Problem:    A couple of function return types can be more specific.
Solution:   Use a better return type. (Ken Takata, closes #5629)
Files:      src/evalfunc.c, src/globals.h

Patch 8.2.0252
Problem:    Windows compiler warns for using size_t.
Solution:   Change to int. (Mike Williams)
Files:      src/mnv9compile.c

Patch 8.2.0253
Problem:    Crash when using :disassemble without argument. (Dhiraj Mishra)
Solution:   Check for missing argument. (Dominique Pellé, closes #5635,
            closes #5637)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_disassemble.mnv,
            src/ex_cmds.h

Patch 8.2.0254
Problem:    Compiler warning for checking size_t to be negative.
Solution:   Only check for zero. (Zoltan Arpadffy)
Files:      src/mnv9compile.c

Patch 8.2.0255
Problem:    VMS: missing files in build.
Solution:   Add the files. (Zoltan Arpadffy)
Files:      src/Make_vms.mms

Patch 8.2.0256
Problem:    Time and timer related code is spread out.
Solution:   Move time and timer related code to a new file. (Yegappan
            Lakshmanan, closes #5604)
Files:      Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak,
            src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md,
            src/evalfunc.c, src/ex_cmds.c, src/ex_cmds2.c, src/main.c,
            src/memline.c, src/misc1.c, src/misc2.c, src/proto.h,
            src/proto/ex_cmds.pro, src/proto/ex_cmds2.pro, src/proto/main.pro,
            src/proto/memline.pro, src/proto/misc1.pro, src/proto/misc2.pro,
            src/proto/time.pro, src/time.c

Patch 8.2.0257
Problem:    Cannot recognize a terminal in a popup window.
Solution:   Add the win_gettype() function.
Files:      runtime/doc/eval.txt, src/evalfunc.c, src/evalwindow.c,
            src/proto/evalwindow.pro, src/testdir/test_cmdline.mnv,
            src/testdir/test_terminal.mnv,
            src/testdir/dumps/Test_terminal_popup_1.dump

Patch 8.2.0258
Problem:    ModifyOtherKeys cannot be temporarily disabled.
Solution:   Add echoraw() with an example for modifyOtherKeys.
Files:      runtime/doc/eval.txt, src/evalfunc.c,
            src/testdir/test_functions.mnv,
            src/testdir/dumps/Test_functions_echoraw.dump

Patch 8.2.0259
Problem:    Terminal in popup test sometimes fails.
Solution:   Clear the command line.
Files:      src/testdir/test_terminal.mnv,
            src/testdir/dumps/Test_terminal_popup_1.dump

Patch 8.2.0260
Problem:    Several lines of code are duplicated.
Solution:   Move duplicated code to a function. (Yegappan Lakshmanan,
            closes #5330)
Files:      src/option.c, src/os_unix.c, src/os_win32.c, src/proto/term.pro,
            src/quickfix.c, src/regexp.c, src/regexp_bt.c, src/regexp_nfa.c,
            src/term.c

Patch 8.2.0261
Problem:    Some code not covered by tests.
Solution:   Add test cases. (Yegappan Lakshmanan, closes #5645)
Files:      src/testdir/test_buffer.mnv, src/testdir/test_cmdline.mnv,
            src/testdir/test_exists.mnv, src/testdir/test_filechanged.mnv,
            src/testdir/test_fileformat.mnv, src/testdir/test_mapping.mnv,
            src/testdir/test_marks.mnv, src/testdir/test_normal.mnv,
            src/testdir/test_plus_arg_edit.mnv, src/testdir/test_quickfix.mnv,
            src/testdir/test_tabpage.mnv, src/testdir/test_visual.mnv,
            src/testdir/test_window_cmd.mnv, src/testdir/test_writefile.mnv

Patch 8.2.0262 (after 8.2.0261)
Problem:    Fileformat test fails on MS-Windows.
Solution:   Set fileformat of buffer.
Files:      src/testdir/test_fileformat.mnv

Patch 8.2.0263
Problem:    A few new MNV9 messages are not localized.
Solution:   Add the gettext wrapper. (Dominique Pellé, closes #5647)
Files:      src/mnv9compile.c, src/mnv9execute.c

Patch 8.2.0264 (after 8.2.0262)
Problem:    Fileformat test still fails on MS-Windows.
Solution:   Set fileformat of buffer in the right place.
Files:      src/testdir/test_fileformat.mnv

Patch 8.2.0265
Problem:    "eval" after "if 0" doesn't check for following command.
Solution:   Add "eval" to list of commands that check for a following command.
            (closes #5640)
Files:      src/ex_docmd.c, src/testdir/test_expr.mnv

Patch 8.2.0266
Problem:    Terminal in popup test sometimes fails on Mac.
Solution:   Add a short delay.
Files:      src/testdir/test_terminal.mnv

Patch 8.2.0267
Problem:    No check for a following command when calling a function fails.
Solution:   Also check for a following command when inside a try block.
            (closes #5642)
Files:      src/userfunc.c, src/testdir/test_user_func.mnv

Patch 8.2.0268 (after 8.2.0267)
Problem:    Trycatch test fails.
Solution:   When calling function fails only check for following command, do
            not give another error.
Files:      src/userfunc.c

Patch 8.2.0269
Problem:    MNV9: operator after list index does not work. (Yasuhiro
            Matsumoto)
Solution:   After indexing a list change the type to the list member type.
            (closes #5651)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.0270
Problem:    Some code not covered by tests.
Solution:   Add test cases. (Yegappan Lakshmanan, closes #5649)
Files:      src/testdir/test_autocmd.mnv, src/testdir/test_buffer.mnv,
            src/testdir/test_edit.mnv, src/testdir/test_ex_mode.mnv,
            src/testdir/test_excmd.mnv, src/testdir/test_expand.mnv,
            src/testdir/test_filetype.mnv, src/testdir/test_findfile.mnv,
            src/testdir/test_join.mnv, src/testdir/test_move.mnv,
            src/testdir/test_normal.mnv, src/testdir/test_registers.mnv,
            src/testdir/test_source.mnv, src/testdir/test_tabpage.mnv,
            src/testdir/test_tagjump.mnv, src/testdir/test_mnvscript.mnv,
            src/testdir/test_visual.mnv, src/testdir/test_window_cmd.mnv,
            src/testdir/test_writefile.mnv

Patch 8.2.0271
Problem:    The "num64" feature is available everywhere and building without
            it causes problems.
Solution:   Graduate the "num64" feature. (James McCoy, closes #5650)
Files:      src/evalfunc.c, src/feature.h, src/message.c, src/structs.h,
            src/testdir/test_expr.mnv, src/testdir/test_largefile.mnv,
            src/testdir/test_sort.mnv, src/testdir/test_mnvscript.mnv,
            src/version.c

Patch 8.2.0272
Problem:    ":helptags ALL" gives error for directories without write
            permission. (Matěj Cepl)
Solution:   Ignore errors for ":helptags ALL". (Ken Takata, closes #5026,
            closes #5652)
Files:      src/ex_cmds.c, src/testdir/test_help.mnv

Patch 8.2.0273
Problem:    MS-Windows uninstall may delete wrong batch file.
Solution:   Add specific marker in the generated batch file. (Ken Takata,
            closes #5654)
Files:      src/Make_mvc.mak, src/dosinst.c, src/dosinst.h, src/uninstall.c

Patch 8.2.0274
Problem:    Hang with combination of feedkeys(), Ex mode and :global.
            (Yegappan Lakshmanan)
Solution:   Add the pending_exmode_active flag.
Files:      src/ex_docmd.c, src/globals.h, src/getchar.c,
            src/testdir/test_ex_mode.mnv

Patch 8.2.0275
Problem:    Some Ex code not covered by tests.
Solution:   Add test cases. (Yegappan Lakshmanan, closes #5659)
Files:      src/testdir/test_arglist.mnv, src/testdir/test_autocmd.mnv,
            src/testdir/test_excmd.mnv, src/testdir/test_quickfix.mnv,
            src/testdir/test_search.mnv, src/testdir/test_swap.mnv,
            src/testdir/test_window_cmd.mnv

Patch 8.2.0276
Problem:    MNV9: not allowing space before ")" in function call is too
            restrictive. (Ben Jackson)
Solution:   Skip space before the ")".  Adjust other space checks.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.0277
Problem:    MNV9: not all instructions covered by tests.
Solution:   Add more test cases.
Files:      src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.0278
Problem:    Channel test is flaky on Mac.
Solution:   Reset variable before sending message.
Files:      src/testdir/test_channel.mnv

Patch 8.2.0279
Problem:    MNV9: no test for deleted :def function.
Solution:   Add a test.  Clear uf_cleared flag when redefining a function.
Files:      src/userfunc.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.0280
Problem:    MNV9: throw in :def function not caught higher up.
Solution:   Set "need_rethrow".
Files:      src/mnv9execute.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.0281
Problem:    Two placed signs in the same line are not combined.  E.g. in the
            terminal debugger a breakpoint and the PC cannot be both be
            displayed.
Solution:   Combine the sign column and line highlight attributes.
Files:      src/sign.c, src/testdir/test_signs.mnv,
            src/testdir/dumps/Test_sign_cursor_3.dump,
            src/testdir/dumps/Test_sign_cursor_4.dump

Patch 8.2.0282
Problem:    MNV9: setting number option not tested.
Solution:   Add more tests.   Fix assigning to global variable.
Files:      src/testdir/test_mnv9_expr.mnv, src/testdir/test_mnv9_script.mnv,
            src/mnv9execute.c

Patch 8.2.0283
Problem:    MNV9: failing to load script var not tested.
Solution:   Add more tests.   Fix using s: in old script.
Files:      src/testdir/test_mnv9_expr.mnv, src/mnv9compile.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.0284
Problem:    MNV9: assignment test fails.
Solution:   Avoid duplicating "s:".
Files:      src/mnv9compile.c

Patch 8.2.0285
Problem:    Unused error message. Cannot create s:var.
Solution:   Remove the error message. Make assignment to s:var work.
Files:      src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.0286
Problem:    Cannot use popup_close() for a terminal popup.
Solution:   Allow using popup_close(). (closes #5666)
Files:      src/popupwin.c, runtime/doc/popup.txt,
            src/testdir/test_terminal.mnv,
            src/testdir/dumps/Test_terminal_popup_5.dump,
            src/testdir/dumps/Test_terminal_popup_6.dump

Patch 8.2.0287
Problem:    MNV9: return in try block not tested; catch with pattern not
            tested.
Solution:   Add tests.  Make it work.
Files:      src/mnv9execute.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.0288
Problem:    MNV9: some float and blob operators not tested.
Solution:   Add float and blob tests.  Fix addition.
Files:      src/testdir/test_mnv9_expr.mnv, src/mnv9compile.c

Patch 8.2.0289
Problem:    MNV9: :echo did not clear the rest of the line.
Solution:   Call msg_clr_eos(). (Ken Takata, closes #5668)
Files:      src/mnv9execute.c

Patch 8.2.0290
Problem:    Running individual test differs from all tests.
Solution:   Pass on environment variables. (Yee Cheng Chin, closes #5672)
Files:      src/testdir/Makefile, src/testdir/README.txt

Patch 8.2.0291
Problem:    MNV9: assigning [] to list<string> doesn't work.
Solution:   Use void for empty list and dict. (Ken Takata, closes #5669)
Files:      src/mnv9compile.c, src/globals.h, src/testdir/test_mnv9_script.mnv

Patch 8.2.0292
Problem:    MNV9: CHECKNR and CHECKTYPE instructions not tested.
Solution:   Add tests.
Files:      src/testdir/test_mnv9_expr.mnv, src/testdir/test_mnv9_script.mnv

Patch 8.2.0293
Problem:    Various Ex commands not sufficiently tested.
Solution:   Add more test cases. (Yegappan Lakshmanan, closes #5673)
Files:      src/testdir/test_arglist.mnv, src/testdir/test_cmdline.mnv,
            src/testdir/test_ex_mode.mnv, src/testdir/test_excmd.mnv,
            src/testdir/test_expand.mnv, src/testdir/test_filetype.mnv,
            src/testdir/test_filter_cmd.mnv, src/testdir/test_global.mnv,
            src/testdir/test_normal.mnv, src/testdir/test_plus_arg_edit.mnv,
            src/testdir/test_quickfix.mnv, src/testdir/test_trycatch.mnv,
            src/testdir/test_mnvscript.mnv

Patch 8.2.0294
Problem:    Cannot use Ex command that is also a function name.
Solution:   Recognize an Ex command by a colon prefix.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv,
            runtime/doc/mnv9.txt

Patch 8.2.0295
Problem:    Highlighting for :s wrong when using different separator.
Solution:   Use separate argument for search direction and separator. (Rob
            Pilling, closes #5665)
Files:      src/ex_docmd.c, src/ex_getln.c, src/gui.c, src/normal.c,
            src/proto/search.pro, src/quickfix.c, src/search.c, src/spell.c,
            src/tag.c, src/testdir/dumps/Test_incsearch_substitute_15.dump,
            src/testdir/test_search.mnv

Patch 8.2.0296
Problem:    Mixing up "long long" and __int64 may cause problems. (John
            Marriott)
Solution:   Pass varnumber_T to mnv_snprintf().  Add v:numbersize.
Files:      src/message.c, src/eval.c, src/fileio.c, src/json.c, src/ops.c,
            src/mnv.h, src/structs.h, src/evalvars.c, runtime/doc/eval.txt,
            runtime/doc/various.txt, src/testdir/test_eval_stuff.mnv

Patch 8.2.0297
Problem:    Compiler warnings for the Ruby interface.
Solution:   Undefine a few macros, fix initialization. (Ozaki Kiichi,
            closes #5677)
Files:      src/if_ruby.c

Patch 8.2.0298
Problem:    MNV9 script: cannot start command with a string constant.
Solution:   Recognize expression starting with '('.
Files:      src/ex_docmd.c, src/mnv9compile.c,
            src/testdir/test_mnv9_script.mnv, runtime/doc/mnv9.txt

Patch 8.2.0299
Problem:    MNV9: ISN_STORE with argument not tested.  Some cases in tv2bool()
            not tested.
Solution:   Add tests.  Add test_unknown() and test_void().
Files:      src/testing.c, src/proto/testing.pro, src/evalfunc.c,
            src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_expr.mnv, runtime/doc/eval.txt,
            runtime/doc/testing.txt

Patch 8.2.0300
Problem:    MNV9: expression test fails without channel support.
Solution:   Add has('channel') check.
Files:      src/testdir/test_mnv9_expr.mnv

Patch 8.2.0301
Problem:    Insufficient testing for exception handling and the "attention"
            prompt.
Solution:   Add test cases. (Yegappan Lakshmanan, closes #5681)
Files:      src/testdir/test_swap.mnv, src/testdir/test_trycatch.mnv

Patch 8.2.0302
Problem:    Setting 'term' may cause error in TermChanged autocommand.
Solution:   Use aucmd_prepbuf() to switch to the buffer where the autocommand
            is to be executed. (closes #5682)
Files:      src/term.c, src/testdir/test_autocmd.mnv

Patch 8.2.0303
Problem:    TermChanged test fails in the GUI.
Solution:   Skip the test when running the GUI.
Files:      src/testdir/test_autocmd.mnv

Patch 8.2.0304
Problem:    Terminal test if failing on some systems.
Solution:   Wait for the job to finish. (James McCoy)
Files:      src/testdir/test_terminal.mnv

Patch 8.2.0305
Problem:    Relativenumber test fails on some systems. (James McCoy)
Solution:   Clear the command line.
Files:      src/testdir/test_number.mnv,
            src/testdir/dumps/Test_relnr_colors_2.dump,
            src/testdir/dumps/Test_relnr_colors_3.dump

Patch 8.2.0306
Problem:    MNV9: :substitute(pat(repl does not work in MNV9 script.
Solution:   Remember starting with a colon. (closes #5676)
Files:      src/ex_docmd.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.0307
Problem:    Python 3 mnv.eval not well tested.
Solution:   Add a test. (Dominique Pellé, closes #5680)
Files:      src/testdir/test_python3.mnv

Patch 8.2.0308
Problem:    'showbreak' does not work for a very long line. (John Little)
Solution:   Check whether 'briopt' contains "sbr". (Ken Takata, closes #5523,
            closes #5684)
Files:      src/drawline.c, src/testdir/test_breakindent.mnv

Patch 8.2.0309
Problem:    Window-local values have confusing name.
Solution:   Rename w_p_bri* to w_briopt_*.
Files:      src/structs.h, src/indent.c, src/drawline.c

Patch 8.2.0310
Problem:    Autocmd test fails on a slow system.
Solution:   Adjust the expectations. (James McCoy, closes #5685)
Files:      src/testdir/test_autocmd.mnv

Patch 8.2.0311
Problem:    MNV9: insufficient script tests.
Solution:   Add tests.  Free imports when re-using a script.
Files:      src/testdir/test_mnv9_script.mnv, src/scriptfile.c

Patch 8.2.0312
Problem:    MNV9: insufficient script tests.
Solution:   Add more tests.  Make "import * as Name" work.
Files:      src/testdir/test_mnv9_script.mnv, src/mnv9script.c,
            src/proto/mnv9script.pro, src/mnv9compile.c

Patch 8.2.0313
Problem:    MNV9: insufficient script tests.
Solution:   Add tests.  Make import of alphanumeric name work.
Files:      src/testdir/test_mnv9_script.mnv, src/mnv9script.c

Patch 8.2.0314
Problem:    Short name not set for terminal buffer.
Solution:   Set the short name. (closes #5687)
Files:      src/terminal.c, src/testdir/test_terminal.mnv

Patch 8.2.0315
Problem:    Build failure on HP-UX system.
Solution:   Use LONG_LONG_MIN instead of LLONG_MIN.  Add type casts for switch
            statement. (John Marriott)
Files:      src/structs.h, src/json.c

Patch 8.2.0316
Problem:    ex_getln.c code has insufficient test coverage.
Solution:   Add more tests. Fix a problem. (Yegappan Lakshmanan, closes #5693)
Files:      src/cmdhist.c, src/testdir/test_cmdline.mnv,
            src/testdir/test_functions.mnv, src/testdir/test_history.mnv,
            src/testdir/test_menu.mnv

Patch 8.2.0317
Problem:    MSVC: _CRT_SECURE_NO_DEPRECATE not defined on DEBUG build.
Solution:   Move where CFLAGS is updated. (Ken Takata, closes #5692)
Files:      src/Make_mvc.mak

Patch 8.2.0318
Problem:    MNV9: types not sufficiently tested.
Solution:   Add tests with more types.
Files:      src/globals.h, src/mnv9compile.c,
            src/testdir/test_mnv9_script.mnv, src/testdir/test_mnv9_expr.mnv

Patch 8.2.0319
Problem:    File missing in distribution, comments outdated.
Solution:   Correct path of README file.  Update comments.
Files:      Filelist, src/evalvars.c, src/register.c, src/if_python3.c

Patch 8.2.0320
Problem:    No Haiku support.
Solution:   Add support for Haiku. (Emir Sarı, closes #5605)
Files:      Filelist, runtime/doc/Makefile, runtime/doc/eval.txt,
            runtime/doc/gui.txt, runtime/doc/help.txt,
            runtime/doc/options.txt, runtime/doc/os_haiku.txt,
            runtime/doc/starting.txt, runtime/doc/tags,
            runtime/gmnvrc_example.mnv, runtime/mnvrc_example.mnv,
            src/INSTALL, src/Makefile, src/auto/configure, src/configure.ac,
            src/evalfunc.c, src/feature.h, src/fileio.c, src/globals.h,
            src/gui.c, src/gui.h, src/gui_haiku.cc, src/gui_haiku.h,
            src/mbyte.c, src/menu.c, src/misc1.c, src/mouse.c, src/option.h,
            src/os_haiku.h, src/os_haiku.rdef, src/os_unix.c, src/os_unix.h,
            src/osdef1.h.in, src/proto.h, src/proto/gui_haiku.pro, src/pty.c,
            src/screen.c, src/structs.h, src/term.c, src/version.c, src/mnv.h

Patch 8.2.0321
Problem:    MNV9: ":execute" does not work yet.
Solution:   Add ISN_EXECUTE. (closes #5699) Also make :echo work with more
            than one argument.
Files:      src/mnv9.h, src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.0322
Problem:    MNV9: error checks not tested.
Solution:   Add more test cases.  Avoid error for function loaded later.
Files:      src/mnv9compile.c, src/evalvars.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.0323
Problem:    MNV9: calling a function that is defined later is slow.
Solution:   Once the function is found update the instruction so it can be
            called directly.
Files:      src/mnv9execute.c, src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.0324
Problem:    Text property not updated correctly when inserting/deleting.
Solution:   Use the right column when deleting. Make zero-width text
            properties respect start_incl and end_incl. (Axel Forsman,
            closes #5696, closes #5679)
Files:      src/change.c, src/textprop.c, src/testdir/test_listener.mnv,
            src/testdir/test_textprop.mnv

Patch 8.2.0325
Problem:    Ex_getln.c code not covered by tests.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #5702)
Files:      src/testdir/test_cmdline.mnv, src/testdir/test_ex_mode.mnv,
            src/testdir/test_functions.mnv, src/testdir/test_history.mnv,
            src/testdir/test_options.mnv

Patch 8.2.0326
Problem:    Compiler warning for using uninitialized variable. (Yegappan
            Lakshmanan)
Solution:   Do not jump to failed but return.
Files:      src/mnv9execute.c

Patch 8.2.0327
Problem:    Crash when opening and closing two popup terminal windows.
Solution:   Check that prevwin is valid. (closes #5707)
Files:      src/popupwin.c, src/testdir/test_terminal.mnv

Patch 8.2.0328
Problem:    No redraw when leaving terminal-normal mode in a terminal popup
            window.
Solution:   Redraw the popup window. (closes #5708)
Files:      src/macros.h, src/mnv.h, src/terminal.c, src/drawscreen.c,
            src/move.c, src/popupwin.c, src/testdir/test_terminal.mnv,
            src/testdir/dumps/Test_terminal_popup_7.dump,
            src/testdir/dumps/Test_terminal_popup_8.dump

Patch 8.2.0329
Problem:    Popup filter converts 0x80 bytes.
Solution:   Keep 0x80 bytes as-is. (Ozaki Kiichi, closes #5706)
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv

Patch 8.2.0330
Problem:    Build error with popup window but without terminal.
Solution:   Add #ifdef.
Files:      src/popupwin.c

Patch 8.2.0331
Problem:    Internal error when using test_void() and test_unknown().
            (Dominique Pellé)
Solution:   Give a normal error.
Files:      src/evalfunc.c, src/testdir/test_functions.mnv,
            src/testdir/test_mnvscript.mnv

Patch 8.2.0332
Problem:    Some code in ex_getln.c not covered by tests.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #5710)
Files:      src/testdir/test_arabic.mnv, src/testdir/test_cmdline.mnv

Patch 8.2.0333
Problem:    Terminal in popup test is flaky.
Solution:   Make sure redraw is done before opening the popup.
Files:      src/testdir/test_terminal.mnv,
            src/testdir/dumps/Test_terminal_popup_1.dump

Patch 8.2.0334
Problem:    Abort called when using test_void(). (Dominique Pellé)
Solution:   Only give an error, don't abort.
Files:      src/message.c, src/proto/message.pro, src/evalfunc.c,
            src/eval.c, src/json.c, src/testdir/test_functions.mnv

Patch 8.2.0335
Problem:    No completion for :disassemble.
Solution:   Make completion work.  Also complete script-local functions if the
            name starts with "s:".
Files:      src/cmdexpand.c, src/testdir/test_cmdline.mnv,
            runtime/doc/mnv9.txt

Patch 8.2.0336
Problem:    MNV9: insufficient test coverage for compiling.
Solution:   Add more tests.
Files:      src/testdir/test_mnv9_expr.mnv, src/testdir/test_mnv9_script.mnv,
            src/mnv9.h, src/mnv9compile.c, src/mnv9execute.c

Patch 8.2.0337
Problem:    Build fails on a few systems.
Solution:   Use mnv_snprintf() instead of snprintf().
Files:      src/cmdexpand.c

Patch 8.2.0338
Problem:    Build failure without the channel feature.
Solution:   Add #ifdef
Files:      src/mnv9compile.c

Patch 8.2.0339
Problem:    MNV9: function return type may depend on arguments.
Solution:   Instead of a fixed return type use a function to figure out the
            return type.
Files:      src/evalfunc.c, src/proto/evalfunc.pro, src/mnv9compile.c,
            src/evalbuffer.c, src/proto/evalbuffer.pro,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.0340
Problem:    MNV9: function and partial types not tested.
Solution:   Support more for partial, add tests.
Files:      src/mnv9.h, src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.0341
Problem:    Using ":for" in MNV9 script gives an error.
Solution:   Pass the LET_NO_COMMAND flag. (closes #5715)
Files:      src/eval.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.0342
Problem:    Some code in ex_getln.c not covered by tests.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5717)
Files:      src/testdir/test_cmdline.mnv, src/testdir/test_ex_mode.mnv,
            src/testdir/test_history.mnv, src/testdir/test_iminsert.mnv

Patch 8.2.0343
Problem:    MNV9: using wrong instruction, limited test coverage.
Solution:   Use ISN_PUSHJOB.  Add a few more tests.
Files:      src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.0344
Problem:    ":def" not skipped properly.
Solution:   Add CMD_def to list of commands the require evaluation even when
            not being executed.
Files:      src/ex_docmd.c

Patch 8.2.0345
Problem:    Compiler warning when building without the float feature.
Solution:   Add #ifdef. (John Marriott)
Files:      src/evalfunc.c

Patch 8.2.0346
Problem:    MNV9: finding common list type not tested.
Solution:   Add more tests.  Fix listing function.  Fix overwriting type.
Files:      src/mnv9compile.c, src/userfunc.c,
            src/testdir/test_mnv9_script.mnv, src/testdir/runtest.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.0347
Problem:    Various code not covered by tests.
Solution:   Add more test coverage. (Yegappan Lakshmanan, closes #5720)
Files:      src/testdir/gen_opt_test.mnv, src/testdir/test86.in,
            src/testdir/test_cmdline.mnv, src/testdir/test_digraph.mnv,
            src/testdir/test_ex_mode.mnv, src/testdir/test_history.mnv

Patch 8.2.0348
Problem:    MNV9: not all code tested.
Solution:   Add a few more tests. fix using "b:" in literal dictionary.
Files:      src/testdir/test_mnv9_expr.mnv, src/mnv9compile.c,
            src/proto/mnv9compile.pro, src/testdir/test_mnv9_script.mnv

Patch 8.2.0349
Problem:    MNV9: constant expression not well tested.
Solution:   Add tests for "if" with constant expression.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.0350
Problem:    MNV9: expression tests don't use recognized constants.
Solution:   Recognize "true" and "false" as constants.  Make skipping work for
            assignment and expression evaluation.
Files:      src/mnv9compile.c

Patch 8.2.0351
Problem:    Terminal in popup test is still a bit flaky.
Solution:   Clear and redraw before opening the popup.
Files:      src/testdir/test_terminal.mnv

Patch 8.2.0352
Problem:    FreeBSD: test for sourcing utf-8 is skipped.
Solution:   Run the matchadd_conceal test separately to avoid that setting
            'term' to "ansi" causes problems for other tests. (Ozaki Kiichi,
            closes #5721)
Files:      src/testdir/Make_all.mak, src/testdir/test_alot_utf8.mnv,
            src/testdir/test_source_utf8.mnv

Patch 8.2.0353
Problem:    MNV9: while loop not tested.
Solution:   Add test with "while", "break" and "continue"
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.0354
Problem:    Python 3.9 does not define _Py_DEC_REFTOTAL. (Zdenek Dohnal)
Solution:   Remove it, it was only for debugging.
Files:      src/if_python3.c

Patch 8.2.0355
Problem:    MNV9: str_val is confusing, it's a number
Solution:   Rename to stnr_val.
Files:      src/mnv9.h, src/mnv9compile.c, src/mnv9execute.c

Patch 8.2.0356
Problem:    MS-Windows: feedkeys() with MNVDLL cannot handle CSI correctly.
Solution:   Modify mch_inchar() to encode CSI bytes. (Ozaki Kiichi, Ken
            Takata, closes #5726)
Files:      src/getchar.c, src/os_win32.c, src/testdir/test_popupwin.mnv

Patch 8.2.0357
Problem:    Cannot delete a text property matching both id and type. (Axel
            Forsman)
Solution:   Add the "both" argument.
Files:      src/textprop.c, runtime/doc/textprop.txt,
            src/testdir/test_textprop.mnv

Patch 8.2.0358
Problem:    Insufficient testing for indent.c.
Solution:   Add indent tests. (Yegappan Lakshmanan, closes #5736)
Files:      src/testdir/Make_all.mak, src/testdir/test_ex_mode.mnv,
            src/testdir/test_expand_func.mnv, src/testdir/test_indent.mnv,
            src/testdir/test_lispwords.mnv, src/testdir/test_smartindent.mnv,
            src/testdir/test_vartabs.mnv

Patch 8.2.0359
Problem:    popup_atcursor() may hang. (Yasuhiro Matsumoto)
Solution:   Take the decoration into account. (closes #5728)
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv

Patch 8.2.0360
Problem:    Yaml files are only recognized by the file extension.
Solution:   Check for a line starting with "%YAML". (Jason Franklin)
Files:      runtime/scripts.mnv, src/testdir/test_filetype.mnv

Patch 8.2.0361
Problem:    Internal error when using "0" for a callback.
Solution:   Give a normal error. (closes #5743)
Files:      src/evalvars.c, src/testdir/test_timers.mnv

Patch 8.2.0362
Problem:    MS-Windows: channel test fails if grep is not available.
Solution:   Use another command. (Ken Takata, closes #5739)
Files:      src/testdir/test_channel.mnv

Patch 8.2.0363
Problem:    Some Normal mode commands not tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5746)
Files:      src/testdir/test_cindent.mnv, src/testdir/test_cmdline.mnv,
            src/testdir/test_edit.mnv, src/testdir/test_indent.mnv,
            src/testdir/test_normal.mnv, src/testdir/test_prompt_buffer.mnv,
            src/testdir/test_virtualedit.mnv, src/testdir/test_visual.mnv

Patch 8.2.0364
Problem:    Printf test failing on Haiku.
Solution:   Make a difference between int and short. (Dominique Pellé,
            closes #5749)
Files:      src/message.c

Patch 8.2.0365
Problem:    Tag kind can't be a multibyte character. (Marcin Szamotulski)
Solution:   Recognize multibyte character. (closes #5724)
Files:      src/tag.c, src/testdir/test_taglist.mnv

Patch 8.2.0366
Problem:    Hardcopy command not tested enough.
Solution:   Add tests for printing. (Dominique Pellé, closes #5748)
Files:      src/testdir/test_hardcopy.mnv

Patch 8.2.0367
Problem:    Can use :pedit in a popup window.
Solution:   Disallow it.
Files:      src/ex_docmd.c, src/testdir/test_popupwin.mnv

Patch 8.2.0368
Problem:    MNV9: import that redefines local variable does not fail.
Solution:   Check for already defined symbols.
Files:      src/mnv9script.c, src/proto/mnv9script.pro, src/mnv9compile.c,
            src/proto/mnv9compile.pro, src/testdir/test_mnv9_script.mnv

Patch 8.2.0369
Problem:    Various Normal mode commands not fully tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5751)
Files:      src/testdir/test_arglist.mnv, src/testdir/test_changelist.mnv,
            src/testdir/test_charsearch.mnv, src/testdir/test_cmdline.mnv,
            src/testdir/test_edit.mnv, src/testdir/test_ex_mode.mnv,
            src/testdir/test_excmd.mnv, src/testdir/test_gf.mnv,
            src/testdir/test_iminsert.mnv, src/testdir/test_increment.mnv,
            src/testdir/test_marks.mnv, src/testdir/test_normal.mnv,
            src/testdir/test_prompt_buffer.mnv, src/testdir/test_put.mnv,
            src/testdir/test_registers.mnv, src/testdir/test_tagjump.mnv,
            src/testdir/test_visual.mnv

Patch 8.2.0370
Problem:    The typebuf_was_filled flag is sometimes not reset, which may
            cause a hang.
Solution:   Make sure typebuf_was_filled is reset when the typeahead buffer is
            empty.
Files:      src/edit.c, src/getchar.c,

Patch 8.2.0371
Problem:    Crash with combination of terminal popup and autocmd.
Solution:   Disallow closing a popup that is the current window.  Add a check
            that the current buffer is valid. (closes #5754)
Files:      src/macros.h, src/buffer.c, src/popupwin.c, src/terminal.c,
            src/testdir/test_terminal.mnv

Patch 8.2.0372
Problem:    Prop_find() may not find text property at start of the line.
Solution:   Adjust the loop to find properties. (Axel Forsman, closes #5761,
            closes #5663)
Files:      src/textprop.c, src/testdir/test_textprop.mnv

Patch 8.2.0373
Problem:    Type of term_sendkeys() is unknown.
Solution:   Just return zero. (closes #5762)
Files:      src/terminal.c, src/testdir/test_terminal.mnv

Patch 8.2.0374
Problem:    Using wrong printf directive for jump location.
Solution:   Change "%lld" to "%d". (James McCoy, closes #5773)
Files:      src/mnv9execute.c

Patch 8.2.0375
Problem:    Coverity warning for not using return value.
Solution:   Move error message to separate function.
Files:      src/popupwin.c

Patch 8.2.0376
Problem:    Nasty callback test fails on some systems.
Solution:   Increase the sleep time.
Files:      src/testdir/test_terminal.mnv

Patch 8.2.0377
Problem:    No CI test for a big-endian system.
Solution:   Test with s390x. (James McCoy, closes #5772)
Files:      .travis.yml

Patch 8.2.0378
Problem:    prop_find() does not find all props.
Solution:   Check being in the start line. (Axel Forsman, closes #5776)
Files:      src/textprop.c, src/testdir/test_textprop.mnv

Patch 8.2.0379
Problem:    Gcc warns for ambiguous else.
Solution:   Add braces. (Dominique Pellé, closes #5778)
Files:      src/textprop.c

Patch 8.2.0380
Problem:    Tiny popup when creating a terminal popup without minwidth.
Solution:   Use a default minimum size of 5 lines of 20 characters.
Files:      src/popupwin.c, src/testdir/test_terminal.mnv,
            src/testdir/dumps/Test_terminal_popup_m1.dump

Patch 8.2.0381
Problem:    Using freed memory with :lmnvgrep and autocommand. (extracted from
            POC by Dominique Pellé)
Solution:   Avoid deleting a dummy buffer used in a window. (closes #5777)
Files:      src/quickfix.c, src/testdir/test_quickfix.mnv

Patch 8.2.0382
Problem:    Some tests fail when run under valgrind.
Solution:   Increase timeouts.
Files:      src/testdir/test_autocmd.mnv, src/testdir/test_debugger.mnv,
            src/testdir/test_channel.mnv, src/testdir/test_ins_complete.mnv,
            src/testdir/test_terminal.mnv,
            src/testdir/dumps/Test_terminal_popup_1.dump,
            src/testdir/dumps/Test_terminal_popup_2.dump,
            src/testdir/dumps/Test_terminal_popup_3.dump,
            src/testdir/dumps/Test_terminal_popup_5.dump,
            src/testdir/dumps/Test_terminal_popup_6.dump,
            src/testdir/dumps/Test_terminal_popup_7.dump,
            src/testdir/dumps/Test_terminal_popup_8.dump,
            src/testdir/dumps/Test_terminal_popup_m1.dump

Patch 8.2.0383
Problem:    Wrong feature check causes test not to be run.
Solution:   Use CheckFunction instead of CheckFeature. (Ozaki Kiichi,
            closes #5781)
Files:      src/testdir/test_channel.mnv

Patch 8.2.0384
Problem:    Travis CI has warnings.
Solution:   Avoid warnings, clean up the config. (Ozaki Kiichi, closes #5779)
Files:      .travis.yml

Patch 8.2.0385
Problem:    Menu functionality insufficiently tested.
Solution:   Add tests.  Add menu_info(). (Yegappan Lakshmanan, closes #5760)
Files:      runtime/doc/eval.txt, runtime/doc/gui.txt, runtime/doc/usr_41.txt,
            src/evalfunc.c, src/menu.c, src/proto/menu.pro,
            src/testdir/test_menu.mnv, src/testdir/test_popup.mnv,
            src/testdir/test_termcodes.mnv

Patch 8.2.0386 (after 8.2.0385)
Problem:    Part from unfinished patch got included.
Solution:   Undo that part.
Files:      src/evalfunc.c

Patch 8.2.0387
Problem:    Error for possible NULL argument to qsort().
Solution:   Don't call qsort() when there is nothing to sort. (Dominique
            Pellé, closes #5780)
Files:      src/spellsuggest.c

Patch 8.2.0388
Problem:    Printmbcharset option not tested.
Solution:   Add a test.  Enable PostScript for AppVeyor build. (Dominique
            Pellé, closes #5783)
Files:      appveyor.yml, src/testdir/test_hardcopy.mnv

Patch 8.2.0389
Problem:    Delayed redraw when shifting text from Insert mode.
Solution:   Use msg_attr_keep() instead of msg(). (closes #5782)
Files:      src/ops.c

Patch 8.2.0390
Problem:    Terminal postponed scrollback test is flaky.
Solution:   Add delay in between sending keys.  Rename dump files.
Files:      src/testdir/test_terminal.mnv,
            src/testdir/dumps/Test_terminal_01.dump,
            src/testdir/dumps/Test_terminal_02.dump,
            src/testdir/dumps/Test_terminal_03.dump,
            src/testdir/dumps/Test_terminal_scrollback_1.dump,
            src/testdir/dumps/Test_terminal_scrollback_2.dump,
            src/testdir/dumps/Test_terminal_scrollback_3.dump

Patch 8.2.0391 (after 8.2.0377)
Problem:    CI test coverage dropped.
Solution:   Set $DISPLAY also for non-GUI builds. (James McCoy, closes #5788)
Files:      .travis.yml

Patch 8.2.0392
Problem:    Coverity warns for using array index out of range.
Solution:   Add extra "if" to avoid warning.
Files:      src/menu.c

Patch 8.2.0393
Problem:    Coverity warns for not using return value.
Solution:   Add (void).
Files:      src/popupmenu.c

Patch 8.2.0394
Problem:    Coverity complains about using NULL pointer.
Solution:   Use empty string when option value is NULL.
Files:      src/optionstr.c

Patch 8.2.0395
Problem:    Build fails with FEAT_EVAL but without FEAT_MENU.
Solution:   Add #ifdef. (John Marriott)
Files:      src/evalfunc.c

Patch 8.2.0396
Problem:    Cmdexpand.c insufficiently tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5789)
Files:      src/testdir/test_cmdline.mnv, src/testdir/test_taglist.mnv,
            src/testdir/test_terminal.mnv, src/testdir/test_usercommands.mnv

Patch 8.2.0397
Problem:    Delayed screen update when using undo from Insert mode.
Solution:   Update w_topline and cursor shape before sleeping. (closes #5790)
Files:      src/normal.c

Patch 8.2.0398
Problem:    Profile test fails when two functions take same time.
Solution:   Add a short sleep in once function. (closes #5797)
Files:      src/testdir/test_profile.mnv

Patch 8.2.0399
Problem:    Various memory leaks.
Solution:   Avoid the leaks. (Ozaki Kiichi, closes #5803)
Files:      src/ex_docmd.c, src/ex_getln.c, src/menu.c, src/message.c,
            src/scriptfile.c, src/userfunc.c

Patch 8.2.0400
Problem:    Not all tests using a terminal are in the list of flaky tests.
Solution:   Introduce the test_is_flaky flag.
Files:      src/testdir/runtest.mnv, src/testdir/term_util.mnv,
            src/testdir/screendump.mnv, src/testdir/test_autocmd.mnv

Patch 8.2.0401
Problem:    Not enough test coverage for evalvars.c.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5804)
Files:      src/testdir/test_cmdline.mnv, src/testdir/test_const.mnv,
            src/testdir/test_diffmode.mnv, src/testdir/test_excmd.mnv,
            src/testdir/test_functions.mnv, src/testdir/test_let.mnv,
            src/testdir/test_listdict.mnv, src/testdir/test_spell.mnv,
            src/testdir/test_unlet.mnv, src/testdir/test_user_func.mnv,
            src/testdir/test_mnvscript.mnv

Patch 8.2.0402 (after 8.2.0401)
Problem:    Setting local instead of global flag.
Solution:   Prepend "g:" to "test_is_flaky".
Files:      src/testdir/term_util.mnv, src/testdir/screendump.mnv,
            src/testdir/test_autocmd.mnv

Patch 8.2.0403
Problem:    When 'buftype' is "nofile" there is no overwrite check.
Solution:   Also check for existing file when 'buftype' is set.
            (closes #5807)
Files:      src/ex_cmds.c, src/testdir/test_options.mnv

Patch 8.2.0404
Problem:    Writefile() error does not give a hint.
Solution:   Add remark about first argument.
Files:      src/filepath.c, src/testdir/test_writefile.mnv

Patch 8.2.0405
Problem:    MSVC: build fails with some combination of features.
Solution:   Enable CHANNEL if TERMINAL is enabled. (Mike Williams)
Files:      src/Make_mvc.mak

Patch 8.2.0406
Problem:    FileReadCmd event not well tested.
Solution:   Add a test.
Files:      src/testdir/test_autocmd.mnv

Patch 8.2.0407
Problem:    No early check if :find and :sfind have an argument.
Solution:   Add EX_NEEDARG.
Files:      src/ex_cmds.h, src/testdir/test_findfile.mnv,
            src/testdir/test_find_complete.mnv

Patch 8.2.0408
Problem:    Delete() commented out for testing.
Solution:   Undo commenting-out.
Files:      src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.0409
Problem:    Search test leaves file behind.
Solution:   Delete the file.  Also use Check commands.
Files:      src/testdir/test_search.mnv

Patch 8.2.0410
Problem:    Channel test fails too often on slow Mac.
Solution:   Increase waiting time to 10 seconds.
Files:      src/testdir/test_channel.mnv

Patch 8.2.0411
Problem:    Mac: breakcheck is using a value from the stone ages.
Solution:   Delete BREAKCHECK_SKIP from the Mac header file. (Ben Jackson)
Files:      src/os_mac.h

Patch 8.2.0412
Problem:    MS-Windows: cannot use mnvtutor from the start menu.
Solution:   Better check for writable directory. Use the right path for the
            executable. (Wu Yongwei, closes #5774, closes #5756)
Files:      mnvtutor.bat

Patch 8.2.0413
Problem:    Buffer menu does not handle special buffers properly.
Solution:   Keep a dictionary with buffer names to reliably keep track of
            entries.
            Also trigger BufFilePre and BufFilePost for command-line and
            terminal buffers when the name changes.
Files:      src/testdir/test_alot.mnv, src/testdir/Make_all.mak,
            runtime/menu.mnv, src/ex_getln.c, src/terminal.c,
            src/testdir/test_menu.mnv

Patch 8.2.0414
Problem:    Channel connect_waittime() test is flaky.
Solution:   Set the test_is_flaky flag.  Use test_is_flaky for more tests.
Files:      src/testdir/test_channel.mnv, src/testdir/test_terminal.mnv,
            src/testdir/runtest.mnv

Patch 8.2.0415
Problem:    Bsdl filetype is not detected.
Solution:   Add an entry in the filetype list. (Daniel Kho, closes #5810)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.0416
Problem:    Test leaves file behind.
Solution:   Delete the file.
Files:      src/testdir/test_indent.mnv

Patch 8.2.0417
Problem:    Travis CI config can be improved.
Solution:   Remove COVERAGE variable. Add load-snd-dummy script. add "-i NONE"
            to avoid messages about mnvinfo. (Ozaki Kiichi, closes #5813)
Files:      .travis.yml, ci/load-snd-dummy.sh

Patch 8.2.0418
Problem:    Code in eval.c not sufficiently covered by tests.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5815)
Files:      src/testdir/test_blob.mnv, src/testdir/test_channel.mnv,
            src/testdir/test_cmdline.mnv, src/testdir/test_eval_stuff.mnv,
            src/testdir/test_expr.mnv, src/testdir/test_functions.mnv,
            src/testdir/test_job_fails.mnv, src/testdir/test_lambda.mnv,
            src/testdir/test_let.mnv, src/testdir/test_listdict.mnv,
            src/testdir/test_marks.mnv, src/testdir/test_method.mnv,
            src/testdir/test_normal.mnv, src/testdir/test_unlet.mnv,
            src/testdir/test_usercommands.mnv, src/testdir/test_mnvscript.mnv,
            src/testdir/test_window_cmd.mnv

Patch 8.2.0419
Problem:    Various memory leaks in MNV9 script code.
Solution:   Fix the leaks. (Ozaki Kiichi, closes #5814)
Files:      src/proto/mnv9compile.pro, src/scriptfile.c, src/structs.h,
            src/testdir/test_mnv9_script.mnv, src/mnv9.h, src/mnv9compile.c,
            src/mnv9execute.c, src/mnv9script.c

Patch 8.2.0420
Problem:    MNV9: cannot interrupt a loop with CTRL-C.
Solution:   Check for CTRL-C once in a while.  Doesn't fully work yet.
Files:      src/misc1.c, src/proto/misc1.pro,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.0421
Problem:    Interrupting with CTRL-C does not always work.
Solution:   Recognize CTRL-C while modifyOtherKeys is set.
Files:      src/ui.c, src/testdir/test_mnv9_script.mnv, src/evalfunc.c

Patch 8.2.0422
Problem:    Crash when passing popup window to win_splitmove(). (john Devin)
Solution:   Disallow moving a popup window. (closes #5816)
Files:      src/testdir/test_popupwin.mnv, src/evalwindow.c

Patch 8.2.0423
Problem:    In some environments a few tests are expected to fail.
Solution:   Add $TEST_MAY_FAIL to list tests that should not cause make to
            fail.
Files:      src/testdir/runtest.mnv

Patch 8.2.0424
Problem:    Checking for wrong return value. (Tom)
Solution:   Invert the check and fix the test.
Files:      src/mnv9execute.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.0425
Problem:    Code for modeless selection not sufficiently tested.
Solution:   Add tests.  Move mouse code functionality to a common script file.
            (Yegappan Lakshmanan, closes #5821)
Files:      src/testdir/Make_all.mak, src/testdir/gen_opt_test.mnv,
            src/testdir/mouse.mnv, src/testdir/test_edit.mnv,
            src/testdir/test_global.mnv, src/testdir/test_modeless.mnv,
            src/testdir/test_normal.mnv, src/testdir/test_selectmode.mnv,
            src/testdir/test_termcodes.mnv, src/testdir/test_visual.mnv,
            src/ui.c

Patch 8.2.0426
Problem:    Some errors were not tested for.
Solution:   Add tests. (Dominique Pellé, closes #5824)
Files:      src/testdir/test_buffer.mnv, src/testdir/test_options.mnv,
            src/testdir/test_tcl.mnv, src/testdir/test_terminal.mnv,
            src/testdir/test_window_cmd.mnv

Patch 8.2.0427
Problem:    It is not possible to check for a typo in a feature name.
Solution:   Add an extra argument to has().
Files:      runtime/doc/eval.txt, src/evalfunc.c, src/testdir/check.mnv,
            src/testdir/test_functions.mnv

Patch 8.2.0428
Problem:    Buffer name may leak.
Solution:   Free the buffer name before overwriting it.
Files:      src/terminal.c

Patch 8.2.0429
Problem:    No warning when test checks for option that never exists.
Solution:   In tests check that the option can exist.
Files:      src/testdir/check.mnv

Patch 8.2.0430
Problem:    Window creation failure not properly tested.
Solution:   Improve the test. (Yegappan Lakshmanan, closes #5826)
Files:      src/testdir/test_cmdline.mnv, src/testdir/test_window_cmd.mnv

Patch 8.2.0431
Problem:    Some compilers don't support using \e for Esc. (Yegappan
            Lakshmanan)
Solution:   use \033 instead.
Files:      src/ui.c

Patch 8.2.0432
Problem:    A few tests fail in a huge terminal.
Solution:   Make the tests pass. (Dominique Pellé, closes #5829)
Files:      src/testdir/test_autocmd.mnv, src/testdir/test_options.mnv,
            src/testdir/test_termcodes.mnv, src/testdir/test_terminal.mnv,
            src/testdir/test_window_cmd.mnv

Patch 8.2.0433
Problem:    INT signal not properly tested.
Solution:   Add a test.  Also clean up some unnecessary lines. (Dominique
            Pellé, closes #5828)
Files:      src/testdir/test_display.mnv, src/testdir/test_ex_mode.mnv,
            src/testdir/test_excmd.mnv, src/testdir/test_messages.mnv,
            src/testdir/test_signals.mnv

Patch 8.2.0434
Problem:    MS-Windows with VTP: Normal color not working.
Solution:   After changing the Normal color update the VTP console color.
            (Nobuhiro Takasaki, closes #5836)
Files:      src/highlight.c

Patch 8.2.0435
Problem:    Channel contents might be freed twice.
Solution:   Call either channel_free_channel() or channel_free(), not both.
            (Nobuhiro Takasaki, closes #5835)
Files:      src/channel.c

Patch 8.2.0436
Problem:    No warnings for incorrect printf arguments.
Solution:   Fix attribute in declaration.  Fix uncovered mistakes. (Dominique
            Pellé, closes #5834)
Files:      src/proto.h, src/eval.c, src/ops.c, src/spellfile.c,
            src/mnv9compile.c, src/mnv9execute.c, src/mnvinfo.c, src/gui.c

Patch 8.2.0437
Problem:    MS-Windows installer contains old stuff.
Solution:   Rely on Windows NT. (Ken Takata, closes #5832)
Files:      src/dosinst.c

Patch 8.2.0438
Problem:    Terminal noblock test is very flaky on BSD.
Solution:   Change WaitFor() to WaitForAssert() to be able to see why it
            failed.  Add a short wait in between sending keys.
Files:      src/testdir/test_terminal.mnv

Patch 8.2.0439
Problem:    :disassemble has minor flaws.
Solution:   Format the code.  Use (int) instead of (char) for %c.
            (also by James McCoy, closes #5831)
Files:      src/mnv9execute.c

Patch 8.2.0440
Problem:    Terminal noblock test is still very flaky on BSD.
Solution:   Increase the waiting time.
Files:      src/testdir/test_terminal.mnv

Patch 8.2.0441
Problem:    Terminal noblock test is still failing on BSD.
Solution:   Reduce the amount of text.
Files:      src/testdir/test_terminal.mnv

Patch 8.2.0442
Problem:    Channel contents might be used after being freed.
Solution:   Reset the job channel before freeing the channel.
Files:      src/channel.c

Patch 8.2.0443
Problem:    Clipboard code is spread out.
Solution:   Move clipboard code to its own file. (Yegappan Lakshmanan,
            closes #5827)
Files:      Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak,
            src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md,
            src/clipboard.c, src/ops.c, src/proto.h, src/proto/clipboard.pro,
            src/proto/ops.pro, src/proto/register.pro, src/proto/ui.pro,
            src/register.c, src/ui.c

Patch 8.2.0444
Problem:    Swap file test fails on some systems.
Solution:   Preserve the swap file. Send NL terminated keys.
Files:      src/testdir/test_swap.mnv

Patch 8.2.0445
Problem:    Png and xpm files not in MS-Windows zip file.
Solution:   Move files to shared between Unix and Windows target.
Files:      Filelist

Patch 8.2.0446
Problem:    Listener with undo of deleting all lines not tested.
Solution:   Add a test.
Files:      src/testdir/test_listener.mnv

Patch 8.2.0447
Problem:    Terminal scroll tests fails on some systems.
Solution:   Remove the fixed 100msec wait for Win32.  Add a loop to wait until
            scrolling has finished. (James McCoy, closes #5842)
Files:      src/testdir/test_terminal.mnv

Patch 8.2.0448
Problem:    Various functions not properly tested.
Solution:   Add more tests, especially for failures. (Yegappan Lakshmanan,
            closes #5843)
Files:      runtime/doc/eval.txt, src/testdir/test_blob.mnv,
            src/testdir/test_breakindent.mnv, src/testdir/test_charsearch.mnv,
            src/testdir/test_clientserver.mnv, src/testdir/test_cmdline.mnv,
            src/testdir/test_exists.mnv, src/testdir/test_expand_func.mnv,
            src/testdir/test_expr.mnv, src/testdir/test_file_perm.mnv,
            src/testdir/test_functions.mnv, src/testdir/test_gui.mnv,
            src/testdir/test_listdict.mnv, src/testdir/test_marks.mnv,
            src/testdir/test_partial.mnv, src/testdir/test_registers.mnv,
            src/testdir/test_search.mnv, src/testdir/test_spell.mnv,
            src/testdir/test_substitute.mnv, src/testdir/test_syn_attr.mnv,
            src/testdir/test_syntax.mnv, src/testdir/test_taglist.mnv,
            src/testdir/test_utf8.mnv, src/testdir/test_vartabs.mnv,
            src/testdir/test_window_cmd.mnv

Patch 8.2.0449
Problem:    MNV9: crash if return type is invalid. (Yegappan Lakshmanan)
Solution:   Always return some type, not NULL.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.0450
Problem:    Not enough testing for restricted mode and function calls.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5847)
Files:      src/testdir/test_method.mnv, src/testdir/test_restricted.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.0451
Problem:    Win32: double-width character displayed incorrectly.
Solution:   First move the cursor to the first column. (Nobuhiro Takasaki,
            closes #5848)
Files:      src/os_win32.c

Patch 8.2.0452
Problem:    channel_parse_messages() fails when called recursively.
Solution:   Return for a recursive call. (closes #5835)
Files:      src/channel.c

Patch 8.2.0453
Problem:    Trailing space in job_start() command causes empty argument.
Solution:   Ignore trailing space. (closes #5851)
Files:      src/misc2.c, src/testdir/test_channel.mnv

Patch 8.2.0454
Problem:    Some tests fail when the system is slow.
Solution:   Make the run number global, use in the test to increase the
            waiting time. (closes #5841)
Files:      src/testdir/runtest.mnv, src/testdir/test_functions.mnv

Patch 8.2.0455
Problem:    Cannot set the highlight group for a specific terminal.
Solution:   Add the "highlight" option to term_start(). (closes #5818)
Files:      src/terminal.c, src/structs.h, src/channel.c,
            src/testdir/test_terminal.mnv, runtime/doc/terminal.txt,
            src/testdir/dumps/Test_terminal_popup_Terminal.dump,
            src/testdir/dumps/Test_terminal_popup_MyTermCol.dump

Patch 8.2.0456
Problem:    Test_confirm_cmd is flaky.
Solution:   Add a term_wait() call. (closes #5854)
Files:      src/testdir/test_excmd.mnv

Patch 8.2.0457
Problem:    Test_quotestar() often fails when run under valgrind.
Solution:   Wait longer for the GUI to start.
Files:      src/testdir/test_quotestar.mnv

Patch 8.2.0458
Problem:    Missing feature check in test function.
Solution:   Add check commands.
Files:      src/testdir/test_excmd.mnv

Patch 8.2.0459
Problem:    Cannot check if a function name is correct.
Solution:   Add "?funcname" to exists().
Files:      runtime/doc/eval.txt, src/evalfunc.c, src/testdir/test_exists.mnv,
            src/testdir/check.mnv

Patch 8.2.0460 (after 8.2.0459)
Problem:    Build failure because of wrong feature name.
Solution:   Correct feature name.
Files:      src/evalfunc.c

Patch 8.2.0461
Problem:    Confirm test fails on amd64 system. (Alimar Riesebieter)
Solution:   Add an extra WaitForAssert(). (Dominique Pellé)
Files:      src/testdir/test_excmd.mnv

Patch 8.2.0462
Problem:    Previewwindow test fails on some systems. (James McCoy)
Solution:   Wait a bit after sending the "o". (closes #5849)
Files:      src/testdir/test_popup.mnv,
            src/testdir/dumps/Test_popup_and_previewwindow_01.dump

Patch 8.2.0463
Problem:    Build error without float and channel feature. (John Marriott)
Solution:   Define return types always.
Files:      src/globals.h, src/evalfunc.c

Patch 8.2.0464
Problem:    Typos and other small problems.
Solution:   Fix the typos.  Add missing files to the distribution.
Files:      Filelist, src/buffer.c, src/drawline.c, src/gui_gtk_x11.c,
            src/os_unixx.h, src/proto/popupwin.pro

Patch 8.2.0465
Problem:    MNV9: dead code and wrong return type.
Solution:   Remove dead code.  Fix return type.  Add more tests.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.0466 (after 8.2.0452)
Problem:    Not parsing messages recursively breaks the gomnv plugin.
Solution:   When called recursively do handle messages but do not close
            channels.
Files:      src/channel.c

Patch 8.2.0467
Problem:    MNV9: some errors are not tested
Solution:   Add more tests.  Fix that MNV9 script flag is not reset.
Files:      src/mnv9compile.c, src/scriptfile.c, src/dict.c,
            src/testdir/test_mnv9_expr.mnv, src/testdir/test_mnv9_script.mnv

Patch 8.2.0468
Problem:    GUI: pixel dust with some fonts and characters.
Solution:   Always redraw the character before the cursor. (Nir Lichtman,
            closes #5549, closes #5856)
Files:      src/gui.c, src/proto/gui.pro, src/screen.c

Patch 8.2.0469
Problem:    MNV9: no error for missing ] after list.
Solution:   Add error message. Add more tests.
Files:      src/globals.h, src/list.c, src/userfunc.c,
            src/testdir/test_mnv9_expr.mnv, src/testdir/test_lambda.mnv

Patch 8.2.0470
Problem:    Test_confirm_cmd_cancel() can fail on a slow system.
Solution:   Use WaitForAssert(). (Ozaki Kiichi, closes #5861)
Files:      src/testdir/test_excmd.mnv

Patch 8.2.0471
Problem:    Missing change to compile_list().
Solution:   Add error message.
Files:      src/mnv9compile.c

Patch 8.2.0472
Problem:    Terminal highlight name is set twice, leaking memory.
Solution:   Delete one.
Files:      src/terminal.c

Patch 8.2.0473
Problem:    Variables declared in an outer scope.
Solution:   Declare variables only in the scope where they are used.
Files:      src/evalvars.c

Patch 8.2.0474 (after 8.2.0403)
Problem:    Cannot use :write when using a plugin with BufWriteCmd.
Solution:   Reset BF_NOTEDITED after BufWriteCmd. (closes #5807)
Files:      src/fileio.c, src/testdir/test_autocmd.mnv

Patch 8.2.0475
Problem:    Channel out_cb test still fails sometimes on Mac.
Solution:   Use an even longer timeout.
Files:      src/testdir/test_channel.mnv

Patch 8.2.0476
Problem:    Terminal nasty callback test fails sometimes.
Solution:   use term_wait() instead of a sleep. (Yee Cheng Chin, closes #5865)
Files:      src/testdir/test_terminal.mnv

Patch 8.2.0477
Problem:    MNV9: error messages not tested.
Solution:   Add more tests.
Files:      src/testdir/test_mnv9_expr.mnv, src/mnv9execute.c

Patch 8.2.0478
Problem:    New buffers are not added to the Buffers menu.
Solution:   Turn number into string. (Yee Cheng Chin, closes #5864)
Files:      runtime/menu.mnv, src/testdir/test_menu.mnv

Patch 8.2.0479
Problem:    Unloading shared libraries on exit has no purpose.
Solution:   Do not unload shared libraries on exit.
Files:      src/if_lua.c, src/if_perl.xs, src/if_python.c, src/if_python3.c,
            src/if_ruby.c, src/if_tcl.c

Patch 8.2.0480
Problem:    MNV9: some code is not tested.
Solution:   Add more tests.
Files:      src/testdir/test_mnv9_expr.mnv, src/mnv9compile.c

Patch 8.2.0481
Problem:    Travis is still using trusty.
Solution:   Adjust config to use bionic. (Ozaki Kiichi, closes #5868)
Files:      .travis.yml, src/testdir/lsan-suppress.txt

Patch 8.2.0482
Problem:    Channel and sandbox code not sufficiently tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5855)
Files:      src/option.h, src/testdir/test_channel.mnv,
            src/testdir/test_clientserver.mnv, src/testdir/test_cmdline.mnv,
            src/testdir/test_edit.mnv, src/testdir/test_excmd.mnv,
            src/testdir/test_normal.mnv, src/testdir/test_prompt_buffer.mnv,
            src/testdir/test_restricted.mnv, src/testdir/test_smartindent.mnv,
            src/testdir/test_substitute.mnv, src/testdir/test_terminal.mnv,
            src/testdir/test_textformat.mnv, src/testdir/test_visual.mnv

Patch 8.2.0483
Problem:    MNV9: "let x = x + 1" does not give an error.
Solution:   Hide the variable when compiling the expression.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.0484
Problem:    MNV9: some error messages not tested.
Solution:   Add more tests.
Files:      src/testdir/test_mnv9_expr.mnv

Patch 8.2.0485 (after 8.2.0483)
Problem:    MNV9 script test fails.
Solution:   Stricter condition for adding new local variable.
Files:      Stricter condition for adding new local variable.

Patch 8.2.0486
Problem:    MNV9: some code and error messages not tested.
Solution:   Add more tests.
Files:      src/mnv9compile.c, src/evalvars.c, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.0487
Problem:    MNV9: compiling not sufficiently tested.
Solution:   Add more tests.  Fix bug with PCALL.
Files:      src/mnv9compile.c, src/mnv9execute.c, src/mnv9.h,
            src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.0488
Problem:    MNV9: Compiling can break when using a lambda inside :def.
Solution:   Do not keep a pointer to the dfunc_T for longer time.
Files:      src/mnv9compile.c, src/mnv9.h

Patch 8.2.0489
Problem:    MNV9: memory leaks.
Solution:   Free memory in the right place.  Add hints for using asan.
Files:      src/mnv9compile.c, src/testdir/lsan-suppress.txt, src/Makefile

Patch 8.2.0490
Problem:    Win32: VTP doesn't respect 'restorescreen'.
Solution:   Use escape codes to switch to alternate screen. (Nobuhiro
            Takasaki, closes #5872)
Files:      src/os_win32.c

Patch 8.2.0491
Problem:    Cannot recognize a <script> mapping using maparg().
Solution:   Add the "script" key. (closes #5873)
Files:      src/map.c, runtime/doc/eval.txt, src/testdir/test_maparg.mnv

Patch 8.2.0492
Problem:    MNV9: some error messages not tested.
Solution:   Add more tests.  Remove dead code.  Fix uncovered bugs.
Files:      src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_expr.mnv, src/testdir/test_mnv9_script.mnv

Patch 8.2.0493
Problem:    MNV9: some error messages not tested.
Solution:   Add more tests.  Fix uncovered bugs.
Files:      src/mnv9compile.c, src/mnv9execute.c, src/testing.c, src/eval.c,
            src/proto/testing.pro, src/evalfunc.c, runtime/doc/eval.txt,
            runtime/doc/testing.txt, src/testdir/test_mnv9_script.mnv

Patch 8.2.0494
Problem:    MNV9: asan error.
Solution:   Only get the type when there is one.
Files:      src/mnv9compile.c

Patch 8.2.0495
Problem:    MNV9: some code not tested.
Solution:   Add more tests.  Support more const expressions.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.0496
Problem:    MNV9: disassemble test fails.
Solution:   Separate test cases with recognized constant expressions.
Files:      src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.0497
Problem:    Too verbose output from the asan build in Travis.
Solution:   Filter out suppression messages. (Ozaki Kiichi, closes #5874)
Files:      .travis.yml

Patch 8.2.0498
Problem:    Coverity complains about uninitialized field.
Solution:   Initialize the whole typval_T.
Files:      src/mnv9compile.c

Patch 8.2.0499
Problem:    Calling a lambda is slower than evaluating a string.
Solution:   Make calling a lambda faster. (Ken Takata, closes #5727)
Files:      src/userfunc.c

Patch 8.2.0500
Problem:    Using the same loop in many places.
Solution:   Define more FOR_ALL macros. (Yegappan Lakshmanan, closes #5339)
Files:      src/arglist.c, src/autocmd.c, src/buffer.c, src/change.c,
            src/channel.c, src/cmdexpand.c, src/diff.c, src/eval.c,
            src/evalbuffer.c, src/evalfunc.c, src/evalvars.c,
            src/evalwindow.c, src/ex_cmds2.c, src/filepath.c, src/globals.h,
            src/gui.c, src/if_py_both.h, src/if_ruby.c, src/insexpand.c,
            src/list.c, src/misc2.c, src/netbeans.c, src/popupwin.c,
            src/quickfix.c, src/screen.c, src/sign.c, src/spell.c,
            src/spellfile.c, src/spellsuggest.c, src/tag.c, src/terminal.c,
            src/userfunc.c, src/window.c

Patch 8.2.0501
Problem:    MNV9: script test fails when channel feature is missing.
Solution:   Add a has() condition.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.0502
Problem:    MNV9: some code is not tested.
Solution:   Add more tests.  Fix uncovered problems.
Files:      src/mnv9compile.c, src/regexp.c, src/proto/regexp.pro,
            src/cmdexpand.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_eval.c,
            src/ex_getln.c, src/highlight.c, src/search.c, src/syntax.c,
            src/tag.c, src/userfunc.c, src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.0503
Problem:    MNV9: some code is not tested.
Solution:   Add tests.  Fix uncovered problems.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.0504
Problem:    MNV9: leaking scope memory when compilation fails.
Solution:   Cleanup the scope list.
Files:      src/mnv9compile.c

Patch 8.2.0505
Problem:    term_gettty() not sufficiently tested.
Solution:   Add more asserts. (Dominique Pellé, closes #5877)
Files:      src/testdir/test_terminal.mnv

Patch 8.2.0506
Problem:    Coverity complains about ignoring return value.
Solution:   Add (void).
Files:      src/userfunc.c

Patch 8.2.0507 (after 8.2.0472)
Problem:    Getbufvar() may get the wrong dictionary. (David le Blanc)
Solution:   Check for empty name. (closes #5878)
Files:      src/evalvars.c, src/testdir/test_functions.mnv

Patch 8.2.0508
Problem:    MNV9: func and partial types not done yet
Solution:   Fill in details about func declaration, drop a separate partial
            declaration.
Files:      runtime/doc/mnv9.txt, src/mnv9compile.c, src/globals.h,
            src/structs.h, src/evalfunc.c, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.0509
Problem:    various code is not properly tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5871)
Files:      src/main.c, src/testdir/check.mnv, src/testdir/shared.mnv,
            src/testdir/term_util.mnv, src/testdir/test_clientserver.mnv,
            src/testdir/test_ex_mode.mnv, src/testdir/test_expand.mnv,
            src/testdir/test_functions.mnv, src/testdir/test_options.mnv,
            src/testdir/test_startup.mnv, src/testdir/test_textformat.mnv,
            src/testdir/test_trycatch.mnv, src/testdir/test_mnvinfo.mnv

Patch 8.2.0510
Problem:    Coverity complains about using uninitialized variable.
Solution:   Assign a value to "scol".  Move code inside NULL check.
Files:      src/beval.c, src/popupwin.c

Patch 8.2.0511
Problem:    Cscope code not fully tested.
Solution:   Add more test cases. (Dominique Pellé, closes #5886)
Files:      src/testdir/test_cscope.mnv

Patch 8.2.0512
Problem:    MNV9: no optional arguments in func type.
Solution:   Check for question mark after type.  Find function reference
            without function().
Files:      src/mnv9compile.c, src/mnv9execute.c, src/structs.h,
            src/globals.h, src/mnv.h, src/mnv9.h, src/userfunc.c,
            src/testdir/Make_all.mak, src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_expr.mnv, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.0513
Problem:    Reading past allocated memory when using varargs.
Solution:   Fix copying function argument types.
Files:      src/mnv9compile.c

Patch 8.2.0514
Problem:    Several global functions are used in only one file.
Solution:   Make the functions static. (Yegappan Lakshmanan, closes #5884)
Files:      src/drawscreen.c, src/evalvars.c, src/getchar.c, src/list.c,
            src/proto/drawscreen.pro, src/proto/evalvars.pro,
            src/proto/getchar.pro, src/proto/list.pro, src/proto/version.pro,
            src/version.c

Patch 8.2.0515
Problem:    Some compilers cannot add to "void *".
Solution:   Cast to "char *".
Files:      src/mnv9compile.c

Patch 8.2.0516
Problem:    Client-server code is spread out.
Solution:   Move client-server code to a new file. (Yegappan Lakshmanan,
            closes #5885)
Files:      Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak,
            src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md,
            src/clientserver.c, src/evalfunc.c, src/main.c, src/proto.h,
            src/proto/clientserver.pro, src/proto/main.pro

Patch 8.2.0517
Problem:    MNV9: cannot separate "func" and "func(): void".
Solution:   Use VAR_ANY for "any" and VAR_UNKNOWN for "no type".
Files:      src/structs.h, src/globals.h, src/eval.c, src/evalfunc.c,
            src/evalvars.c, src/testing.c, src/mnv9compile.c,
            src/mnv9execute.c, src/mnvinfo.c, src/if_py_both.h, src/json.c,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.0518
Problem:    A terminal falls back to setting $TERM to "xterm".
Solution:   Use "xterm-color" if more than 16 colors are supported and
            "xterm-256color" if at least 256 colors are supported.
            (closes #5887)
Files:      src/os_unix.c

Patch 8.2.0519
Problem:    MNV9: return type not properly checked.
Solution:   Check type properly, also at runtime.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.0520
Problem:    Tests are not listed in sorted order.
Solution:   Move test_ex_mode. (Doug Richardson, closes #5889)
Files:      src/testdir/Make_all.mak

Patch 8.2.0521
Problem:    Crash when reading a blob fails.
Solution:   Avoid keeping a pointer to a freed blob object. (Dominique Pellé,
            closes #5890)  Adjust error messages.
Files:      src/filepath.c, src/testdir/test_blob.mnv

Patch 8.2.0522
Problem:    Several errors are not tested for.
Solution:   Add tests. (Yegappan Lakshmanan, closes #5892)
Files:      src/testdir/test_autocmd.mnv, src/testdir/test_clientserver.mnv,
            src/testdir/test_digraph.mnv, src/testdir/test_expand.mnv,
            src/testdir/test_expr.mnv, src/testdir/test_functions.mnv,
            src/testdir/test_gui.mnv, src/testdir/test_highlight.mnv,
            src/testdir/test_ins_complete.mnv, src/testdir/test_lambda.mnv,
            src/testdir/test_listdict.mnv, src/testdir/test_normal.mnv,
            src/testdir/test_options.mnv, src/testdir/test_preview.mnv,
            src/testdir/test_user_func.mnv, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_script.mnv, src/testdir/test_mnvinfo.mnv,
            src/testdir/test_mnvscript.mnv, src/testdir/test_window_cmd.mnv

Patch 8.2.0523
Problem:    Loops are repeated.
Solution:   Use FOR_ALL_ macros. (Yegappan Lakshmanan, closes #5882)
Files:      src/buffer.c, src/drawscreen.c, src/evalfunc.c, src/evalwindow.c,
            src/globals.h, src/gui_athena.c, src/gui_gtk.c, src/gui_motif.c,
            src/gui_w32.c, src/list.c, src/menu.c, src/popupmenu.c,
            src/popupwin.c, src/quickfix.c, src/syntax.c, src/time.c,
            src/userfunc.c, src/mnv9compile.c

Patch 8.2.0524
Problem:    Win32: searching for file matches is slow.
Solution:   Instead of making another round to find any short filename, check
            for the short name right away. Avoid using an ordinary file like a
            directory.  (Nir Lichtman, closes #5883)
Files:      src/filepath.c

Patch 8.2.0525 (after 8.2.0524)
Problem:    Win32: typo in assignment and misplaced paren.
Solution:   Fix the syntax.
Files:      src/filepath.c

Patch 8.2.0526
Problem:    Gcc 9 complains about empty statement.
Solution:   Add {}. (Dominique Pellé, closes #5894)
Files:      src/evalfunc.c

Patch 8.2.0527
Problem:    MNV9: function types insufficiently tested.
Solution:   Add more tests.  Fix white space check.  Add "test_mnv9" target.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv, src/Makefile,
            src/testdir/Makefile, src/testdir/Make_all.mak

Patch 8.2.0528
Problem:    MNV9: function arguments insufficiently tested.
Solution:   Check types.  Add more tests.  Fix function with varargs only.
Files:      src/mnv9compile.c, src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.0529
Problem:    MNV9: function argument with default not checked.
Solution:   Check type of argument with default value.
Files:      src/mnv9compile.c, src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.0530
Problem:    Test crashes on s390. (James McCoy)
Solution:   Explicitly define an 8 big signed type. (closes #5897)
Files:      src/structs.h

Patch 8.2.0531
Problem:    Various errors not tested.
Solution:   Add tests. (Yegappan Lakshmanan, closes #5895)
Files:      src/testdir/test_search.mnv, src/testdir/test_source.mnv,
            src/testdir/test_syntax.mnv, src/testdir/test_user_func.mnv,
            src/testdir/test_mnvscript.mnv

Patch 8.2.0532
Problem:    Cannot use simplify() as a method.
Solution:   Add FEARG_1. (closes #5896)
Files:      runtime/doc/eval.txt, src/evalfunc.c,
            src/testdir/test_functions.mnv

Patch 8.2.0533
Problem:    Tests using term_wait() can still be flaky.
Solution:   Increase the wait time when rerunning a test. (James McCoy,
            closes #5899)  Halve the initial times to make tests run faster
            when there is no rerun.
Files:      src/testdir/term_util.mnv, src/testdir/test_arglist.mnv,
            src/testdir/test_autocmd.mnv, src/testdir/test_balloon.mnv,
            src/testdir/test_bufline.mnv, src/testdir/test_channel.mnv,
            src/testdir/test_cmdline.mnv, src/testdir/test_conceal.mnv,
            src/testdir/test_cursorline.mnv, src/testdir/test_debugger.mnv,
            src/testdir/test_diffmode.mnv, src/testdir/test_display.mnv,
            src/testdir/test_functions.mnv, src/testdir/test_highlight.mnv,
            src/testdir/test_ins_complete.mnv, src/testdir/test_mapping.mnv,
            src/testdir/test_match.mnv, src/testdir/test_matchadd_conceal.mnv,
            src/testdir/test_messages.mnv, src/testdir/test_number.mnv,
            src/testdir/test_popup.mnv, src/testdir/test_popupwin.mnv,
            src/testdir/test_profile.mnv, src/testdir/test_search.mnv,
            src/testdir/test_search_stat.mnv, src/testdir/test_startup.mnv,
            src/testdir/test_startup_utf8.mnv,
            src/testdir/test_statusline.mnv, src/testdir/test_suspend.mnv,
            src/testdir/test_swap.mnv, src/testdir/test_tagjump.mnv,
            src/testdir/test_terminal.mnv, src/testdir/test_terminal_fail.mnv,
            src/testdir/test_timers.mnv, src/testdir/test_mnvscript.mnv

Patch 8.2.0534
Problem:    Client-server test fails under valgrind.
Solution:   Use WaitForAssert().
Files:      src/testdir/test_clientserver.mnv

Patch 8.2.0535
Problem:    Regexp patterns not fully tested.
Solution:   Add more regexp tests and others. (Yegappan Lakshmanan,
            closes #5901)
Files:      src/testdir/test_marks.mnv, src/testdir/test_options.mnv,
            src/testdir/test_regexp_latin.mnv, src/testdir/test_search.mnv

Patch 8.2.0536
Problem:    MNV9: some compilation code not tested.
Solution:   Add more test cases.
Files:      src/evalvars.c, src/proto/evalvars.pro, src/mnv9compile.c,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.0537
Problem:    MNV9: no check for sandbox when setting v:var.
Solution:   Check for sandbox.
Files:      src/evalvars.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.0538
Problem:    MNV9: VAR_PARTIAL is not used during compilation.
Solution:   Remove VAR_PARTIAL.
Files:      src/mnv9.h, src/mnv9compile.c, src/mnv9execute.c

Patch 8.2.0539
Problem:    Comparing two NULL list fails.
Solution:   Change the order of comparing two lists.
Files:      src/list.c, src/testdir/test_assert.mnv

Patch 8.2.0540
Problem:    Regexp and other code not tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5904)
Files:      src/testdir/test_backspace_opt.mnv, src/testdir/test_expr.mnv,
            src/testdir/test_increment.mnv, src/testdir/test_normal.mnv,
            src/testdir/test_options.mnv, src/testdir/test_regexp_latin.mnv,
            src/testdir/test_search.mnv, src/testdir/test_substitute.mnv,
            src/testdir/test_terminal.mnv, src/testdir/test_virtualedit.mnv

Patch 8.2.0541
Problem:    Travis CI does not give compiler warnings.
Solution:   Add flags for warnings.  Fix uncovered problems. (Ozaki Kiichi,
            closes #5898)
Files:      .travis.yml, ci/config.mk.clang.sed, ci/config.mk.gcc.sed,
            ci/config.mk.sed, src/if_perl.xs, src/if_ruby.c,
            src/libvterm/t/harness.c

Patch 8.2.0542
Problem:    No test for E386.
Solution:   Add a test. (Dominique Pellé, closes #5911)
Files:      src/testdir/test_search.mnv

Patch 8.2.0543
Problem:    MNV9: function with varargs does not work properly.
Solution:   Improve function type spec and add tests.  Fix bugs.
Files:      runtime/doc/mnv9.txt, src/mnv9compile.c, src/mnv9execute.c,
            src/structs.h, src/testdir/test_mnv9_func.mnv

Patch 8.2.0544
Problem:    Memory leak in search test.
Solution:   Free msgbuf. (Dominique Pellé, closes #5912)
Files:      src/search.c

Patch 8.2.0545
Problem:    Unused arguments ignored in non-standard way.
Solution:   Add UNUSED instead of (void).
Files:      src/libvterm/t/harness.c

Patch 8.2.0546
Problem:    MNV9: varargs implementation is inefficient.
Solution:   Create list without moving the arguments.
Files:      src/mnv9compile.c, src/mnv9execute.c

Patch 8.2.0547
Problem:    Win32: restoring screen not always done right.
Solution:   Use a more appropriate method. (Nobuhiro Takasaki, closes #5909)
Files:      src/os_win32.c

Patch 8.2.0548
Problem:    MNV9: not all possible func type errors tested.
Solution:   Add more tests.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.0549
Problem:    User systemd files not recognized.
Solution:   Add filetype patterns. (Kevin Locke, closes #5914)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.0550
Problem:    Some changes in the libvterm upstream code.
Solution:   Include some changes.
Files:      src/libvterm/t/harness.c

Patch 8.2.0551
Problem:    Not all code for options is tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5913)
Files:      src/testdir/test_options.mnv, src/testdir/test_python3.mnv,
            src/testdir/test_undo.mnv, src/testdir/test_mnvscript.mnv

Patch 8.2.0552
Problem:    MNV9: some errors not covered by tests.
Solution:   Add more tests.  Check Funcref argument types.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.0553 (after 8.2.0550)
Problem:    Error for unused argument.
Solution:   Add UNUSED.
Files:      src/libvterm/t/harness.c

Patch 8.2.0554
Problem:    The GUI doesn't set t_Co.
Solution:   In the GUI set t_Co to 256 * 256 * 256. (closes #5903)
Files:      src/term.c, src/proto/term.pro, src/gui.c,
            src/testdir/test_gui.mnv

Patch 8.2.0555
Problem:    MNV9: line continuation is not always needed.
Solution:   Recognize continuation lines automatically in list and dict.
Files:      runtime/doc/mnv9.txt, src/mnv9compile.c,
            src/testdir/test_mnv9_expr.mnv, src/testdir/test_mnv9_script.mnv

Patch 8.2.0556
Problem:    MNV9: memory leak when finding common type.
Solution:   Store allocated memory in type growarray.
Files:      src/mnv9compile.c

Patch 8.2.0557
Problem:    No IPv6 support for channels.
Solution:   Add IPv6 support. (Ozaki Kiichi, closes #5893)
Files:      .travis.yml, runtime/doc/channel.txt, runtime/doc/various.txt,
            src/Make_cyg_ming.mak, src/Make_mvc.mak, src/auto/configure,
            src/channel.c, src/config.h.in, src/configure.ac, src/evalfunc.c,
            src/proto/channel.pro, src/testdir/check.mnv,
            src/testdir/runtest.mnv, src/testdir/test_cdo.mnv,
            src/testdir/test_channel.py, src/testdir/test_channel.mnv,
            src/testdir/test_channel_6.py, src/testdir/test_escaped_glob.mnv,
            src/testdir/test_getcwd.mnv, src/testdir/test_hide.mnv

Patch 8.2.0558
Problem:    MNV9: dict code not covered by tests.
Solution:   Remove dead code, adjust test case.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.0559
Problem:    Clearing a struct is verbose.
Solution:   Define and use CLEAR_FIELD() and CLEAR_POINTER().
Files:      src/mnv.h, src/blowfish.c, src/channel.c, src/charset.c,
            src/clipboard.c, src/diff.c, src/eval.c, src/evalfunc.c,
            src/ex_cmds2.c, src/ex_docmd.c, src/ex_getln.c, src/findfile.c,
            src/gui_gtk_f.c, src/gui_mac.c, src/gui_motif.c, src/gui_w32.c,
            src/gui_x11.c, src/hardcopy.c, src/hashtab.c, src/highlight.c,
            src/if_mzsch.c, src/insexpand.c, src/kword_test.c, src/list.c,
            src/main.c, src/map.c, src/memfile.c, src/message_test.c,
            src/misc1.c, src/netbeans.c, src/normal.c, src/ops.c,
            src/option.c, src/os_mswin.c, src/os_win32.c, src/popupmenu.c,
            src/quickfix.c, src/regexp.c, src/regexp_bt.c, src/regexp_nfa.c,
            src/search.c, src/sign.c, src/spell.c, src/spellfile.c,
            src/spellsuggest.c, src/syntax.c, src/tag.c, src/terminal.c,
            src/time.c, src/undo.c, src/userfunc.c, src/mnv9compile.c,
            src/mnv9execute.c, src/if_py_both.h

Patch 8.2.0560
Problem:    Compiler warning in tiny build.
Solution:   Move declaration inside #ifdef. (Dominique Pellé, closes #5915)
Files:      src/ex_docmd.c

Patch 8.2.0561
Problem:    MNV9: cannot split function call in multiple lines.
Solution:   Find more arguments in following lines.
Files:      runtime/doc/mnv9.txt, src/mnv9compile.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.0562
Problem:    MNV9: cannot split an expression into multiple lines.
Solution:   Continue in next line after an operator.
Files:      runtime/doc/mnv9.txt, src/macros.h, src/mnv9compile.c,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.0563
Problem:    MNV9: cannot split a function line.
Solution:   Continue in next line so long as the function isn't done.
Files:      runtime/doc/mnv9.txt, src/userfunc.c, src/proto/userfunc.pro,
            src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.0564
Problem:    MNV9: calling a def function from non-mnv9 may fail.
Solution:   Convert varargs to a list.
Files:      src/testdir/test_mnv9_func.mnv, src/mnv9execute.c

Patch 8.2.0565
Problem:    MNV9: tests contain superfluous line continuation.
Solution:   Remove line continuation no longer needed.  Skip empty lines.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.0566
Problem:    MNV9: variable can be used uninitialized.
Solution:   Jump to after where variable is used.
Files:      src/mnv9execute.c

Patch 8.2.0567
Problem:    MNV9: cannot put comments halfway expressions.
Solution:   Support # comments in many places.
Files:      runtime/doc/mnv9.txt, src/mnv9compile.c, src/userfunc.c,
            src/ex_docmd.c, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.0568
Problem:    The man filetype plugin overwrites the unnamed register.
Solution:   Use the black hole register. (Jason Franklin)
Files:      runtime/ftplugin/man.mnv, src/testdir/test_man.mnv

Patch 8.2.0569
Problem:    Build failure with tiny version.
Solution:   Add #ifdef.
Files:      src/ex_docmd.c

Patch 8.2.0570
Problem:    MNV9: no error when omitting type from argument.
Solution:   Enforce specifying argument types.
Files:      src/userfunc.c, src/ex_eval.c, src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_func.mnv, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.0571
Problem:    Double free when passing invalid argument to job_start().
Solution:   Clear the argument when freed. (Masato Nishihata, closes #5926)
Files:      src/misc2.c, src/testdir/test_channel.mnv

Patch 8.2.0572 (after 8.2.0571)
Problem:    Using two lines for free and reset.
Solution:   Use MNV_CLEAR() instead. (Yegappan Lakshmanan)
Files:      src/misc2.c

Patch 8.2.0573
Problem:    using :version twice leaks memory
Solution:   Only initialize variables once. (Dominique Pellé, closes #5917)
Files:      src/testdir/Make_all.mak, src/testdir/test_alot.mnv,
            src/testdir/test_version.mnv, src/version.c, src/globals.h

Patch 8.2.0574
Problem:    Ipv6 feature not shown in :version output.
Solution:   Add ipv6 in :version output. (Ozaki Kiichi, closes #5924)
Files:      runtime/doc/eval.txt, src/version.c

Patch 8.2.0575
Problem:    :digraph! not tested.
Solution:   Add a test. (Dominique Pellé, closes #5925)
Files:      src/testdir/test_digraph.mnv

Patch 8.2.0576
Problem:    Some errors are not covered by tests.
Solution:   Add a few more tests. (Dominique Pellé, closes #5920)
Files:      src/testdir/test_buffer.mnv, src/testdir/test_digraph.mnv,
            src/testdir/test_expr.mnv, src/testdir/test_messages.mnv

Patch 8.2.0577
Problem:    Not all modifiers supported for :options.
Solution:   Use all cmdmod.split flags. (closes #4401)
Files:      src/usercmd.c, src/proto/usercmd.pro, src/scriptfile.c,
            src/testdir/test_options.mnv, src/testdir/test_usercommands.mnv

Patch 8.2.0578
Problem:    Heredoc for interfaces does not support "trim".
Solution:   Update the script heredoc support to be same as the :let command.
            (Yegappan Lakshmanan, closes #5916)
Files:      runtime/doc/if_lua.txt, runtime/doc/if_mzsch.txt,
            runtime/doc/if_perl.txt, runtime/doc/if_pyth.txt,
            runtime/doc/if_ruby.txt, runtime/doc/if_tcl.txt, src/evalvars.c,
            src/ex_getln.c, src/proto/evalvars.pro, src/testdir/test86.in,
            src/testdir/test87.in, src/testdir/test_lua.mnv,
            src/testdir/test_perl.mnv, src/testdir/test_python2.mnv,
            src/testdir/test_python3.mnv, src/testdir/test_pyx2.mnv,
            src/testdir/test_pyx3.mnv, src/testdir/test_ruby.mnv,
            src/testdir/test_tcl.mnv, src/userfunc.c, src/mnv9compile.c

Patch 8.2.0579
Problem:    Coverity warns for unused value.
Solution:   Change order and use "else if".
Files:      src/os_unix.c

Patch 8.2.0580
Problem:    Window size wrong if 'ea' is off and 'splitright' is on and
            splitting then closing a window.
Solution:   Put abandoned window space in the right place. (Mark Waggoner)
Files:      src/testdir/test_winbuf_close.mnv, src/window.c

Patch 8.2.0581 (after 8.2.0547)
Problem:    Win32 console: the cursor position is always top-left.
Solution:   Revert the patch for restoring screen.
Files:      src/os_win32.c

Patch 8.2.0582
Problem:    Color ramp test does not show text colors.
Solution:   Add a row of 16 text colors and 16 bold text colors.
Files:      src/testdir/color_ramp.mnv

Patch 8.2.0583
Problem:    MNV9: # comment not recognized in :def function.
Solution:   Recognize and skip # comment.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.0584
Problem:    MNVinfo file uses obsolete function file_readable().
Solution:   Use filereadable(). (closes #5934)
Files:      src/session.c

Patch 8.2.0585
Problem:    MNV9: # comment not recognized after :mnv9script.
Solution:   Check script type. Make comment after ":echo" work.  And in
            several other places.
Files:      src/ex_docmd.c, src/proto/ex_docmd.pro, src/eval.c,
            src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.0586
Problem:    MNV9: # comment not sufficiently tested
Solution:   Check for preceding white space.
Files:      src/eval.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.0587
Problem:    Compiler warning for unused variable.
Solution:   Add UNUSED.
Files:      src/ex_docmd.c

Patch 8.2.0588
Problem:    Putty does not use "sgr" 'ttymouse' by default.
Solution:   Make "sgr" the default for Putty. (Christian Brabandt,
            closes #5942)
Files:      src/term.c

Patch 8.2.0589
Problem:    .bsd file type not recognized.
Solution:   Recognize .bsd as BSDL. (Daniel Kho, closes #5945)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.0590
Problem:    No 'backspace' value allows ignoring the insertion point.
Solution:   Add the "nostop" and 3 values. (Christian Brabandt, closes #5940)
Files:      runtime/doc/options.txt, src/edit.c, src/option.c, src/option.h,
            src/optionstr.c, src/testdir/gen_opt_test.mnv,
            src/testdir/test_backspace_opt.mnv

Patch 8.2.0591
Problem:    MS-Windows: should always support IPv6
Solution:   Add build flag. (Ozaki Kiichi, closes #5944)
Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak

Patch 8.2.0592
Problem:    MS-Windows with VTP: cursor is not made invisible.
Solution:   Output the code to make the cursor visible or invisible. (Nobuhiro
            Takasaki, closes #5941)
Files:      src/os_win32.c

Patch 8.2.0593
Problem:    Finding a user command is not optimal.
Solution:   Start further down in the list of commands.
Files:      src/ex_cmds.h, src/ex_docmd.c

Patch 8.2.0594
Problem:    MS-Windows: cannot build with WINVER set to 0x0501.
Solution:   Only use inet_ntop() when available. (Ozaki Kiichi, closes #5946)
Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak, src/auto/configure,
            src/channel.c, src/config.h.in, src/configure.ac

Patch 8.2.0595
Problem:    MNV9: not all commands using ends_excmd() tested.
Solution:   Find # comment after regular commands. Add more tests.  Report
            error for where it was caused.
Files:      src/ex_docmd.c, src/mnv9compile.c, src/mnv9execute.c, src/usercmd.c,
            src/evalfunc.c, src/userfunc.c, src/proto/userfunc.pro,
            src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.0596
Problem:    Crash in test49.
Solution:   Check the right pointer.
Files:      src/userfunc.c, src/testdir/test_eval.ok

Patch 8.2.0597
Problem:    Test_eval is old style.
Solution:   Change some tests to a new style test.
Files:      src/testdir/test_eval.in, src/testdir/test_eval.ok,
            src/testdir/test_eval_stuff.mnv

Patch 8.2.0598
Problem:    Test_eval_stuff fails in normal terminal.
Solution:   Close the new window.
Files:      src/testdir/test_eval_stuff.mnv

Patch 8.2.0599
Problem:    Netbeans interface insufficiently tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5921)
Files:      runtime/doc/netbeans.txt, src/netbeans.c, src/os_win32.c,
            src/testdir/runtest.mnv, src/testdir/test_netbeans.py,
            src/testdir/test_netbeans.mnv

Patch 8.2.0600
Problem:    MNV9: cannot read or write w:, t: and b: variables.
Solution:   Implement load and store for w:, t: and b: variables.
            (closes #5950)
Files:      src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_expr.mnv, src/testdir/test_mnv9_script.mnv,
            src/mnv9.h, src/mnv9compile.c, src/mnv9execute.c

Patch 8.2.0601
Problem:    MNV9: :unlet is not compiled.
Solution:   Implement :unlet instruction and check for errors.
Files:      src/mnv9compile.c, src/proto/mnv9compile.pro, src/mnv9.h,
            src/mnv9execute.c, src/evalvars.c, src/proto/evalvars.pro,
            src/eval.c, src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.0602
Problem:    :unlet $VAR does not work properly.
Solution:   Make ":lockvar $VAR" fail.  Check the "skip" flag.
Files:      src/evalvars.c, src/globals.h, src/testdir/test_mnvscript.mnv

Patch 8.2.0603
Problem:    Configure does not detect moonjit.
Solution:   Add check for moonjit. (Shlomi Fish, closes #5947)
Files:      src/configure.ac, src/auto/configure

Patch 8.2.0604
Problem:    :startinsert in a terminal window used later.
Solution:   Ignore :startinsert in a terminal window. (closes #5952)
Files:      src/ex_docmd.c, src/testdir/test_terminal.mnv

Patch 8.2.0605
Problem:    MNV9: cannot unlet an environment variable.
Solution:   Implement unlet for $VAR.
Files:      src/mnv9.h, src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.0606
Problem:    Several syntax HL errors not checked.
Solution:   Add tests. (Yegappan Lakshmanan, closes #5954)
Files:      src/testdir/test_syntax.mnv

Patch 8.2.0607
Problem:    Gcc warns for using uninitialized variable. (John Marriott)
Solution:   Set name_end also for environment variables.
Files:      src/evalvars.c

Patch 8.2.0608
Problem:    Warning from clang when building message test.
Solution:   Use a void pointer.  (Dominique Pellé, closes #5958)
Files:      src/message_test.c

Patch 8.2.0609
Problem:    Configure does not detect moonjit correctly.
Solution:   Double the brackets. (Ozaki Kiichi)
Files:      src/configure.ac, src/auto/configure

Patch 8.2.0610
Problem:    Some tests are still old style.
Solution:   Convert to new style tests. (Yegappan Lakshmanan, closes #5957)
Files:      src/testdir/test_blob.mnv, src/testdir/test_cursor_func.mnv,
            src/testdir/test_eval.in, src/testdir/test_eval.ok,
            src/testdir/test_eval_func.mnv, src/testdir/test_eval_stuff.mnv,
            src/testdir/test_expr.mnv, src/testdir/test_filter_map.mnv,
            src/testdir/test_functions.mnv, src/testdir/test_listdict.mnv,
            src/testdir/test_sort.mnv, src/testdir/test_syntax.mnv,
            src/testdir/test_utf8.mnv, src/testdir/test_mnvscript.mnv

Patch 8.2.0611
Problem:    MNV9: no check for space before #comment.
Solution:   Add space checks.
Files:      src/eval.c, src/evalvars.c, src/ex_docmd.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.0612
Problem:    MNV9: no check for space before #comment.
Solution:   Add space checks.
Files:      src/ex_eval.c, src/ex_cmds.c, src/regexp.c, src/proto/regexp.pro,
            src/gui.c, src/highlight.c, src/testdir/test_mnv9_script.mnv,
            src/testdir/test_sort.mnv

Patch 8.2.0613
Problem:    MNV9: no check for space before #comment.
Solution:   Add space checks.
Files:      src/highlight.c, src/menu.c, src/syntax.c,
            src/testdir/test_mnv9_script.mnv,
            runtime/lang/menu_de_de.latin1.mnv

Patch 8.2.0614
Problem:    Get ml_get error when deleting a line in 'completefunc'. (Yegappan
            Lakshmanan)
Solution:   Lock the text while evaluating 'completefunc'.
Files:      src/insexpand.c, src/globals.h, src/edit.c, src/ex_getln.c,
            src/undo.c, src/testdir/test_edit.mnv, src/testdir/test_excmd.mnv,
            src/testdir/test_gf.mnv, src/testdir/test_popup.mnv,
            src/testdir/test_ex_mode.mnv, runtime/doc/insert.txt

Patch 8.2.0615
Problem:    Regexp benchmark test is old style.
Solution:   Make it a new style test.  Fix using a NULL list.  Add more tests.
            (Yegappan Lakshmanan, closes #5963)
Files:      src/evalbuffer.c, src/testdir/Make_dos.mak,
            src/testdir/Make_ming.mak, src/testdir/Makefile,
            src/testdir/bench_re_freeze.in, src/testdir/bench_re_freeze.mnv,
            src/testdir/test_autocmd.mnv, src/testdir/test_bench_regexp.mnv,
            src/testdir/test_blob.mnv, src/testdir/test_bufline.mnv,
            src/testdir/test_channel.mnv, src/testdir/test_cmdline.mnv,
            src/testdir/test_functions.mnv, src/testdir/test_ins_complete.mnv,
            src/testdir/test_popupwin.mnv, src/testdir/test_prompt_buffer.mnv,
            src/testdir/test_tagjump.mnv, src/testdir/test_window_cmd.mnv

Patch 8.2.0616
Problem:    Build error when disabling the diff feature.
Solution:   Move parenthesis outside of #ifdef. (Tom Ryder)
Files:      src/drawline.c

Patch 8.2.0617
Problem:    New error check triggers in Swedish menu.
Solution:   Insert backslash. (Mats Tegner, closes #5966)
Files:      runtime/lang/menu_sv_se.latin1.mnv

Patch 8.2.0618
Problem:    Echoing a null list results in no output. (Yegappan Lakshmanan)
Solution:   Return "[]" instead of NULL in echo_string_core().
Files:      src/eval.c, src/testdir/test_messages.mnv

Patch 8.2.0619
Problem:    Null dict is not handled like an empty dict.
Solution:   Fix the code and add tests. (Yegappan Lakshmanan, closes #5968)
Files:      src/dict.c, src/eval.c, src/testdir/test_blob.mnv,
            src/testdir/test_expr.mnv, src/testdir/test_filter_map.mnv,
            src/testdir/test_let.mnv, src/testdir/test_listdict.mnv,
            src/testdir/test_search.mnv, src/testdir/test_unlet.mnv,
            src/testdir/test_usercommands.mnv, src/testdir/test_mnvscript.mnv

Patch 8.2.0620
Problem:    Error in menu translations.
Solution:   Insert a backslash before a space.
Files:      runtime/lang/menu_it_it.latin1.mnv,
            runtime/lang/menu_chinese_gb.936.mnv

Patch 8.2.0621
Problem:    After running tests asan files may remain.
Solution:   Clean up asan files with "make testclean".
Files:      src/testdir/Makefile, src/Makefile

Patch 8.2.0622
Problem:    Haiku: GUI does not compile.
Solution:   Various fixes. (Emir Sarı, closes #5961)
Files:      Filelist, README.md, READMEdir/README_haiku.txt,
            runtime/doc/os_haiku.txt, src/Makefile, src/beval.h,
            src/gui_haiku.cc, src/proto/gui_haiku.pro

Patch 8.2.0623
Problem:    Typo in test comment. (Christ van Willegen)
Solution:   Avoid mixing up a data structure with a body part.
Files:      src/testdir/test_listdict.mnv

Patch 8.2.0624
Problem:    MNV9: no check for space before #comment.
Solution:   Add space checks.  Fix :throw with double quoted string.
Files:      src/usercmd.c, src/userfunc.c, src/mnv9compile.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.0625
Problem:    MNV9: confusing error when calling unknown function.
Solution:   Give error while compiling.
Files:      src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.0626
Problem:    MNV9: wrong syntax of function in MNV9 script.
Solution:   Give error for missing space. Implement :echomsg and :echoerr.
            (closes #5670)
Files:      src/mnv9compile.c, src/mnv9execute.c, src/mnv9.h, src/userfunc.c,
            src/eval.c, src/globals.h, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.0627
Problem:    MNV9: error message does not work. (Yegappan Lakshmanan)
Solution:   Swap lines.
Files:      src/userfunc.c

Patch 8.2.0628
Problem:    Error in menu translations.
Solution:   Insert a backslash before a space in one more file. (Shun Bai,
            Emir Sarı)
Files:      runtime/lang/menu_zh_cn.utf-8.mnv,
            runtime/lang/menu_ca_es.latin1.mnv,
            runtime/lang/menu_cs_cz.iso_8859-2.mnv,
            runtime/lang/menu_cs_cz.utf-8.mnv,
            runtime/lang/menu_czech_czech_republic.1250.mnv,
            runtime/lang/menu_czech_czech_republic.ascii.mnv,
            runtime/lang/menu_da.utf-8.mnv,
            runtime/lang/menu_fi_fi.latin1.mnv,
            runtime/lang/menu_hu_hu.iso_8859-2.mnv,
            runtime/lang/menu_hu_hu.utf-8.mnv,
            runtime/lang/menu_is_is.latin1.mnv,
            runtime/lang/menu_no_no.latin1.mnv, runtime/lang/menu_pt_br.mnv,
            runtime/lang/menu_pt_pt.mnv,
            runtime/lang/menu_sk_sk.iso_8859-2.mnv,
            runtime/lang/menu_sl_si.latin2.mnv,
            runtime/lang/menu_slovak_slovak_republic.1250.mnv,
            runtime/lang/menu_tr_tr.cp1254.mnv,
            runtime/lang/menu_tr_tr.iso_8859-9.mnv,
            runtime/lang/menu_tr_tr.utf-8.mnv, runtime/lang/menu_vi_vn.mnv

Patch 8.2.0629
Problem:    Setting a boolean option to v:false does not work.
Solution:   Do not use the string representation of the value. (Christian
            Brabandt, closes #5974)
Files:      src/evalvars.c, src/testdir/test_options.mnv

Patch 8.2.0630
Problem:    "make tags" does not cover Haiku GUI file.
Solution:   Add *.cc files.
Files:      src/Make_all.mak

Patch 8.2.0631
Problem:    Haiku file formatted with wrong tabstop.
Solution:   Use normal tabstop. Fix white space.
Files:      src/gui_haiku.cc

Patch 8.2.0632
Problem:    Crash when using Haiku.
Solution:   Lock the screen. (closes #5975, closes #5973)
Files:      src/screen.c

Patch 8.2.0633
Problem:    Crash when using null partial in filter().
Solution:   Fix crash.  Add more tests. (Yegappan Lakshmanan, closes #5976)
Files:      src/eval.c, src/testdir/test_blob.mnv,
            src/testdir/test_channel.mnv, src/testdir/test_eval_stuff.mnv,
            src/testdir/test_execute_func.mnv, src/testdir/test_expr.mnv,
            src/testdir/test_filter_map.mnv, src/testdir/test_fold.mnv,
            src/testdir/test_functions.mnv, src/testdir/test_let.mnv,
            src/testdir/test_listdict.mnv, src/testdir/test_partial.mnv,
            src/testdir/test_usercommands.mnv

Patch 8.2.0634
Problem:    Crash with null partial and blob.
Solution:   Check for NULL pointer.  Add more tests. (Yegappan Lakshmanan,
            closes #5984)
Files:      src/eval.c, src/list.c, src/testdir/test_blob.mnv,
            src/testdir/test_bufwintabinfo.mnv, src/testdir/test_cd.mnv,
            src/testdir/test_channel.mnv, src/testdir/test_cursor_func.mnv,
            src/testdir/test_eval_stuff.mnv, src/testdir/test_expr.mnv,
            src/testdir/test_filter_map.mnv, src/testdir/test_fnamemodify.mnv,
            src/testdir/test_functions.mnv, src/testdir/test_getvar.mnv,
            src/testdir/test_listdict.mnv, src/testdir/test_messages.mnv,
            src/testdir/test_partial.mnv, src/testdir/test_quickfix.mnv,
            src/testdir/test_tabpage.mnv, src/testdir/test_mnvscript.mnv,
            src/testdir/test_window_cmd.mnv, src/testdir/test_window_id.mnv,
            src/testdir/test_writefile.mnv

Patch 8.2.0635
Problem:    When using 256 colors DarkYellow does not show expected color.
Solution:   Use color 3 instead of 130. (Romain Lafourcade, closes #5985)
Files:      src/highlight.c

Patch 8.2.0636
Problem:    :messages does not show the maintainer when $LANG is unset.
Solution:   Call get_mess_lang() if available. (closes #5978)
Files:      src/message.c

Patch 8.2.0637
Problem:    Incsearch highlighting does not work for ":sort!".
Solution:   Skip over the exclamation point. (closes #5983)
Files:      src/ex_getln.c, src/testdir/test_search.mnv,
            src/testdir/dumps/Test_incsearch_sort_02.dump

Patch 8.2.0638
Problem:    MS-Windows: messages test fails.
Solution:   Clear environment variables.
Files:      src/testdir/test_messages.mnv

Patch 8.2.0639
Problem:    MS-Windows: messages test still fails.
Solution:   Filter out the maintainer message.
Files:      src/testdir/test_messages.mnv

Patch 8.2.0640
Problem:    MNV9: expanding `=expr` does not work.
Solution:   Find wildcards in not compiled commands.  Reorganize test files.
Files:      Filelist, src/mnv9.h, src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/mnv9.mnv, src/testdir/test_mnv9_cmd.mnv,
            src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_expr.mnv, src/testdir/test_mnv9_script.mnv,
            src/testdir/Make_all.mak

Patch 8.2.0641
Problem:    MNV9: `=expr` not expanded in :hardcopy and "syntax include".
Solution:   Add the EX_EXPAND flag.  Expend "syntax include".
Files:      src/ex_cmds.h, src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_cmd.mnv

Patch 8.2.0642
Problem:    MNV9: using invalid index.
Solution:   Check index for being valid.  Fix memory leak.
Files:      src/mnv9compile.c, src/clientserver.c

Patch 8.2.0643 (after 8.2.0635)
Problem:    Terminal uses brown instead of dark yellow. (Romain Lafourcade)
Solution:   Use color index 3 instead of 130. (closes #5993)
Files:      src/terminal.c

Patch 8.2.0644
Problem:    Insufficient testing for invalid function arguments.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5988)
Files:      runtime/doc/eval.txt, src/testdir/test_bufline.mnv,
            src/testdir/test_channel.mnv, src/testdir/test_clientserver.mnv,
            src/testdir/test_expr.mnv, src/testdir/test_functions.mnv,
            src/testdir/test_listener.mnv, src/testdir/test_match.mnv,
            src/testdir/test_menu.mnv, src/testdir/test_quickfix.mnv,
            src/testdir/test_registers.mnv, src/testdir/test_reltime.mnv,
            src/testdir/test_terminal.mnv, src/testdir/test_textprop.mnv,
            src/testdir/test_window_cmd.mnv, src/testdir/test_window_id.mnv,
            src/testdir/test_writefile.mnv

Patch 8.2.0645
Problem:    MS-Windows terminal: CTRL-C does not get to child job.
Solution:   Remove CREATE_NEW_PROCESS_GROUP from CreateProcessW(). (Nobuhiro
            Takasaki, closes #5987)
Files:      src/terminal.c

Patch 8.2.0646
Problem:    t_Co uses the value of $COLORS in the GUI. (Masato Nishihata)
Solution:   Ignore $COLORS for the GUI. (closes #5992)
Files:      src/os_unix.c, src/term.c

Patch 8.2.0647
Problem:    MS-Windows: repeat count for events was not used.
Solution:   Check the repeat count. (Nobuhiro Takasaki, closes #5989)
Files:      src/os_win32.c

Patch 8.2.0648
Problem:    Semicolon search does not work in first line.
Solution:   Allow the cursor to be in line zero. (Christian Brabandt,
            closes #5996)
Files:      src/ex_docmd.c, src/testdir/test_cmdline.mnv

Patch 8.2.0649
Problem:    Undo problem when an InsertLeave autocommand resets undo. (Kutsan
            Kaplan)
Solution:   Do not create a new undo block when leaving Insert mode.
Files:      src/edit.c, src/testdir/test_edit.mnv

Patch 8.2.0650
Problem:    MNV9: script function can be deleted.
Solution:   Disallow deleting script function.  Delete functions when sourcing
            a script again.
Files:      src/userfunc.c, src/proto/userfunc.pro, src/evalfunc.c,
            src/mnv9compile.c, src/mnv9execute.c, src/mnv9script.c,
            src/scriptfile.c, src/testing.c, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_func.mnv, src/testdir/test_mnv9_script.mnv

Patch 8.2.0651
Problem:    Old style benchmark test still in list of distributed files.
Solution:   Remove the files from the list.
Files:      Filelist

Patch 8.2.0652 (after 8.2.0650)
Problem:    Compiler warning for char conversion.
Solution:   Use unsigned char buffer.
Files:      src/userfunc.c

Patch 8.2.0653 (after 8.2.0650)
Problem:    using uninitialized pointer.
Solution:   Move assignment up. (John Marriott)
Files:      src/userfunc.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.0654
Problem:    Building with Python fails.
Solution:   Add missing argument.
Files:      src/if_py_both.h

Patch 8.2.0655
Problem:    Search code not sufficiently tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #5999)
Files:      src/testdir/test_charsearch.mnv, src/testdir/test_gn.mnv,
            src/testdir/test_goto.mnv, src/testdir/test_ins_complete.mnv,
            src/testdir/test_normal.mnv, src/testdir/test_search.mnv,
            src/testdir/test_textformat.mnv, src/testdir/test_textobjects.mnv,
            src/testdir/test_visual.mnv

Patch 8.2.0656
Problem:    MS-Windows: redrawing right screen edge may not be needed.
Solution:   Check the build version. (Nobuhiro Takasaki, closes #6002)
Files:      src/drawscreen.c, src/os_win32.c, src/proto/os_win32.pro

Patch 8.2.0657
Problem:    MNV9: no check if called variable is a FuncRef.
Solution:   Add a type check.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.0658 (after 8.2.0646)
Problem:    HP-UX build fails when setenv() is not defined.
Solution:   Change "colors" to "t_colors". (John Marriott)
Files:      src/os_unix.c

Patch 8.2.0659
Problem:    MNV9: no test for equal func type.
Solution:   Add a test.  Improve type check.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.0660
Problem:    The search.c file is a bit big.
Solution:   Split off the text object code to a separate file. (Yegappan
            Lakshmanan, closes #6007)
Files:      Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak,
            src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md,
            src/proto.h, src/proto/search.pro, src/proto/textobject.pro,
            src/search.c, src/textobject.c

Patch 8.2.0661
Problem:    Eval test is still old style.
Solution:   Change into new style tests. (Yegappan Lakshmanan, closes #6009)
Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms,
            src/testdir/test_eval.in, src/testdir/test_eval.ok,
            src/testdir/test_eval_stuff.mnv

Patch 8.2.0662
Problem:    Cannot use input() in a channel callback.
Solution:   Reset vgetc_busy. (closes #6010)
Files:      src/globals.h, src/ex_getln.c, src/evalfunc.c,
            src/testdir/test_channel.mnv

Patch 8.2.0663
Problem:    Not all systemd temp files are recognized.
Solution:   Add two more patterns. (Jamie Macdonald, closes #6003)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.0664
Problem:    Included undesired changes in Makefile.
Solution:   Revert the changes.
Files:      src/Makefile

Patch 8.2.0665
Problem:    Wrongly assuming Python executable is called "python".
Solution:   Use detected python command. (Ken Takata, closes #6016)
            Also use CheckFunction if possible.
Files:      src/testdir/test_terminal.mnv, src/testdir/check.mnv

Patch 8.2.0666
Problem:    Ruby test fails on MS-Windows.
Solution:   Remove the "maintainer" line. (Ken Takata, closes #6015)
Files:      src/testdir/shared.mnv, src/testdir/test_messages.mnv,
            src/testdir/test_ruby.mnv

Patch 8.2.0667
Problem:    Cannot install Haiku version from source.
Solution:   Update Makefile and rdef file. (Emir Sarı, closes #6013)
Files:      Filelist, READMEdir/README_haiku.txt, runtime/doc/os_haiku.txt,
            src/Makefile, src/os_haiku.rdef.in, src/os_haiku.rdef

Patch 8.2.0668
Problem:    Compiler warning for int/size_t usage.
Solution:   Change "int" to "size_t". (Mike Williams)
Files:      src/mnv9execute.c

Patch 8.2.0669
Problem:    MS-Windows: display in VTP is a bit slow.
Solution:   Optimize the code. (Nobuhiro Takasaki, closes #6014)
Files:      src/os_win32.c, src/screen.c

Patch 8.2.0670
Problem:    Cannot change window when evaluating 'completefunc'.
Solution:   Make a difference between not changing text or buffers and also
            not changing window.
Files:      src/ex_getln.c, src/beval.c, src/change.c, src/edit.c, src/eval.c,
            src/ex_docmd.c, src/insexpand.c, src/globals.h, src/indent.c,
            src/map.c, src/window.c, src/proto/ex_getln.pro, src/register.c,
            src/undo.c, src/testdir/test_edit.mnv,
            src/testdir/test_ins_complete.mnv, src/testdir/test_popup.mnv

Patch 8.2.0671
Problem:    Haiku: compiler warnings.
Solution:   Avoid the warnings. Drop display_errors() copy. (Emir Sarı,
            closes #6018)
Files:      .gitignore, src/gui.c, src/gui_haiku.cc

Patch 8.2.0672
Problem:    Heredoc in scripts does not accept lower case marker.
Solution:   Allow lower case only in non-MNV scripts. (Ken Takata,
            closes #6019)
Files:      src/evalvars.c, src/testdir/test_lua.mnv,
            src/testdir/test_perl.mnv, src/testdir/test_python2.mnv,
            src/testdir/test_python3.mnv, src/testdir/test_pyx2.mnv,
            src/testdir/test_pyx3.mnv, src/testdir/test_ruby.mnv

Patch 8.2.0673
Problem:    Cannot build Haiku in shadow directory.
Solution:   Add symlink. (Ozaki Kiichi, closes #6023)
Files:      src/Makefile

Patch 8.2.0674
Problem:    Some source files are too big.
Solution:   Move text formatting functions to a new file. (Yegappan
            Lakshmanan, closes #6021)
Files:      Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak,
            src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md,
            src/edit.c, src/getchar.c, src/ops.c, src/option.c, src/proto.h,
            src/proto/edit.pro, src/proto/getchar.pro, src/proto/ops.pro,
            src/proto/option.pro, src/proto/textformat.pro, src/textformat.c

Patch 8.2.0675
Problem:    MNV9: no support for closures.
Solution:   Do not re-use stack entries.
Files:      src/mnv9compile.c, src/ex_docmd.c, src/proto/ex_docmd.pro,
            src/evalvars.c, src/proto/evalvars.pro

Patch 8.2.0676
Problem:    Pattern in list of distributed files does not match.
Solution:   Drop "testdir/test_[a-z]*.ok".  Add CI sed files.
Files:      Filelist

Patch 8.2.0677
Problem:    MNV9: no support for closures.
Solution:   Find variables in the outer function scope, so long as the scope
            exists.
Files:      src/mnv9compile.c, src/proto/mnv9compile.pro, src/userfunc.c,
            src/mnv9execute.c, src/structs.h, src/mnv9.h,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.0678
Problem:    Rare crash for popup menu.
Solution:   Check for NULL pointer. (Nobuhiro Takasaki, closes #6027)
Files:      src/popupmenu.c

Patch 8.2.0679
Problem:    MNV9: incomplete support for closures.
Solution:   At the end of a function copy arguments and local variables if
            they are still used by a referenced closure.
Files:      src/structs.h, src/mnv9.h, src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.0680
Problem:    PTYGROUP and PTYMODE are unused.
Solution:   Remove from autoconf. (closes #6024)
Files:      src/configure.ac, src/auto/configure, src/config.h.in

Patch 8.2.0681
Problem:    Pattern for 'hlsearch' highlighting may leak. (Dominique Pellé)
Solution:   Call end_search_hl() to make sure the previous pattern is freed.
            (closes #6028)
Files:      src/screen.c

Patch 8.2.0682
Problem:    MNV9: parsing function argument type can get stuck.
Solution:   Bail out when not making progress.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.0683
Problem:    MNV9: parsing type does not always work.
Solution:   Handle func type without return value.  Test more closures.
            Fix type check offset.  Fix garbage collection.
Files:      src/mnv9compile.c, src/mnv9execute.c, src/proto/mnv9execute.pro,
            src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.0684
Problem:    MNV9: memory leak when using lambda.
Solution:   Move the funccal context to the partial. Free the function when
            exiting.
Files:      src/mnv9.h, src/structs.h, src/mnv9execute.c, src/userfunc.c,
            src/eval.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.0685 (after 8.2.0684)
Problem:    Build failure.
Solution:   Include missing changes.
Files:      src/mnv9compile.c

Patch 8.2.0686
Problem:    Formatoptions not sufficiently tested.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #6031)
Files:      src/testdir/test_normal.mnv, src/testdir/test_textformat.mnv

Patch 8.2.0687
Problem:    Some tests do not work on FreeBSD.
Solution:   Enable modeline.  Use WaitFor() in more cases. (Ozaki Kiichi,
            closes #6036)
Files:      src/testdir/test_quickfix.mnv, src/testdir/test_terminal.mnv

Patch 8.2.0688
Problem:    Output clobbered if setting 'verbose' to see shell commands.
Solution:   Only output "Searching for" when 'verbose' is 11 or higher.
Files:      src/scriptfile.c, runtime/doc/options.txt

Patch 8.2.0689
Problem:    When using getaddrinfo() the error message is unclear.
Solution:   Use gai_strerror() to get the message. (Ozaki Kiichi,
            closes #6034)
Files:      src/channel.c

Patch 8.2.0690
Problem:    Line number of option set by modeline is wrong.
Solution:   Do not double the line number. (Ozaki Kiichi, closes #6035)
Files:      src/option.c, src/testdir/test_modeline.mnv

Patch 8.2.0691
Problem:    Startup test fails.
Solution:   Adjust expected output from -V2 argument.
Files:      src/testdir/test_startup.mnv

Patch 8.2.0692
Problem:    Startup test fails on MS-Windows.
Solution:   Allow for any path.
Files:      src/testdir/test_startup.mnv

Patch 8.2.0693
Problem:    Closure using argument not tested.
Solution:   Add a test, make it work.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.0694
Problem:    Haiku: channel and terminal do not work.
Solution:   Close files when the job has finished. (Ozaki Kiichi,
            closes #6039)
Files:      src/channel.c, src/getchar.c, src/gui_haiku.cc, src/misc1.c

Patch 8.2.0695
Problem:    MNV9: cannot define a function inside a function.
Solution:   Initial support for :def inside :def.
Files:      src/userfunc.c, src/proto/userfunc.pro, src/mnv9compile.c,
            src/mnv9execute.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.0696
Problem:    MNV9: nested function does not work properly
Solution:   Create a function reference.  Check argument count.
Files:      src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.0697
Problem:    MNV9: memory leak when using nested function.
Solution:   Unreference function when deleting instructions. Adjust reference
            count for local variables.
Files:      src/mnv9compile.c, src/mnv9execute.c

Patch 8.2.0698
Problem:    Insert mode completion not fully tested.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #6041)
Files:      src/testdir/test_edit.mnv, src/testdir/test_ins_complete.mnv,
            src/testdir/test_textformat.mnv

Patch 8.2.0699
Problem:    MNV9: not all errors tested.
Solution:   Add test for deleted function.  Bail out on first error.
Files:      src/mnv9execute.c, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_expr.mnv, src/testdir/mnv9.mnv

Patch 8.2.0700
Problem:    MNV9: converting error message to exception not tested.
Solution:   Test exception from error.  Do not continue after :echoerr.
Files:      src/mnv9execute.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.0701
Problem:    MNV9 test fails without job feature.
Solution:   Add feature check.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.0702
Problem:    Running channel tests may leave running process behind.
Solution:   Make Python client exit when running into EOF. (Kurtis Rader,
            part of #6046)
Files:      src/testdir/test_channel_pipe.py

Patch 8.2.0703
Problem:    MNV9: closure cannot store value in outer context.
Solution:   Make storing value in outer context work.  Make :disassemble
            accept a function reference.
Files:      src/mnv9compile.c, src/mnv9execute.c, src/mnv9.h, src/eval.c,
            src/structs.h, src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.0704
Problem:    MNV9: memory leak in disassemble test.
Solution:   Decrement refcount when creating funccal.
Files:      src/mnv9execute.c

Patch 8.2.0705
Problem:    Indent tests don't run on CI for FreeBSD.
Solution:   Set modeline. (Ozaki Kiichi, closes #6048)
Files:      .cirrus.yml, runtime/indent/testdir/runtest.mnv

Patch 8.2.0706
Problem:    MNV9: using assert_fails() causes function to finish.
Solution:   Check did_emsg instead of called_emsg.
Files:      src/mnv9execute.c, src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.0707
Problem:    MNV9 function test fails.
Solution:   Adjust expected error code.
Files:      src/testdir/test_mnv9_func.mnv

Patch 8.2.0708
Problem:    MNV9: constant expressions are not simplified.
Solution:   Simplify string concatenation.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.0709
Problem:    MS-Windows: compiler warning for int vs size_t.
Solution:   Add type cast. (Mike Williams)
Files:      src/channel.c

Patch 8.2.0710
Problem:    Netbeans test sometimes fails.
Solution:   Mark any test using an external command as flaky.
Files:      src/testdir/shared.mnv

Patch 8.2.0711
Problem:    With a long running MNV the temp directory might be cleared on
            some systems.
Solution:   Lock the temp directory. (closes #6044)
Files:      src/config.h.in, src/configure.ac, src/auto/configure,
            src/fileio.c, src/globals.h, src/os_unix.h

Patch 8.2.0712
Problem:    Various code not fully tested.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #6049)
Files:      src/testdir/test_functions.mnv, src/testdir/test_options.mnv,
            src/testdir/test_system.mnv, src/testdir/test_termcodes.mnv

Patch 8.2.0713
Problem:    The pam_environment file is not recognized.
Solution:   Add a filetype pattern for pamenv. (closes #6051)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.0714
Problem:    MNV9: handling constant expression does not scale.
Solution:   Use another solution, passing typval_T.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.0715
Problem:    MNV9: leaking memory.
Solution:   Free strings after concatenating them.
Files:      src/mnv9compile.c

Patch 8.2.0716
Problem:    MNV9: another memory leak.
Solution:   Clear typval when failing.
Files:      src/mnv9compile.c

Patch 8.2.0717
Problem:    MNV9: postponed constant expressions does not scale.
Solution:   Add a structure to pass around postponed constants.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.0718
Problem:    Gcc warning for returning pointer to local variable. (John
            Marriott)
Solution:   Return another pointer.
Files:      src/evalvars.c

Patch 8.2.0719
Problem:    MNV9: more expressions can be evaluated at compile time
Solution:   Recognize has('name').
Files:      src/mnv9compile.c, src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.0720
Problem:    Occasional exit when encountering an X error. (Manfred Lotz)
Solution:   On an X error do not exit, do preserve files.
Files:      src/os_unix.c

Patch 8.2.0721
Problem:    MNV9: leaking memory when skipping.
Solution:   Disable skipping in generate_ppconst().
Files:      src/mnv9compile.c

Patch 8.2.0722
Problem:    MNV9: not handling constant expression for elseif.
Solution:   Use postponed constants.  Delete the code for evaluating a
            constant expression.
Files:      src/mnv9compile.c

Patch 8.2.0723
Problem:    MNV9: nested constant expression not evaluated compile time.
Solution:   Use compile_expr1() for parenthesis.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.0724
Problem:    MNV9: appending to buffer/window/tab variable not tested
Solution:   Add a test.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.0725
Problem:    MNV9: cannot call a function declared later in MNV9 script.
Solution:   Make two passes through the script file.
Files:      src/scriptfile.c, src/proto/scriptfile.pro, src/mnv9script.c,
            src/mnv9compile.c, src/mnv9execute.c, src/proto/mnv9compile.pro,
            src/userfunc.c, src/proto/userfunc.pro, src/evalvars.c,
            src/proto/evalvars.pro, src/mnv.h,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.0726
Problem:    MNV9: leaking memory when calling not compiled :def function.
Solution:   Check if function is compiled earlier.
Files:      src/mnv9execute.c

Patch 8.2.0727
Problem:    MS-Windows: new gcc compiler does not support scanf format.
Solution:   Use "%ll" instead of "%I". (Ken Takata)
Files:      src/mnv.h

Patch 8.2.0728
Problem:    Messages about a deadly signal are not left aligned.
Solution:   Output a CR before the NL. (Dominique Pellé, #6055)
Files:      src/misc1.c, src/os_unix.c

Patch 8.2.0729
Problem:    MNV9: When reloading a script variables are not cleared.
Solution:   When sourcing a script again clear all script-local variables.
Files:      src/dict.c, src/proto/dict.pro, src/scriptfile.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.0730
Problem:    MNV9: Assignment to dict member does not work.
Solution:   Parse dict assignment. Implement getting dict member.
Files:      src/mnv9.h, src/mnv9compile.c, src/mnv9execute.c, src/globals.h,
            src/testdir/test_mnv9_expr.mnv, src/testdir/test_mnv9_cmd.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.0731
Problem:    MNV9: parsing declarations continues after :finish.
Solution:   Bail out when encountering :finish.
Files:      src/mnv9script.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.0732
Problem:    MNV9: storing value in dict messes up stack.
Solution:   Correct item count of stack.
Files:      src/mnv9execute.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.0733
Problem:    MNV9: assigning to dict or list argument does not work.
Solution:   Recognize an argument as assignment target.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.0734
Problem:    MNV9: leaking memory when using :finish.
Solution:   Do not check for next line in third pass.
Files:      src/scriptfile.c

Patch 8.2.0735
Problem:    MNV9: using uninitialized memory.
Solution:   Clear the arg_lvar field.
Files:      src/mnv9compile.c

Patch 8.2.0736
Problem:    Some files not recognized as pamenv.
Solution:   Add pam_inv.conf. (closes #6065)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.0737
Problem:    When shell doesn't support CTRL-Z MNV still handles it.
Solution:   Ignore the STOP signal if it was ignored on startup.
            (Kurtis Rader, closes #5990, closes #6058)
Files:      src/os_unix.c

Patch 8.2.0738
Problem:    Mouse handling in a terminal window not well tested.
Solution:   Add tests. (Yegappan Lakshmanan, closes #6052)
Files:      src/testdir/term_util.mnv, src/testdir/test_gui.mnv,
            src/testdir/test_modeless.mnv, src/testdir/test_terminal.mnv

Patch 8.2.0739
Problem:    Incomplete profiling when exiting because of a deadly signal.
Solution:   Call __gcov_flush() if available.
Files:      src/os_unix.c, src/Makefile, .travis.yml

Patch 8.2.0740
Problem:    Minor message mistakes.
Solution:   Change mnv to MNV and other fixes.
Files:      src/if_py_both.h, src/if_tcl.c, src/main.c

Patch 8.2.0741
Problem:    Python tests fail because of changed message.
Solution:   Adjust the expected messages (Dominique Pellé, closes #6066)
Files:      src/testdir/test86.ok, src/testdir/test87.ok

Patch 8.2.0742
Problem:    Handling of a TERM signal not tested.
Solution:   Add a test for SIGTERM. (Dominique Pellé, closes #6055)
Files:      src/testdir/test_signals.mnv

Patch 8.2.0743
Problem:    Can move to another buffer from a terminal in popup window.
Solution:   Do not allow "gf" or editing a file. (closes #6072)
Files:      src/normal.c, src/ex_cmds.c, src/testdir/test_popupwin.mnv

Patch 8.2.0744
Problem:    The name mnv is not capitalized in a message.
Solution:   Use "MNV" instead of "mnv".
Files:      src/main.c

Patch 8.2.0745
Problem:    Crash on exit when not all popups are closed.
Solution:   Close popups when freeing all memory.  Disable checking for popup
            when editing a file for now.
Files:      src/misc2.c, src/ex_cmds.c

Patch 8.2.0746
Problem:    popup_clear() hangs when a popup can't be closed.
Solution:   Bail out when a popup can't be closed.
Files:      src/popupwin.c, src/proto/popupwin.pro

Patch 8.2.0747
Problem:    Cannot forcefully close all popups.
Solution:   Add the "force" argument to popup_clear().  Use it after running a
            test.  Put back the check for a popup when editing a file.
Files:      runtime/doc/popup.txt, src/evalfunc.c, src/popupwin.c,
            src/proto/popupwin.pro, src/tag.c, src/window.c, src/misc2.c,
            src/ex_cmds.c, src/channel.c, src/testdir/runtest.mnv,
            src/testdir/test_terminal.mnv

Patch 8.2.0748
Problem:    Cannot get a list of all popups.
Solution:   Add popup_list().  Use it in the test runner.
Files:      runtime/doc/eval.txt, runtime/doc/popup.txt, src/popupwin.c,
            src/proto/popupwin.pro, src/evalfunc.c,
            src/testdir/test_popupwin.mnv, src/testdir/runtest.mnv

Patch 8.2.0749
Problem:    TERM signal test fails on FreeBSD.
Solution:   Do not check the messages, the may appear anywhere. (Dominique
            Pellé, closes #6075)
Files:      src/testdir/test_signals.mnv

Patch 8.2.0750
Problem:    Netbeans test is a bit flaky.
Solution:   Allow for standard sign to be defined.  Use WaitForAssert().
Files:      src/testdir/test_netbeans.mnv

Patch 8.2.0751
Problem:    MNV9: performance can be improved.
Solution:   Don't call break.  Inline check for list materialize.  Make an
            inline version of ga_grow().
Files:      src/macros.h, src/evalfunc.c, src/misc2.c,
            src/proto/misc2.pro, src/channel.c, src/eval.c, src/evalbuffer.c,
            src/evalvars.c, src/filepath.c, src/highlight.c, src/insexpand.c,
            src/json.c, src/list.c, src/popupmenu.c, src/popupwin.c,
            src/userfunc.c, src/if_py_both.h

Patch 8.2.0752
Problem:    Terminal in popup window test is a bit flaky.
Solution:   Wait for shell job status to be "run".  Mark as flaky test.
Files:      src/testdir/test_popupwin.mnv

Patch 8.2.0753
Problem:    MNV9: expressions are evaluated in the discovery phase.
Solution:   Bail out if an expression is not a constant.  Require a type for
            declared constants.
Files:      src/mnv.h, src/evalvars.c, src/eval.c, src/ex_eval.c,
            src/evalfunc.c, src/userfunc.c, src/dict.c, src/list.c,
            src/mnv9compile.c, src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.0754
Problem:    MNV9: No test for forward declaration.
Solution:   Add a test.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.0755
Problem:    MNV9: No error when variable initializer is not a constant.
Solution:   Return FAIL when trying to get a variable value.  Do not execute a
            script when an error is detected in the first or second phase.
Files:      src/eval.c, src/mnv9script.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.0756 (after 8.2.0249)
Problem:    MS-Windows: still a compiler warning.
Solution:   Move flag to another place in the Makefile. (Ken Takata,
            closes #6083)
Files:      src/Make_mvc.mak

Patch 8.2.0757
Problem:    MNV9: no test for MEMBER instruction.
Solution:   Add a test.  Make matches stricter.
Files:      src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.0758
Problem:    MNV9: no test for STORELIST and STOREDICT.
Solution:   Add a test.  Make matches stricter.
Files:      src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.0759 (after 8.2.0751)
Problem:    MNV9: missing changes for performance improvements
Solution:   Use GA_GROW().  Don't call breakcheck so often.
Files:      src/mnv9execute.c

Patch 8.2.0760
Problem:    MNV9: dict member errors not tested.
Solution:   Delete unreachable error.  Add tests.
Files:      src/mnv9execute.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.0761
Problem:    MNV9: instructions not tested
Solution:   Use a variable instead of a constant.
Files:      src/testdir/test_mnv9_expr.mnv

Patch 8.2.0762
Problem:    Buffer is not considered modified after setting crypt key.
Solution:   Set the modified flag. (Christian Brabandt, closes #6082)
Files:      src/optionstr.c, src/testdir/test_crypt.mnv

Patch 8.2.0763
Problem:    GUI test fails without the terminal feature.
Solution:   Check the terminal feature is supported. (Ken Takata,
            closes #6084)
Files:      src/testdir/test_gui.mnv

Patch 8.2.0764
Problem:    MNV9: assigning to option not fully tested.
Solution:   Add more test cases. Allow using any type for assignment.
Files:      src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.0765
Problem:    In the GUI can't use all the modifiers. (Andri Möll)
Solution:   Do not apply Alt/Meta early, do it later like with the terminal.
            Avoid the Motif test from crashing.
Files:      src/gui_gtk_x11.c, src/gui_x11.c, src/gui_mac.c, src/gui_w32.c,
            src/gui_motif.c

Patch 8.2.0766
Problem:    Display error when using 'number' and 'breakindent'.
Solution:   Adjust extra spaces in the first row. (Ken Takata, closes #6089,
            closes #5986)
Files:      src/drawline.c, src/testdir/test_breakindent.mnv

Patch 8.2.0767
Problem:    ModifyOtherKeys active when using a shell command in autocmd.
Solution:   Output T_CTE when going to cooked mode. (closes 5617)
Files:      src/term.c

Patch 8.2.0768
Problem:    MNV9: memory leak in script test.
Solution:   Clear typval before giving an error message.
Files:      src/mnv9execute.c

Patch 8.2.0769
Problem:    MNVLeavePre not triggered when MNV is terminated.
Solution:   Unblock autocommands.
Files:      src/main.c, src/testdir/test_signals.mnv

Patch 8.2.0770
Problem:    Cannot map CTRL-B when using the GUI.
Solution:   Reset the CTRL modifier when used. (closes #6092)
Files:      src/gui_gtk_x11.c

Patch 8.2.0771
Problem:    MNV9: cannot call a compiled closure from not compiled code.
Solution:   Pass funcexe to call_user_func().
Files:      src/userfunc.c, src/mnv9execute.c, src/proto/mnv9execute.pro,
            src/eval.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.0772
Problem:    MNV9: some variable initializations not tested.
Solution:   Add a few more tests
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.0773
Problem:    Switching to raw mode every time ":" is used.
Solution:   When executing a shell set cur_tmode to TMODE_UNKNOWN, so that the
            next time TMODE_RAW is used it is set, but not every time.
Files:      src/term.h, src/os_unix.c, src/term.c, src/os_amiga.c,
            src/os_win32.c

Patch 8.2.0774
Problem:    t_TI and t_TE are output when using 'visualbell'. (Dominique
            Pellé)
Solution:   Do not change the terminal mode for a short sleep.  Do not output
            t_TI and t_TE when switching to/from TMODE_SLEEP. Make tmode an
            enum.
Files:      src/os_unix.c, src/proto/os_unix.pro, src/os_amiga.c,
            src/proto/os_amiga.pro, src/os_mswin.c, src/proto/os_mswin.pro,
            src/os_vms.c, src/proto/os_vms.pro, src/os_win32.c,
            src/proto/os_win32.pro, src/term.c, src/term.h, src/globals.h

Patch 8.2.0775
Problem:    Not easy to call a MNV function from Lua.
Solution:   Add mnv.call() and mnv.fn(). (Prabir Shrestha, closes #6063)
Files:      runtime/doc/if_lua.txt, src/if_lua.c, src/testdir/test_lua.mnv

Patch 8.2.0776
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revision 719.
Files:      Filelist, src/libvterm/README, src/libvterm/Makefile,
            src/libvterm/find-wide-chars.pl, src/libvterm/src/fullwidth.inc,
            src/libvterm/src/unicode.c

Patch 8.2.0777 (after 8.2.0776)
Problem:    Terminal test fails.
Solution:   Adjust character position for double-wide characters.
Files:      src/testdir/test_terminal.mnv

Patch 8.2.0778
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 720 - 723.
Files:      src/libvterm/t/10state_putglyph.test, src/libvterm/Makefile,
            src/libvterm/t/run-test.pl, src/libvterm/src/state.c,
            src/libvterm/t/92lp1805050.test

Patch 8.2.0779
Problem:    Tmode_T not used everywhere.
Solution:   Also use tmode_T for settmode().
Files:      src/term.c, src/proto/term.pro

Patch 8.2.0780
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 724 - 726.
Files:      Filelist, src/libvterm/t/40screen_ascii.test,
            src/libvterm/t/60screen_ascii.test,
            src/libvterm/t/41screen_unicode.test,
            src/libvterm/t/61screen_unicode.test,
            src/libvterm/t/42screen_damage.test,
            src/libvterm/t/62screen_damage.test,
            src/libvterm/t/43screen_resize.test,
            src/libvterm/t/63screen_resize.test,
            src/libvterm/t/44screen_pen.test,
            src/libvterm/t/64screen_pen.test,
            src/libvterm/t/45screen_protect.test,
            src/libvterm/t/65screen_protect.test,
            src/libvterm/t/46screen_extent.test,
            src/libvterm/t/66screen_extent.test,
            src/libvterm/t/47screen_dbl_wh.test,
            src/libvterm/t/67screen_dbl_wh.test,
            src/libvterm/t/48screen_termprops.test,
            src/libvterm/t/68screen_termprops.test, src/libvterm/t/30pen.test,
            src/libvterm/t/30state_pen.test, src/libvterm/t/92lp1805050.test,
            src/libvterm/t/31state_rep.test, src/libvterm/doc/seqs.txt

Patch 8.2.0781 (after 8.2.0775)
Problem:    Compiler warning for not using value in Lua.
Solution:   Add "(void)".
Files:      src/if_lua.c

Patch 8.2.0782
Problem:    Cannot build with Lua on MS-Windows.
Solution:   Add DLL symbol for luaL_Loadstring. (Ken Takata)
Files:      src/if_lua.c

Patch 8.2.0783
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 728 - 729.
Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Makefile,
            src/libvterm/src/keyboard.c, src/libvterm/t/25state_input.test,
            src/libvterm/t/harness.c, src/libvterm/src/vterm.c,
            src/libvterm/src/vterm_internal.h,
            src/libvterm/t/26state_query.test

Patch 8.2.0784
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 730 - 733.
Files:      src/libvterm/src/vterm.c, src/libvterm/src/state.c,
            src/libvterm/include/vterm.h, src/libvterm/src/vterm_internal.h,
            src/libvterm/t/harness.c

Patch 8.2.0785
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 734 - 740.
Files:      src/libvterm/include/vterm.h, src/libvterm/src/pen.c,
            src/libvterm/src/vterm.c, src/libvterm/doc/seqs.txt,
            src/libvterm/t/30state_pen.test, src/libvterm/t/run-test.pl,
            src/libvterm/Makefile, src/libvterm/CONTRIBUTING

Patch 8.2.0786
Problem:    Channel test is flaky on FreeBSD.
Solution:   Set the socket TCP_NODELAY option. Adjust expected line count in
            netbeans test. (Ozaki Kiichi, closes #6097)
Files:      src/testdir/test_channel.py, src/testdir/test_netbeans.mnv

Patch 8.2.0787
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 741 - 742.
Files:      Filelist, src/libvterm/src/screen.c

Patch 8.2.0788
Problem:    Memory leak in libvterm.
Solution:   free tmpbuffer.
Files:      src/libvterm/src/vterm.c

Patch 8.2.0789
Problem:    MNV9: expression testing lost coverage using constants.
Solution:   Use a few variables instead of constants.
Files:      src/testdir/test_mnv9_expr.mnv

Patch 8.2.0790
Problem:    MNV9: list index not well tested.
Solution:   Add a few more tests.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.0791
Problem:    A second popup window with terminal causes trouble.
Solution:   Disallow opening a second terminal-popup window. (closes #6101,
            closes #6103) Avoid defaulting to an invalid line number.
Files:      runtime/doc/popup.txt, src/popupwin.c, src/ex_docmd.c,
            src/testdir/test_popupwin.mnv, src/testdir/test_terminal.mnv

Patch 8.2.0792
Problem:    Build failure with small features.
Solution:   Add #ifdef.
Files:      src/popupwin.c

Patch 8.2.0793
Problem:    MS-Windows: cannot build GUI with small features. (Michael Soyka)
Solution:   Add #ifdef around use of windowsVersion. (Ken Takata)
Files:      src/os_win32.c

Patch 8.2.0794
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 743 - 747.
Files:      src/libvterm/src/state.c, src/libvterm/src/screen.c,
            src/libvterm/src/vterm_internal.h, src/libvterm/include/vterm.h,
            src/libvterm/t/67screen_dbl_wh.test, src/libvterm/t/run-test.pl

Patch 8.2.0795
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 748 - 754.
Files:      src/libvterm/include/vterm.h, src/libvterm/src/screen.c,
            src/libvterm/src/state.c, src/libvterm/t/32state_flow.test,
            src/libvterm/t/60screen_ascii.test,
            src/libvterm/t/62screen_damage.test,
            src/libvterm/t/63screen_resize.test, src/libvterm/t/harness.c,
            src/libvterm/t/run-test.pl

Patch 8.2.0796
Problem:    MS-Windows: compiler can't handle C99 construct in libvterm.
Solution:   Change to C90 construct.
Files:      src/libvterm/src/state.c

Patch 8.2.0797
Problem:    MS-Windows: compiler still can't handle C99 construct.
Solution:   Change to C90 construct. (Dominique Pellé, closes #6106)
Files:      src/libvterm/src/state.c

Patch 8.2.0798
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 755 - 758.
Files:      src/libvterm/t/run-test.pl, src/libvterm/src/screen.c,
            src/libvterm/t/harness.c, src/libvterm/include/vterm.h,
            src/libvterm/src/parser.c, src/libvterm/src/state.c,
            src/libvterm/src/vterm.c, src/libvterm/src/vterm_internal.h,
            src/libvterm/t/02parser.test,
            src/libvterm/t/18state_termprops.test,
            src/libvterm/t/29state_fallback.test,
            src/libvterm/t/68screen_termprops.test, src/terminal.c

Patch 8.2.0799
Problem:    Build fails if snprintf is not available.
Solution:   Use mnv_snprintf().
Files:      src/libvterm/src/state.c

Patch 8.2.0800
Problem:    Errors from failing test are unclear.
Solution:   Include text where parsing failed.
Files:      src/json.c, src/testdir/test_json.mnv

Patch 8.2.0801
Problem:    Terminal test fails on Mac.
Solution:   Concatenate OSC pieces.
Files:      src/terminal.c

Patch 8.2.0802
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 759 - 762.
Files:      src/terminal.c, src/libvterm/doc/seqs.txt,
            src/libvterm/include/vterm.h, src/libvterm/src/pen.c,
            src/libvterm/src/screen.c, src/libvterm/src/state.c,
            src/libvterm/src/vterm.c, src/libvterm/src/vterm_internal.h,
            src/libvterm/t/harness.c, src/libvterm/t/12state_scroll.test

Patch 8.2.0803
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revisions 764 - 767
Files:      src/Makefile, src/libvterm/src/parser.c,
            src/libvterm/src/vterm_internal.h, src/libvterm/t/02parser.test,
            src/libvterm/t/run-test.pl, src/libvterm/find-wide-chars.pl,
            src/libvterm/src/fullwidth.inc

Patch 8.2.0804
Problem:    Libvterm code lags behind the upstream version.
Solution:   Include revision 727, but add the index instead of switching
            between RGB and indexed.
Files:      src/terminal.c, src/term.c, src/libvterm/include/vterm.h,
            src/libvterm/src/pen.c, src/libvterm/src/screen.c,
            src/libvterm/src/vterm_internal.h,
            src/libvterm/t/30state_pen.test,
            src/libvterm/t/harness.c, src/libvterm/src/state.c,
            src/libvterm/t/26state_query.test,
            src/libvterm/t/64screen_pen.test

Patch 8.2.0805
Problem:    Terminal key codes test fails on some systems.
Solution:   Skip keypad 3 and 9. (Yegappan Lakshmanan, closes #6070)
Files:      src/testdir/test_terminal.mnv

Patch 8.2.0806
Problem:    using "func!" after mnv9script gives confusing error.
Solution:   Give E477. (closes #6107)
Files:      src/mnv9script.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.0807
Problem:    Cannot easily restore a mapping.
Solution:   Add mapset().
Files:      runtime/doc/eval.txt, src/map.c, src/proto/map.pro, src/evalfunc.c
            src/testdir/test_maparg.mnv

Patch 8.2.0808
Problem:    Not enough testing for the terminal window.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #6069)  Fix memory
            leak.
Files:      src/testdir/test_gui.mnv, src/testdir/test_terminal.mnv,
            src/terminal.c

Patch 8.2.0809
Problem:    Build failure with small features. (Tony Mechelynck)
Solution:   Move "expr" inside #ifdef.
Files:      src/map.c

Patch 8.2.0810
Problem:    Error when appending "tagfile" to 'wildoptions'.
Solution:   use flags P_ONECOMMA and P_NODUP. (Dmitri Vereshchagin,
            closes #6105)
Files:      src/optiondefs.h, src/testdir/test_options.mnv

Patch 8.2.0811
Problem:    Terminal keycode test is flaky.
Solution:   Use WaitForAssert()
Files:      src/testdir/test_terminal.mnv

Patch 8.2.0812
Problem:    mapset() does not properly handle <> notation.
Solution:   Convert <> codes. (closes #6116)
Files:      src/map.c, src/testdir/test_maparg.mnv

Patch 8.2.0813
Problem:    libvterm code is slightly different from upstream.
Solution:   Use upstream text to avoid future merge problems.  Mainly comment
            style changes.
Files:      src/libvterm/include/vterm.h, src/libvterm/src/rect.h,
            src/libvterm/src/utf8.h, src/libvterm/src/vterm_internal.h,
            src/libvterm/src/encoding.c, src/libvterm/src/keyboard.c,
            src/libvterm/src/mouse.c, src/libvterm/src/parser.c,
            src/libvterm/src/pen.c, src/libvterm/src/screen.c,
            src/libvterm/src/state.c, src/libvterm/src/unicode.c,
            src/libvterm/src/vterm.c

Patch 8.2.0814
Problem:    Clang warning for implicit conversion.
Solution:   Add type cast. (Dominique Pellé, closes #6124)
Files:      src/evalfunc.c

Patch 8.2.0815
Problem:    maparg() does not provide enough information for mapset().
Solution:   Add "lhsraw" and "lhsrawalt" items.  Drop "simplified"
Files:      src/map.c, runtime/doc/eval.txt, src/testdir/test_maparg.mnv

Patch 8.2.0816
Problem:    Terminal test fails when compiled with Athena.
Solution:   Do give an error when the GUI is not running. (hint by Dominique
            Pellé, closes #5928, closes #6132)
Files:      src/globals.h, src/gui.c, src/term.c, src/channel.c,
            src/testdir/test_terminal.mnv

Patch 8.2.0817
Problem:    Not enough memory allocated when converting string with special
            character.
Solution:   Reserve space for modifier code. (closes #6130)
Files:      src/eval.c, src/testdir/test_functions.mnv

Patch 8.2.0818
Problem:    MNV9: using a discovery phase doesn't work well.
Solution:   Remove the discovery phase, instead compile a function only when
            it is used.  Add :defcompile to compile def functions earlier.
Files:      runtime/doc/mnv9.txt, src/mnv9script.c, src/structs.h,
            src/userfunc.c, src/proto/userfunc.pro, src/eval.c,
            src/evalvars.c, src/proto/evalvars.pro, src/mnv9compile.c,
            src/proto/mnv9compile.pro, src/mnv9execute.c, src/ex_cmds.h,
            src/ex_docmd.c, src/ex_cmdidxs.h, src/mnv.h, src/testdir/mnv9.mnv,
            src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_func.mnv, src/testdir/test_mnv9_script.mnv

Patch 8.2.0819
Problem:    Compiler warning for unused variable.
Solution:   Remove the variable.
Files:      src/evalvars.c

Patch 8.2.0820
Problem:    MNV9: function type isn't set until compiled.
Solution:   Set function type early.
Files:      src/mnv9compile.c, src/proto/mnv9compile.pro, src/userfunc.c,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.0821
Problem:    MNV9: memory leak in expr test.
Solution:   Do not decrement the length of the list of functions if the
            current function is not at the end.
Files:      src/mnv9compile.c

Patch 8.2.0822
Problem:    MNV9: code left over from discovery phase.
Solution:   Remove the dead code.
Files:      src/scriptfile.c, src/proto/scriptfile.pro, src/ex_cmds.h,
            src/evalvars.c, src/proto/evalvars.pro, src/ex_docmd.c

Patch 8.2.0823
Problem:    MNV9: script reload test is disabled.
Solution:   Compile a function in the context of the script where it was
            defined.  Set execution stack for compiled function.  Add a test
            that an error is reported for the right file/function.
Files:      src/mnv9compile.c, src/mnv9execute.c, src/scriptfile.c,
            src/proto/scriptfile.pro, src/userfunc.c, src/globals.h,
            src/structs.h, src/ex_docmd.c, src/ex_eval.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.0824 (after 8.2.0817)
Problem:    Still not enough memory allocated when converting string with
            special character.
Solution:   Reserve space for expanding K_SPECIAL. (closes #6130)
Files:      src/eval.c, src/testdir/test_functions.mnv

Patch 8.2.0825
Problem:    def_function() may return pointer that was freed.
Solution:   Set "fp" to NULL after freeing it.
Files:      src/userfunc.c

Patch 8.2.0826
Problem:    MNV9: crash in :defcompile.
Solution:   Restart the loop after a call to compile_def_function() caused the
            hash table to resize.
Files:      src/userfunc.c

Patch 8.2.0827
Problem:    MNV9: crash in :defcompile.
Solution:   Fix off-by-one error.
Files:      src/userfunc.c

Patch 8.2.0828
Problem:    Travis: regexp pattern doesn't work everywhere.
Solution:   Use [:blank:] instead of \b. (Ozaki Kiichi, closes #6146)
Files:      .travis.yml, ci/config.mk.clang.sed, ci/config.mk.gcc.sed,
            ci/config.mk.sed, src/if_ruby.c

Patch 8.2.0829
Problem:    filter() may give misleading error message.
Solution:   Also mention Blob as an allowed argument.
Files:      src/list.c, src/testdir/test_filter_map.mnv

Patch 8.2.0830
Problem:    Motif: can't map "!". (Ben Jackson)
Solution:   Remove the shift modifier if it's already included in the key.
            (closes #6147)
Files:      src/gui_x11.c

Patch 8.2.0831
Problem:    Compiler warnings for integer sizes.
Solution:   Add type casts. (Mike Williams)
Files:      src/libvterm/src/pen.c, src/terminal.c

Patch 8.2.0832
Problem:    Compiler warning for uninitialized variable. (Tony Mechelynck)
Solution:   Add initial value.
Files:      src/map.c

Patch 8.2.0833
Problem:    Mapping <C-bslash> doesn't work in the GUI.
Solution:   Reset seenModifyOtherKeys when starting the GUI. (closes #6150)
Files:      src/gui.c

Patch 8.2.0834
Problem:    :drop command in terminal popup causes problems.
Solution:   Check for using a popup window. (closes #6151)
Files:      src/ex_cmds.c, src/testdir/test_popupwin.mnv

Patch 8.2.0835
Problem:    Motif: mapping <C-bslash> still doesn't work.
Solution:   Accept CSI for K_SPECIAL.  Do not apply CTRL to the character
            early.  (closes #6150)
Files:      src/getchar.c, src/gui_x11.c

Patch 8.2.0836
Problem:    Not all :cdo output is visible.
Solution:   Reset 'shortmess' temporarily. (Yegappan Lakshmanan, closes #6155)
Files:      src/ex_cmds2.c, src/testdir/test_cdo.mnv

Patch 8.2.0837
Problem:    Compiler warning for value set but not used.
Solution:   Move variable inside #ifdef.
Files:      src/channel.c

Patch 8.2.0838
Problem:    MS-Windows: compiler warning for uninitialized variables.
Solution:   Initialize variables.
Files:      src/screen.c

Patch 8.2.0839
Problem:    Dropping modifier when putting a character back in typeahead.
Solution:   Add modifier to ins_char_typebuf(). (closes #6158)
Files:      src/getchar.c, src/proto/getchar.pro, src/message.c, src/normal.c,
            src/terminal.c, src/globals.h, src/testdir/test_messages.mnv

Patch 8.2.0840
Problem:    Search match count wrong when only match is in fold.
Solution:   Update search stats when in a closed fold. (Christian Brabandt,
            closes #6160, closes #6152)
Files:      src/search.c, src/testdir/dumps/Test_searchstat_3.dump,
            src/testdir/test_search_stat.mnv

Patch 8.2.0841
Problem:    'verbose' value 16 causes duplicate output.
Solution:   Combine levels 15 and 16 into one message. (Christian Brabandt,
            closes #6153)
Files:      runtime/doc/options.txt, src/ex_docmd.c

Patch 8.2.0842 (after 8.2.0837)
Problem:    MS-Windows: channel tests fail.
Solution:   Adjust #ifdefs. (closes #6162)
Files:      src/channel.c

Patch 8.2.0843
Problem:    Filetype elm not detected.
Solution:   Recognize *.elm files. (closes #6157)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.0844
Problem:    Text properties crossing lines not handled correctly.
Solution:   When saving for undo include an extra line when needed and do not
            adjust properties when undoing. (Axel Forsman, closes #5875)
Files:      src/memline.c, src/proto/memline.pro, src/undo.c, src/structs.h

Patch 8.2.0845
Problem:    Text properties crossing lines not handled correctly.
Solution:   When joining lines merge text properties if possible.
            (Axel Forsman, closes #5839, closes #5683)
Files:      src/testdir/test_textprop.mnv, src/memline.c, src/ops.c,
            src/proto/textprop.pro, src/textprop.c,
            src/testdir/dumps/Test_textprop_01.dump

Patch 8.2.0846
Problem:    Build failure with small features.
Solution:   Add #ifdef.
Files:      src/undo.c

Patch 8.2.0847
Problem:    Typval related code is spread out.
Solution:   Move code to new typval.c file. (Yegappan Lakshmanan, closes #6093)
Files:      Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak,
            src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md,
            src/eval.c, src/evalfunc.c, src/globals.h, src/proto.h,
            src/proto/eval.pro, src/proto/evalfunc.pro, src/proto/typval.pro,
            src/typval.c

Patch 8.2.0848
Problem:    MS-Windows: the Windows terminal code has some flaws.
Solution:   Do not redraw the right edge of the screen.  Remove the background
            color trick.  Flush the screen output buffer often.  (Nobuhiro
            Takasaki, #5546)
Files:      src/os_win32.c, src/proto/os_win32.pro, src/term.c

Patch 8.2.0849
Problem:    BeOS code is not maintained and probably unused.
Solution:   Remove the BeOS code. (Emir Sarı, closes #5817)
Files:      Filelist, src/Makefile, src/configure.ac, src/auto/configure,
            src/evalfunc.c, src/normal.c, src/os_beos.c, src/os_beos.h,
            src/os_beos.rsrc, src/os_unix.c, src/proto.h,
            src/proto/os_beos.pro, src/pty.c, src/screen.c, src/term.c,
            src/testdir/test_functions.mnv, src/ui.c, src/mnv.h

Patch 8.2.0850
Problem:    MS-Windows: exepath() works differently from cmd.exe.
Solution:   Make exepath() work better on MS-Windows. (closes #6115)
Files:      runtime/doc/eval.txt, src/os_win32.c,
            src/testdir/test_functions.mnv

Patch 8.2.0851 (after 8.2.0833)
Problem:    Can't distinguish <M-a> from accented "a" in the GUI.
Solution:   Use another way to make mapping <C-bslash> work. (closes #6163)
Files:      src/gui.c, src/gui_gtk_x11.c, src/getchar.c

Patch 8.2.0852
Problem:    Cannot map CTRL-S on some systems.
Solution:   Do not use CTRL-S for flow control.
Files:      src/os_unix.c

Patch 8.2.0853
Problem:    ml_delete() often called with FALSE argument.
Solution:   Use ml_delete_flags(x, ML_DEL_MESSAGE) when argument is TRUE.
Files:      src/buffer.c, src/change.c, src/diff.c, src/evalbuffer.c,
            src/ex_cmds.c, src/ex_docmd.c, src/fileio.c, src/if_lua.c,
            src/if_mzsch.c, src/if_ruby.c, src/if_tcl.c, src/normal.c,
            src/popupmenu.c, src/popupwin.c, src/quickfix.c, src/spell.c,
            src/terminal.c, src/if_perl.xs, src/if_py_both.h, src/memline.c,
            src/proto/memline.pro

Patch 8.2.0854
Problem:    Xxd cannot show offset as a decimal number.
Solution:   Add the "-d" flag. (Aapo Rantalainen, closes #5616)
Files:      src/testdir/test_xxd.mnv, src/xxd/xxd.c

Patch 8.2.0855
Problem:    GUI tests fail because the test doesn't use a modifier.
Solution:   Add "\{xxx}" to be able to encode a modifier.
Files:      runtime/doc/eval.txt, src/typval.c, src/misc2.c, src/mnv.h,
            src/proto/misc2.pro, src/gui_mac.c, src/option.c, src/highlight.c,
            src/term.c, src/testdir/test_backspace_opt.mnv,
            src/testdir/test_mapping.mnv, src/testdir/test_messages.mnv

Patch 8.2.0856 (after 8.2.0852)
Problem:    CTRL-S stops output.
Solution:   Invert the IXON flag. (closes #6166)
Files:      src/os_unix.c

Patch 8.2.0857
Problem:    GTK cell height can be a pixel too much.
Solution:   Subtract 3 instead of 1 when rounding. (closes #6168)
Files:      src/gui_gtk_x11.c

Patch 8.2.0858
Problem:    Not easy to require Lua modules.
Solution:   Improve use of Lua path. (Prabir Shrestha, closes #6098)
Files:      Filelist, src/if_lua.c, src/optionstr.c, src/proto/if_lua.pro,
            src/testdir/test_lua.mnv,
            src/testdir/testluaplugin/lua/testluaplugin/hello.lua,
            src/testdir/testluaplugin/lua/testluaplugin/init.lua

Patch 8.2.0859
Problem:    No Turkish translation of the manual.
Solution:   Add Turkish translations. (Emir Sarı, closes #5641)
Files:      Filelist, runtime/doc/Makefile, runtime/doc/emnv-tr.1,
            runtime/doc/emnv-tr.UTF-8.1, runtime/doc/mnv-tr.1,
            runtime/doc/mnv-tr.UTF-8.1, runtime/doc/mnvdiff-tr.1,
            runtime/doc/mnvdiff-tr.UTF-8.1, runtime/doc/mnvtutor-tr.1,
            runtime/doc/mnvtutor-tr.UTF-8.1, src/Makefile

Patch 8.2.0860
Problem:    Cannot use CTRL-A and CTRL-X on unsigned numbers.
Solution:   Add "unsigned" to 'nrformats'. (Naruhiko Nishino, closes #6144)
Files:      runtime/doc/options.txt, src/ops.c, src/optionstr.c,
            src/testdir/test_increment.mnv

Patch 8.2.0861
Problem:    Cannot easily get all the current marks.
Solution:   Add getmarklist(). (Yegappan Lakshmanan, closes #6032)
Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
            src/mark.c, src/proto/mark.pro, src/testdir/test_marks.mnv

Patch 8.2.0862
Problem:    ":term ++curwin" makes the current buffer hidden. (Harm te
            Hennepe)
Solution:   Do not hide the current buffer. (closes #6170)
Files:      src/terminal.c, src/testdir/test_terminal.mnv

Patch 8.2.0863
Problem:    Cannot set a separate color for underline/undercurl.
Solution:   Add the t_AU and t_8u termcap codes. (Timur Celik, closes #6011)
Files:      runtime/doc/syntax.txt, runtime/doc/term.txt, src/globals.h,
            src/highlight.c, src/optiondefs.h, src/proto/term.pro,
            src/screen.c, src/structs.h, src/term.c, src/term.h,
            src/testdir/test_options.mnv

Patch 8.2.0864
Problem:    Pragmas are indented all the way to the left.
Solution:   Add an option to indent pragmas like normal code. (Max Rumpf,
            closes #5468)
Files:      runtime/doc/indent.txt, src/cindent.c, src/structs.h,
            src/testdir/test_cindent.mnv

Patch 8.2.0865
Problem:    Syntax foldlevel is taken from the start of the line.
Solution:   Add ":syn foldlevel" to be able to use the minimal foldlevel in
            the line. (Brad King, closes #6087)
Files:      runtime/doc/syntax.txt, src/structs.h, src/syntax.c,
            src/testdir/test_syntax.mnv

Patch 8.2.0866
Problem:    Not enough tests for buffer writing.
Solution:   Add more tests. Use CheckRunMNVInTerminal in more places.
            (Yegappan Lakshmanan, closes #6167)
Files:      src/testdir/test_arglist.mnv, src/testdir/test_match.mnv,
            src/testdir/test_messages.mnv, src/testdir/test_netbeans.py,
            src/testdir/test_netbeans.mnv, src/testdir/test_search.mnv,
            src/testdir/test_signals.mnv, src/testdir/test_signs.mnv,
            src/testdir/test_startup.mnv, src/testdir/test_startup_utf8.mnv,
            src/testdir/test_syntax.mnv, src/testdir/test_tabpage.mnv,
            src/testdir/test_timers.mnv, src/testdir/test_mnvscript.mnv,
            src/testdir/test_writefile.mnv

Patch 8.2.0867
Problem:    Using \{xxx} for encoding a modifier is not nice.
Solution:   Use \<*xxx> instead, since it's the same as \<xxx> but producing a
            different code.
Files:      runtime/doc/eval.txt, src/typval.c, src/misc2.c, src/mnv.h,
            src/testdir/test_backspace_opt.mnv, src/testdir/test_mapping.mnv,
            src/testdir/test_messages.mnv

Patch 8.2.0868
Problem:    trim() always trims both ends.
Solution:   Add an argument to only trim the beginning or end. (Yegappan
            Lakshmanan, closes #6126)
Files:      runtime/doc/eval.txt, src/evalfunc.c,
            src/testdir/test_functions.mnv

Patch 8.2.0869
Problem:    It is not possible to customize the quickfix window contents.
Solution:   Add 'quickfixtextfunc'. (Yegappan Lakshmanan, closes #5465)
Files:      runtime/doc/eval.txt, runtime/doc/options.txt,
            runtime/doc/quickfix.txt, src/option.h, src/optiondefs.h,
            src/quickfix.c, src/testdir/test_quickfix.mnv

Patch 8.2.0870
Problem:    MS-Windows: Control keys don't work in the GUI.
Solution:   Don't set seenModifyOtherKeys for now. (Yasuhiro Matsumoto,
            closes #6175)
Files:      src/gui.c

Patch 8.2.0871
Problem:    Cannot use getmarklist() as a method.
Solution:   Make getmarklist() work as a method.  Add one to the column
            number to match getpos(). (Yegappan Lakshmanan, closes #6176)
Files:      runtime/doc/eval.txt, src/evalfunc.c, src/mark.c,
            src/testdir/test_marks.mnv

Patch 8.2.0872
Problem:    XIM code is mixed with multibyte code.
Solution:   Move the XIM code to a separate file. (Yegappan Lakshmanan,
            closes #6177)
Files:      Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak,
            src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/gui_xim.c,
            src/mbyte.c, src/proto.h, src/proto/gui_xim.pro,
            src/proto/mbyte.pro

Patch 8.2.0873
Problem:    A .jl file can be sawfish (lisp) or Julia.
Solution:   Do not recognize *.jl as lisp, since it might be Julia.
            (closes #6178)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.0874
Problem:    Signals test is a bit flaky.
Solution:   Flush the XautoOut file.  Delete files that may be left behind
            from a failure. (Dominique Pellé, closes #6179)
Files:      src/testdir/test_signals.mnv

Patch 8.2.0875
Problem:    Getting attributes for directory entries is slow.
Solution:   Add readdirex(). (Ken Takata, closes #5619)
Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
            src/fileio.c, src/filepath.c, src/proto/fileio.pro,
            src/proto/filepath.pro, src/testdir/test_functions.mnv

Patch 8.2.0876
Problem:    :pwd does not give a hint about the scope of the directory
Solution:   Make ":verbose pwd" show the scope. (Takuya Fujiwara, closes #5469)
Files:      runtime/doc/editing.txt, src/ex_docmd.c, src/testdir/test_cd.mnv

Patch 8.2.0877
Problem:    Cannot get the search statistics.
Solution:   Add the searchcount() function. (Fujiwara Takuya, closes #4446)
Files:      runtime/doc/eval.txt, src/evalfunc.c, src/macros.h,
            src/proto/search.pro, src/search.c,
            src/testdir/test_search_stat.mnv

Patch 8.2.0878
Problem:    No reduce() function.
Solution:   Add a reduce() function. (closes #5481)
Files:      runtime/doc/eval.txt, src/evalfunc.c, src/globals.h, src/list.c,
            src/proto/list.pro, src/testdir/test_listdict.mnv

Patch 8.2.0879
Problem:    Compiler warning for unused function argument.
Solution:   Add UNUSED.
Files:      src/search.c

Patch 8.2.0880 (after 8.2.0877)
Problem:    Leaking memory when using searchcount().
Solution:   Free the last used search pattern.
Files:      src/search.c

Patch 8.2.0881
Problem:    Compiler warning for argument type.
Solution:   Add type cast. (Mike Williams)
Files:      src/ops.c

Patch 8.2.0882
Problem:    Leaking memory when using reduce().
Solution:   Free the intermediate value.
Files:      src/list.c

Patch 8.2.0883
Problem:    Memory leak in test 49.
Solution:   Free "sfile" from the exception.
Files:      src/ex_docmd.c

Patch 8.2.0884
Problem:    Searchcount() test fails on slower systems.
Solution:   Set a longer timeout.
Files:      src/search.c, src/testdir/test_search_stat.mnv

Patch 8.2.0885
Problem:    "make shadow" does not link new lua test dir.
Solution:   Also link testdir/testluaplugin. (Elimar Riesebieter)
Files:      src/Makefile

Patch 8.2.0886
Problem:    Cannot use octal numbers in scriptversion 4.
Solution:   Add the "0o" notation. (Ken Takata, closes #5304)
Files:      runtime/doc/eval.txt, src/charset.c, src/evalfunc.c,
            src/testdir/test_eval_stuff.mnv, src/testdir/test_functions.mnv,
            src/mnv.h

Patch 8.2.0887
Problem:    Searchcount().exact_match is 1 right after a match.
Solution:   Use LT_POS() instead of LTOREQ_POS(). (closes #6189)
Files:      src/search.c, src/testdir/test_search_stat.mnv

Patch 8.2.0888
Problem:    Readdirex() returns size -2 for a directory.
Solution:   Add missing "else". (Ken Takata, closes #6185)
Files:      src/fileio.c, src/testdir/test_functions.mnv

Patch 8.2.0889
Problem:    Using old style comments.
Solution:   Use // comments. (Yegappan Lakshmanan, closes #6190)
Files:      src/gui_xim.c

Patch 8.2.0890
Problem:    No color in terminal window when 'termguicolors' is set.
Solution:   Clear the underline color. (closes #6186)
Files:      src/highlight.c

Patch 8.2.0891
Problem:    Clang warns for invalid conversion.
Solution:   Use zero instead of INVALCOLOR.
Files:      src/highlight.c

Patch 8.2.0892
Problem:    Ubsan warns for undefined behavior.
Solution:   Use unsigned instead of signed variable. (Dominique Pellé,
            closes #6193)
Files:      src/regexp_nfa.c

Patch 8.2.0893
Problem:    Assert_equalfile() does not take a third argument.
Solution:   Implement the third argument. (Gary Johnson)
Files:      runtime/doc/eval.txt, runtime/doc/testing.txt, src/evalfunc.c,
            src/testdir/test_assert.mnv, src/testing.c

Patch 8.2.0894
Problem:    :mkspell can take very long if the word count is high.
Solution:   Use long to avoid negative numbers.  Increase the limits by 20% if
            the compression did not have effect.
Files:      src/spellfile.c

Patch 8.2.0895
Problem:    :mkspell output does not mention the tree type.
Solution:   Back out increasing the limits, it has no effect.  Mention the
            tree being compressed.  Only give a message once per second.
Files:      src/spellfile.c

Patch 8.2.0896
Problem:    Crash when calling searchcount() with a string.
Solution:   Check the argument is a dict. (closes #6192)
Files:      src/search.c, src/testdir/test_search_stat.mnv

Patch 8.2.0897
Problem:    List of functions in patched version is outdated.
Solution:   Update the function lists only.
Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt

Patch 8.2.0898
Problem:    Missing help for a function goes unnoticed.
Solution:   Add a test. (Gary Johnson)
Files:      src/testdir/test_function_lists.mnv, src/testdir/Make_all.mak

Patch 8.2.0899
Problem:    Assert_equalfile() does not give a hint about the difference.
Solution:   Display the last seen text.
Files:      src/testing.c, src/testdir/test_assert.mnv

Patch 8.2.0900
Problem:    Function list test fails on MS-Windows.
Solution:   Make sure the fileformat is "unix"
Files:      src/testdir/test_function_lists.mnv

Patch 8.2.0901
Problem:    Formatting CJK text isn't optimal.
Solution:   Properly break CJK lines. (closes #3875)
Files:      runtime/doc/change.txt, src/mbyte.c, src/ops.c, src/option.h,
            src/proto/mbyte.pro, src/testdir/Make_all.mak, src/textformat.c,
            src/testdir/test_cjk_linebreak.mnv

Patch 8.2.0902
Problem:    Using searchcount() in 'statusline' causes an error.
Solution:   Avoid saving/restoring the search pattern recursively.
            (closes #6194)
Files:      src/search.c, src/testdir/test_search_stat.mnv,
            src/testdir/dumps/Test_searchstat_4.dump

Patch 8.2.0903
Problem:    comparing WINVER does not work correctly.
Solution:   Use arithmetic expansion. (Ozaki Kiichi, closes #6197)
Files:      src/Make_cyg_ming.mak

Patch 8.2.0904
Problem:    Assuming modifyOtherKeys for rhs of mapping.
Solution:   Ignore seenModifyOtherKeys for mapped characters. (closes #6200)
Files:      src/getchar.c, src/testdir/test_gui.mnv

Patch 8.2.0905
Problem:    Test coverage could be better.
Solution:   Add a couple of tests. (Dominique Pellé, closes #6202)
Files:      src/testdir/test_cmdline.mnv, src/testdir/test_ga.mnv

Patch 8.2.0906
Problem:    When setting 'termguicolors' SpellBad is no longer red.
Solution:   Only use the RGB guisp color for cterm when using the "underline"
            or "undercurl" attributes to avoid the background color to be
            cleared. Also make t_8u empty when the termresponse indicates a
            real xterm. (closes #6207)
Files:      src/highlight.c, src/term.c

Patch 8.2.0907
Problem:    When using :global clipboard isn't set correctly.
Solution:   Set "clip_unnamed_saved" instead of "clip_unnamed". (Christian
            Brabandt, closes #6203, closes #6198)
Files:      src/clipboard.c, src/testdir/test_global.mnv

Patch 8.2.0908
Problem:    Crash when changing the function table while listing it.
Solution:   Bail out when the function table changes. (closes #6209)
Files:      src/userfunc.c, src/testdir/test_timers.mnv

Patch 8.2.0909
Problem:    Cannot go back to the previous local directory.
Solution:   Add "tcd -" and "lcd -". (Yegappan Lakshmanan, closes #4362)
Files:      runtime/doc/editing.txt, src/filepath.c, src/ex_docmd.c,
            src/structs.h, src/testdir/test_cd.mnv, src/window.c

Patch 8.2.0910
Problem:    MNV is not reproducibly buildable.
Solution:   Use the $SOURCE_DATE_EPOCH environment variable in configure.
            (James McCoy, closes #513)  Give a warning about using it.
Files:      src/config.h.in, src/config.mk.in, src/configure.ac,
            src/auto/configure, src/version.c, src/Makefile

Patch 8.2.0911
Problem:    Crash when opening a buffer for the cmdline window fails. (Chris
            Barber)
Solution:   Check do_ecmd() succeeds.  Reset got_int if "q" was used at the
            more prompt. (closes #6211)
Files:      src/ex_getln.c, src/testdir/test_cmdline.mnv,
            src/testdir/dumps/Test_cmdwin_interrupted.dump

Patch 8.2.0912
Problem:    A few test cases for CJK formatting are disabled.
Solution:   Fix the tests and enable them. (closes #6212)
Files:      src/testdir/test_cjk_linebreak.mnv

Patch 8.2.0913
Problem:    Code for resetting v:register is duplicated.
Solution:   Add reset_reg_var().
Files:      src/evalvars.c, src/proto/evalvars.pro, src/main.c, src/normal.c

Patch 8.2.0914
Problem:    MS-Windows: cannot specify a "modified by" text.
Solution:   Add MODIFIED_BY in the MSVC build file.  (Chen Lei, closes #1275)
Files:      src/Make_mvc.mak

Patch 8.2.0915
Problem:    Search() cannot skip over matches like searchpair() can.
Solution:   Add an optional "skip" argument. (Christian Brabandt, closes #861)
Files:      runtime/doc/eval.txt, src/evalfunc.c, src/testdir/test_syntax.mnv,
            src/structs.h, src/evalvars.c, src/proto/evalvars.pro

Patch 8.2.0916
Problem:    Mapping with partly modifyOtherKeys code does not work.
Solution:   If there is no mapping with a separate modifier include the
            modifier in the key and then try mapping again. (closes #6200)
Files:      src/getchar.c, src/proto/getchar.pro, src/edit.c, src/term.c,
            src/proto/term.pro, src/testdir/test_termcodes.mnv

Patch 8.2.0917
Problem:    Quickfix entries do not support a "note" type.
Solution:   Add support for "note". (partly by Yegappan Lakshmanan,
            closes #5527, closes #6216)
Files:      runtime/doc/quickfix.txt, src/quickfix.c,
            src/testdir/test_quickfix.mnv

Patch 8.2.0918
Problem:    Duplicate code for evaluating expression argument.
Solution:   Merge the code and make the use more flexible.
Files:      src/evalfunc.c, src/eval.c, src/proto/eval.pro, src/evalvars.c,
            src/proto/evalvars.pro, src/structs.h

Patch 8.2.0919
Problem:    Merging modifier for modifyOtherKeys is done twice.
Solution:   Remove the merging done in vgetc().
Files:      src/getchar.c, src/ex_getln.c

Patch 8.2.0920
Problem:    Writing mnvinfo fails with a circular reference.
Solution:   Use copyID to detect the cycle. (closes #6217)
Files:      src/testdir/test_mnvinfo.mnv, src/mnvinfo.c

Patch 8.2.0921
Problem:    CTRL-W T in cmdline window causes trouble.
Solution:   Disallow CTRL-W T in the cmdline window.  Add more tests.
            (Naruhiko Nishino, closes #6219)
Files:      src/testdir/test_cmdline.mnv, src/window.c

Patch 8.2.0922
Problem:    Search test fails.
Solution:   Remove failure tests for calls that no longer fail.
Files:      src/testdir/test_search.mnv

Patch 8.2.0923
Problem:    Cmdline test is slow.
Solution:   Use WaitForAssert().
Files:      src/testdir/test_cmdline.mnv

Patch 8.2.0924
Problem:    Cannot save and restore a register properly.
Solution:   Add getreginfo() and make setreg() accept a dictionary. (Andy
            Massimino, closes #3370)
Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
            src/proto/register.pro, src/register.c,
            src/testdir/test_eval_stuff.mnv, src/testdir/test_registers.mnv

Patch 8.2.0925
Problem:    Getcompletion() does not return command line arguments.
Solution:   Add the "cmdline" option. (Shougo, closes #1140)
Files:      runtime/doc/eval.txt, src/cmdexpand.c,
            src/testdir/test_cmdline.mnv

Patch 8.2.0926
Problem:    Cmdline test fails on Appveyor.
Solution:   Add CR to the commands. (Naruhiko Nishino, closes #6220)
Files:      src/testdir/test_cmdline.mnv

Patch 8.2.0927
Problem:    Some sshconfig and ssdhconfig files are not recognized.
Solution:   Add filetype patterns.
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.0928
Problem:    Many type casts are used for mnv_strnsave().
Solution:   Make the length argument size_t instead of int. (Ken Takata,
            closes #5633)  Remove some type casts.
Files:      src/misc2.c, src/proto/misc2.pro, src/autocmd.c, src/channel.c,
            src/cmdexpand.c, src/dict.c, src/diff.c, src/digraph.c,
            src/eval.c, src/evalfunc.c, src/highlight.c, src/syntax.c

Patch 8.2.0929
Problem:    v:register is not cleared after an operator was executed.
Solution:   Clear v:register after finishing an operator (Andy Massimino,
            closes #5305)
Files:      src/normal.c, src/testdir/test_registers.mnv

Patch 8.2.0930
Problem:    Script filetype detection trips over env -S argument.
Solution:   Remove "-S" and "--ignore-environment". (closes #5013)
            Add tests.
Files:      runtime/scripts.mnv, src/testdir/test_filetype.mnv

Patch 8.2.0931
Problem:    Some remarks about BeOS remain.
Solution:   Remove BeOS remarks from the help and other files. (Emir Sarı,
            closes #6221)
Files:      READMEdir/README_extra.txt, runtime/doc/options.txt,
            runtime/doc/os_beos.txt, runtime/doc/os_vms.txt,
            runtime/doc/vi_diff.txt, src/INSTALL

Patch 8.2.0932
Problem:    Misspelling spelllang.
Solution:   Add an "l". (Dominique Pellé)
Files:      src/optionstr.c, src/proto/spell.pro, src/spell.c

Patch 8.2.0933
Problem:    'quickfixtextfunc' does not get window ID of location list.
Solution:   Add "winid" to the dict argument. (Yegappan Lakshmanan,
            closes #6222)
Files:      runtime/doc/quickfix.txt, src/quickfix.c,
            src/testdir/test_quickfix.mnv

Patch 8.2.0934
Problem:    Running lhelpgrep twice in a help window doesn't jump to the help
            topic.
Solution:   Check whether any window with the location list is present.
            (Yegappan Lakshmanan, closes #6215)
Files:      src/quickfix.c, src/testdir/test_quickfix.mnv

Patch 8.2.0935
Problem:    Flattening a list with existing code is slow.
Solution:   Add flatten(). (Mopp, closes #3676)
Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
            src/list.c, src/proto/list.pro, src/testdir/Make_all.mak,
            src/testdir/test_flatten.mnv

Patch 8.2.0936
Problem:    Some terminals misinterpret the code for getting cursor style.
Solution:   Send a sequence to the terminal and check the result. (IWAMOTO
            Kouichi, closes #2126)  Merged with current code.
Files:      src/main.c, src/term.c, src/proto/term.pro,
            src/testdir/term_util.mnv, src/testdir/test_quickfix.mnv,
            src/testdir/test_terminal.mnv, src/testdir/test_startup_utf8.mnv,
            src/testdir/dumps/Test_balloon_eval_term_01.dump,
            src/testdir/dumps/Test_balloon_eval_term_01a.dump,
            src/testdir/dumps/Test_balloon_eval_term_02.dump,
            src/testdir/dumps/Test_terminal_all_ansi_colors.dump

Patch 8.2.0937
Problem:    Asan failure in the flatten() test.
Solution:   Free the flattened list.
Files:      src/list.c

Patch 8.2.0938
Problem:    NFA regexp uses tolower() to compare ignore-case. (Thayne McCombs)
Solution:   Use utf_fold() when possible. (ref. neomnv #12456)
Files:      src/macros.h, src/diff.c, src/regexp_nfa.c,
            src/testdir/test_regexp_utf8.mnv

Patch 8.2.0939
Problem:    checking for term escape sequences is long and confusing
Solution:   Refactor code into separate functions.
Files:      src/term.c

Patch 8.2.0940 (after 8.2.0939)
Problem:    Build failure with tiny features.
Solution:   Add #ifdef.  Add UNUSED.  A bit more cleaning up.
Files:      src/term.c

Patch 8.2.0941
Problem:    Detecting terminal properties is unstructured.
Solution:   Add a table with terminal properties.  Set properties when a
            terminal is detected.
Files:      src/term.c

Patch 8.2.0942
Problem:    Expanding to local dir after homedir keeps "~/".
Solution:   Adjust modify_fname(). (Christian Brabandt, closes #6205,
            closes #5979)
Files:      src/filepath.c, src/testdir/test_fnamemodify.mnv

Patch 8.2.0943
Problem:    Displaying ^M or ^J depends on current buffer.
Solution:   Pass the displayed buffer to transchar(). (closes #6225)
Files:      src/drawline.c, src/charset.c, src/proto/charset.pro,
            src/ex_cmds.c, src/gui_beval.c, src/message.c,
            src/testdir/test_display.mnv,
            src/testdir/dumps/Test_display_unprintable_01.dump,
            src/testdir/dumps/Test_display_unprintable_02.dump

Patch 8.2.0944
Problem:    Xxd test leaves file behind.
Solution:   Delete the file "XXDfile". (Christian Brabandt, closes #6228)
Files:      src/testdir/test_xxd.mnv

Patch 8.2.0945
Problem:    Cannot use "z=" when 'spell' is off.
Solution:   Make "z=" work even when 'spell' is off. (Christian Brabandt,
            Gary Johnson, closes #6227)
Files:      runtime/doc/eval.txt, src/evalfunc.c, src/spell.c,
            src/spellsuggest.c, src/testdir/test_spell.mnv, src/globals.h

Patch 8.2.0946
Problem:    Cannot use "q" to cancel a number prompt.
Solution:   Recognize "q" instead of ignoring it.
Files:      src/misc1.c, src/testdir/test_functions.mnv

Patch 8.2.0947
Problem:    Readdirex() doesn't handle broken link properly.
Solution:   Small fixes to readdirex(). (Christian Brabandt, closes #6226,
            closes #6213)
Files:      src/fileio.c, src/testdir/test_functions.mnv

Patch 8.2.0948
Problem:    Spell test fails.
Solution:   Adjust expected text of the prompt.
Files:      src/testdir/test_spell.mnv

Patch 8.2.0949
Problem:    Strptime() does not use DST.
Solution:   Set the tm_isdst field to -1. (Tomáš Janoušek, closes #6230)
Files:      src/time.c, src/testdir/test_functions.mnv

Patch 8.2.0950
Problem:    Tagjump test fails.
Solution:   Adjust expected text of the prompt.
Files:      src/testdir/test_tagjump.mnv

Patch 8.2.0951
Problem:    Search stat test has leftover from debugging.
Solution:   Remove line that writes a file. (Christian Brabandt, closes #6224)
Files:      src/testdir/test_search_stat.mnv

Patch 8.2.0952
Problem:    No simple way to interrupt MNV.
Solution:   Add the SigUSR1 autocommand, triggered by SIGUSR1. (Jacob Hayes,
            closes #1718)
Files:      runtime/doc/autocmd.txt, src/mnv.h, src/autocmd.c, src/getchar.c,
            src/globals.h, src/os_unix.c, src/testdir/test_autocmd.mnv

Patch 8.2.0953
Problem:    Spell checking doesn't work for CamelCased words.
Solution:   Add the "camel" value in the new option 'spelloptions'.
            (closes #1235)
Files:      runtime/doc/options.txt, runtime/doc/spell.txt, src/optiondefs.h,
            src/option.h, src/option.c, src/buffer.c, src/optionstr.c,
            src/testdir/gen_opt_test.mnv, src/testdir/test_spell.mnv

Patch 8.2.0954
Problem:    Not all desktop files are recognized.
Solution:   Add the *.directory pattern. (Eisuke Kawashima, closes #3317)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.0955 (after 8.2.0953)
Problem:    Build fails.
Solution:   Add missing struct change.
Files:      src/structs.h

Patch 8.2.0956 (after 8.2.0953)
Problem:    Spell test fails.
Solution:   Add missing change the spell checking.
Files:      src/spell.c

Patch 8.2.0957
Problem:    Compiler warning for uninitialized variable. (Tony Mechelynck)
Solution:   Initialize one variable.
Files:      src/spell.c

Patch 8.2.0958
Problem:    Not sufficient testing for buffer writing.
Solution:   Add a few tests. (Yegappan Lakshmanan, closes #6238)
Files:      src/testdir/test_backup.mnv, src/testdir/test_writefile.mnv

Patch 8.2.0959
Problem:    Using 'quickfixtextfunc' is a bit slow.
Solution:   Process a list of entries. (Yegappan Lakshmanan, closes #6234)
Files:      runtime/doc/quickfix.txt, src/quickfix.c,
            src/testdir/test_quickfix.mnv

Patch 8.2.0960
Problem:    Cannot use :import in legacy MNV script.
Solution:   Support :import in any MNV script.
Files:      src/mnv9script.c, src/evalvars.c, src/userfunc.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.0961
Problem:    MS-Windows: no completion for locales.
Solution:   Use the directories in $MNVRUNTIME/lang to complete locales.
            (Christian Brabandt, closes 36248)
Files:      src/cmdexpand.c, src/ex_cmds2.c, src/testdir/test_cmdline.mnv

Patch 8.2.0962
Problem:    Terminal test sometimes hangs on Travis.
Solution:   Do show output for this test temporarily.
Files:      src/testdir/Makefile

Patch 8.2.0963
Problem:    Number increment/decrement does not work with 'virtualedit'.
Solution:   Handle coladd changing. (Christian Brabandt, closes #6240,
            closes #923)
Files:      runtime/doc/options.txt, runtime/doc/various.txt, src/ops.c,
            src/testdir/test_increment.mnv

Patch 8.2.0964
Problem:    TextYankPost does not provide info about Visual selection.
Solution:   Add the 'visual' key in v:event. (closes #6249)
Files:      runtime/doc/autocmd.txt, src/register.c,
            src/testdir/test_autocmd.mnv

Patch 8.2.0965
Problem:    Has_funcundefined() is not used.
Solution:   Delete the function. (Dominique Pellé, closes #6242)
Files:      src/autocmd.c, src/proto/autocmd.pro

Patch 8.2.0966
Problem:    'shortmess' flag "n" not used in two places.
Solution:   Make use of the "n" flag consistent. (Nick Jensen, closes #6245,
            closes #6244)
Files:      src/bufwrite.c, src/proto/bufwrite.pro, src/buffer.c,
            src/fileio.c, src/testdir/dumps/Test_popup_textprop_corn_5.dump,
            src/testdir/dumps/Test_start_with_tabs.dump

Patch 8.2.0967
Problem:    Unnecessary type casts for mnv_strnsave().
Solution:   Remove the type casts.
Files:      src/evalvars.c, src/ex_cmds.c, src/ex_eval.c, src/fileio.c,
            src/filepath.c, src/findfile.c, src/highlight.c, src/if_ruby.c,
            src/insexpand.c, src/json.c, src/mark.c, src/memline.c,
            src/menu.c, src/misc1.c, src/ops.c, src/os_win32.c, src/regexp.c,
            src/regexp_bt.c, src/regexp_nfa.c, src/register.c, src/search.c,
            src/sign.c, src/syntax.c, src/term.c, src/terminal.c, src/undo.c,
            src/usercmd.c, src/userfunc.c, src/mnv9compile.c, src/if_perl.xs

Patch 8.2.0968
Problem:    No proper testing of the 'cpoptions' flags.
Solution:   Add tests. (Yegappan Lakshmanan, closes #6251)
Files:      src/testdir/Make_all.mak, src/testdir/test_cpoptions.mnv,
            src/testdir/test_edit.mnv, src/testdir/test_normal.mnv

Patch 8.2.0969
Problem:    Assert_equal() output for dicts is hard to figure out.
Solution:   Only show the different items.
Files:      src/testing.c, src/testdir/test_assert.mnv

Patch 8.2.0970
Problem:    Terminal properties are not available in MNV script.
Solution:   Add the terminalprops() function.
Files:      src/term.c, src/proto/term.pro, src/evalfunc.c, src/main.c,
            src/testing.c, src/globals.h, src/testdir/test_termcodes.mnv,
            runtime/doc/usr_41.txt, runtime/doc/eval.txt,
            runtime/doc/testing.txt

Patch 8.2.0971
Problem:    Build with tiny features fails.
Solution:   Add #ifdef.
Files:      src/term.c

Patch 8.2.0972
Problem:    MNV9 script variable declarations need a type.
Solution:   Make "let var: type" declare a script-local variable.
Files:      src/evalvars.c, src/mnv9script.c, src/proto/mnv9script.pro,
            src/globals.h, src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.0973
Problem:    MNV9: type is not checked when assigning to a script variable.
Solution:   Check the type.
Files:      src/evalvars.c, src/mnv9script.c, src/proto/mnv9script.pro,
            src/mnv9compile.c, src/proto/mnv9compile.pro,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.0974
Problem:    MNV9: memory leak when script var has wrong type.
Solution:   Free the variable name.
Files:      src/mnv9script.mnv

Patch 8.2.0975
Problem:    MNV9: script variable does not accept optional s: prefix.
Solution:   Adjust the accepted syntax.
Files:      src/mnv9script.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.0976
Problem:    Some 'cpoptions' not tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #6253)
Files:      src/testdir/test_cd.mnv, src/testdir/test_charsearch.mnv,
            src/testdir/test_cpoptions.mnv, src/testdir/test_normal.mnv

Patch 8.2.0977
Problem:    t_8u is made empty for the wrong terminals. (Dominique Pelle)
Solution:   Invert the check for TPR_YES. (closes #6254)
Files:      src/term.c, src/testdir/test_termcodes.mnv

Patch 8.2.0978
Problem:    Leaking memory in termcodes test.
Solution:   Set t_8u with set_option_value().
Files:      src/term.c

Patch 8.2.0979
Problem:    A couple of screendump tests fail.
Solution:   Do not redraw when clearing t_8u.
Files:      src/term.c

Patch 8.2.0980
Problem:    Raku file extension not recognized. (Steven Penny)
Solution:   Recognize .raku and .rakumod. (closes #6255)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.0981
Problem:    MNV9: cannot compile "[var, var] = list".
Solution:   Implement list assignment.
Files:      src/mnv9compile.c, src/mnv9.h, src/mnv9execute.c, src/evalvars.c,
            src/proto/evalvars.pro, src/eval.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.0982
Problem:    Insufficient testing for reading/writing files.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #6257)
            Add "ui_delay" to test_override() and use it for the CTRL-O test.
Files:      src/testing.c, src/globals.h, src/ui.c, runtime/doc/testing.txt,
            src/testdir/test_autocmd.mnv, src/testdir/test_edit.mnv,
            src/testdir/test_filechanged.mnv, src/testdir/test_writefile.mnv

Patch 8.2.0983
Problem:    SConstruct file type not recognized.
Solution:   Use python for SConstruct files. (Roland Hieber)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.0984
Problem:    Not using previous window when closing a shell popup window.
Solution:   Use "prevwin" if it was set. (closes #6267)
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv

Patch 8.2.0985
Problem:    Simplify() does not remove slashes from "///path".
Solution:   Reduce > 2 slashes to one. (closes #6263)
Files:      src/findfile.c, src/testdir/test_functions.mnv

Patch 8.2.0986 (after 8.2.0985)
Problem:    MS-Windows: functions test fails.
Solution:   Only simplify ///path on Unix.
Files:      src/testdir/test_functions.mnv

Patch 8.2.0987
Problem:    MNV9: cannot assign to [var; var].
Solution:   Assign rest of items to a list.
Files:      src/mnv9.h, src/mnv9compile.c, src/mnv9execute.c, src/list.c,
            src/proto/list.pro, src/eval.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.0988
Problem:    Getting directory contents is always case sorted.
Solution:   Add sort options and v:collate. (Christian Brabandt, closes #6229)
Files:      runtime/doc/eval.txt, runtime/doc/mlang.txt, src/auto/configure,
            src/cmdexpand.c, src/config.h.in, src/configure.ac,
            src/evalfunc.c, src/evalvars.c, src/ex_cmds2.c, src/fileio.c,
            src/filepath.c, src/globals.h, src/proto/fileio.pro,
            src/testdir/test_cmdline.mnv, src/testdir/test_functions.mnv,
            src/mnv.h

Patch 8.2.0989
Problem:    Crash after resizing a terminal window. (August Masquelier)
Solution:   Add check for valid row in libvterm. (closes #6273)
Files:      src/libvterm/src/state.c, src/libvterm/src/screen.c

Patch 8.2.0990 (after 8.2.0988)
Problem:    Using duplicate error number.
Solution:   Use an unused error number.  Add a test for it.
Files:      src/globals.h, src/testdir/test_functions.mnv

Patch 8.2.0991
Problem:    Cannot get window type for autocmd and preview window.
Solution:   Add types to win_gettype(). (Yegappan Lakshmanan, closes #6277)
Files:      runtime/doc/eval.txt, src/evalwindow.c,
            src/testdir/test_autocmd.mnv, src/testdir/test_preview.mnv

Patch 8.2.0992
Problem:    MNV9: crash when using :import in the MNV command.
Solution:   Give an error when using :import outside of a script.
            (closes #6271)
Files:      src/mnv9script.c, src/testdir/test_mnv9_script.mnv,
            src/testdir/term_util.mnv

Patch 8.2.0993
Problem:    MNV9 script test fails with normal features.
Solution:   Use :func instead of :def for now.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.0994
Problem:    MNV9: missing function causes compilation error.
Solution:   Call test function indirectly.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.0995
Problem:    Insufficient testing for the readdir() sort option.
Solution:   Add a few more tests. (Christian Brabandt, closes #6278)
Files:      src/testdir/test_functions.mnv

Patch 8.2.0996
Problem:    Using "aucmdwin" in win_gettype() is not ideal.
Solution:   Rename to "autocmd".
Files:      runtime/doc/eval.txt, src/evalwindow.c,
            src/testdir/test_autocmd.mnv

Patch 8.2.0997
Problem:    Cannot execute a register containing line continuation.
Solution:   Concatenate lines where needed. (Yegappan Lakshmanan,
            closes #6272)
Files:      runtime/doc/repeat.txt, src/register.c,
            src/testdir/test_registers.mnv

Patch 8.2.0998
Problem:    Not all tag code is tested.
Solution:   Add a few more test cases. (Yegappan Lakshmanan, closes #6284)
Files:      src/testdir/test_tagjump.mnv

Patch 8.2.0999
Problem:    Moving to next sentence gets stuck on quote.
Solution:   When moving to the next sentence doesn't result in moving, advance
            a character and try again. (closes #6291)
Files:      src/textobject.c, src/testdir/test_textobjects.mnv

Patch 8.2.1000
Problem:    Get error when leaving Ex mode with :visual and a CmdLineEnter
            autocommand was used.
Solution:   Reset ex_pressedreturn. (closes #6293)
Files:      src/ex_docmd.c, src/testdir/test_ex_mode.mnv

Patch 8.2.1001
Problem:    MNV9: crash with nested "if" and assignment.
Solution:   Skip more of the assignment.  Do not set ctx_skip when code is
            reachable.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1002
Problem:    Test may fail when run directly.
Solution:   Check if g:run_nr exists. (Christian Brabandt, closes #6285)
Files:      src/testdir/term_util.mnv

Patch 8.2.1003
Problem:    MNV9: return type of sort() is too generic.
Solution:   Get type from the first argument. (closes #6292)
Files:      src/evalfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1004
Problem:    Line numbers below filler lines not always updated.
Solution:   Don't break out of the win_line() loop too early. (Christian
            Brabandt, closes #6294, closes #6138)
Files:      src/drawline.c, src/testdir/dumps/Test_diff_rnu_01.dump,
            src/testdir/dumps/Test_diff_rnu_02.dump,
            src/testdir/dumps/Test_diff_rnu_03.dump,
            src/testdir/test_diffmode.mnv

Patch 8.2.1005
Problem:    MNV9: using TRUE/FALSE/MAYBE for ctx_skip is confusing.
Solution:   Use an enum value.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.1006
Problem:    MNV9: require unnecessary return statement.
Solution:   Improve the use of the had_return flag. (closes #6270)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.1007
Problem:    Completion doesn't work after ":r ++arg !".
Solution:   Skip over "++arg". (Christian Brabandt, closes #6275,
            closes #6258)
Files:      src/cmdexpand.c, src/testdir/test_cmdline.mnv

Patch 8.2.1008
Problem:    MNV9: no test for disassembling newly added instructions.
Solution:   Add a function and check disassembly.
Files:      src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.1009
Problem:    MNV9: some failures not checked for.
Solution:   Add test cases.  Remove unused code.
Files:      src/testdir/test_mnv9_script.mnv, src/mnv9execute.c

Patch 8.2.1010
Problem:    Build failure in libvterm with debug enabled. (John Little)
Solution:   Use "->" instead of ".".
Files:      src/libvterm/src/state.c

Patch 8.2.1011
Problem:    MNV9: some code not tested.
Solution:   Add a few more test cases.  Reorder checks for clearer error.
            Remove unreachable code.
Files:      src/evalvars.c, src/mnv9script.c, src/mnv9execute.c,
            src/proto/mnv9script.pro, src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.1012
Problem:    MNV9: cannot declare single character script variables.
Solution:   Don't see "b:", "s:", etc. as namespace.  Fix item size of
            sn_var_vals.
Files:      src/mnv9script.c, src/scriptfile.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1013
Problem:    Channel tests can be a bit flaky.
Solution:   Set the g:test_is_flaky flag in SetUp().
Files:      src/testdir/test_channel.mnv

Patch 8.2.1014
Problem:    Using "name" for a string result is confusing.
Solution:   Rename to "end".
Files:      src/typval.c

Patch 8.2.1015
Problem:    Popup filter gets key with modifier prepended when using
            modifyOtherKeys.
Solution:   Remove the shift modifier when it is included in the key, also
            when the Alt or Meta modifier is used.
Files:      src/term.c, src/misc2.c, src/testdir/test_popupwin.mnv

Patch 8.2.1016
Problem:    MNV9: test fails when channel feature is missing.
Solution:   Process an :if command when skipping
Files:      src/mnv9compile.c

Patch 8.2.1017
Problem:    Appveyor output doesn't show MinGW console features.
Solution:   List the features of the console build.
Files:      ci/appveyor.bat

Patch 8.2.1018
Problem:    Typo in enum value. (James McCoy)
Solution:   Fix the typo.
Files:      src/mnv9compile.c

Patch 8.2.1019
Problem:    Mapping <M-S-a> does not work in the GUI.
Solution:   Move the logic to remove the shift modifier to
            may_remove_shift_modifier() and also use it in the GUI.
Files:      src/gui_gtk_x11.c, src/misc2.c, src/proto/misc2.pro, src/term.c

Patch 8.2.1020
Problem:    Popupwin test fails in the GUI.
Solution:   Send GUI byte sequence for <C-S-a>.
Files:      src/testdir/test_popupwin.mnv

Patch 8.2.1021
Problem:    Ruby interface not tested enough.
Solution:   Add a couple more tests. (Dominique Pellé, closes #6301)
Files:      src/testdir/test_ruby.mnv

Patch 8.2.1022
Problem:    Various parts of code not covered by tests.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #6300)
Files:      src/testdir/test_blob.mnv, src/testdir/test_cpoptions.mnv,
            src/testdir/test_digraph.mnv, src/testdir/test_edit.mnv,
            src/testdir/test_iminsert.mnv, src/testdir/test_paste.mnv,
            src/testdir/test_prompt_buffer.mnv,
            src/testdir/test_selectmode.mnv, src/testdir/test_tabpage.mnv,
            src/testdir/test_tagjump.mnv, src/testdir/test_textformat.mnv,
            src/testdir/test_mnvinfo.mnv, src/testdir/test_virtualedit.mnv,
            src/testdir/test_visual.mnv

Patch 8.2.1023
Problem:    MNV9: redefining a function uses a new index every time.
Solution:   When redefining a function clear the contents and re-use the
            index.
Files:      src/mnv9compile.c, src/proto/mnv9compile.pro, src/userfunc.c,
            src/structs.h, src/eval.c, src/evalvars.c, src/mnv9execute.c

Patch 8.2.1024
Problem:    MNV9: no error for using "let g:var = val".
Solution:   Add an error.
Files:      src/evalvars.c, src/globals.h, src/structs.h, src/mnv9compile.c,
            src/scriptfile.c, src/userfunc.c, src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.1025
Problem:    Tabpage menu and tabline not sufficiently tested.
Solution:   Add tests. (Yegappan Lakshmanan, closes #6307)
Files:      src/testdir/test_digraph.mnv, src/testdir/test_tabpage.mnv

Patch 8.2.1026
Problem:    MNV9: cannot break the line after "->".
Solution:   Check for a continuation line after "->", "[" and ".".  Ignore
            trailing white space.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1027
Problem:    GUI: multibyte characters do not work in a terminal.
Solution:   Do not assume a key is one byte. (closes #6304)
Files:      src/gui_gtk_x11.c, src/gui_x11.c

Patch 8.2.1028
Problem:    MNV9: no error for declaring buffer, window, etc. variable.
Solution:   Give an error.  Unify the error messages.
Files:      src/evalvars.c, src/globals.h, src/mnv9compile.c,
            src/proto/mnv9compile.pro, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1029
Problem:    MNV9: cannot chain function calls with -> at line start.
Solution:   Peek ahead for a following line starting with "->". (closes #6306)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1030
Problem:    Reducing size of a terminal window may cause a crash.
Solution:   Make sure the row and column don't become negative. (closes #6273)
Files:      src/libvterm/src/state.c, src/libvterm/src/screen.c

Patch 8.2.1031
Problem:    Build failure with Perl5.32.
Solution:   Define a few more functions. (Felix Yan, closes #6310)
Files:      src/if_perl.xs

Patch 8.2.1032
Problem:    Error message for declaring a variable cannot be translated.
Solution:   Enclose in _().  Make environment variable a separate message.
Files:      src/globals.h, src/mnv9compile.c

Patch 8.2.1033
Problem:    Not easy to read the test time in the test output.
Solution:   Align the times.  Make slow tests bold.
Files:      src/testdir/runtest.mnv

Patch 8.2.1034
Problem:    Compiler warning for uninitialized variables.
Solution:   Add initializations. (John Marriott)
Files:      src/mnv9compile.c

Patch 8.2.1035
Problem:    setreg() does not always clear the register.
Solution:   Clear the register if the dict argument is empty. (Andy Massimino,
            closes #3370)
Files:      src/evalfunc.c, src/testdir/test_registers.mnv

Patch 8.2.1036
Problem:    Popupwin test fails sometimes.
Solution:   Use WaitForAssert() instead of a sleep.
Files:      src/testdir/test_popupwin.mnv

Patch 8.2.1037
Problem:    MNV9: crash when using line continuation inside :def.
Solution:   Check for no more lines available.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1038
Problem:    Popupwin test fails.
Solution:   Fix WaitForAssert() argument.
Files:      src/testdir/test_popupwin.mnv

Patch 8.2.1039
Problem:    Cannot put NUL byte on clipboard.
Solution:   Use the text length. (Christian Brabandt, closes #6312,
            closes #6149)
Files:      src/winclip.c, src/testdir/test_registers.mnv

Patch 8.2.1040
Problem:    Not enough testing for movement commands.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #6313)
Files:      src/testdir/test_cursor_func.mnv, src/testdir/test_functions.mnv,
            src/testdir/test_gf.mnv, src/testdir/test_normal.mnv,
            src/testdir/test_options.mnv, src/testdir/test_quickfix.mnv

Patch 8.2.1041
Problem:    Test summary is missing executed count.
Solution:   Adjust pattern used for counting.
Files:      src/testdir/summarize.mnv

Patch 8.2.1042
Problem:    MNV9: cannot put an operator on the next line.
Solution:   Require a colon before a range to see if that causes problems.
Files:      runtime/doc/mnv9.txt, src/mnv9compile.c, src/ex_docmd.c,
            src/globals.h, src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.1043
Problem:    %a item in 'statusline' not tested.
Solution:   Add a test. (Dominique Pellé, closes #6318)
Files:      src/testdir/test_statusline.mnv

Patch 8.2.1044
Problem:    Not all systemd file types are recognized.
Solution:   Match several more files. (Guido Cella, closes #6319)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.1045
Problem:    MNV9: line break before operator does not work.
Solution:   Peek the next line for an operator.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1046
Problem:    Insufficient tests for src/buffer.c.
Solution:   Add more tests.  Move comments related tests to a separate file.
            (Yegappan Lakshmanan, closes #6325)
Files:      src/testdir/Make_all.mak, src/testdir/test_buffer.mnv,
            src/testdir/test_cmdline.mnv, src/testdir/test_comments.mnv,
            src/testdir/test_normal.mnv, src/testdir/test_textformat.mnv

Patch 8.2.1047
Problem:    MNV9: script cannot use line continuation like in a :def function.
Solution:   Pass the getline function pointer to the eval() functions.  Use it
            for addition and multiplication operators.
Files:      src/mnv.h, src/structs.h, src/globals.h, src/ex_eval.c,
            src/eval.c, src/proto/eval.pro, src/dict.c, src/evalfunc.c,
            src/evalvars.c, src/list.c, src/userfunc.c, src/scriptfile.c,
            src/proto/scriptfile.pro, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1048 (after 8.2.1047)
Problem:    Build failure without the eval feature.
Solution:   Add dummy typedef.
Files:      src/structs.h

Patch 8.2.1049 (after 8.2.1047)
Problem:    MNV9: leaking memory when using continuation line.
Solution:   Keep a pointer to the continuation line in evalarg_T.  Centralize
            checking for a next command.
Files:      src/structs.h, src/eval.c, src/proto/eval.pro, src/beval.c,
            src/buffer.c, src/clientserver.c, src/evalvars.c, src/ex_docmd.c,
            src/ex_eval.c, src/filepath.c, src/findfile.c, src/fold.c,
            src/globals.h, src/if_ole.cpp, src/if_perl.xs, src/if_tcl.c,
            src/map.c, src/quickfix.c, src/regexp.c, src/register.c,
            src/screen.c, src/userfunc.c

Patch 8.2.1050 (after 8.2.1049)
Problem:    Missing change in struct.
Solution:   Add missing change.
Files:      src/ex_cmds.h

Patch 8.2.1051
Problem:    Crash when changing a list while using reduce() on it.
Solution:   Lock the list. (closes #6330)
Files:      src/list.c, src/testdir/test_listdict.mnv

Patch 8.2.1052
Problem:    Build failure with older compilers.
Solution:   Move declaration to start of block.
Files:      src/eval.c

Patch 8.2.1053
Problem:    Insufficient testing for 'statusline' and 'tabline'.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #6333)
Files:      src/testdir/test_autocmd.mnv, src/testdir/test_statusline.mnv,
            src/testdir/test_tabline.mnv

Patch 8.2.1054
Problem:    Not so easy to pass a lua function to MNV.
Solution:   Convert a Lua function and closure to a MNV funcref. (Prabir
            Shrestha, closes #6246)
Files:      runtime/doc/if_lua.txt, src/if_lua.c, src/proto/userfunc.pro,
            src/structs.h, src/testdir/test_lua.mnv, src/userfunc.c

Patch 8.2.1055
Problem:    No filetype set for pacman config files.
Solution:   Recognize pacman.conf and *.hook. (Guido Cella, closes #6335)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.1056
Problem:    Wrong display when mixing match conceal and syntax conceal.
Solution:   Adjust how conceal flags are used. (closes #6327, closes #6303)
Files:      src/drawline.c, src/highlight.c,
            src/testdir/test_matchadd_conceal.mnv

Patch 8.2.1057 (after 8.2.1054)
Problem:    Cannot build with dynamic Lua.
Solution:   Add dll variables.
Files:      src/if_lua.c

Patch 8.2.1058
Problem:    Multiline conceal causes display errors.
Solution:   Do not allow conceal cross over EOL. (closes #6326, closes #4854,
            closes #6302)
Files:      src/drawline.c, src/testdir/test_conceal.mnv,
            src/testdir/test_diffmode.mnv

Patch 8.2.1059
Problem:    Crash when using :tabonly in an autocommand. (Yegappan Lakshmanan)
Solution:   Do not allow the autocommand window to be closed.
Files:      src/ex_docmd.c, src/window.c, src/globals.h,
            src/testdir/test_autocmd.mnv

Patch 8.2.1060
Problem:    Not all elinks files are recognized.
Solution:   Just check for "elinks.conf". (Guido Cella, closes #6337)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.1061
Problem:    Insufficient testing for src/window.c.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #6345)
Files:      src/testdir/test_excmd.mnv, src/testdir/test_gf.mnv,
            src/testdir/test_options.mnv, src/testdir/test_popupwin.mnv,
            src/testdir/test_quickfix.mnv, src/testdir/test_tabpage.mnv,
            src/testdir/test_tagjump.mnv, src/testdir/test_window_cmd.mnv,
            src/window.c

Patch 8.2.1062
Problem:    MNV9: no line break allowed inside "cond ? val1 : val2".
Solution:   Check for operator after line break.
Files:      src/eval.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1063
Problem:    MNV9: no line break allowed before || or &&.
Solution:   Check for operator after line break.
Files:      src/eval.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1064
Problem:    MNV9: no line break allowed before comparators.
Solution:   Check for comparator after line break.
Files:      src/eval.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1065
Problem:    MNV9: no line break allowed inside a list.
Solution:   Handle line break inside a list in MNV9 script.
Files:      src/eval.c, src/proto/eval.pro, src/list.c, src/proto/list.pro,
            src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_arglist.mnv

Patch 8.2.1066
Problem:    Lua arrays are zero based.
Solution:   Make Lua arrays one based. (Prabir Shrestha, closes #6347)
            Note: this is not backwards compatible.
Files:      runtime/doc/if_lua.txt, src/if_lua.c, src/testdir/test_lua.mnv

Patch 8.2.1067
Problem:    Expression "!expr->func()" does not work.
Solution:   Apply plus and minus earlier. (closes #6348)
Files:      src/eval.c, src/proto/eval.pro, src/evalvars.c, src/userfunc.c,
            src/testdir/test_expr.mnv, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1068
Problem:    MNV9: no line break allowed inside a dict.
Solution:   Handle line break inside a dict in MNV9 script.
Files:      src/eval.c, src/dict.c, src/proto/dict.pro,
            src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1069
Problem:    MNV9: fail to check for white space in list.
Solution:   Add check for white space.
Files:      src/list.c

Patch 8.2.1070
Problem:    MNV9: leaking memory when lacking white space in dict.
Solution:   Clear the typval.
Files:      src/dict.c

Patch 8.2.1071
Problem:    MNV9: no line break allowed inside a lambda.
Solution:   Handle line break inside a lambda in MNV9 script.
Files:      src/eval.c, src/proto/eval.pro, src/evalvars.c, src/userfunc.c,
            src/proto/userfunc.pro, src/popupwin.c, src/mnv9compile.c,
            src/ex_eval.c, src/globals.h, src/structs.h,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.1072
Problem:    Missing libvterm test.
Solution:   Sync with libvterm revision 768.
Files:      src/libvterm/src/state.c, src/libvterm/t/63screen_resize.test

Patch 8.2.1073
Problem:    MNV9: no line break allowed in () expression.
Solution:   Skip a line break.
Files:      src/eval.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1074
Problem:    MNV9: no line break allowed after some operators.
Solution:   Skip a line break after the operator.  Add
            eval_may_get_next_line() to simplify checking for a line break.
Files:      src/eval.c, src/proto/eval.pro, src/dict.c, src/list.c,
            src/userfunc.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1075
Problem:    MNV9: no line break allowed in :echo expression.
Solution:   Skip linebreak.
Files:      src/eval.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.1076
Problem:    MNV9: no line break allowed in :if expression.
Solution:   Skip linebreak.
Files:      src/eval.c, src/proto/eval.pro, src/evalvars.c,
            src/testdir/test_mnv9_cmd.mnv

Patch 8.2.1077
Problem:    No enough test coverage for highlighting.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #6351)
Files:      runtime/doc/syntax.txt, src/testdir/test_cmdline.mnv,
            src/testdir/test_highlight.mnv, src/testdir/test_match.mnv

Patch 8.2.1078
Problem:    Highlight and match functionality together in one file.
Solution:   Move match functionality to a separate file. (Yegappan Lakshmanan,
            closes #6352)
Files:      Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak,
            src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md,
            src/highlight.c, src/match.c, src/proto.h,
            src/proto/highlight.pro, src/proto/match.pro

Patch 8.2.1079
Problem:    MNV9: no line break allowed in a while loop.
Solution:   Update stored loop lines when finding line breaks.
Files:      src/structs.h, src/globals.h, src/eval.c, src/evalvars.c,
            src/ex_docmd.c, src/proto/ex_docmd.pro,
            src/testdir/test_mnv9_cmd.mnv

Patch 8.2.1080
Problem:    MNV9: no line break allowed in a for loop.
Solution:   Skip line breaks in for command.
Files:      src/eval.c, src/ex_eval.c, src/proto/eval.pro, src/userfunc.c,
            src/structs.h, src/globals.h, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.1081
Problem:    Lua: cannot use table.insert() and table.remove().
Solution:   Add the list functions. (Prabir Shrestha, closes #6353)
Files:      runtime/doc/if_lua.txt, src/if_lua.c, src/testdir/test_lua.mnv

Patch 8.2.1082
Problem:    Coverity complains about ignoring dict_add() return value.
Solution:   Add (void).
Files:      src/evalfunc.c

Patch 8.2.1083
Problem:    Crash when using reduce() on a NULL list.
Solution:   Only access the list when not NULL.
Files:      src/list.c, src/testdir/test_listdict.mnv

Patch 8.2.1084
Problem:    Lua: registering function has useless code.
Solution:   Remove clearing grow arrays.
Files:      src/userfunc.c

Patch 8.2.1085
Problem:    Coverity complains about ignoring dict_add() return value.
Solution:   Add (void).
Files:      src/register.c

Patch 8.2.1086
Problem:    Possibly using freed memory when text properties used when
            changing indent of a line.
Solution:   Compute the offset before calling ml_replace().
Files:      src/indent.c

Patch 8.2.1087
Problem:    Possible memory leak when file expansion fails.
Solution:   Clear the grow array when returning FAIL.  Use an error message
            instead of an empty string.
Files:      src/filepath.c

Patch 8.2.1088
Problem:    A very long translation might cause a buffer overflow.
Solution:   Truncate the message if needed.
Files:      src/fileio.c

Patch 8.2.1089
Problem:    Coverity warns for pointer computation.
Solution:   Avoid computing a pointer to invalid memory.
Files:      src/spellfile.c

Patch 8.2.1090
Problem:    May use NULL pointer when skipping over name.
Solution:   Always set ll_name_end.
Files:      src/eval.c

Patch 8.2.1091
Problem:    No check if opening a pty works.
Solution:   Check for invalid file descriptor.
Files:      src/os_unix.c

Patch 8.2.1092
Problem:    Not checking if saving for undo succeeds.
Solution:   Bail out if u_savesub() returns FAIL.
Files:      src/textprop.c

Patch 8.2.1093
Problem:    Python: double free when adding item to dict fails.
Solution:   Remove mnv_free() call.
Files:      src/if_py_both.h

Patch 8.2.1094
Problem:    Dead code in libvterm.
Solution:   Remove condition that is always true.
Files:      src/libvterm/src/pen.c

Patch 8.2.1095
Problem:    May use pointer after freeing it when text properties are used.
Solution:   Update redo buffer before calling ml_replace().
Files:      src/spellsuggest.c

Patch 8.2.1096
Problem:    MNV9: return type of getqflist() is wrong.
Solution:   Let the return type depend on the arguments.  Also for
            getloclist(). (closes #6357)
Files:      src/evalfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1097
Problem:    Highlight code not sufficiently tested.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #6359)
Files:      src/testdir/test_filter_cmd.mnv, src/testdir/test_highlight.mnv

Patch 8.2.1098
Problem:    MNV9: cannot use line break in :throw argument.
Solution:   Check for line break.
Files:      src/eval.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1099
Problem:    MNV9: cannot use line break in :cexpr argument.
Solution:   Check for line break.
Files:      src/eval.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1100
Problem:    MNV9: cannot use line break in :execute, :echomsg and :echoerr
            argument.
Solution:   Check for line break.
Files:      src/eval.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1101
Problem:    No error when using wrong arguments for setqflist() or
            setloclist().
Solution:   Check for the error.
Files:      src/quickfix.c, src/testdir/test_quickfix.mnv

Patch 8.2.1102
Problem:    Coverity gets confused by an unnecessary NULL check.
Solution:   Remove the check for NULL.
Files:      src/quickfix.c

Patch 8.2.1103
Problem:    Coverity reports an unnecessary NULL check.
Solution:   Remove the check for NULL.
Files:      src/eval.c

Patch 8.2.1104
Problem:    Coverity warns for possible NULL pointer use.
Solution:   Check "pbyts" is not NULL.
Files:      src/spellsuggest.c

Patch 8.2.1105
Problem:    Insufficient test coverage for Lua.
Solution:   Add tests. (Yegappan Lakshmanan, closes #6368)  Fix uncovered
            memory leak.  Avoid unnecessary copy/free.
Files:      src/if_lua.c, src/testdir/test_lua.mnv

Patch 8.2.1106
Problem:    Crash when trying to use s: variable in typed command.
Solution:   Don't use the script index when not set. (Ken Takata,
            closes #6366)
Files:      src/mnv9compile.c, src/testdir/test_mnvscript.mnv

Patch 8.2.1107
Problem:    'imactivatefunc' and 'imstatusfunc' are not used in the GUI.
Solution:   Adjust the #ifdefs. (closes #6367)
Files:      runtime/doc/options.txt, src/gui_xim.c,
            src/testdir/test_iminsert.mnv

Patch 8.2.1108
Problem:    Mouse left-right scroll is not supported in terminal window.
Solution:   Implement mouse codes 6 and 7. (Trygve Aaberge, closes #6363)
Files:      src/libvterm/src/mouse.c, src/mouse.c, src/terminal.c,
            src/testdir/mouse.mnv, src/testdir/test_termcodes.mnv

Patch 8.2.1109 (after 8.2.1106)
Problem:    Still crashing when using s:variable.
Solution:   Remove assignment. (Ken Takata)
Files:      src/mnv9compile.c

Patch 8.2.1110
Problem:    MNV9: line continuation does not work in function arguments.
Solution:   Pass "evalarg" to get_func_tv().  Fix seeing double quoted string
            as comment.
Files:      src/userfunc.c, src/proto/userfunc.pro, src/eval.c, src/ex_eval.c,
            src/list.c, src/dict.c, src/proto/eval.pro,
            src/testdir/test_mnv9_expr.mnv, src/testdir/test_mnv9_func.mnv

Patch 8.2.1111
Problem:    Inconsistent naming of get_list_tv() and eval_dict().
Solution:   Rename get_list_tv() to eval_list().  Similarly for eval_number(),
            eval_string(), eval_lit_string() and a few others.
Files:      src/eval.c, src/list.c, src/proto/list.pro, src/mnv9compile.c,
            src/typval.c, src/proto/typval.pro, src/mnv9script.c,
            src/evalfunc.c, src/evalvars.c, src/proto/evalvars.pro,
            src/mnv9execute.c

Patch 8.2.1112
Problem:    MNV9: no line continuation allowed in method call.
Solution:   Handle line continuation in expression before method call.
Files:      src/ex_docmd.c, src/testdir/test_mnv9_cmd.mnv,
            src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.1113
Problem:    No test for verbose output of :call.
Solution:   Add a test.
Files:      src/testdir/test_user_func.mnv

Patch 8.2.1114
Problem:    Terminal test sometimes times out.
Solution:   Split the test in two parts.
Files:      src/testdir/Makefile, src/testdir/Make_all.mak,
            src/testdir/term_util.mnv, src/testdir/test_terminal.mnv,
            src/testdir/test_terminal2.mnv

Patch 8.2.1115
Problem:    Iminsert test fails when compiled with MNVDLL.
Solution:   Change condition. (Ken Takata, closes #6376)
Files:      src/testdir/test_iminsert.mnv

Patch 8.2.1116
Problem:    MNV9: parsing command checks for list twice.
Solution:   Adjust how a command is parsed.
Files:      src/ex_docmd.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.1117
Problem:    Coverity warns for using uninitialized field.
Solution:   Initialize v_lock.
Files:      src/if_lua.c

Patch 8.2.1118
Problem:    Condition can never be true, dead code.
Solution:   Remove the dead code.
Files:      src/move.c

Patch 8.2.1119
Problem:    Configure fails with Xcode 12 beta.
Solution:   use "return" instead of "exit()". (Nico Weber, closes #6381)
Files:      src/configure.ac, src/auto/configure

Patch 8.2.1120
Problem:    Python code not tested properly.
Solution:   Add more tests and convert old-style test into new-style test.
            (Yegappan Lakshmanan, closes #6370)
Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms,
            src/testdir/test86.in, src/testdir/test86.ok,
            src/testdir/test_python2.mnv

Patch 8.2.1121
Problem:    Command completion not working after ++arg.
Solution:   Move skipping up. (Christian Brabandt, closes #6382)
Files:      src/cmdexpand.c, src/testdir/test_cmdline.mnv

Patch 8.2.1122
Problem:    MNV9: line continuation in dict member not recognized.
Solution:   Check for line continuation.
Files:      src/eval.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1123
Problem:    Python 3 test is old style.
Solution:   Turn into new style test. (Yegappan Lakshmanan, closes #6385)
Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms,
            src/testdir/test87.in, src/testdir/test87.ok,
            src/testdir/test_python2.mnv, src/testdir/test_python3.mnv

Patch 8.2.1124
Problem:    MNV9: no line break allowed in :import command.
Solution:   Skip over line breaks.
Files:      src/mnv9script.c, src/proto/mnv9script.pro, src/mnv9compile.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1125
Problem:    MNV9: double quote can be a string or a comment.
Solution:   Only support comments starting with # to avoid confusion.
Files:      src/eval.c, src/proto/eval.pro, src/dict.c, src/list.c,
            src/mnv9script.c

Patch 8.2.1126
Problem:    MNV9: using :copen causes an error.
Solution:   Add flag LET_NO_COMMAND in set_var().
Files:      src/evalvars.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1127
Problem:    MNV9: getting a dict member may not work.
Solution:   Clear the dict only after copying the item. (closes #6390)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1128
Problem:    The write message mentions characters, but it's actually bytes.
Solution:   Change "C" to "B" and "characters" to "bytes".
Files:      runtime/doc/options.txt, src/fileio.c,
            src/testdir/test_cscope.mnv, src/testdir/test_netbeans.mnv,
            src/testdir/dumps/Test_diff_syntax_1.dump,
            src/testdir/dumps/Test_long_file_name_1.dump,
            src/testdir/dumps/Test_display_unprintable_01.dump,
            src/testdir/dumps/Test_tselect_1.dump

Patch 8.2.1129
Problem:    MNV9: bar not recognized after not compiled command.
Solution:   Check for bar for commands where this is possible. (closes #6391)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.1130
Problem:    MNV9: bar not recognized after function call
Solution:   Skip whitespace. (closes #6391)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.1131
Problem:    MNV9: error message for returning a value in a function that does
            not return anything is not clear.
Solution:   Add a specific message.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1132
Problem:    MNV9: return type of repeat() is not specific enough.
Solution:   Return the type of the first argument. (closes #6395)
Files:      src/evalfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1133
Problem:    MNV9: return type of add() is not specific enough.
Solution:   Return the type of the first argument. (closes #6395)
Files:      src/evalfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1134
Problem:    MNV9: getting a list member may not work.
Solution:   Clear the list only after copying the item. (closes #6393)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1135
Problem:    MNV9: getting a dict member may not work.
Solution:   Clear the dict only after copying the item.
Files:      src/mnv9execute.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1136
Problem:    MNV9: return type of argv() is always any.
Solution:   Use list<string> if there is no argument.
Files:      src/evalfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1137
Problem:    MNV9: modifiers not cleared after compiling function.
Solution:   Clear command modifiers. (closes #6396)
Files:      src/mnv9compile.c, src/ex_docmd.c, src/proto/ex_docmd.pro,
            src/testdir/test_mnv9_func.mnv,
            src/testdir/dumps/Test_mnv9_silent_echo.dump

Patch 8.2.1138
Problem:    MNV9: return type of copy() and deepcopy() is any.
Solution:   Use type of the argument.
Files:      src/evalfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1139 (after 8.2.1137)
Problem:    MNV9: test for silent echo fails in some environments.
Solution:   Use :function instead of :def.
Files:      src/testdir/test_mnv9_func.mnv

Patch 8.2.1140
Problem:    MNV9: return type of extend() is any.
Solution:   Use type of the argument.
Files:      src/evalfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1141
Problem:    MNV9: return type of filter() is any.
Solution:   Use type of the argument.
Files:      src/evalfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1142
Problem:    MNV9: return type of insert() is any.
Solution:   Use type of the first argument.
Files:      src/evalfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1143
Problem:    MNV9: return type of remove() is any.
Solution:   Use the member type of the first argument, if known.
Files:      src/evalfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1144
Problem:    MNV9: return type of reverse() is any.
Solution:   Use the type of the first argument.
Files:      src/evalfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1145
Problem:    MNV9: "for" only accepts a list at compile time.
Solution:   Also accept a list at runtime.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.1146
Problem:    Not enough testing for Python.
Solution:   Add more tests.  Fix uncovered problems. (Yegappan Lakshmanan,
            closes #6392)
Files:      src/if_py_both.h, src/if_python3.c, src/testdir/shared.mnv,
            src/testdir/test_python2.mnv, src/testdir/test_python3.mnv

Patch 8.2.1147
Problem:    :confirm may happen in cooked mode. (Jason Franklin)
Solution:   Switch to raw mode before prompting. (Brandon Pfeifer)
Files:      src/message.c, src/testdir/test_excmd.mnv

Patch 8.2.1148
Problem:    Warning for using int instead of size_t.
Solution:   Change "len" argument to size_t. (Mike Williams)
Files:      src/mnv9compile.c, src/proto/mnv9compile.pro, src/mnv9script.c

Patch 8.2.1149
Problem:    MNV9: :eval command not handled properly.
Solution:   Compile the :eval command. (closes #6408)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.1150
Problem:    ml_get error when using Python. (Yegappan Lakshmanan)
Solution:   Check the line number is not out of range.  Call "Check" with
            "fromObj" instead of "from".
Files:      src/if_py_both.h, src/testdir/test_python2.mnv,
            src/testdir/test_python3.mnv

Patch 8.2.1151
Problem:    Insufficient test coverage for Python.
Solution:   Add more test cases. (Yegappan Lakshmanan, closes #6415)
Files:      src/testdir/test_python2.mnv, src/testdir/test_python3.mnv

Patch 8.2.1152
Problem:    MNV9: function reference is missing script prefix.
Solution:   Use the actual function name instead of the name searched for in
            the script context. (closes #6412)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1153
Problem:    MNV9: script test fails on some systems.
Solution:   Return proper value from Compare().
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.1154
Problem:    MNV9: crash when using imported function.
Solution:   Check for a function type.  Set the script context when calling a
            function. (closes #6412)
Files:      src/evalvars.c, src/scriptfile.c, src/proto/scriptfile.pro,
            src/mnv9execute.c, src/structs.h, src/testdir/test_mnv9_script.mnv

Patch 8.2.1155
Problem:    MNV9: cannot handle line break inside lambda.
Solution:   Pass the compilation context through. (closes #6407, closes #6409)
Files:      src/structs.h, src/mnv9compile.c, src/proto/mnv9compile.pro,
            src/eval.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1156
Problem:    MNV9: No error for invalid command in compiled function.
Solution:   Handle CMD_SIZE.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1157
Problem:    MNV9: dict.name is not recognized as an expression.
Solution:   Recognize ".name". (closes #6418)
Files:      src/ex_docmd.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.1158 (after 8.2.1155)
Problem:    Build error.
Solution:   Add missing change to globals.
Files:      src/globals.h

Patch 8.2.1159
Problem:    MNV9: no error for missing space after a comma.
Solution:   Check for white space.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1160
Problem:    MNV9: memory leak in allocated types.
Solution:   Free the type pointers.
Files:      src/mnv9script.c, src/userfunc.c, src/mnv9compile.c,
            src/proto/mnv9compile.pro

Patch 8.2.1161
Problem:    MNV9: using freed memory.
Solution:   Put pointer back in evalarg instead of freeing it.
Files:      src/userfunc.c, src/mnv9compile.c, src/eval.c, src/proto/eval.pro,
            src/structs.h

Patch 8.2.1162
Problem:    Crash when using a lambda.
Solution:   Check for evalarg to be NULL.
Files:      src/userfunc.c

Patch 8.2.1163 (after 8.2.1161)
Problem:    Build error.
Solution:   Add missing change to globals.
Files:      src/globals.h

Patch 8.2.1164
Problem:    Text cleared by checking terminal properties not redrawn. (Alexey
            Radkov)
Solution:   Mark the screen characters as invalid. (closes #6422)
Files:      src/screen.c, src/proto/screen.pro, src/term.c

Patch 8.2.1165
Problem:    Insufficient testing for the Tcl interface.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #6423)
Files:      src/testdir/test_tcl.mnv

Patch 8.2.1166
Problem:    Once mouse move events are enabled getchar() returns them.
Solution:   Ignore K_MOUSEMOVE in getchar(). (closes #6424)
Files:      runtime/doc/eval.txt, src/getchar.c

Patch 8.2.1167
Problem:    MNV9: builtin function method call only supports first argument.
Solution:   Shift arguments when needed. (closes #6305, closes #6419)
Files:      src/evalfunc.c, src/mnv9compile.c, src/mnv9execute.c,
            src/mnv9.h, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.1168
Problem:    Wrong method argument for appendbufline().
Solution:   Use FEARG_3.
Files:      src/evalfunc.c

Patch 8.2.1169
Problem:    Write NUL past allocated space using corrupted spell file.
            (Markus Vervier)
Solution:   Init "c" every time.
Files:      src/spellfile.c

Patch 8.2.1170
Problem:    Cursor off by one with block paste while 'virtualedit' is "all".
Solution:   Adjust condition. (Hugo Gualandi, closes #6430)
Files:      src/register.c, src/testdir/test_registers.mnv

Patch 8.2.1171
Problem:    Possible crash when out of memory.
Solution:   Check for NULL pointer. (Dominique Pellé, closes #6432)
Files:      src/syntax.c

Patch 8.2.1172
Problem:    Error messages when doing "make clean" in the runtime/doc or
            src/tee directories.
Solution:   Use "rm -f".
Files:      runtime/doc/Makefile, src/tee/Makefile

Patch 8.2.1173
Problem:    Tee doesn't build on some systems.
Solution:   Include header files. (Dominique Pelle, closes #6431)
Files:      src/tee/tee.c

Patch 8.2.1174
Problem:    No test for the "recording @x" message.
Solution:   Add a test. (Dominique Pellé, closes #6427)
Files:      src/testdir/test_registers.mnv

Patch 8.2.1175
Problem:    MNV9: Cannot split a line before ".member".
Solution:   Check for ".member" after line break.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1176
Problem:    MNV9: not enough type checking in MNV9 script.
Solution:   Use same type checking as in a :def function.
Files:      src/mnv9compile.c, src/proto/mnv9compile.pro,
            src/eval.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1177
Problem:    Terminal2 test sometimes hangs in the GUI.
Solution:   Move some tests to other files to further locate the problem.
            Set the GUI to a fixed screen size.
Files:      src/testdir/test_terminal.mnv, src/testdir/test_terminal2.mnv,
            src/testdir/test_terminal3.mnv, src/testdir/Make_all.mak,
            src/testdir/runtest.mnv

Patch 8.2.1178
Problem:    MNV9: filter function recognized as command modifier, leading to a
            crash.
Solution:   Clear cmdmod after freeing items.  Do not recognize a command
            modifier followed by non-white space. (closes #6434)
Files:      src/ex_docmd.c, src/mnv9compile.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.1179
Problem:    Test_termwinscroll() sometimes hangs in the GUI.
Solution:   Skip the test in the GUI.
Files:      src/testdir/test_terminal2.mnv

Patch 8.2.1180
Problem:    Build failure in small version.
Solution:   Add #ifdef.
Files:      src/ex_docmd.c

Patch 8.2.1181
Problem:    Json code not fully tested.
Solution:   Add more test coverage. (Dominique Pellé, closes #6433)
Files:      src/testdir/test_json.mnv

Patch 8.2.1182
Problem:    MNV9: no check for whitespace after comma in lambda.
Solution:   Give error if white space is missing.
Files:      src/userfunc.c, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.1183
Problem:    assert_fails() checks the last error message.
Solution:   Check the first error, it is more relevant.  Fix all the tests
            that rely on the old behavior.
Files:      runtime/doc/testing.txt, src/message.c, src/globals.h,
            src/testing.c, src/testdir/test_autocmd.mnv,
            src/testdir/test_buffer.mnv, src/testdir/test_cd.mnv,
            src/testdir/test_channel.mnv, src/testdir/test_clientserver.mnv,
            src/testdir/test_cmdline.mnv, src/testdir/test_cpoptions.mnv,
            src/testdir/test_cscope.mnv, src/if_cscope.c,
            src/testdir/test_excmd.mnv, src/evalvars.c,
            src/testdir/test_expr.mnv, src/testdir/test_functions.mnv,
            src/testdir/test_json.mnv, src/testdir/test_let.mnv,
            src/testdir/test_listdict.mnv, src/testdir/test_listener.mnv,
            src/testdir/test_match.mnv, src/testdir/test_menu.mnv,
            src/testdir/test_method.mnv, src/testdir/test_normal.mnv,
            src/testdir/test_popup.mnv, src/testdir/test_python2.mnv,
            src/testdir/test_python3.mnv, src/testdir/test_quickfix.mnv,
            src/testdir/test_random.mnv, src/testdir/test_search.mnv,
            src/testdir/test_signs.mnv, src/testdir/test_spell.mnv,
            src/testdir/test_substitute.mnv, src/testdir/test_syntax.mnv,
            src/testdir/test_tagjump.mnv, src/testdir/test_taglist.mnv,
            src/testdir/test_terminal.mnv, src/testdir/test_textprop.mnv,
            src/testdir/test_trycatch.mnv,
            src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_func.mnv, src/mnv9compile.c,
            src/testdir/test_mnv9_script.mnv, src/testdir/test_mnvinfo.mnv,
            src/testdir/test_winbuf_close.mnv,
            src/testdir/test_window_cmd.mnv, src/testdir/test_writefile.mnv,
            src/testdir/test_regexp_latin.mnv, src/testdir/test_utf8.mnv,
            src/testdir/test_global.mnv, src/testdir/test_tagfunc.mnv

Patch 8.2.1184 (after 8.2.1183)
Problem:    Some tests fail.
Solution:   Adjust tests for different assert_fails() behavior.  Remove unused
            variable.
Files:      src/testdir/test_assert.mnv, src/testdir/test_eval_stuff.mnv,
            src/evalvars.c

Patch 8.2.1185 (after 8.2.1183)
Problem:    Some other tests fail.
Solution:   Adjust tests for different assert_fails() behavior.
Files:      src/testdir/test_lua.mnv, src/testdir/test_tcl.mnv

Patch 8.2.1186
Problem:    With SGR mouse codes balloon doesn't show up after click.
Solution:   Add the MOUSE_RELEASE bits to mouse_code.
Files:      src/mouse.c

Patch 8.2.1187
Problem:    Terminal2 test sometimes hangs in the GUI on Travis.
Solution:   Disable Test_zz2_terminal_guioptions_bang() for now.
Files:      src/testdir/test_terminal2.mnv

Patch 8.2.1188
Problem:    Memory leak with invalid json input.
Solution:   Free all keys at the end. (Dominique Pellé, closes #6443,
            closes #6442)
Files:      src/json.c, src/testdir/test_json.mnv

Patch 8.2.1189
Problem:    MNV9: line continuation in lambda doesn't always work.
Solution:   Do not use a local evalarg unless there isn't one. (closes #6439)
Files:      src/eval.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1190
Problem:    MNV9: checking for MNV9 syntax is spread out.
Solution:   Use in_mnv9script().
Files:      src/mnv9script.c, src/dict.c, src/eval.c, src/evalvars.c,
            src/ex_docmd.c, src/list.c, src/scriptfile.c, src/userfunc.c

Patch 8.2.1191
Problem:    MNV9: crash when function calls itself.
Solution:   Add status UF_COMPILING. (closes #6441)
Files:      src/structs.h, src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1192
Problem:    Lua test fails with older Lua version.
Solution:   Adjust expected error messages. (closes #6444)
Files:      src/testdir/test_lua.mnv

Patch 8.2.1193
Problem:    Terminal window not redrawn when dragging a popup window over it.
Solution:   Redraw terminal window. (fixes #6438)
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv,
            src/testdir/dumps/Test_popupwin_term_01.dump,
            src/testdir/dumps/Test_popupwin_term_02.dump

Patch 8.2.1194
Problem:    Test failure because shell prompt differs.
Solution:   Set the shell prompt.
Files:      src/testdir/test_popupwin.mnv,
            src/testdir/dumps/Test_popupwin_term_01.dump,
            src/testdir/dumps/Test_popupwin_term_02.dump

Patch 8.2.1195
Problem:    Clientserver test fails on MS-Windows.
Solution:   Expect a different error message.
Files:      src/testdir/test_clientserver.mnv

Patch 8.2.1196
Problem:    Build failure with normal features.
Solution:   Add #ifdef.
Files:      src/popupwin.c

Patch 8.2.1197
Problem:    Clientserver test still fails on MS-Windows.
Solution:   Expect a different error message.
Files:      src/testdir/test_clientserver.mnv

Patch 8.2.1198
Problem:    Terminal2 test sometimes hangs in the GUI on Travis.
Solution:   Move test function to terminal3 to see if the problem moves too.
Files:      src/testdir/test_terminal2.mnv, src/testdir/test_terminal3.mnv

Patch 8.2.1199
Problem:    Not all assert functions are fully tested.
Solution:   Test more assert functions.
Files:      src/testing.c, src/testdir/test_assert.mnv

Patch 8.2.1200
Problem:    MNV9: cannot disassemble a lambda function.
Solution:   Recognize "<lambda>123" as a function name.
Files:      src/mnv9execute.c, src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.1201
Problem:    MNV9: crash when passing number as dict key.
Solution:   Check key type to be string. (closes #6449)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1202
Problem:    MNV9: crash when calling a closure from a builtin function.
Solution:   Use the current execution context. (closes #6441)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1203
Problem:    Unused assignments in expression evaluation.
Solution:   Move declarations and assignments to inner blocks where possible.
Files:      src/eval.c

Patch 8.2.1204
Problem:    MNV9: true and false not recognized in MNV9 script.
Solution:   Recognize true and false.
Files:      src/eval.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1205
Problem:    MNV9: && and || work differently when not compiled.
Solution:   Keep the value.
Files:      src/eval.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1206
Problem:    MNV9: crash in expr test when run in the GUI.
Solution:   Temporarily comment out two test lines.
Files:      src/testdir/test_mnv9_expr.mnv

Patch 8.2.1207
Problem:    MNV9: crash in expr test when run in the GUI.
Solution:   Break out of loop over hashtab also when function got removed and
            added.
Files:      src/userfunc.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1208
Problem:    Build failure.
Solution:   Add missing change.
Files:      src/structs.h

Patch 8.2.1209
Problem:    MNV9: test failure.
Solution:   Add missing changes to hashtab.
Files:      src/hashtab.c

Patch 8.2.1210
Problem:    Using ht_used when looping through a hashtab is less reliable.
Solution:   Use ht_changed in a few more places.
Files:      src/userfunc.c, src/if_py_both.h

Patch 8.2.1211 (after 8.2.1118)
Problem:    Removed more than dead code.
Solution:   Put back the decrement.
Files:      src/move.c, src/testdir/test_diffmode.mnv

Patch 8.2.1212
Problem:    Cannot build with Lua 5.4.
Solution:   Use luaL_typeerror instead defining it. (closes #6454)
Files:      src/if_lua.c

Patch 8.2.1213
Problem:    Mouse codes not tested sufficiently.
Solution:   Add more tests for mouse codes. (closes #6436)
Files:      src/testdir/test_termcodes.mnv

Patch 8.2.1214
Problem:    MS-Windows: default _mnvrc not correct in silent install mode.
Solution:   Add the LoadDefaultMNVrc macro. (Ken Takata, closes #6451)
Files:      nsis/gmnv.nsi

Patch 8.2.1215
Problem:    Atari MiNT support is outdated.
Solution:   Nobody responded this code is still useful, so let's delete it.
Files:      Filelist, src/os_mint.h, src/mnv.h, src/Make_mint.mak,
            src/digraph.c, src/fileio.c, src/memfile.c, src/os_unix.c,
            src/term.c, READMEdir/README_extra.txt, runtime/doc/os_mint.txt,
            src/INSTALL

Patch 8.2.1216
Problem:    Startup test fails.
Solution:   Adjust expected values for deleted lines.
Files:      src/testdir/test_startup.mnv

Patch 8.2.1217
Problem:    Startup test depends on random source file.
Solution:   Write a test file to find quickfix errors in.
Files:      src/testdir/test_startup.mnv

Patch 8.2.1218
Problem:    MNV9: cannot use 'text'->func().
Solution:   Recognize string at start of command.
Files:      src/mnv9compile.c, src/ex_docmd.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1219
Problem:    Symlink not followed if dirname ends in //.
Solution:   Resolve symlink earlier. (Tomáš Janoušek, closes #6454)
Files:      src/memline.c, src/testdir/test_swap.mnv

Patch 8.2.1220
Problem:    memory access error when dragging a popup window over a buffer
            with folding.
Solution:   Avoid going over the end of the cache. (closes #6438)
Files:      src/mouse.c, src/testdir/test_popupwin.mnv,
            src/testdir/dumps/Test_popupwin_term_01.dump,
            src/testdir/dumps/Test_popupwin_term_02.dump,
            src/testdir/dumps/Test_popupwin_term_03.dump,
            src/testdir/dumps/Test_popupwin_term_04.dump

Patch 8.2.1221
Problem:    Memory leak when updating popup window.
Solution:   Clear search highlighting.
Files:      src/popupwin.c

Patch 8.2.1222
Problem:    When using valgrind a MNV command started by a test uses the same
            log file name which gets overwritten.
Solution:   Fix regexp to rename the log file.
Files:      src/testdir/shared.mnv

Patch 8.2.1223
Problem:    MNV9: invalid type error for function default value.
Solution:   Use right argument index. (closes #6458)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1224
Problem:    MNV9: arguments from partial are not used.
Solution:   Put the partial arguments on the stack. (closes #6460)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1225
Problem:    Linker errors when building with dynamic Python 3.9.
Solution:   Add #defined items. (closes #6461)
Files:      src/if_python3.c

Patch 8.2.1226
Problem:    MS-Windows: windows positioning wrong when the taskbar is placed
            at the top or left of the screen.
Solution:   Use GetWindowRect and MoveWindow APIs. (Yukihiro Nakadaira,
            Ken Takata, closes #6455)
Files:      src/gui_w32.c

Patch 8.2.1227
Problem:    MNV9: allowing both quoted and # comments is confusing.
Solution:   Only support # comments in MNV9 script.
Files:      runtime/doc/mnv9.txt, src/ex_docmd.c, src/proto/ex_docmd.pro,
            src/mnv9compile.c, src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_expr.mnv, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1228
Problem:    Scrollbars not flush against the window edges when maximised.
Solution:   Add padding. (Ken Takata, closes #5602, closes #6466)
Files:      src/gui.c, src/gui_athena.c, src/gui_gtk.c, src/gui_haiku.cc,
            src/gui_mac.c, src/gui_motif.c, src/gui_photon.c, src/gui_w32.c,
            src/proto/gui_athena.pro, src/proto/gui_gtk.pro,
            src/proto/gui_haiku.pro, src/proto/gui_mac.pro,
            src/proto/gui_motif.pro, src/proto/gui_photon.pro,
            src/proto/gui_w32.pro

Patch 8.2.1229
Problem:    Build error without the eval feature.
Solution:   Declare starts_with_colon. Make function local.
Files:      src/ex_docmd.c, src/proto/ex_docmd.pro

Patch 8.2.1230
Problem:    MNV9: list index error not caught by try/catch.
Solution:   Do not bail out if an error is inside try/catch. (closes #6462)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1231
Problem:    MS-Windows: GUI code can be cleaned up.
Solution:   Do a bit of cleaning up. (Ken Takata, closes #6465)
Files:      src/gui_w32.c, src/proto/gui_w32.pro

Patch 8.2.1232
Problem:    MS-Windows GUI: Snap cancelled by split command.
Solution:   Do not cancel Snap when splitting a window. (Ken Takata,
            closes #6467)
Files:      src/gui_w32.c

Patch 8.2.1233
Problem:    MNV9: various errors not caught by try/catch.
Solution:   Do not bail out if an error is inside try/catch.
Files:      src/mnv9execute.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1234
Problem:    Lua build problem with old compiler.
Solution:   Move declarations to start of the block. (Taro Muraoka,
            closes #6477)
Files:      src/if_lua.c

Patch 8.2.1235
Problem:    Not all mouse codes covered by tests.
Solution:   Add more tests for the mouse. (Yegappan Lakshmanan, closes #6472)
Files:      src/testdir/mouse.mnv, src/testdir/test_termcodes.mnv

Patch 8.2.1236
Problem:    MNV9: a few errors not caught by try/catch.
Solution:   Do not bail out if an error is inside try/catch.  Fix that a not
            matching catch doesn't jump to :endtry.
Files:      src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1237
Problem:    Changing 'completepopup' after opening a popup has no effect. (Jay
            Sitter)
Solution:   Close the popup when the options are changed. (closes #6471)
Files:      runtime/doc/options.txt, src/popupwin.c, src/proto/popupwin.pro,
            src/optionstr.c, src/testdir/test_popupwin.mnv,
            src/testdir/dumps/Test_popupwin_infopopup_8.dump

Patch 8.2.1238
Problem:    MNV9: a few remaining errors not caught by try/catch.
Solution:   Do not bail out if an error is inside try/catch.
Files:      src/mnv9execute.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1239
Problem:    "maxwidth" in 'completepopup' not obeyed. (Jay Sitter)
Solution:   Add separate field for value from option. (closes #6470)
Files:      src/structs.h, src/popupwin.c, src/popupmenu.c,
            src/testdir/dumps/Test_popupwin_infopopup_9.dump

Patch 8.2.1240
Problem:    GUI tests sometimes fail because of translations.
Solution:   Reload the menus without translation. (Taro Muraoka, closes #6486)
Files:      src/testdir/runtest.mnv

Patch 8.2.1241
Problem:    Cannot use getbufinfo() as a method.
Solution:   Support using getbufinfo() as a method. (closes #6458)
Files:      runtime/doc/eval.txt, src/evalfunc.c,
            src/testdir/test_bufwintabinfo.mnv

Patch 8.2.1242
Problem:    MNV9: no error if calling a function with wrong argument type.
Solution:   Check types of arguments. (closes #6469)
Files:      src/mnv9compile.c, src/proto/mnv9compile.pro, src/mnv9execute.c,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.1243
Problem:    MNV9: cannot have a comment or empty line halfway a list at script
            level.
Solution:   Skip more than one line if needed.
Files:      src/mnv9compile.c, src/proto/mnv9compile.pro, src/eval.c,
            src/scriptfile.c

Patch 8.2.1244
Problem:    MNV9: in lambda index assumes a list.
Solution:   Use the value type to decide about list or dict. (closes #6479)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1245
Problem:    Build failure in tiny version.
Solution:   Add #ifdef.
Files:      src/scriptfile.c

Patch 8.2.1246
Problem:    MNV9: comment after assignment doesn't work.
Solution:   Skip over white space. (closes #6481)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1247
Problem:    MNV9: cannot index a character in a string.
Solution:   Add ISN_STRINDEX instruction. (closes #6478)
Files:      src/mnv9.h, src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.1248
Problem:    Netbeans test is flaky in the GUI.
Solution:   Filter out geometry messages. (Taro Muraoka, closes #6487)
Files:      src/testdir/test_netbeans.mnv

Patch 8.2.1249
Problem:    MNV9: disassemble test fails.
Solution:   Change INDEX to LISTINDEX.  Add test for STRINDEX.
Files:      src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.1250
Problem:    MNV9: cannot use the g:, b:, t: and w: namespaces.
Solution:   Add instructions to push a dict for the namespaces. (closes #6480)
Files:      src/mnv9.h, src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.1251
Problem:    MNV9: warning for pointer usage, test failure undetected.
Solution:   Fix pointer indirection.  Give error when executing function
            failed for any reason.  Fix instruction names.
Files:      src/mnv9execute.c, src/userfunc.c, src/proto/userfunc.pro

Patch 8.2.1252
Problem:    ":marks" may show '< and '> mixed up.
Solution:   Show the mark position as where '< and '> would jump.
Files:      src/mark.c, src/testdir/test_marks.mnv

Patch 8.2.1253
Problem:    CTRL-K in Insert mode gets <CursorHold> inserted. (Roland
            Puntaier)
Solution:   Do not reset did_cursorhold, restore it. (closes #6447)
Files:      src/normal.c

Patch 8.2.1254
Problem:    MS-Windows: regexp test may fail if 'iskeyword' set wrongly.
Solution:   Override the 'iskeyword' value. (Taro Muraoka, closes #6502)
Files:      src/testdir/test_regexp_utf8.mnv

Patch 8.2.1255
Problem:    Cannot use a lambda with quickfix functions.
Solution:   Add support for lambda. (Yegappan Lakshmanan, closes #6499)
Files:      runtime/doc/eval.txt, runtime/doc/options.txt,
            runtime/doc/quickfix.txt, src/channel.c, src/evalvars.c,
            src/optionstr.c, src/proto/evalvars.pro, src/proto/quickfix.pro,
            src/quickfix.c, src/testdir/test_quickfix.mnv

Patch 8.2.1256
Problem:    MNV9: type wrong after getting dict item in lambda.
Solution:   Set the type to "any" after enforcing dict type. (closes #6491)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1257
Problem:    MNV9: list unpack doesn't work at the script level.
Solution:   Detect unpack assignment better. (closes #6494)
Files:      src/ex_docmd.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1258 (after 8.2.1253)
Problem:    CursorHold does not work well.a (Shane-XB-Qian)
Solution:   Only restore did_cursorhold when using :normal.
Files:      src/normal.c

Patch 8.2.1259
Problem:    Empty group in 'tabline' may cause using an invalid pointer.
Solution:   Set the group start position. (closes #6505)
Files:      src/buffer.c, src/testdir/test_tabline.mnv

Patch 8.2.1260
Problem:    There is no good test for CursorHold.
Solution:   Add a test.  Remove duplicated test. (Yegappan Lakshmanan,
            closes #6503)
Files:      src/testdir/test_autocmd.mnv, src/testdir/test_buffer.mnv,
            src/testdir/test_normal.mnv

Patch 8.2.1261
Problem:    MNV9: common type of function not tested.
Solution:   Add a test.  Fix uncovered problems.
Files:      src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.1262
Problem:    src/ex_cmds.c file is too big.
Solution:   Move help related code to src/help.c. (Yegappan Lakshmanan,
            closes #6506)
Files:      Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak,
            src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md,
            src/cmdexpand.c, src/ex_cmds.c, src/help.c, src/proto.h,
            src/proto/ex_cmds.pro, src/proto/help.pro

Patch 8.2.1263
Problem:    MNV9: comparators use 'ignorecase' in MNV9 script.
Solution:   Ignore 'ignorecase'.  Use true and false instead of 1 and 0.
            (closes #6497)
Files:      src/eval.c, src/typval.c, src/mnv9execute.c,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.1264
Problem:    Terminal getwinpos() test is a bit flaky.
Solution:   Call getwinpos() a bit later.
Files:      src/testdir/test_terminal3.mnv

Patch 8.2.1265
Problem:    Crash with EXITFREE when split() fails.
Solution:   Restore 'cpoptions'.
Files:      src/evalfunc.c

Patch 8.2.1266 (after 8.2.1262)
Problem:    Makefile preference were accidentally included.
Solution:   Revert the Makefile changes.
Files:      src/Makefile

Patch 8.2.1267
Problem:    MS-Windows: tests may fail due to $PROMPT value.
Solution:   Set $PROMPT for testing. (Taro Muraoka, closes #6510)
Files:      src/testdir/runtest/mnv

Patch 8.2.1268
Problem:    MNV9: no error for using double quote comment after :func or :def.
Solution:   Only accept double quote when not in MNV9 script and not after
            :def. (closes #6483)
Files:      src/userfunc.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1269
Problem:    Language and locale code spread out.
Solution:   Move relevant code to src/locale.c. (Yegappan Lakshmanan,
            closes #6509)
Files:      Filelist, src/Make_cyg_ming.mak, src/Make_morph.mak,
            src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md,
            src/ex_cmds2.c, src/locale.c, src/main.c, src/proto.h,
            src/proto/ex_cmds2.pro, src/proto/locale.pro

Patch 8.2.1270
Problem:    MNV9: not skipping over function type declaration with only a
            return type.
Solution:   Skip over the return type. (issue #6507)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1271
Problem:    MNV9: Error for Funcref function argument type.
Solution:   Find the actual function type if possible. (issue #6507)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1272
Problem:    MNV9: type not checked if declaration also assigns value.
Solution:   Check the type. (issue #6507)
Files:      src/eval.c, src/mnv9compile.c, src/proto/mnv9compile.pro,
            src/mnv9script.c, src/mnv9execute.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1273
Problem:    MS-Windows: terminal test may leave file behind.
Solution:   Wait a moment for process to end before deleting the file.
            (Taro Muraoka, closes #6513)
Files:      src/testdir/test_terminal.mnv

Patch 8.2.1274
Problem:    MNV9: no error for missing white space in assignment at script
            level.
Solution:   Check for white space. (closes #6495)
Files:      src/eval.c, src/evalvars.c, src/testdir/test_mnv9_script.mnv,
            src/testdir/test_let.mnv

Patch 8.2.1275
Problem:    MNV9: compiler warning for buffer size.
Solution:   Change the offset from 10 to 15. (Dominique Pellé, closes #6518)
Files:      src/mnv9script.c

Patch 8.2.1276
Problem:    MS-Windows: system test may fail if more.exe is installed.
Solution:   Explicitly use more.com. (Taro Muraoka, Ken Takata, closes #6517)
Files:      src/testdir/test_system.mnv

Patch 8.2.1277
Problem:    Tests on Travis do not run with EXITFREE.
Solution:   Add EXITFREE to all builds to uncover any mistakes.
Files:      .travis.yml

Patch 8.2.1278
Problem:    MNV9: line break after "->" only allowed in :def function.
Solution:   Only allow line break after "->". (closes #6492)
Files:      src/mnv9compile.c, src/globals.h, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1279
Problem:    Some tests on Travis have EXITFREE duplicated.
Solution:   Remove EXITFREE from shadowopt.  Add "shadow" to job name.
Files:      .travis.yml

Patch 8.2.1280
Problem:    Ex command error cannot contain an argument.
Solution:   Add ex_errmsg() and translate earlier.  Use e_trailing_arg where
            possible.
Files:      src/ex_docmd.c, src/proto/ex_docmd.pro, src/buffer.c,
            src/ex_eval.c, src/match.c, src/testdir/test_tabpage.mnv

Patch 8.2.1281
Problem:    The "trailing characters" error can be hard to understand.
Solution:   Add the trailing characters to the message.
Files:      src/cmdhist.c, src/eval.c, src/evalfunc.c, src/evalvars.c,
            src/ex_cmds.c, src/ex_docmd.c, src/ex_eval.c, src/json.c,
            src/menu.c, src/quickfix.c, src/sign.c, src/userfunc.c

Patch 8.2.1282
Problem:    MNV9: crash when using CheckScriptFailure() in
            Test_mnv9script_call_fail_decl().
Solution:   Do not decrement the def_functions len unless the function was
            newly added.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1283
Problem:    MNV9: error for misplaced -> lacks argument.
Solution:   Use the pointer before it was advanced.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1284
Problem:    MNV9: skipping over type includes following white space, leading
            to an error for missing white space.
Solution:   Do not skip over white space after the type.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1285
Problem:    MNV9: argument types are not checked on assignment.
Solution:   Check function argument types. (issue #6507)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1286
Problem:    MNV9: No error when using a type on a window variable
Solution:   Recognize the syntax and give an error. (closes #6521)
Files:      src/ex_docmd.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1287
Problem:    MNV9: crash when using an imported function.
Solution:   Add the function type to the imported entry. (closes #6522)
Files:      src/mnv9script.c, src/mnv9compile.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1288
Problem:    MNV9: cannot use mark in range.
Solution:   Use the flag that a colon was seen. (closes #6528)
Files:      src/ex_docmd.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1289
Problem:    Crash when using a custom completion function.
Solution:   Initialize all of the expand_T. (closes #6532)
Files:      src/cmdexpand.c

Patch 8.2.1290
Problem:    MNV9: cannot replace a global function.
Solution:   Allow for "!" on a global function. (closes #6524)  Also fix that
            :delfunc on a :def function only made it empty.
Files:      src/userfunc.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1291
Problem:    MNV9: type of varargs items is not checked.
Solution:   Check the list item types. (closes #6523)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1292
Problem:    AIDL filetype not recognized.
Solution:   Add filetype detection. (Dominique Pellé, closes #6533)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.1293
Problem:    MNV9: :execute mixes up () expression and function call.
Solution:   Do not skip white space when looking for the "(". (closes #6531)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1294
Problem:    MNV9: error when using mnv9script in TextYankPost.
Solution:   Use EX_LOCKOK instead of the EX_CMDWIN flag for command that can
            be used when text is locked. (closes #6529)
Files:      src/ex_cmds.h, src/ex_docmd.c

Patch 8.2.1295
Problem:    Tests 44 and 99 are old style.
Solution:   Convert to new style tests. (Yegappan Lakshmanan, closes #6536)
Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_vms.mms,
            src/testdir/test44.in, src/testdir/test44.ok,
            src/testdir/test99.in, src/testdir/test99.ok,
            src/testdir/test_regexp_utf8.mnv

Patch 8.2.1296
Problem:    Some part of using 'smartcase' was not tested.
Solution:   Add more tests. (Dominique Pellé, closes #6538)
Files:      src/testdir/test_search.mnv

Patch 8.2.1297
Problem:    When a test fails it's often not easy to see what the call stack
            is.
Solution:   Add more entries from the call stack in the exception message.
Files:      runtime/doc/cmdline.txt, src/scriptfile.c,
            src/proto/scriptfile.pro, src/debugger.c, src/ex_docmd.c,
            src/ex_eval.c, src/message.c, src/testing.c,
            src/testdir/test_expand_func.mnv

Patch 8.2.1298
Problem:    Compiler warning for unused argument in small version.
Solution:   Add UNUSED.
Files:      src/scriptfile.c

Patch 8.2.1299
Problem:    Compiler warning for using size_t for int and void pointer.
Solution:   Add type casts.
Files:      src/scriptfile.c

Patch 8.2.1300
Problem:    MNV9: optional argument type not parsed properly.
Solution:   Skip over the "?". (issue #6507)
Files:      src/mnv9compile.c, src/proto/mnv9compile.pro, src/evalvars.c,
            src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1301
Problem:    MNV9: varargs argument type not parsed properly.
Solution:   Skip over the "...". (issue #6507)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1302
Problem:    MNV9: varargs arg after optional arg does not work
Solution:   Check for the "..." first. (issue #6507)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1303
Problem:    Calling popup_setoptions() resets 'signcolumn'.
Solution:   Only set 'signcolumn' when creating the popup. (closes #6542)
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv

Patch 8.2.1304
Problem:    Debug backtrace isn't tested much.
Solution:   Add more specific tests. (Ben Jackson, closes #6540)
Files:      src/testdir/runtest.mnv, src/testdir/test_debugger.mnv

Patch 8.2.1305
Problem:    Some tests are still old style.
Solution:   Convert tests 52 and 70 to new style. (Yegappan Lakshmanan,
            closes #6544)  Fix error in FinishTesting().
Files:      src/testdir/runtest.mnv, src/Makefile, src/testdir/Make_all.mak,
            src/testdir/Make_amiga.mak, src/testdir/Make_vms.mms,
            src/testdir/test52.in, src/testdir/test52.ok,
            src/testdir/test70.in, src/testdir/test70.ok,
            src/testdir/test_mzscheme.mnv, src/testdir/test_writefile.mnv

Patch 8.2.1306
Problem:    Checking for first character of dict key is inconsistent.
Solution:   Add eval_isdictc(). (closes #6546)
Files:      src/eval.c, src/proto/eval.pro, src/mnv9compile.c,
            src/testdir/test_listdict.mnv, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_let.mnv

Patch 8.2.1307
Problem:    popup window width does not include number, fold of sign column
            width.
Solution:   Take number, fold and sign column with into account.
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv,
            src/testdir/dumps/Test_popupwin_sign_2.dump

Patch 8.2.1308
Problem:    MNV9: accidentally using "x" causes MNV to exit.
Solution:   Disallow using ":x" or "xit" in MNV9 script. (closes #6399)
Files:      runtime/doc/mnv9.txt, src/mnv9compile.c, src/mnv9script.c,
            src/proto/mnv9script.pro, src/ex_docmd.c, src/ex_cmds.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1309
Problem:    Build failure with tiny version.
Solution:   Add #ifdef.
Files:      src/ex_cmds.c, src/ex_docmd.c

Patch 8.2.1310
Problem:    Configure with Xcode 12 fails to check for tgetent.
Solution:   Declare tgetent(). (Ozaki Kiichi, closes #6558)
Files:      src/configure.ac, src/auto/configure

Patch 8.2.1311
Problem:    Test failures with legacy MNV script.
Solution:   Actually check for MNV9 script.
Files:      src/mnv9script.c

Patch 8.2.1312
Problem:    MS-Windows: terminal test may fail if dir.exe exists.
Solution:   Use dir.com. (Ken Takata, closes #6557)
Files:      src/testdir/test_terminal3.mnv

Patch 8.2.1313
Problem:    MNV9 script: cannot assign to environment variable.
Solution:   Recognize environment variable assignment. (closes #6548)
            Also options and registers.
Files:      src/ex_docmd.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1314
Problem:    MNV9: rule for comment after :function is confusing.
Solution:   Allow double quoted comment after :function in mnv9script.
            (closes #6556)
Files:      src/userfunc.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1315
Problem:    MS-Windows: test log contains escape sequences.
Solution:   Do not use t_md and t_me but ANSI escape sequences. (Ken Takata,
            closes #6559)
Files:      src/testdir/runtest.mnv

Patch 8.2.1316
Problem:    Test 42 is still old style.
Solution:   Turn it into a new style test. (Yegappan Lakshmanan, closes #6561)
Files:      src/Makefile, src/testdir/Make_all.mak, src/testdir/Make_dos.mak,
            src/testdir/Make_ming.mak, src/testdir/Make_vms.mms,
            src/testdir/test42.in, src/testdir/test42.ok,
            src/testdir/test_writefile.mnv

Patch 8.2.1317
Problem:    MS-Windows tests on AppVeyor are slow.
Solution:   Use GitHub Actions. (Ken Takata, closes #6569)
Files:      Filelist, .github/workflows/ci-windows.yaml, appveyor.yml,
            ci/appveyor.bat

Patch 8.2.1318
Problem:    No status badge for Github CI.
Solution:   Add a badge.
Files:      README.md

Patch 8.2.1319
Problem:    Status badge for Github CI has wrong link.
Solution:   Rename and use the right link
Files:      README.md, .github/workflows/ci-windows.yaml

Patch 8.2.1320
Problem:    MNV9: cannot declare some single letter variables.
Solution:   Do not recognize a colon for a namespace for single letter
            variables. (closes #6547)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1321
Problem:    GitHub CI also runs on tag push.
Solution:   Skip CI on push. (Ken Takata, closes #6571)
Files:      .github/workflows/ci-windows.yaml

Patch 8.2.1322
Problem:    MNV9: method on double quoted string doesn't work.
Solution:   Recognize double quoted string. (closes #6562)
Files:      src/ex_docmd.c, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.1323
Problem:    MNV9: invalid operators only rejected in :def function.
Solution:   Also reject them at script level. (closes #6564)
Files:      src/eval.c, src/mnv9compile.c, src/proto/mnv9compile.pro,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.1324
Problem:    MNV9: line break after "=" does not work.
Solution:   Also allow for NUL after "=". (closes #6549)
Files:      src/evalvars.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1325
Problem:    MNV9: using MNV9 script for autoload not tested.
Solution:   Add a test.  Update help.
Files:      runtime/doc/mnv9.txt, src/testdir/test_autoload.mnv,
            src/testdir/sautest/autoload/auto9.mnv

Patch 8.2.1326
Problem:    MNV9: skipping over white space after list.
Solution:   Do not skip white space, a following [] would be misinterpreted.
            (closes #6552)  Fix a few side effects.
Files:      src/list.c, src/dict.c, src/eval.c, src/userfunc.c,
            src/testdir/test_functions.mnv, src/testdir/test_gn.mnv,
            src/testdir/test_popupwin.mnv, src/testdir/test_tabpage.mnv,
            src/testdir/test_textprop.mnv, src/testdir/test_textobjects.mnv

Patch 8.2.1327
Problem:    Mac: configure can't find Tcl libraries.
Solution:   Adjust configure check. (closes #6575)
Files:      src/configure.ac, src/auto/configure

Patch 8.2.1328
Problem:    No space allowed before comma in list.
Solution:   Legacy MNV script allows it. (closes #6577)
Files:      src/dict.c, src/list.c, src/testdir/test_listdict.mnv

Patch 8.2.1329
Problem:    MNV9: cannot define global function inside :def function.
Solution:   Assign to global variable instead of local. (closes #6584)
Files:      src/mnv9compile.c, src/userfunc.c, src/proto/userfunc.pro,
            src/mnv9.h, src/mnv9execute.c, src/structs.h,
            src/misc2.c, src/proto/misc2.pro, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.1330
Problem:    Github workflow takes longer than needed.
Solution:   Do two test runs in parallel instead of sequentially. (Ken Takata,
            closes #6579)
Files:      .github/workflows/ci-windows.yaml

Patch 8.2.1331
Problem:    MNV9: :echo with two lists doesn't work.
Solution:   Do not skip white space before []. (closes #6552)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1332
Problem:    MNV9: memory leak when using nested global function.
Solution:   Delete the function when deleting the instruction.  Disable test
            that still causes a leak.
Files:      src/mnv9compile.c, src/userfunc.c, src/proto/userfunc.pro,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.1333
Problem:    MNV9: memory leak when using nested global function.
Solution:   Swap from and to when copying the lines.
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1334
Problem:    Github workflow timeout needs tuning
Solution:   Use a 10 minute timeout. Fail when timing out. (Ken Takata,
            closes #6590)
Files:      .github/workflows/ci-windows.yaml

Patch 8.2.1335
Problem:    CTRL-C in the GUI doesn't interrupt. (Sergey Vlasov)
Solution:   Recognize "C" with CTRL modifier as CTRL-C. (issue #6565)
Files:      src/gui.c, src/proto/gui.pro, src/gui_gtk_x11.c, src/gui_x11.c,
            src/gui_photon.c

Patch 8.2.1336 (after 8.2.1335)
Problem:    Build failure on non-Unix systems.
Solution:   Add #ifdef.
Files:      src/gui.c

Patch 8.2.1337
Problem:    MNV9: cannot use empty key in dict assignment.
Solution:   Allow empty key. (closes #6591)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1338
Problem:    MNV9: assigning to script-local variable doesn't check type.
Solution:   Use the type. (issue #6591)
Files:      src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1339
Problem:    MNV9: assigning to global dict variable doesn't work.
Solution:   Guess variable type based in index type. (issue #6591)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1340
Problem:    Some tests fail on Cirrus CI and/or with FreeBSD.
Solution:   Make 'backupskip' empty. Do not run tests as root. Check for
            directory when using mnvinfo. (Ozaki Kiichi, closes #6596)
Files:      .cirrus.yml, src/testdir/test_backup.mnv,
            src/testdir/test_edit.mnv, src/testdir/test_mnvinfo.mnv,
            src/testdir/test_writefile.mnv, src/mnvinfo.c

Patch 8.2.1341
Problem:    Build failures.
Solution:   Add missing error message.
Files:      src/globals.h

Patch 8.2.1342
Problem:    MNV9: accidentally using "x" gives a confusing error.
Solution:   Disallow using ":t" in MNV9 script. (issue #6399)
Files:      runtime/doc/mnv9.txt, src/mnv9compile.c, src/mnv9script.c,
            src/ex_docmd.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1343
Problem:    MNV9: cannot find global function when using g: when local
            function with the same name exists.
Solution:   Find global function when using g:.
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1344
Problem:    MNV9: No test for trying to redefine global function.
Solution:   Add a test.
Files:      src/testdir/test_mnv9_func.mnv

Patch 8.2.1345
Problem:    Redraw error when using visual block and scroll.
Solution:   Add check for w_topline. (closes #6597)
Files:      src/drawscreen.c, src/testdir/test_display.mnv,
            src/testdir/dumps/Test_display_visual_block_scroll.dump

Patch 8.2.1346
Problem:    Small build fails.
Solution:   Add #ifdef.
Files:      src/ex_docmd.c

Patch 8.2.1347
Problem:    Cannot easily get the script ID.
Solution:   Support expand('<SID>').
Files:      runtime/doc/map.txt, src/ex_docmd.c,
            src/testdir/test_expand_func.mnv

Patch 8.2.1348
Problem:    Build failure without the eval feature.
Solution:   Add #ifdef.
Files:      src/ex_docmd.c

Patch 8.2.1349
Problem:    MNV9: can define a function with the name of an import.
Solution:   Disallow using an existing name. (closes #6585)
Files:      src/userfunc.c, src/mnv9compile.c, src/globals.h,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1350
Problem:    MNV9: no test for error message when redefining function.
Solution:   Add a test.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.1351
Problem:    MNV9: no proper error if using namespace for nested function.
Solution:   Specifically check for a namespace. (closes #6582)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1352
Problem:    MNV9: no error for shadowing a script-local function by a nested
            function.
Solution:   Check for script-local function. (closes #6586)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1353
Problem:    Crash when drawing double-wide character in terminal window.
            (Masato Nishihata)
Solution:   Check getcell() returning NULL. (issue #6141)
Files:      src/libvterm/src/screen.c, src/testdir/test_terminal.mnv

Patch 8.2.1354
Problem:    Test 59 is old style.
Solution:   Convert into a new style test. (Yegappan Lakshmanan, closes #6604)
Files:      runtime/doc/eval.txt, src/Makefile, src/testdir/Make_all.mak,
            src/testdir/Make_vms.mms, src/testdir/test59.in,
            src/testdir/test59.ok, src/testdir/test_spell_utf8.mnv

Patch 8.2.1355
Problem:    MNV9: no error using :let for options and registers.
Solution:   Give an error. (closes #6568)
Files:      src/evalvars.c, src/mnv9compile.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1356
Problem:    MNV9: cannot get the percent register.
Solution:   Check for readable registers instead of writable. (closes #6566)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1357
Problem:    MNV9: cannot assign to / register.
Solution:   Adjust check for assignment. (issue #6566)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1358
Problem:    MNV9: test fails with +dnd is not available.
Solution:   Add condition.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.1359
Problem:    MNV9: cannot assign to / register in MNV9 script.
Solution:   Adjust check for assignment in MNV9 script. (closes #6567)
Files:      src/ex_docmd.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1360
Problem:    Stray error for white space after expression.
Solution:   Ignore trailing white space. (closes #6608)
Files:      src/eval.c, src/testdir/test_filter_map.mnv

Patch 8.2.1361
Problem:    Error for white space after expression in assignment.
Solution:   Skip over white space. (closes #6617)
Files:      src/eval.c, src/testdir/test_expr.mnv

Patch 8.2.1362
Problem:    Last entry of ":set term=xxx" overwritten by error message when
            'cmdheight' is two or more. (Tony Mechelynck)
Solution:   Output extra line breaks.
Files:      src/term.c, src/testdir/test_termcodes.mnv

Patch 8.2.1363
Problem:    Test trying to run terminal when it is not supported.
Solution:   Check if MNV can be run in a terminal.
Files:      src/testdir/test_termcodes.mnv

Patch 8.2.1364
Problem:    Invalid memory access when searching for raw string.
Solution:   Check for delimiter match before following quote. (closes #6578)
Files:      src/search.c

Patch 8.2.1365
Problem:    MNV9: no error for missing white space around operator.
Solution:   Check for white space. (closes #6618)
Files:      src/eval.c, src/mnv9compile.c, src/proto/mnv9compile.pro,
            src/evalvars.c, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.1366
Problem:    Test 49 is old style.
Solution:   Convert several tests to new style. (Yegappan Lakshmanan,
            closes #6629)
Files:      src/testdir/script_util.mnv, src/testdir/test49.ok,
            src/testdir/test49.mnv, src/testdir/test_mnvscript.mnv

Patch 8.2.1367
Problem:    MNV9: no error for missing white space around operator.
Solution:   Check for white space around *, / and %.
Files:      src/eval.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1368
Problem:    MNV9: no error for missing white space around operator.
Solution:   Check for white space around <, !=, etc.
Files:      src/eval.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1369
Problem:    MS-Windows: autocommand test sometimes fails.
Solution:   Do not rely on the cat command.
Files:      src/testdir/test_autocmd.mnv

Patch 8.2.1370
Problem:    MS-Windows: warning for using fstat() with stat_T.
Solution:   use _fstat64() if available. (Naruhiko Nishino, closes #6625)
Files:      src/macros.h

Patch 8.2.1371
Problem:    MNV9: no error for missing white space around operator.
Solution:   Check for white space around && and ||.
Files:      src/eval.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1372
Problem:    MNV9: no error for missing white space around operator.
Solution:   Check for white space around ? and :.
Files:      src/eval.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1373
Problem:    MNV9: no error for assigning to non-existing script var.
Solution:   Check that in MNV9 script the variable was defined. (closes #6630)
Files:      src/mnv9compile.c, src/userfunc.c, src/structs.h,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1374
Problem:    MNV9: error for assigning empty list to script variable.
Solution:   Use t_unknown for empty list member. (closes #6595)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1375
Problem:    MNV9: method name with digit not accepted.
Solution:   Use eval_isnamec() instead of eval_isnamec1(). (closes #6613)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1376
Problem:    MNV9: expression mapping causes error for using :import.
Solution:   Add EX_LOCK_OK to :import and :export. (closes #6606)
Files:      src/ex_cmds.h, src/testdir/test_mnv9_script.mnv

Patch 8.2.1377
Problem:    Triggering the ATTENTION prompt causes typeahead to be messed up.
Solution:   Increment tb_change_cnt. (closes #6541)
Files:      src/getchar.c

Patch 8.2.1378
Problem:    Cannot put space between function name and paren.
Solution:   Allow this for backwards compatibility.
Files:      src/eval.c, src/testdir/test_expr.mnv,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.1379
Problem:    Curly braces expression ending in " }" does not work.
Solution:   Skip over white space when checking for "}". (closes #6634)
Files:      src/dict.c, src/testdir/test_eval_stuff.mnv

Patch 8.2.1380
Problem:    MNV9: return type of getreg() is always a string.
Solution:   Use list of strings when there are three arguments. (closes #6633)
Files:      src/evalfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1381
Problem:    MS-Windows: crash with Python 3.5 when stdin is redirected.
Solution:   Reconnect stdin. (Yasuhiro Matsumoto, Ken Takata, closes #6641)
Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak, src/if_python3.c

Patch 8.2.1382
Problem:    MNV9: using :import in filetype plugin gives an error.
Solution:   Allow commands with the EX_LOCK_OK flag. (closes #6636)
Files:      src/ex_docmd.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1383
Problem:    Test 49 is old style.
Solution:   Convert test cases to new style. (Yegappan Lakshmanan,
            closes #6638)
Files:      src/testdir/test49.ok, src/testdir/test49.mnv,
            src/testdir/test_mnvscript.mnv

Patch 8.2.1384
Problem:    No ATTENTION prompt for :mnvgrep first match file.
Solution:   When there is an existing swap file do not keep the dummy buffer.
            (closes #6649)
Files:      src/quickfix.c, src/testdir/runtest.mnv,
            src/testdir/test_quickfix.mnv

Patch 8.2.1385
Problem:    No testing on ARM.
Solution:   Add a test on Travis for ARM. (Ozaki Kiichi, closes #6615)
Files:      .travis.yml

Patch 8.2.1386
Problem:    Backslash not removed after space in option with space in
            'isfname'.
Solution:   Do remove backslash before space, also when it is in 'isfname'.
            (Yasuhiro Matsumoto, closes #6651)
Files:      src/option.c, src/testdir/test_options.mnv

Patch 8.2.1387
Problem:    MNV9: cannot assign to single letter variable with type.
Solution:   Exclude the colon from the variable name. (closes #6647)
Files:      src/eval.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1388
Problem:    MNV9: += only works for numbers.
Solution:   Use += as concatenate for a list. (closes #6646)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1389
Problem:    File missing from the distribution.
Solution:   Add script_util.mnv to the list of distributes files.
Files:      Filelist

Patch 8.2.1390
Problem:    MNV9: type error after storing an option value.
Solution:   Drop the type after a STOREOPT instruction. (closes #6632)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1391
Problem:    MNV9: no error for shadowing a script function.
Solution:   Check for already defined items. (closes #6652)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1392
Problem:    MNV9: error line number incorrect after skipping over comment
            lines.
Solution:   Insert empty lines for skipped lines.
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1393
Problem:    Insufficient testing for script debugging.
Solution:   Add more tests. (Ben Jackson)
Files:      src/testdir/test_debugger.mnv

Patch 8.2.1394
Problem:    MNV9: compiling a function interferes with command modifiers.
Solution:   Save and restore command modifiers. (closes #6658)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1395
Problem:    MNV9: no error if declaring a funcref with a lower case letter.
Solution:   Check the name after the type is inferred. Fix confusing name.
Files:      src/mnv9compile.c, src/dict.c, src/eval.c, src/evalvars.c,
            src/proto/evalvars.pro, src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.1396
Problem:    MNV9: no error for unexpectedly returning a value.
Solution:   Only set the return type for lambda's.  Make using function type
            in a function reference work.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1397
Problem:    MNV9: return type of maparg() not adjusted for fourth argument.
Solution:   Check if fourth argument is present. (closes #6645)
Files:      src/evalfunc.c, src/testdir/test_maparg.mnv

Patch 8.2.1398
Problem:    Autoload script sourced twice if sourced directly.
Solution:   Do not source an autoload script again. (issue #6644)
Files:      src/scriptfile.c, src/testdir/sautest/autoload/sourced.mnv

Patch 8.2.1399
Problem:    MNV9: may find imported item in wrong script.
Solution:   When looking up script-local function use the embedded script ID.
            (issue #6644)
Files:      src/mnv9compile.c, src/proto/mnv9compile.pro, src/userfunc.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1400
Problem:    MNV9: test does not delete written files.
Solution:   Correct file names.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.1401
Problem:    Cannot jump to the last used tabpage.
Solution:   Add g<Tab> and tabpagnr('#'). (Yegappan Lakshmanan, closes #6661,
            neomnv #11626)
Files:      runtime/doc/eval.txt, runtime/doc/index.txt,
            runtime/doc/tabpage.txt, src/evalwindow.c, src/globals.h,
            src/normal.c, src/proto/window.pro, src/testdir/test_tabpage.mnv,
            src/window.c

Patch 8.2.1402
Problem:    s390x tests always fail.
Solution:   Temporarily disable s390x tests.
Files:      .travis.yml

Patch 8.2.1403
Problem:    MNV9: MNV highlighting fails in cmdline window if it uses MNV9
            commands.
Solution:   Allow using :mnv9script, :import and :export while in the cmdline
            window. (closes #6656)
Files:      src/ex_cmds.h, src/testdir/test_mnv9_script.mnv

Patch 8.2.1404
Problem:    MNV9: script test fails in the GUI.
Solution:   Use another key to map.  Improve cleanup.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.1405
Problem:    MNV9: mnv9compile.c is getting too big.
Solution:   Split off type code to mnv9type.c.
Files:      Filelist, src/mnv9compile.c, src/proto/mnv9compile.pro,
            src/mnv9type.c, src/proto/mnv9type.pro, src/proto.h,
            src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Makefile

Patch 8.2.1406
Problem:    Popupwindow lacks scrollbar if no "maxheight" is used.
Solution:   Compute the max height depending on the position. (closes #6664)
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv,
            src/testdir/dumps/Test_popupwin_toohigh_1.dump,
            src/testdir/dumps/Test_popupwin_toohigh_2.dump

Patch 8.2.1407
Problem:    MNV9: type of list and dict only depends on first item.
Solution:   Use all items to decide about the type.
Files:      src/mnv9compile.c, src/mnv9type.c, src/proto/mnv9type.pro,
            src/testdir/test_mnv9_expr.mnv, runtime/doc/mnv9.txt

Patch 8.2.1408
Problem:    MNV9: type casting not supported.
Solution:   Introduce type casting.
Files:      runtime/doc/mnv9.txt, src/mnv9compile.c,
            src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.1409
Problem:    Npmrc and php.ini filetypes not recognized.
Solution:   Add filetype detection. (Doug Kearns)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.1410
Problem:    Adding compiler plugin requires test change.
Solution:   Include compiler plugin and adjust test.
Files:      src/testdir/test_compiler.mnv, runtime/compiler/xo.mnv

Patch 8.2.1411
Problem:    when splitting a window localdir is copied but prevdir is not.
Solution:   Also copy prevdir. (closes #6667)
Files:      src/window.c, src/testdir/test_cd.mnv

Patch 8.2.1412
Problem:    MNV: not operator does not result in boolean.
Solution:   Make type depend on operator. (issue 6678)  Fix using "false" and
            "true" in MNV9 script.
Files:      src/eval.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1413 (after 8.2.1401)
Problem:    Previous tab page not usable from an Ex command.
Solution:   Add the "#" argument for :tabnext et al. (Yegappan Lakshmanan,
            closes #6677)
Files:      runtime/doc/tabpage.txt, src/ex_docmd.c, src/window.c,
            src/testdir/test_tabpage.mnv

Patch 8.2.1414
Problem:    Popupwindow missing last couple of lines when cursor is in the
            first line.
Solution:   Compute the max height also when top aligned. (closes #6664)
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv,
            src/testdir/dumps/Test_popupwin_toohigh_3.dump,
            src/testdir/dumps/Test_popupwin_nospace.dump

Patch 8.2.1415
Problem:    Closing a popup window with CTRL-C interrupts 'statusline' if it
            calls a function.
Solution:   Reset got_int while redrawing. (closes #6675)
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv,
            src/testdir/dumps/Test_popupwin_ctrl_c.dump

Patch 8.2.1416
Problem:    MNV9: boolean evaluation does not work as intended.
Solution:   Use tv2bool() in MNV9 script. (closes #6681)
Files:      src/eval.c, src/testdir/test_mnv9_expr.mnv, src/testdir/mnv9.mnv

Patch 8.2.1417
Problem:    Test 49 is old style.
Solution:   Convert more parts to new style test. (Yegappan Lakshmanan,
            closes #6682)
Files:      src/testdir/test49.ok, src/testdir/test49.mnv,
            src/testdir/test_mnvscript.mnv

Patch 8.2.1418
Problem:    MNV9: invalid error for missing white space after function.
Solution:   Do not skip over white space. (closes #6679)
Files:      src/userfunc.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1419
Problem:    MNV9: not operator applied too early.
Solution:   Implement the "numeric_only" argument. (closes #6680)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1420
Problem:    Test 49 is old style.
Solution:   Convert remaining parts to new style. Remove obsolete items.
            (Yegappan Lakshmanan, closes #6683)
Files:      Filelist, runtime/doc/testing.txt, src/Make_mvc.mak, src/Makefile,
            src/testdir/Make_all.mak, src/testdir/Make_amiga.mak,
            src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
            src/testdir/Make_vms.mms, src/testdir/Makefile,
            src/testdir/README.txt, src/testdir/test49.in,
            src/testdir/test49.ok, src/testdir/test49.mnv,
            src/testdir/test_quickfix.mnv, src/testdir/test_mnvscript.mnv

Patch 8.2.1421
Problem:    MNV9: handling "+" and "-" before number differs from MNV script.
Solution:   Use the same sequence of commands.
Files:      src/mnv9compile.c

Patch 8.2.1422
Problem:    The Mac GUI implementation is outdated and probably doesn't even
            work.
Solution:   Remove the Mac GUI code.  The MacMNV project provides the
            supported MNV GUI version.
Files:      Filelist, src/gui_mac.c, src/proto/gui_mac.pro, src/proto.h,
            src/Makefile, src/configure.ac, src/auto/configure,
            src/evalfunc.c, src/fileio.c, src/gui.c, src/if_mzsch.c,
            src/main.c, src/misc2.c, src/mouse.c, src/os_mac_conv.c,
            src/os_unix.c, src/feature.h, src/globals.h, src/gui.h,
            src/option.h, src/optiondefs.h, src/os_mac.h, src/structs.h,
            src/mnv.h, src/INSTALLmac.txt

Patch 8.2.1423
Problem:    MNV9: find global function when looking for script-local.
Solution:   Don't strip prefix if name starts with "s:". (closes #6688)
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1424 (after 8.2.1422)
Problem:    Mac build fails.
Solution:   Adjust configure to not fall back to Athena.  Adjust some other
            files.
Files:      src/configure.ac, src/auto/configure, src/os_macosx.m,
            src/version.c

Patch 8.2.1425
Problem:    MNV9: cannot use call() without :call.
Solution:   Do not skip over "call(". (closes #6689)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1426
Problem:    MNV9: cannot call autoload function in :def function.
Solution:   Load the autoload script. (closes #6690)
Files:      src/mnv9execute.c, src/mnv9compile.c, src/scriptfile.c,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.1427
Problem:    MNV9: cannot use a range with marks in :def function.
Solution:   Parse range after colon. (closes #6686)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.1428
Problem:    MNV9: :def function does not abort on nested function error.
Solution:   Check whether an error message was given. (closes #6691)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1429
Problem:    MNV9: no error for missing white after : in dict.
Solution:   Check for white space. (closes #6671)  Also check that there is no
            white before the :.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.1430
Problem:    MNV9: error for missing comma instead of extra white space.
Solution:   Check if comma can be found after white space. (closes #6668)
            Also check for extra white space in literal dict. (closes #6670)
Files:      src/list.c, src/dict.c, src/mnv9compile.c,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.1431
Problem:    MNV9: no error for white space before comma in dict.
Solution:   Check for extra white space. (closes #6674)
Files:      src/mnv9compile.c, src/dict.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1432
Problem:    Various inconsistencies in test files.
Solution:   Add modelines where they were missing.  Use Check commands instead
            of silently skipping over tests.  Adjust indents and comments.
            (Ken Takata, closes #6695)
Files:      src/testdir/test_arglist.mnv, src/testdir/test_assert.mnv,
            src/testdir/test_autochdir.mnv, src/testdir/test_autocmd.mnv,
            src/testdir/test_autoload.mnv, src/testdir/test_balloon.mnv,
            src/testdir/test_balloon_gui.mnv, src/testdir/test_behave.mnv,
            src/testdir/test_blockedit.mnv, src/testdir/test_breakindent.mnv,
            src/testdir/test_bufline.mnv, src/testdir/test_bufwintabinfo.mnv,
            src/testdir/test_cd.mnv, src/testdir/test_changedtick.mnv,
            src/testdir/test_changelist.mnv, src/testdir/test_channel.mnv,
            src/testdir/test_checkpath.mnv, src/testdir/test_cindent.mnv,
            src/testdir/test_cjk_linebreak.mnv,
            src/testdir/test_clientserver.mnv,
            src/testdir/test_close_count.mnv, src/testdir/test_cmdline.mnv,
            src/testdir/test_command_count.mnv,
            src/testdir/test_comparators.mnv, src/testdir/test_compiler.mnv,
            src/testdir/test_crypt.mnv, src/testdir/test_cursorline.mnv,
            src/testdir/test_curswant.mnv, src/testdir/test_debugger.mnv,
            src/testdir/test_delete.mnv, src/testdir/test_diffmode.mnv,
            src/testdir/test_digraph.mnv, src/testdir/test_display.mnv,
            src/testdir/test_edit.mnv, src/testdir/test_environ.mnv,
            src/testdir/test_erasebackword.mnv,
            src/testdir/test_escaped_glob.mnv, src/testdir/test_ex_equal.mnv,
            src/testdir/test_ex_undo.mnv, src/testdir/test_ex_z.mnv,
            src/testdir/test_exec_while_if.mnv, src/testdir/test_exists.mnv,
            src/testdir/test_exists_autocmd.mnv, src/testdir/test_exit.mnv,
            src/testdir/test_expand_dllpath.mnv,
            src/testdir/test_expr_utf8.mnv, src/testdir/test_feedkeys.mnv,
            src/testdir/test_file_size.mnv, src/testdir/test_fileformat.mnv,
            src/testdir/test_filter_cmd.mnv,
            src/testdir/test_find_complete.mnv, src/testdir/test_findfile.mnv,
            src/testdir/test_fixeol.mnv, src/testdir/test_flatten.mnv,
            src/testdir/test_fnameescape.mnv, src/testdir/test_fold.mnv,
            src/testdir/test_functions.mnv, src/testdir/test_ga.mnv,
            src/testdir/test_getcwd.mnv, src/testdir/test_getvar.mnv,
            src/testdir/test_glob2regpat.mnv, src/testdir/test_global.mnv,
            src/testdir/test_gui.mnv, src/testdir/test_gui_init.mnv,
            src/testdir/test_highlight.mnv, src/testdir/test_hlsearch.mnv,
            src/testdir/test_iminsert.mnv,
            src/testdir/test_increment_dbcs.mnv,
            src/testdir/test_ins_complete.mnv, src/testdir/test_interrupt.mnv,
            src/testdir/test_job_fails.mnv, src/testdir/test_join.mnv,
            src/testdir/test_json.mnv, src/testdir/test_jumplist.mnv,
            src/testdir/test_jumps.mnv, src/testdir/test_lambda.mnv,
            src/testdir/test_langmap.mnv, src/testdir/test_largefile.mnv,
            src/testdir/test_lineending.mnv, src/testdir/test_listchars.mnv,
            src/testdir/test_listener.mnv, src/testdir/test_listlbr.mnv,
            src/testdir/test_listlbr_utf8.mnv,
            src/testdir/test_makeencoding.mnv, src/testdir/test_man.mnv,
            src/testdir/test_mapping.mnv, src/testdir/test_marks.mnv,
            src/testdir/test_matchadd_conceal.mnv,
            src/testdir/test_matchadd_conceal_utf8.mnv,
            src/testdir/test_memory_usage.mnv, src/testdir/test_menu.mnv,
            src/testdir/test_messages.mnv, src/testdir/test_mksession.mnv,
            src/testdir/test_modeline.mnv,
            src/testdir/test_nested_function.mnv, src/testdir/test_number.mnv,
            src/testdir/test_options.mnv, src/testdir/test_packadd.mnv,
            src/testdir/test_partial.mnv, src/testdir/test_paste.mnv,
            src/testdir/test_plus_arg_edit.mnv, src/testdir/test_preview.mnv,
            src/testdir/test_profile.mnv, src/testdir/test_prompt_buffer.mnv,
            src/testdir/test_quickfix.mnv, src/testdir/test_quotestar.mnv,
            src/testdir/test_random.mnv, src/testdir/test_recover.mnv,
            src/testdir/test_regex_char_classes.mnv,
            src/testdir/test_regexp_latin.mnv, src/testdir/test_registers.mnv,
            src/testdir/test_rename.mnv, src/testdir/test_retab.mnv,
            src/testdir/test_scriptnames.mnv, src/testdir/test_scroll_opt.mnv,
            src/testdir/test_scrollbind.mnv, src/testdir/test_search_stat.mnv,
            src/testdir/test_searchpos.mnv, src/testdir/test_set.mnv,
            src/testdir/test_sha256.mnv, src/testdir/test_shift.mnv,
            src/testdir/test_shortpathname.mnv, src/testdir/test_signs.mnv,
            src/testdir/test_sort.mnv, src/testdir/test_sound.mnv,
            src/testdir/test_source_utf8.mnv, src/testdir/test_spellfile.mnv,
            src/testdir/test_startup.mnv, src/testdir/test_startup_utf8.mnv,
            src/testdir/test_stat.mnv, src/testdir/test_suspend.mnv,
            src/testdir/test_swap.mnv, src/testdir/test_syntax.mnv,
            src/testdir/test_tab.mnv, src/testdir/test_tabline.mnv,
            src/testdir/test_tagcase.mnv, src/testdir/test_tagjump.mnv,
            src/testdir/test_taglist.mnv, src/testdir/test_termcodes.mnv,
            src/testdir/test_termencoding.mnv, src/testdir/test_terminal.mnv,
            src/testdir/test_terminal2.mnv, src/testdir/test_terminal3.mnv,
            src/testdir/test_terminal_fail.mnv,
            src/testdir/test_true_false.mnv,
            src/testdir/test_utf8_comparisons.mnv,
            src/testdir/test_vartabs.mnv, src/testdir/test_version.mnv,
            src/testdir/test_mnv9_expr.mnv, src/testdir/test_winbar.mnv,
            src/testdir/test_winbuf_close.mnv,
            src/testdir/test_window_cmd.mnv, src/testdir/test_window_id.mnv,
            src/testdir/test_windows_home.mnv, src/testdir/test_wnext.mnv,
            src/testdir/test_wordcount.mnv, src/testdir/test_writefile.mnv,
            src/testdir/test_xxd.mnv

Patch 8.2.1433
Problem:    MNV9: cannot mingle comments in multi-line lambda.
Solution:   Skip over NULL lines. (closes #6694)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1434
Problem:    MNV9: crash when lambda uses outer function argument.
Solution:   Set the flag that the outer context is used.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1435
Problem:    MNV9: always converting to string for ".." leads to mistakes.
Solution:   Only automatically convert simple types.
Files:      runtime/doc/mnv9.txt, src/mnv9compile.c, src/mnv9.h,
            src/mnv9execute.c, src/proto/mnv9execute.pro, src/eval.c,
            src/evalfunc.c, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.1436
Problem:    Function implementing :substitute has unexpected name.
Solution:   Rename from do_sub() to ex_substitute().
Files:      src/ex_cmds.c, src/proto/ex_cmds.pro, src/ex_docmd.c,
            src/ex_cmds.h

Patch 8.2.1437
Problem:    MNV9: 'statusline' is evaluated using MNV9 script syntax.
Solution:   Always use legacy script syntax.
Files:      src/eval.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1438
Problem:    Missing tests for interrupting script execution from debugger.
Solution:   Add tests. (Yegappan Lakshmanan, closes #6697)
Files:      src/testdir/test_debugger.mnv

Patch 8.2.1439
Problem:    Tiny and small builds have no test coverage.
Solution:   Restore tests that do not depend on the +eval feature.
            (Ken Takata, closes #6696)
Files:      .travis.yml, Filelist, Makefile, runtime/doc/testing.txt,
            src/Make_mvc.mak, src/Makefile, src/testdir/Make_all.mak,
            src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak,
            src/testdir/Make_ming.mak, src/testdir/Make_vms.mms,
            src/testdir/Makefile, src/testdir/runtest.mnv,
            src/testdir/test1.in, src/testdir/test1.ok, src/testdir/test20.in,
            src/testdir/test20.ok, src/testdir/test21.in,
            src/testdir/test21.ok, src/testdir/test22.in,
            src/testdir/test22.ok, src/testdir/test23.in,
            src/testdir/test23.ok, src/testdir/test24.in,
            src/testdir/test24.ok, src/testdir/test25.in,
            src/testdir/test25.ok, src/testdir/test26.in,
            src/testdir/test26.ok, src/testdir/test27.in,
            src/testdir/test27.ok, src/testdir/test_options.mnv

Patch 8.2.1440
Problem:    Debugger code insufficiently tested.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #6700)
Files:      src/testdir/test_debugger.mnv, src/testdir/test_mnvscript.mnv

Patch 8.2.1441
Problem:    Running tests in tiny version gives error for summarize.mnv.
Solution:   Set 'cpoptions' to allow for line continuation.  Restore
            redirecting test output to /dev/null.
Files:      src/testdir/summarize.mnv, src/testdir/Makefile

Patch 8.2.1442
Problem:    Outdated references to the Mac Carbon GUI.
Solution:   Remove or update references. (Yee Cheng Chin, closes #6703)
Files:      READMEdir/README_extra.txt, src/Makefile, src/configure.ac,
            src/auto/configure, src/gui_haiku.cc, src/os_macosx.m,
            src/testdir/test_iminsert.mnv, src/mnv.h

Patch 8.2.1443
Problem:    MNV9: crash when interrupting a nested :def function.
Solution:   Push a dummy return value onto the stack. (closes #6701)
Files:      src/mnv9execute.c

Patch 8.2.1444
Problem:    Error messages are spread out and names can be confusing.
Solution:   Start moving error messages to a separate file and use clear
            names.
Files:      Filelist, src/mnv.h, src/globals.h, src/errors.h, src/Makefile,
            src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms,
            src/dict.c, src/evalvars.c, src/ex_docmd.c, src/list.c,
            src/userfunc.c, src/mnv9compile.c, src/mnv9execute.c,
            src/mnv9script.c, src/mnv9type.c

Patch 8.2.1445
Problem:    MNV9: function expanded name is cleared when sourcing a script
            again.
Solution:   Only clear the expanded name when deleting the function.
            (closes #6707)
Files:      src/userfunc.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1446
Problem:    MNV9: line number in error message is not correct.
Solution:   Set SOURCING_LNUM before calling emsg(). (closes #6708)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1447
Problem:    MNV9: return type of keys() is list<any>.
Solution:   Should be list<string>. (closes #6711)
Files:      src/evalfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1448
Problem:    Test 77a for VMS depends on small.mnv which does not exist.
Solution:   Use the 'silent while 0" trick. (issue #6696)
Files:      src/testdir/test77a.in

Patch 8.2.1449
Problem:    Some test makefiles delete files that are not generated.
Solution:   Remove the deletion commands.
Files:      src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
            src/testdir/Make_amiga.mak, src/testdir/Make_vms.mms

Patch 8.2.1450
Problem:    MNV9: no check that script-local items don't become global.
Solution:   Add a test.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.1451
Problem:    MNV9: list type at script level only uses first item.
Solution:   Use all members, like in a compiled function. (closes #6712)
            Also for dictionary.
Files:      src/mnv9type.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1452
Problem:    MNV9: dead code in to_name_end().
Solution:   Remove check for lambda and dict, it won't be used.
Files:      src/mnv9compile.c

Patch 8.2.1453
Problem:    MNV9: failure to compile lambda not tested.
Solution:   Add a test case.
Files:      src/testdir/test_mnv9_expr.mnv

Patch 8.2.1454
Problem:    MNV9: failure invoking lambda with wrong arguments.
Solution:   Handle invalid arguments.  Add a test.
Files:      src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.1455
Problem:    MNV9: crash when using typecast before constant.
Solution:   Generate constant before checking type.  Add tets.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1456
Problem:    MS-Windows: test files are not deleted.
Solution:   use "del" instead of $(DEL).
Files:      src/testdir/Make_dos.mak

Patch 8.2.1457
Problem:    MNV9: the output of :disassemble cannot be interrupted.
Solution:   Check got_int. (closes #6715)
Files:      src/mnv9execute.c

Patch 8.2.1458
Problem:    .gawk files not recognized.
Solution:   Recognize .gawk files. (Doug Kearns)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.1459
Problem:    MNV9: declaring a script variable at the script level does not
            infer the type.
Solution:   Get the type from the value. (closes #6716)
Files:      src/evalvars.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1460
Problem:    Error messages are spread out.
Solution:   Move more messages into errors.h.
Files:      src/errors.h, src/globals.h, src/mnv9compile.c, src/mnv9execute.c,
            src/mnv9script.c, src/mnv9type.c, src/scriptfile.c, src/ex_cmds.c,
            src/ex_docmd.c, src/match.c, src/eval.c, src/evalvars.c,
            src/userfunc.c, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_func.mnv, src/testdir/test_mnv9_script.mnv

Patch 8.2.1461
Problem:    MNV9: string indexes are counted in bytes.
Solution:   Use character indexes. (closes #6574)
Files:      runtime/doc/eval.txt, src/eval.c, src/proto/eval.pro,
            src/mnv9execute.c, src/eval.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1462
Problem:    MNV9: string slice not supported yet.
Solution:   Add support for string slicing.
Files:      src/errors.h, src/mnv9compile.c, src/mnv9.h, src/mnv9execute.c,
            src/eval.c, src/proto/eval.pro, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.1463
Problem:    MNV9: list slice not supported yet.
Solution:   Add support for list slicing.
Files:      src/mnv9compile.c, src/mnv9.h, src/mnv9execute.c, src/eval.c,
            src/list.c, src/proto/list.pro, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.1464
Problem:    MNV9: build warning for unused variable.
Solution:   Delete the variable declaration.
Files:      src/mnv9execute.c

Patch 8.2.1465
Problem:    MNV9: subscript not handled properly.
Solution:   Adjust error message.  Remove dead code.  Disallow string to
            number conversion in scripts.
Files:      src/errors.h, src/mnv9compile.c, src/mnv9execute.c, src/eval.c,
            src/typval.c, src/list.c, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1466
Problem:    MNV9: cannot index or slice a variable with type "any".
Solution:   Add runtime index and slice.
Files:      src/eval.c, src/proto/eval.pro, src/mnv9compile.c,
            src/mnv9execute.c, src/mnv9.h, src/errors.h, src/list.c,
            src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1467
Problem:    MNV9: :echomsg doesn't like a dict argument.
Solution:   Convert arguments like in legacy script. (closes #6717)
Files:      src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1468
Problem:    MNV9: invalid error for missing white space.
Solution:   Don't skip over white space after index. (closes #6718)
Files:      src/eval.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1469
Problem:    MNV9: cannot assign string to string option.
Solution:   Change checks for option value. (closes #6720)
Files:      src/evalvars.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1470
Problem:    Errors in spell file not tested.
Solution:   Add test for spell file errors. (Yegappan Lakshmanan,
            closes #6721)
Files:      src/testdir/test_spellfile.mnv

Patch 8.2.1471
Problem:    :const only locks the variable, not the value.
Solution:   Lock the value as ":lockvar 1 var" would do. (closes #6719)
Files:      src/evalvars.c, src/testdir/test_const.mnv

Patch 8.2.1472
Problem:    ":argdel" does not work like ":.argdel" as documented. (Alexey
            Demin)
Solution:   Make ":argdel" work like ":.argdel". (closes #6727)
            Also fix giving the error "0 more files to edit".
Files:      src/arglist.c, src/ex_docmd.c, src/testdir/test_arglist.mnv

Patch 8.2.1473
Problem:    Items in a list given to :const can still be modified.
Solution:   Work like ":lockvar! name" but don't lock referenced items.
            Make locking a blob work.
Files:      runtime/doc/eval.txt, src/evalvars.c, src/eval.c,
            src/testdir/test_const.mnv

Patch 8.2.1474
Problem:    /usr/lib/udef/rules.d not recognized as udevrules.
Solution:   Adjust match pattern. (Haochen Tong, closes 36722)
Files:      runtime/autoload/dist/ft.mnv, src/testdir/test_filetype.mnv

Patch 8.2.1475
Problem:    MNV9: can't use v:true for option flags.
Solution:   Add tv_get_bool_chk(). (closes #6725)
Files:      src/typval.c, src/proto/typval.pro, src/channel.c

Patch 8.2.1476 (after 8.2.1474)
Problem:    Filetype test fails on MS-Windows.
Solution:   Remove "^" from pattern.
Files:      runtime/autoload/dist/ft.mnv

Patch 8.2.1477
Problem:    MNV9: error when using bufnr('%').
Solution:   Don't give an error for using a string argument. (closes #6723)
Files:      src/evalbuffer.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1478
Problem:    MNV9: cannot use "true" for some popup options.
Solution:   Add dict_get_bool(). (closes #6725)
Files:      src/dict.c, src/proto/dict.pro, src/popupwin.c

Patch 8.2.1479
Problem:    MNV9: error for list index uses wrong line number.
Solution:   Set source line number. (closes #6724)  Add a way to assert the
            line number of the error with assert_fails().
Files:      runtime/doc/testing.txt, src/mnv9execute.c, src/testing.c,
            src/evalfunc.c, src/message.c, src/globals.h, src/testdir/mnv9.mnv,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.1480
Problem:    MNV9: skip expression in search() gives error.
Solution:   use tv_get_bool() eval_expr_to_bool(). (closes #6729)
Files:      src/eval.c, src/typval.c, src/proto/typval.pro,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.1481
Problem:    MNV9: line number reported with error may be wrong.
Solution:   Check line number in tests.
Files:      src/testdir/test_mnv9_expr.mnv, src/testdir/mnv9.mnv,
            src/mnv9execute.c

Patch 8.2.1482
Problem:    MNV9: crash when using a nested lambda.
Solution:   Do not clear the growarray when not evaluating.  Correct pointer
            when getting the next line. (closes #6731)
Files:      src/eval.c, src/scriptfile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1483
Problem:    MNV9: error for using special as number when returning "false"
            from a popup filter.
Solution:   Use tv_get_bool(). (closes #6733)
Files:      src/popupwin.c

Patch 8.2.1484
Problem:    Flaky failure in assert_fails().
Solution:   Only used fourth argument if there is a third argument.
Files:      src/testing.c

Patch 8.2.1485
Problem:    MNV9: readdirex() expression doesn't accept bool.
Solution:   Accept both -1 and bool. (closes #6737)
Files:      src/filepath.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1486
Problem:    MNV9: readdir() expression doesn't accept bool.
Solution:   Merge with code for readdirex(). (closes #6737)
Files:      src/filepath.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1487
Problem:    Travis: installing snd-dummy is not always useful.
Solution:   Only install snd-dummy on amd64. (Ozaki Kiichi, closes #6738)
Files:      .travis.yml, ci/load-snd-dummy.sh

Patch 8.2.1488
Problem:    Text does not scroll when inserting above first line.
Solution:   Adjust off-by-one error. (Ken Takata, closes #6739)
Files:      src/drawscreen.c, src/testdir/test_display.mnv,
            src/testdir/dumps/Test_display_scroll_at_topline.dump

Patch 8.2.1489
Problem:    MNV9: error when setting an option with setbufvar().
Solution:   Do not get a number from a string value. (closes #6740)
Files:      src/evalvars.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1490
Problem:    MNV9: using /= with float and number doesn't work.
Solution:   Better support assignment with operator. (closes #6742)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1491
Problem:    MNV9: crash when compiling heredoc lines start with comment.
Solution:   Skip over NULL pointers. Do not remove comment and empty lines
            when fetching function lines. (closes #6743)
Files:      src/mnv9compile.c, src/scriptfile.c, src/proto/scriptfile.pro,
            src/structs.h, src/ex_docmd.c, src/proto/ex_docmd.pro,
            src/ex_cmds.h, src/autocmd.c, src/proto/autocmd.pro,
            src/ex_getln.c, src/proto/ex_getln.pro, src/userfunc.c,
            src/proto/userfunc.pro, src/evalfunc.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1492
Problem:    Build failures.
Solution:   Move typedef out of #ifdef.  Adjust argument types.  Discover
            America.
Files:      src/structs.h, src/ex_docmd.c

Patch 8.2.1493
Problem:    Not enough test coverage for the spell file handling.
Solution:   Add spell file tests. (Yegappan Lakshmanan, closes #6728)
Files:      src/spellfile.c, src/testdir/test_spellfile.mnv

Patch 8.2.1494
Problem:    Missing change to calling eval_getline().
Solution:   Change last argument.
Files:      src/eval.c

Patch 8.2.1495
Problem:    "make clean" may delete too many files.
Solution:   Do not delete $APPDIR. (closes #6751)
Files:      src/Makefile

Patch 8.2.1496
Problem:    MNV9: cannot use " #" in a mapping.
Solution:   Do not remove a comment with the EX_NOTRLCOM flag. (closes #6746)
Files:      src/ex_docmd.c, src/mnv9compile.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.1497
Problem:    CursorHold test is flaky. (Jakub Kądziołka)
Solution:   Use WaitForAssert() (closes #6754)
Files:      src/testdir/test_autocmd.mnv

Patch 8.2.1498
Problem:    On slow systems tests can be flaky.
Solution:   Use TermWait() instead of term-wait(). (Yegappan Lakshmanan,
            closes #6756)
Files:      src/testdir/test_digraph.mnv, src/testdir/test_display.mnv,
            src/testdir/test_popupwin.mnv, src/testdir/test_termcodes.mnv,
            src/testdir/test_terminal.mnv, src/testdir/test_terminal3.mnv,
            src/testdir/test_writefile.mnv

Patch 8.2.1499
Problem:    MNV9: error when using "$" with col().
Solution:   Reorder getting the column value. (closes #6744)
Files:      src/eval.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1500
Problem:    MNV9: error when using address without a command.
Solution:   Execute the range itself. (closes #6747)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1501
Problem:    MNV9: concatenating to constant reverses order.
Solution:   Generate constant before option, register and environment
            variable. (closes #6757)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1502
Problem:    MNV9: can use += with a :let command at script level.
Solution:   Give an error.
Files:      src/evalvars.c, src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.1503
Problem:    MNV9: error for an autocmd defined in a :def function in legacy
            MNV script.
Solution:   Don't check the variable type. (closes #6758)
Files:      src/mnv9script.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1504
Problem:    MNV9: white space checks are only done for a :def function.
Solution:   Also do checks at the script level.  Adjust the name of a few
            error messages.
Files:      src/userfunc.c, src/errors.h, src/dict.c, src/list.c,
            src/mnv9compile.c, src/mnv9script.c, src/mnv9type.c,
            src/evalvars.c, src/testdir/test_mnv9_expr.mnv,
            src/testdir/mnv9.mnv

Patch 8.2.1505
Problem:    Not all file read and writecode is tested.
Solution:   Add a few tests. (Dominique Pellé, closes #6764)
Files:      src/testdir/test_eval_stuff.mnv, src/testdir/test_fnamemodify.mnv,
            src/testdir/test_functions.mnv

Patch 8.2.1506
Problem:    MNV9: no error when using a number other than 0 or 1 as bool.
Solution:   Check the number is 0 or 1.
Files:      src/errors.h, src/typval.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1507
Problem:    Using malloc() directly.
Solution:   Use ALLOC_ONE().  Remove superfluous typecast.  (Hussam al-Homsi,
            closes #6768)
Files:      src/eval.c, src/memline.c, src/mnvrun.c

Patch 8.2.1508
Problem:    Not all debugger commands covered by tests.
Solution:   Add tests for going up/down in the stack. (Ben Jackson,
            closes #6765)
Files:      src/testdir/test_debugger.mnv

Patch 8.2.1509
Problem:    Vertical separator is cleared when dragging a popup window using a
            multi-byte character for the border.
Solution:   Only clear the character before the window if it is using a
            multi-byte character. (closes #6766)
Files:      src/screen.c

Patch 8.2.1510
Problem:    Using "var" in a :def function may refer to a legacy MNV script
            variable.
Solution:   Require using "s:" to refer to a legacy MNV script variable.
            (closes #6771)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1511
Problem:    Putting a string in Visual block mode ignores multi-byte
            characters.
Solution:   Adjust the column for Visual block mode. (closes #6767)
Files:      src/register.c, src/testdir/test_visual.mnv

Patch 8.2.1512
Problem:    Failure after ternary expression fails.
Solution:   Restore eval_flags. (Yasuhiro Matsumoto, closes #6776)
Files:      src/eval.c, src/testdir/test_mnvscript.mnv,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.1513
Problem:    Cannot interrupt shell used for filename expansion. (Dominique
            Pellé)
Solution:   Do set tmode in mch_delay(). (closes #6770)
Files:      src/mnv.h, src/os_unix.c, src/proto/os_unix.pro, src/term.c,
            src/channel.c, src/if_cscope.c, src/os_amiga.c, src/ui.c,
            src/proto/os_amiga.pro, src/os_win32.c, src/proto/os_win32.pro

Patch 8.2.1514
Problem:    Multibyte vertical separator is cleared when dragging a popup
            window using a multi-byte character for the border.
Solution:   Only clear the character before the window if it is double width.
            (closes #6766)
Files:      src/screen.c

Patch 8.2.1515
Problem:    MNV9: can create s:var in legacy script but cannot unlet.
Solution:   Allow :unlet for legacy script var.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1516
Problem:    MNV9: error for :exe has wrong line number.
Solution:   Set line number before calling do_cmdline_cmd(). (closes #6774)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1517
Problem:    Cannot easily get the character under the cursor.
Solution:   Add the {chars} argument to strpart().
Files:      runtime/doc/eval.txt, src/evalfunc.c,
            src/testdir/test_functions.mnv

Patch 8.2.1518
Problem:    MNV9: cannot assign to local option.
Solution:   Skip over "&l:" and "&g:". (closes #6749)
Files:      src/ex_docmd.c, src/proto/ex_docmd.pro, src/testdir/mnv9.mnv,
            src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1519
Problem:    MNV9: Ex command default range is not set.
Solution:   When range is not given use default. (closes #6779)
Files:      src/ex_docmd.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1520
Problem:    MNV9: CTRL-] used in :def function does not work.
Solution:   Omit count or prepend colon. (closes #6769)
Files:      src/normal.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.1521
Problem:    Reading past end of buffer when reading spellfile. (Yegappan
            Lakshmanan)
Solution:   Store the byte length and check for it.
Files:      src/spellfile.c, src/spell.h

Patch 8.2.1522
Problem:    Not enough test coverage for the spell file handling.
Solution:   Add spell file tests. (Yegappan Lakshmanan, closes #6763)
Files:      src/testdir/test_spellfile.mnv

Patch 8.2.1523
Problem:    Still not enough test coverage for the spell file handling.
Solution:   Add spell file tests. (Yegappan Lakshmanan, closes #6790)
Files:      src/testdir/test_spellfile.mnv

Patch 8.2.1524
Problem:    No longer get an error for string concatenation with float.
            (Tsuyoshi Cho)
Solution:   Only convert float for MNV9 script. (closes #6787)
Files:      src/eval.c, src/testdir/test_eval_stuff.mnv

Patch 8.2.1525
Problem:    Messages from tests were not always displayed.
Solution:   Always show messages, the timing is always useful. (Ken Takata,
            closes #6792)
Files:      src/testdir/Make_dos.mak, src/testdir/Make_ming.mak,
            src/testdir/Makefile

Patch 8.2.1526
Problem:    Line in testdir Makefile got commented out. (Christian Brabandt)
Solution:   Revert.
Files:      src/testdir/Makefile

Patch 8.2.1527
Problem:    MNV9: cannot use a function name as a function reference at script
            level.
Solution:   Check if a name is a function name. (closes #6789)
Files:      src/evalvars.c, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1528
Problem:    MNV9: :endif not found after "if false".
Solution:   When skipping still check for a following command. (closes #6797)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1529
Problem:    MNV9: :elseif may be compiled when not needed.
Solution:   Do evaluate the :elseif expression.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1530
Problem:    MNV9: test fails on MS-Windows.
Solution:   Skip Ex command inside "if false".
Files:      src/mnv9compile.c

Patch 8.2.1531
Problem:    MNV9: test still fails on MS-Windows.
Solution:   When skipping expect function to be NULL.
Files:      src/mnv9compile.c

Patch 8.2.1532
Problem:    Compiler warning for conversion of size_t to long.
Solution:   Add type cast.
Files:      src/eval.c

Patch 8.2.1533
Problem:    MNV9: error when passing getreginfo() result to setreg().
Solution:   Use dict_get_bool() for "isunnamed". (closes #6784)
Files:      src/evalfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1534
Problem:    MNV9: type error for argument type is not at call position.
Solution:   Set the context and stack after checking the arguments.
            (issue #6785)
Files:      src/userfunc.c, src/mnv9execute.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1535
Problem:    It is not possible to specify cell widths of characters.
Solution:   Add setcellwidths().
Files:      runtime/doc/eval.txt, runtime/doc/options.txt,
            runtime/doc/usr_41.txt, src/evalfunc.c, src/mbyte.c,
            src/proto/mbyte.pro, src/errors.h, src/testdir/test_utf8.mnv

Patch 8.2.1536
Problem:    Cannot get the class of a character; emoji widths are wrong in
            some environments.
Solution:   Add charclass(). Update some emoji widths.  Add script to check
            emoji widths.
Files:      Filelist, runtime/doc/eval.txt, runtime/doc/usr_41.txt,
            src/evalfunc.c, src/mbyte.c, src/proto/mbyte.pro,
            src/testdir/emoji_list.mnv, src/testdir/test_functions.mnv

Patch 8.2.1537
Problem:    Memory access error when using setcellwidths().
Solution:   Use array and pointers correctly.
Files:      src/mbyte.c, src/errors.h, src/testdir/test_utf8.mnv

Patch 8.2.1538
Problem:    Python: iteration over mnv objects fails to keep reference.
Solution:   Keep a reference for the object. (Paul Ollis, closes #6803,
            closes #6806)
Files:      src/if_py_both.h, src/testdir/test_python3.mnv

Patch 8.2.1539
Problem:    Using invalid script ID causes a crash.
Solution:   Check the script ID to be valid. (closes #6804)
Files:      src/globals.h, src/evalvars.c, src/profiler.c, src/scriptfile.c,
            src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1540
Problem:    The user cannot try out emoji character widths.
Solution:   Move the emoji script to the runtime/tools directory.
Files:      Filelist, src/testdir/emoji_list.mnv, runtime/tools/emoji_list.mnv

Patch 8.2.1541
Problem:    MNV9: cannot find function reference for s:Func.
Solution:   Recognize <SNR> prefix. (closes #6805)
Files:      src/userfunc.c, src/mnv9execute.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1542
Problem:    MNV9: test with invalid SID does not work in the GUI.
Solution:   Skip the test in the GUI.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.1543
Problem:    MNV9: test with invalid SID is skipped in the GUI.
Solution:   Read the CTRL-C that feedkeys() put in typeahead.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.1544
Problem:    Cannot translate messages in a MNV script.
Solution:   Add gettext().  Try it out for a few messages in the options
            window.
Files:      Filelist, src/po/Makefile, src/po/README.txt, runtime/optwin.mnv,
            src/evalfunc.c, src/po/tojavascript.mnv, src/po/fixfilenames.mnv,
            runtime/doc/eval.txt, runtime/doc/usr_41.txt

Patch 8.2.1545
Problem:    ch_logfile() is unclear about closing when forking.
Solution:   Adjust the log messages.
Files:      src/channel.c, src/os_unix.c

Patch 8.2.1546
Problem:    Build rule for MNV.app is unused.
Solution:   Delete the related build rules.
Files:      src/Makefile

Patch 8.2.1547
Problem:    Various comment problems.
Solution:   Update comments.
Files:      src/arglist.c, src/map.c, src/mbyte.c, src/tag.c, src/undo.c,
            src/testdir/README.txt, src/testdir/test_put.mnv,
            src/libvterm/README

Patch 8.2.1548
Problem:    Cannot move position of "%%" in message translations. (Emir Sarı)
Solution:   Improve the check script.
Files:      src/po/check.mnv

Patch 8.2.1549
Problem:    The "r" command fails for keys with modifiers if 'esckeys' is off
            and modifyOtherKeys is used. (Lauri Tirkkonen)
Solution:   Temporarily disable bracketed paste and modifyOtherKeys if
            'esckeys' is off. (closes #6809)
Files:      src/normal.c

Patch 8.2.1550
Problem:    MNV9: bufname('%') gives an error.
Solution:   Only give an error for wrong argument type. (closes #6807)
Files:      src/evalbuffer.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1551
Problem:    MNV9: error for argument type does not mention the number.
Solution:   Pass the argument number to where the error is given.
Files:      src/mnv9type.c, src/proto/mnv9type.pro, src/mnv9compile.c,
            src/mnv9execute.c, src/mnv9script.c, src/eval.c,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.1552
Problem:    Warnings from asan with clang-11. (James McCoy)
Solution:   Avoid using a NULL pointer. (issue #6811)
Files:      src/fold.c

Patch 8.2.1553 (after 8.2.1552)
Problem:    Crash in edit test.
Solution:   Avoid using invalid pointer.
Files:      src/fold.c

Patch 8.2.1554
Problem:    Crash in normal test.
Solution:   Skip adjusting marks if there are no folds.
Files:      src/fold.c

Patch 8.2.1555
Problem:    Not all tests are executed on Github Actions.
Solution:   Copy "src" to "src2" earlier. Recognize "src2" in a couple more
            places.  Add two tests to the list of flaky tests. (Ken Takata,
            closes #6798)
Files:      .github/workflows/ci-windows.yaml, src/testdir/runtest.mnv,
            src/testdir/test_python2.mnv, src/testdir/test_python3.mnv

Patch 8.2.1556
Problem:    Cursorline highlighting always overrules sign highlighting.
Solution:   Combine the highlighting, use the priority to decide how.
            (closes #6812)
Files:      runtime/doc/sign.txt, src/structs.h, src/drawline.c,
            runtime/pack/dist/opt/termdebug/plugin/termdebug.mnv,
            src/testdir/test_signs.mnv,
            src/testdir/dumps/Test_sign_cursor_5.dump,
            src/testdir/dumps/Test_sign_cursor_6.dump

Patch 8.2.1557
Problem:    Crash in :mnvgrep when started as "mnv -n". (Raul Segura)
Solution:   Check mfp pointer. (Yegappan Lakshmanan, closes #6827)
Files:      src/quickfix.c, src/testdir/test_quickfix.mnv

Patch 8.2.1558
Problem:    Signs test fails.
Solution:   Add missing change to sign.c.
Files:      src/sign.c

Patch 8.2.1559
Problem:    s390x tests work again.
Solution:   re-enable s390x tests. (James McCoy, closes #6829)
Files:      .travis.yml

Patch 8.2.1560
Problem:    Using NULL pointers in some code. (James McCoy)
Solution:   Avoid adding to a NULL pointer.  Use byte as unsigned.
Files:      src/fold.c, src/eval.c, src/spellsuggest.c, src/spellfile.c,
            src/mnv9compile.c

Patch 8.2.1561
Problem:    Using NULL pointers in fold code.
Solution:   Avoid using a NULL pointer. (Dominique Pellé, closes #6831,
            closes #6831)
Files:      src/fold.c

Patch 8.2.1562
Problem:    MNV9: error when using "%" where a buffer is expected.
Solution:   Add tv_get_buf_from_arg(). (closes #6814)
Files:      src/typval.c, src/proto/typval.pro, src/evalbuffer.c,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.1563
Problem:    MNV9: error when using '%" with setbufvar() or getbufvar().
Solution:   Use tv_get_buf_from_arg(). (closes #6816)
Files:      src/evalvars.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1564
Problem:    A few remaining errors from ubsan.
Solution:   Avoid the warnings. (Dominique Pellé, closes #6837)
Files:      src/spellfile.c, src/spellsuggest.c, src/mnvinfo.c

Patch 8.2.1565
Problem:    Spellfile test sometimes fails.
Solution:   Check running into the end of the file.
Files:      src/spellfile.c

Patch 8.2.1566
Problem:    Not all Bazel files are recognized.
Solution:   Add *.bazel and *.BUILD. (closes #6836)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.1567
Problem:    No example to use ubsan with clang.
Solution:   Add example commands. (Dominique Pellé, issue #6811)
Files:      src/Makefile

Patch 8.2.1568
Problem:    prop_find() skips properties in the same line if "skipstart" is
            used.
Solution:   Use "continue" instead of "break". (closes #6840)
Files:      src/textprop.c, src/testdir/test_textprop.mnv

Patch 8.2.1569
Problem:    MNV9: fixes for functions not tested; failure in getchangelist().
Solution:   Add tests. (closes #6813, closes #6815, closes #6817)
Files:      src/evalfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1570
Problem:    Configure check for dirfd() does not work on HPUX. (Michael Osipov)
Solution:   Use AC_TRY_LINK instead of AC_TRY_COMPILE. (closes #6838)
Files:      src/configure.ac, src/auto/configure, src/fileio.c, src/globals.h

Patch 8.2.1571
Problem:    MNV9: count() third argument cannot be "true".
Solution:   Use tv_get_bool_chk(). (closes #6818)
Files:      src/typval.c, src/list.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1572
Problem:    MNV9: expand() does not take "true" as argument.
Solution:   Use tv_get_bool_chk().  (closes #6819)
Files:      src/evalfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1573
Problem:    MNV9: getreg() does not take "true" as argument.
Solution:   Use tv_get_bool_chk().  (closes #6820)
Files:      src/evalfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1574
Problem:    MNV9: glob() does not take "true" as argument.
Solution:   Use tv_get_bool_chk(). (closes #6821)
Files:      src/filepath.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1575
Problem:    MNV9: globpath() does not take "true" as argument.
Solution:   Use tv_get_bool_chk(). (closes #6821)
Files:      src/filepath.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1576
Problem:    MNV9: index() does not take "true" as argument.
Solution:   Use tv_get_bool_chk(). (closes #6823)
Files:      src/evalfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1577
Problem:    MNV9: hasmapto(), mapcheck() and maparg() do not take "true" as
            argument.
Solution:   Use tv_get_bool(). (closes #6822, closes #6824)
Files:      src/evalfunc.c, src/map.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1578
Problem:    MNV9: popup_clear() does not take "true" as argument.
Solution:   Use tv_get_bool(). (closes #6826)
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv

Patch 8.2.1579
Problem:    Reports from asan are not optimal.
Solution:   Use clang with ubsan. (James McCoy, closes #6811)
Files:      .travis.yml

Patch 8.2.1580
Problem:    Wildmenu does not work properly.
Solution:   Do not call may_do_incsearch_highlighting() if completion is in
            progress.
Files:      src/ex_getln.c, src/testdir/test_cmdline.mnv,
            src/testdir/dumps/Test_wildmenu_1.dump,
            src/testdir/dumps/Test_wildmenu_2.dump,
            src/testdir/dumps/Test_wildmenu_3.dump,
            src/testdir/dumps/Test_wildmenu_4.dump

Patch 8.2.1581
Problem:    Using line() for global popup window doesn't work.
Solution:   Set tabpage to "curtab". (closes #6847)
Files:      src/evalwindow.c, src/testdir/test_popupwin.mnv

Patch 8.2.1582
Problem:    The channel log does not show typed text.
Solution:   Add raw typed text to the log file.
Files:      src/ui.c, src/os_win32.c

Patch 8.2.1583
Problem:    MS-Windows: cannot easily measure code coverage.
Solution:   Add the COVERAGE option. (Ken Takata, closes #6842)
Files:      src/Make_cyg_ming.mak

Patch 8.2.1584
Problem:    MNV9: cannot use "true" for "skipstart" in prop_find().
Solution:   Use dict_get_bool() instead of tv_get_number(). (closes #6852)
Files:      src/textprop.c, src/testdir/test_textprop.mnv

Patch 8.2.1585
Problem:    Messages in errors.h not translated, xgettext on MS-Windows not
            fully supported.
Solution:   Add errors.h to list of input files.  Update MS-Windows makefiles
            to improve message translations. (Ken Takata, closes #6858)
Files:      src/po/Make_cyg.mak, src/po/Make_ming.mak, src/po/Make_mvc.mak,
            src/po/Makefile, src/po/README.txt, src/po/fixfilenames.mnv

Patch 8.2.1586
Problem:    :resize command not fully tested.
Solution:   Add a couple of tests. (Dominique Pellé, closes #6857)
Files:      src/testdir/test_window_cmd.mnv

Patch 8.2.1587
Problem:    Loop for handling keys for the command line is too long.
Solution:   Move wild menu handling to separate functions. (Yegappan
            Lakshmanan, closes #6856)
Files:      src/cmdexpand.c, src/proto/cmdexpand.pro, src/ex_getln.c

Patch 8.2.1588
Problem:    Cannot read back the prompt of a prompt buffer.
Solution:   Add prompt_getprompt(). (Ben Jackson, closes #6851)
Files:      runtime/doc/channel.txt, runtime/doc/eval.txt,
            runtime/doc/usr_41.txt, src/channel.c, src/edit.c, src/evalfunc.c,
            src/proto/channel.pro, src/proto/edit.pro,
            src/testdir/test_prompt_buffer.mnv

Patch 8.2.1589
Problem:    Term_start() options for size are overruled by 'termwinsize'.
            (Sergey Vlasov)
Solution:   Set 'termwinsize' to the specified size.
Files:      src/terminal.c, src/testdir/test_terminal2.mnv,
            src/testdir/term_util.mnv

Patch 8.2.1590
Problem:    MNV9: bufnr() doesn't take "true" argument.
Solution:   use tv_get_bool_chk(). (closes #6863)
Files:      src/evalbuffer.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1591
Problem:    Using winheight('.') in tests works but is wrong.
Solution:   Use winheight(0). (issue #6863)
Files:      src/testdir/test_functions.mnv, src/testdir/test_quickfix.mnv

Patch 8.2.1592
Problem:    MNV9: passing "true" to char2nr() fails.
Solution:   Use tv_get_bool_chk(). (closes #6865)
Files:      src/evalfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1593
Problem:    Tests do not check the error number properly.
Solution:   Add a colon after the error number. (closes #6869)
Files:      src/testdir/test_assert.mnv, src/testdir/test_autocmd.mnv,
            src/testdir/test_backspace_opt.mnv, src/testdir/test_channel.mnv,
            src/testdir/test_clientserver.mnv, src/testdir/test_cmdline.mnv,
            src/testdir/test_const.mnv, src/testdir/test_cscope.mnv,
            src/testdir/test_eval_stuff.mnv, src/testdir/test_functions.mnv,
            src/testdir/test_global.mnv, src/testdir/test_gui.mnv,
            src/testdir/test_hlsearch.mnv, src/testdir/test_lambda.mnv,
            src/testdir/test_let.mnv, src/testdir/test_listdict.mnv,
            src/testdir/test_move.mnv, src/testdir/test_normal.mnv,
            src/testdir/test_popupwin.mnv, src/testdir/test_put.mnv,
            src/testdir/test_quickfix.mnv, src/testdir/test_rename.mnv,
            src/testdir/test_search.mnv, src/testdir/test_signs.mnv,
            src/testdir/test_substitute.mnv, src/testdir/test_syntax.mnv,
            src/testdir/test_tagfunc.mnv, src/testdir/test_tagjump.mnv,
            src/testdir/test_taglist.mnv, src/testdir/test_terminal.mnv,
            src/testdir/test_terminal2.mnv, src/testdir/test_textprop.mnv,
            src/testdir/test_timers.mnv, src/testdir/test_true_false.mnv,
            src/testdir/test_user_func.mnv, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_script.mnv, src/testdir/test_mnvscript.mnv,
            src/testdir/test_winbar.mnv, src/testdir/test_winbuf_close.mnv,
            src/testdir/test_window_cmd.mnv, src/testdir/test_writefile.mnv

Patch 8.2.1594
Problem:    Pull requests on github do not notify a maintainer.
Solution:   Add a CODEOWNERS file with a few initial entries.
Files:      Filelist, .github/CODEOWNERS

Patch 8.2.1595
Problem:    Cannot easily see what MNV sends to the terminal.
Solution:   Write output to the channel log if it contains terminal control
            sequences.  Avoid warnings for tputs() argument.
Files:      src/term.c, src/globals.h, src/edit.c, src/normal.c,
            src/optionstr.c

Patch 8.2.1596
Problem:    Using win_screenpos('.') in tests works but is wrong.
Solution:   Use win_screenpos(0).
Files:      src/testdir/test_terminal3.mnv

Patch 8.2.1597
Problem:    The channel source file is too big.
Solution:   Move job related code to a new source file.
Files:      Filelist, src/Makefile, src/Make_mvc.mak, src/Make_cyg_ming.mak,
            src/channel.c, src/proto/channel.pro, src/job.c,
            src/proto/job.pro, src/proto.h, src/edit.c, src/proto/edit.pro,
            src/globals.h, src/configure.ac, src/auto/configure

Patch 8.2.1598
Problem:    Starting a hidden terminal resizes the current window.
Solution:   Do not resize the current window for a hidden terminal.
            (closes #6872)
Files:      src/terminal.c, src/testdir/test_terminal2.mnv

Patch 8.2.1599
Problem:    Missing line end when skipping a long line with :cgetfile.
Solution:   Fix off-by-one error. (closes #6870)
Files:      src/quickfix.c, src/testdir/test_quickfix.mnv

Patch 8.2.1600
Problem:    MNV9: cannot use "true" with deepcopy().
Solution:   Use tv_get_bool_chk(). (closes #6867)
Files:      src/evalfunc.c, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_listdict.mnv

Patch 8.2.1601
Problem:    MNV9: cannot use "true" with garbagecollect().
Solution:   Use tv_get_bool(). (closes #6871)
Files:      src/evalfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1602
Problem:    MNV9: cannot use "true" with getbufinfo().
Solution:   Use dict_get_bool(). (closes #6873)
Files:      src/evalbuffer.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1603
Problem:    MNV9: cannot use "true" with getchar().
Solution:   use tv_get_bool_chk(). (closes #6874)
Files:      src/getchar.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1604
Problem:    MNV9: cannot use "true" with getcompletion().
Solution:   use tv_get_bool_chk(). (closes #6875)
Files:      src/cmdexpand.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1605
Problem:    Default maintainer on github is wrong.
Solution:   Use Bram's account.
Files:      .github/CODEOWNERS

Patch 8.2.1606
Problem:    MNV9: cannot use "true" with has().
Solution:   Use tv_get_bool(). (closes #6876)
Files:      src/evalfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1607
Problem:    MNV9: getchar() test fails on MS-Windows.
Solution:   First consume any available input.
Files:      src/testdir/test_mnv9_func.mnv

Patch 8.2.1608
Problem:    MNV9: getchar() test fails with GUI.
Solution:   Avoid that getchar(0) gets stuck on K_IGNORE.
Files:      src/getchar.c

Patch 8.2.1609
Problem:    MNV9: test fails when build without +channel.
Solution:   Add check for +channel. (closes #6879)
Files:      src/testdir/test_mnv9_expr.mnv

Patch 8.2.1610
Problem:    MNV9: cannot pass "true" to list2str() and str2list().
Solution:   Use tv_get_bool_chk(). (closes #6877)
Files:      src/evalfunc.c, src/list.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1611
Problem:    MNV9: cannot pass "true" to nr2char().
Solution:   use tv_get_bool_chk(). (closes #6878)
Files:      src/evalfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1612
Problem:    MNV9: cannot pass "true" to prop_remove().
Solution:   Use dict_get_bool(). (closes #6853)
Files:      src/textprop.c, src/testdir/test_textprop.mnv

Patch 8.2.1613
Problem:    MNV9: cannot pass "true" to prop_type_add().
Solution:   Use tv_get_bool(). (closes #6850)
Files:      src/textprop.c, src/testdir/test_textprop.mnv

Patch 8.2.1614
Problem:    MNV9: cannot pass "true" to searchcount().
Solution:   Use tv_get_bool_chk(). (closes #6854)
Files:      src/search.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1615
Problem:    MNV9: cannot pass "true" to searchdecl().
Solution:   use tv_get_bool_chk(). (closes #6881)
Files:      src/evalfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1616
Problem:    MNV9: cannot pass "true" to synID().
Solution:   Use tv_get_bool_chk(). (closes #6860)
Files:      src/evalfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1617
Problem:    MNV9: cannot pass "true" to win_splitmove().
Solution:   Use dict_get_bool(). (closes #6862)  Alphabetize test functions.
Files:      src/evalwindow.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1618
Problem:    MNV9: cannot pass "true" to setloclist().
Solution:   Use dict_get_bool(). (closes #6882)
Files:      src/quickfix.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1619
Problem:    MNV9: cannot pass "true" to spellsuggest().
Solution:   Use tv_get_bool_chk(). (closes #6883)
Files:      src/evalfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1620
Problem:    searchcount() test fails.
Solution:   Restore default flag value.
Files:      src/search.c

Patch 8.2.1621
Problem:    Crash when using submatch(0, 1) in substitute().
Solution:   Increment reference count. (closes #6887)
Files:      src/regexp.c, src/testdir/test_substitute.mnv

Patch 8.2.1622
Problem:    Loop to handle keys for the command line is too long.
Solution:   Move code to functions. (Yegappan Lakshmanan, closes #6880)
Files:      src/ex_getln.c

Patch 8.2.1623
Problem:    MNV9: using :call where it is not needed.
Solution:   Remove :call. (closes #6892)
Files:      src/testdir/test_maparg.mnv, src/testdir/test_textprop.mnv,
            src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_expr.mnv, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1624
Problem:    MNV9: cannot pass "true" to split(), str2nr() and strchars().
Solution:   Use tv_get_bool_chk(). (closes #6884, closes #6885, closes #6886)
Files:      src/evalfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1625
Problem:    Compiler warning for use of fptr_T.
Solution:   Make the type less strict.
Files:      src/regexp.c

Patch 8.2.1626
Problem:    Test for strchars() fails with different error number.
Solution:   Adjust the error number.
Files:      src/testdir/test_utf8.mnv

Patch 8.2.1627
Problem:    MNV9: cannot pass "true" to submatch(), term_gettty() and
            term_start()
Solution:   Use tv_get_bool_chk(). (closes #6888, closes #6890, closes #6889)
Files:      src/evalfunc.c, src/terminal.c, src/job.c,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.1628
Problem:    MNV9: cannot pass "true" to timer_paused().
Solution:   Use tv_get_bool(). (closes #6891)
Files:      src/time.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1629
Problem:    Test fails without terminal feature.
Solution:   Check for terminal feature.
Files:      src/testdir/test_mnv9_func.mnv

Patch 8.2.1630
Problem:    Terminal test fails.
Solution:   Correct argument to term_start().  Correct error number.
Files:      src/testdir/test_terminal.mnv, src/testdir/test_terminal2.mnv

Patch 8.2.1631
Problem:    test_fails() does not check the context of the line number.
Solution:   Use another argument to specify the context of the line number.
Files:      runtime/doc/testing.txt, runtime/doc/eval.txt,
            src/testdir/test_mnv9_func.mnv, src/testing.c, src/globals.h,
            src/evalfunc.c, src/message.c

Patch 8.2.1632
Problem:    Not checking the context of test_fails().
Solution:   Add the line number and context arguments.  Give error if
            assert_fails() argument types are wrong.
Files:      src/testing.c, src/errors.h, src/testdir/test_assert.mnv,
            src/testdir/test_mnv9_func.mnv, src/testdir/test_mnv9_script.mnv

Patch 8.2.1633
Problem:    Some error messages are internal but do not use iemsg().
Solution:   Use iemsg(). (Dominique Pellé, closes #6894)
Files:      src/regexp.c, src/regexp_bt.c, src/regexp_nfa.c

Patch 8.2.1634
Problem:    Loop to handle keys for the command line is too long.
Solution:   Move a few more parts to separate functions. (Yegappan Lakshmanan,
            closes #6895)
Files:      src/ex_getln.c, src/testdir/test_cmdline.mnv

Patch 8.2.1635
Problem:    No digraph for 0x2022 BULLET.
Solution:   Use "oo". (Hans Ginzel, closes #6904)
Files:      src/digraph.c, runtime/doc/digraph.txt

Patch 8.2.1636
Problem:    Get stuck if a popup filter causes an error.
Solution:   Check whether the function can be called and does not cause an
            error.  (closes #6902)
Files:      src/structs.h, src/popupwin.c, src/testdir/test_popupwin.mnv
            src/testdir/dumps/Test_popupwin_wrong_name.dump,
            src/testdir/dumps/Test_popupwin_three_errors_1.dump,
            src/testdir/dumps/Test_popupwin_three_errors_2.dump

Patch 8.2.1637
Problem:    MNV9: :put ={expr} does not work inside :def function.
Solution:   Add ISN_PUT. (closes #6397)
Files:      src/mnv9.h, src/mnv9compile.c, src/mnv9execute.c, src/register.c,
            src/proto/register.pro, src/edit.c, src/ex_docmd.c, src/mouse.c,
            src/normal.c, src/testdir/test_mnv9_cmd.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.1638
Problem:    Leaking memory when popup filter function can't be called.
Solution:   Don't return too soon.
Files:      src/popupwin.c

Patch 8.2.1639
Problem:    Options window cannot be translated.
Solution:   Get the translation for "local to" texts once and use them in many
            places. Fix that 'whichwrap' is not a local option. (issue #6800)
Files:      runtime/optwin.mnv

Patch 8.2.1640
Problem:    Amiga: missing header for getgrgid().
Solution:   Add the grp.h header. (Ola Söder, closes #6906)
Files:      src/os_amiga.h

Patch 8.2.1641
Problem:    MNV9: cannot use 0 or 1 where a bool is expected.
Solution:   Allow using 0 and 1 for a bool type. (closes #6903)
Files:      src/mnv9compile.c, src/mnv9type.c, src/proto/mnv9type.pro,
            src/structs.h, src/testdir/test_mnv9_script.mnv

Patch 8.2.1642
Problem:    Options test fails.
Solution:   Correct call to OptionG().
Files:      runtime/optwin.mnv

Patch 8.2.1643
Problem:    MNV9: :defcompile compiles dead functions.
Solution:   Skip over dead functions.
Files:      src/userfunc.c

Patch 8.2.1644
Problem:    MNV9: cannot assign 1 and 0 to bool at script level.
Solution:   Add the TTFLAG_BOOL_OK flag to the type. Fix name of test
            function.
Files:      src/mnv9type.c, src/testdir/test_mnv9_script.mnv,
            src/testdir/mnv9.mnv, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1645
Problem:    GTK3: icons become broken images when resized.
Solution:   Use gtk_image_new_from_icon_name(). (closes #6916)
            Fix compiler warnings.
Files:      src/gui_gtk_x11.c

Patch 8.2.1646
Problem:    Amiga: Unnecessary #include.
Solution:   Remove the #include. (Ola Söder, closes #6908)
Files:      src/version.c

Patch 8.2.1647
Problem:    MNV9: result of expression with && and || cannot be assigned to a
            bool variable.
Solution:   Add the TTFLAG_BOOL_OK flag and convert the value if needed.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.1648
Problem:    Amiga: no common build file for Amiga (-like) systems.
Solution:   Turn Make_morph.mak into Make_ami.mak. (Ola Söder, closes #6805)
Files:      Filelist, src/Make_ami.mak, src/Make_morph.mak, src/INSTALLami.txt

Patch 8.2.1649
Problem:    GTK3: using old file chooser.
Solution:   Use native file chooser on GTK 3.20 and above. (Yogeshwar
            Velingker, closes #6909)
Files:      src/gui_gtk.c

Patch 8.2.1650
Problem:    MNV9: result of && and || expression cannot be assigned to a bool
            at the script level.
Solution:   Add the VAR_BOOL_OK flag.  Convert to bool when needed.
Files:      src/structs.h, src/mnv9type.c, src/proto/mnv9type.pro,
            src/mnv9script.c, src/evalvars.c, src/eval.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1651
Problem:    Spellfile code not completely tested.
Solution:   Add a few more test cases. (Yegappan Lakshmanan, closes #6918)
Files:      src/testdir/test_spellfile.mnv

Patch 8.2.1652
Problem:    Cannot translate lines in the options window.
Solution:   Use the AddOption() function to split descriptions where indicated
            by a line break. (issue #6800)
Files:      runtime/optwin.mnv

Patch 8.2.1653
Problem:    Expand('<stack>') does not include the final line number.
Solution:   Add the line number. (closes #6927)
Files:      src/mnv.h, src/scriptfile.c, src/proto/scriptfile.pro,
            src/debugger.c, src/ex_docmd.c, src/ex_eval.c, src/message.c,
            src/testing.c, src/testdir/test_expand_func.mnv

Patch 8.2.1654
Problem:    When job writes to hidden buffer current window has display
            errors.  (Johnny McArthur)
Solution:   Use aucmd_prepbuf() instead of switch_to_win_for_buf().
            (closes #6925)
Files:      src/channel.c

Patch 8.2.1655
Problem:    Cannot build with Strawberry Perl 5.32.0.
Solution:   Use Perl_sv_2pvbyte_flags. (closes #6921)
Files:      src/if_perl.xs

Patch 8.2.1656
Problem:    MNV9: callstack wrong if :def function calls :def function.
Solution:   Set the line number before calling. (closes #6914)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1657
Problem:    MNV9: no proper error for nested ":def!".
Solution:   Check for "!". (closes #6920)
Files:      src/errors.h, src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1658
Problem:    Expand('<stack>') has trailing "..".
Solution:   Remove the "..". (closes #6927)
Files:      src/scriptfile.c, src/testdir/test_expand_func.mnv

Patch 8.2.1659
Problem:    Spellfile code not completely tested.
Solution:   Add a few more test cases. (Yegappan Lakshmanan, closes #6929)
Files:      src/testdir/test_spell.mnv, src/testdir/test_spellfile.mnv

Patch 8.2.1660
Problem:    Assert functions require passing expected result as the first
            argument, which isn't obvious.
Solution:   Use a method, as in "runtest()->assert_equal(expected)".
Files:      src/testdir/test_mnv9_func.mnv

Patch 8.2.1661
Problem:    Cannot connect to 127.0.0.1 for host with only IPv6 addresses.
Solution:   pass AI_V4MAPPED flag to getaddrinfo. (Filipe Brandenburger,
            closes #6931)
Files:      src/channel.c

Patch 8.2.1662
Problem:    :mksession does not restore shared terminal buffer properly.
Solution:   Keep a hashtab with terminal buffers. (Rob Pilling, closes #6930)
Files:      src/hashtab.c, src/proto/terminal.pro, src/session.c,
            src/terminal.c, src/testdir/test_mksession.mnv

Patch 8.2.1663
Problem:    Options window entries cannot be translated.
Solution:   Use AddOption() for all explanations. (closes #6800)
Files:      runtime/optwin.mnv

Patch 8.2.1664
Problem:    Memory leak when using :mkview with a terminal buffer.
Solution:   Don't use a hastab for :mkview. (Rob Pilling, closes #6935)
Files:      src/session.c, src/terminal.c, src/testdir/test_mksession.mnv

Patch 8.2.1665
Problem:    Cannot do fuzzy string matching.
Solution:   Add matchfuzzy(). (Yegappan Lakshmanan, closes #6932)
Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
            src/proto/search.pro, src/search.c, src/testdir/test_functions.mnv

Patch 8.2.1666
Problem:    The initial value of 'backupskip' can have duplicate items.
Solution:   Remove duplicates, like when it is set later. (Tom Ryder,
            closes #6940)
Files:      src/option.c, src/testdir/test_options.mnv

Patch 8.2.1667
Problem:    Local function name cannot shadow a global function name.
Solution:   Ignore global functions when checking a script-local or scoped
            function name. (closes #6926)
Files:      src/mnv9compile.c, src/userfunc.c, src/proto/userfunc.pro,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.1668
Problem:    MNV9: not accepting 0 or 1 as bool when type is any.
Solution:   Convert the type with the CHECKTYPE instruction. (closes #6913)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1669
Problem:    MNV9: memory leak when storing a value fails.
Solution:   Free the value when not storing it.
Files:      src/evalvars.c

Patch 8.2.1670
Problem:    A couple of gcc compiler warnings.
Solution:   Initialize local variables. (Dominique Pellé, closes #6944)
Files:      src/memline.c, src/option.c

Patch 8.2.1671
Problem:    MNV9: stray error for missing white space.
Solution:   Do not skip over white space after member. (closes #6917)
Files:      src/eval.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1672
Problem:    v_lock is used when it is not initialized. (Yegappan Lakshmanan)
Solution:   Initialize the typval in eval1().
Files:      src/eval.c

Patch 8.2.1673
Problem:    complete_info() selected index has an invalid value. (Ben Jackson)
Solution:   Set the index when there is only one match. (closes #6945)
            Add test for complete_info().
Files:      src/insexpand.c, src/testdir/test_ins_complete.mnv

Patch 8.2.1674
Problem:    MNV9: internal error when using variable that was not set.
Solution:   Give a meaningful error. (closes #6937)
Files:      src/mnv9script.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1675
Problem:    MinGW: testdir makefile deletes non-existing file.
Solution:   Use another way to delete the output file if it already exists.
            (Michael Soyka)
Files:      src/testdir/Make_ming.mak

Patch 8.2.1676
Problem:    Compiler warnings for function typecast.
Solution:   Add an intermediate cast to "void *".
Files:      src/os_unix.c

Patch 8.2.1677
Problem:    Memory access errors when calling setloclist() in an autocommand.
Solution:   Give an error if the list was changed unexpectedly. (closes #6946)
Files:      src/quickfix.c, src/testdir/test_quickfix.mnv

Patch 8.2.1678
Problem:    Crash when using ":set" after ":ownsyntax". (Dhiraj Mishra)
Solution:   Make sure 'spelloptions' is not NULL. (closes #6950)
Files:      src/syntax.c, src/testdir/test_syntax.mnv

Patch 8.2.1679
Problem:    MNV9: ":*" is not recognized as a range.
Solution:   Move recognizing "*" into skip_range(). (closes #6938)
Files:      src/ex_docmd.c, src/proto/ex_docmd.pro, src/cmdexpand.c,
            src/ex_getln.c, src/userfunc.c, src/mnv9compile.c,
            src/testdir/test_mnv9_cmd.mnv

Patch 8.2.1680
Problem:    MNV9: line number for compare error is wrong.
Solution:   Set SOURCING_LNUM. (closes #6936)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1681
Problem:    MNV9: unnecessary :call commands in tests.
Solution:   Remove the commands. (issue #6936)
Files:      src/testdir/test_mnv9_func.mnv, src/testdir/test_mnv9_script.mnv

Patch 8.2.1682
Problem:    MNV9: const works in an unexpected way.
Solution:   ":const" only disallows changing the variable, not the value.
            Make "list[0] = 9" work at the script level.
Files:      src/mnv9compile.c, src/evalvars.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1683
Problem:    MNV9: assignment test fails.
Solution:   Include changes to find Ex command.
Files:      src/ex_docmd.c

Patch 8.2.1684
Problem:    "gF" does not use line number after file in Visual mode.
Solution:   Look for ":123" after the Visual area. (closes #6952)
Files:      src/findfile.c, src/testdir/test_gf.mnv

Patch 8.2.1685
Problem:    MNV9: cannot declare a constant value.
Solution:   Introduce ":const!".
Files:      runtime/doc/mnv9.txt, src/ex_cmds.h, src/mnv9compile.c,
            src/mnv9.h, src/mnv9execute.c, src/evalvars.c,
            src/proto/evalvars.pro, src/errors.h, src/mnv.h, src/eval.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1686
Problem:    MNV9: "const!" not sufficiently tested.
Solution:   Add a few more test cases.  Fix type checking.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1687
Problem:    MNV9: out of bounds error.
Solution:   Check that cmdidx is not negative.
Files:      src/mnv9compile.c

Patch 8.2.1688
Problem:    Increment/decrement removes text property.
Solution:   Insert the new number before deleting the old one. (closes #6962)
Files:      src/ops.c, src/testdir/test_textprop.mnv

Patch 8.2.1689
Problem:    'colorcolumn' doesn't show in indent.
Solution:   Also draw the column when draw_state is WL_BRI or WL_SBR.
            (Alexey Demin, closes #6948, closes #6619)
Files:      src/drawline.c, src/testdir/dumps/Test_colorcolumn_2.dump,
            src/testdir/dumps/Test_colorcolumn_3.dump,
            src/testdir/test_highlight.mnv

Patch 8.2.1690
Problem:    Text properties not adjusted for "I" in Visual block mode.
Solution:   Call inserted_bytes(). (closes #6961)
Files:      src/ops.c, src/change.c, src/proto/change.pro,
            src/testdir/test_textprop.mnv

Patch 8.2.1691
Problem:    MNV9: list<any> is not accepted where list<number> is expected.
Solution:   Add functions to allocate and free a type_T, use it in
            ISN_CHECKTYPE. (closes #6959)
Files:      src/mnv9.h, src/globals.h, src/mnv9compile.c, src/mnv9execute.c,
            src/mnv9type.c, src/proto/mnv9type.pro, src/errors.h,
            src/evalfunc.c, src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_expr.mnv, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1692
Problem:    Build fails because TTFLAG_STATIC is missing.
Solution:   Include missing change.
Files:      src/structs.h

Patch 8.2.1693
Problem:    "hi def" does not work for cleared highlight.
Solution:   Check the "sg_cleared" flag. (Maxim Kim, closes #6956,
            closes #4405)
Files:      src/highlight.c, src/testdir/test_highlight.mnv

Patch 8.2.1694
Problem:    Compiler warning for loss if data.
Solution:   Add typecast.
Files:      src/ops.c

Patch 8.2.1695
Problem:    MNV9: crash when using varargs type "any".
Solution:   Check if uf_va_type is &t_any. (closes #6957)
Files:      src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.1696
Problem:    Unused (duplicate) macros.
Solution:   Remove the macros.
Files:      src/spell.c

Patch 8.2.1697
Problem:    Inconsistent capitalization of error messages.
Solution:   Always start with a capital.
Files:      src/errors.h, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_func.mnv, src/testdir/test_mnv9_script.mnv,
            src/testdir/test_assert.mnv

Patch 8.2.1698
Problem:    Cannot lock a variable in legacy MNV script like in MNV9.
Solution:   Make ":lockvar 0" work.
Files:      runtime/doc/eval.txt, src/evalvars.c, src/proto/evalvars.pro,
            src/dict.c, src/eval.c, src/list.c, src/typval.c, src/userfunc.c,
            src/testdir/test_const.mnv, src/testdir/test_listdict.mnv

Patch 8.2.1699
Problem:    Build failure due to missing error message.
Solution:   Add error message.
Files:      src/errors.h

Patch 8.2.1700
Problem:    MNV9: try/catch causes wrong value to be returned.
Solution:   Reset tcd_return. (closes #6964)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1701
Problem:    MNV9: sort("i") does not work.
Solution:   Don't try getting a number for a string argument. (closes #6958)
Files:      src/list.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1702
Problem:    Crash when using undo after deleting folded lines.
Solution:   Check for NULL pointer. (closes #6968)
Files:      src/fold.c, src/testdir/test_fold.mnv

Patch 8.2.1703
Problem:    ":highlight clear" does not restore default link.
Solution:   Remember the default link and restore it. (Antony Scriven,
            closes #6970, closes #4405)
Files:      runtime/doc/syntax.txt, src/highlight.c,
            src/testdir/test_highlight.mnv

Patch 8.2.1704
Problem:    MNV9: crash in for loop when autoload script has an error.
Solution:   Reset suppress_errthrow.  Check for NULL list. (closes #6967)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1705
Problem:    "verbose hi Name" reports incorrect info after ":hi clear".
Solution:   Store the script context. (Antony Scriven, closes #6975)
Files:      src/highlight.c, src/testdir/test_highlight.mnv

Patch 8.2.1706
Problem:    MNV9: crash after running into the "Multiple closures" error.
Solution:   When a function fails still update any closures. (closes #6973)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1707
Problem:    Small inconsistency in highlight test.
Solution:   Use one argument for :execute. (Antony Scriven, #6975)
Files:      src/testdir/test_highlight.mnv

Patch 8.2.1708
Problem:    MNV9: error message for function has unprintable characters.
Solution:   use printable_func_name(). (closes #6965)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1709
Problem:    MNV9: memory leak when using multiple closures.
Solution:   Free the partial.
Files:      src/mnv9execute.c

Patch 8.2.1710
Problem:    MNV9: list of list type can be wrong.
Solution:   Use VAR_UNKNOWN for empty list.  Recognize VAR_UNKNOWN when
            looking for a common type. (closes #6979)
Files:      src/mnv9type.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1711
Problem:    MNV9: leaking memory when using partial.
Solution:   Do delete the function even when it was compiled.
Files:      src/mnv9compile.c, src/proto/mnv9compile.pro, src/userfunc.c,
            src/mnv9execute.c

Patch 8.2.1712
Problem:    MNV9: leaking memory when calling a lambda.
Solution:   Decrement function reference from ISN_DCALL.
Files:      src/mnv9compile.c, src/userfunc.c, src/proto/userfunc.pro

Patch 8.2.1713
Problem:    Motif GUI: crash when setting menu colors. (Andrzej Bylicki)
Solution:   Add {} to make "n" incremented correctly. (closes #6989,
            closes #5948)
Files:      src/gui_motif.c

Patch 8.2.1714
Problem:    Text properties corrupted with substitute command. (Filipe
            Brandenburger)
Solution:   Get the changed line again after using u_savesub(). (closes #6984)
Files:      src/textprop.c, src/testdir/test_textprop.mnv

Patch 8.2.1715
Problem:    Motif GUI: commented out code missed {}.
Solution:   Add {} and reenable the code. (similar to #6989)
Files:      src/gui_motif.c

Patch 8.2.1716
Problem:    Options window has duplicate translations.
Solution:   Make one entry for "global or local to buffer".  Fix wrong text.
            (closes #6983)
Files:      runtime/optwin.mnv

Patch 8.2.1717
Problem:    MS-Windows installer doesn't have Russian translations.
Solution:   Add Russian translations. (closes #6985)
Files:      nsis/gmnv.nsi, nsis/lang/russian.nsi

Patch 8.2.1718
Problem:    MNV9: :def function disallows "firstline" and "lastline" argument
            names for no good reason.
Solution:   Don't check the arguments for a :def function. (closes #6986)
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1719
Problem:    MNV9: no error if comma is missing in between arguments.
Solution:   Give an error message.
Files:      src/errors.h, src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1720
Problem:    MNV9: memory leak with heredoc that isn't executed. (Dominique
            Pellé)
Solution:   Don't clear the list items. (closes #6991)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1721
Problem:    MS-Windows installer doesn't work.
Solution:   Write "Russian" in ASCII. (closes #6995, see #6985).
Files:      nsis/lang/russian.nsi

Patch 8.2.1722
Problem:    MNV9: cannot assign a lambda to a variable of type function.
Solution:   Allow for assigning a partial to a variable of type function.
            (Naruhiko Nishino, closes #6996)
Files:      src/mnv9type.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1723
Problem:    MNV9: Variable argument name cannot start with underscore.
Solution:   Use eval_isnamec1(). (closes #6988)
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1724
Problem:    MNV9: assignment tests spread out.
Solution:   Create new test file for assignment tests.
Files:      src/testdir/test_mnv9_assign.mnv, src/testdir/test_mnv9_cmd.mnv,
            src/testdir/test_mnv9_script.mnv, src/testdir/test_mnv9_expr.mnv,
            src/testdir/Make_all.mak

Patch 8.2.1725
Problem:    Not all Pascal files are recognized.
Solution:   Add filetype patterns. (Doug Kearns)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.1726
Problem:    Fuzzy matching only works on strings.
Solution:   Support passing a dict.  Add matchfuzzypos() to also get the match
            positions. (Yegappan Lakshmanan, closes #6947)
Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
            src/proto/search.pro, src/search.c, src/testdir/Make_all.mak,
            src/testdir/test_functions.mnv, src/testdir/test_matchfuzzy.mnv

Patch 8.2.1727
Problem:    A popup created with "cursorline" will ignore "firstline".
Solution:   When both "cursorline" and "firstline" are present put the cursor
            on "firstline". (closes #7000)  Add the "winid" argument to
            getcurpos().
Files:      runtime/doc/eval.txt, src/evalfunc.c, src/popupwin.c,
            src/evalwindow.c, src/testdir/test_popupwin.mnv,
            src/testdir/test_functions.mnv

Patch 8.2.1728
Problem:    Compiler warning for using uninitialized variable. (John Marriott)
Solution:   Initialize "neighbor".
Files:      src/search.c

Patch 8.2.1729
Problem:    Endless loop when ":normal" feeds popup window filter.
Solution:   Add the ex_normal_busy_done flag.
Files:      src/globals.h, src/getchar.c, src/evalfunc.c, src/ex_docmd.c,
            src/menu.c, src/testdir/test_popupwin.mnv,
            src/testdir/dumps/Test_popupwin_normal_cmd.dump

Patch 8.2.1730
Problem:    MNV9: cannot use member of unknown type.
Solution:   When type is unknown use "any". (closes #6997)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.1731
Problem:    MNV9: cannot use += to append to empty NULL list.
Solution:   Copy the list instead of extending it. (closes #6998)
Files:      src/eval.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.1732
Problem:    Stuck when win_execute() for a popup causes an error.
Solution:   Disable the filter callback on error. (issue #6999)
Files:      src/popupwin.c, src/testdir/term_util.mnv,
            src/testdir/test_popupwin.mnv,
            src/testdir/dumps/Test_popupwin_win_execute.dump

Patch 8.2.1733
Problem:    MNV9: memory leaks when using nested function.
Solution:   Free function when compilation fails.
Files:      src/mnv9compile.c

Patch 8.2.1734
Problem:    MNV9: cannot use a funcref for a closure twice.
Solution:   Instead of putting the funcref on the stack use a growarray on the
            execution context.
Files:      src/mnv9.h, src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.1735
Problem:    Github actions appear to timeout too soon.
Solution:   use "timeout" instead of "ping".
Files:      .github/workflows/ci-windows.yaml

Patch 8.2.1736
Problem:    Failure to compile a pattern not tested much.
Solution:   Add tests where a pattern fails to compile. (Yegappan Lakshmanan,
            closes #7004)
Files:      src/testdir/gen_opt_test.mnv, src/testdir/test_arglist.mnv,
            src/testdir/test_autocmd.mnv, src/testdir/test_buffer.mnv,
            src/testdir/test_checkpath.mnv, src/testdir/test_cmdline.mnv,
            src/testdir/test_debugger.mnv, src/testdir/test_functions.mnv,
            src/testdir/test_history.mnv, src/testdir/test_listdict.mnv,
            src/testdir/test_options.mnv, src/testdir/test_search_stat.mnv,
            src/testdir/test_sort.mnv, src/testdir/test_substitute.mnv,
            src/testdir/test_syntax.mnv, src/testdir/test_tagjump.mnv,
            src/testdir/test_user_func.mnv

Patch 8.2.1737
Problem:    Cursor line highlight in popup window is not always updated.
Solution:   Check if the cursor has moved. (closes #7010)
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv
            src/testdir/dumps/Test_popupwin_win_execute_cursorline.dump

Patch 8.2.1738
Problem:    Mac: str2float() recognizes comma instead of decimal point.
Solution:   Set LC_NUMERIC to "C". (closes #7003)
Files:      src/os_mac_conv.c

Patch 8.2.1739
Problem:    MNV9: crash when compiling a manually defined function. (Antony
            Scriven)
Solution:   Check that the script ID is positive. (closes #7012)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1740
Problem:    Test fails without the terminal feature.
Solution:   Skip test if the terminal feature is not available.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.1741
Problem:    pathshorten() only supports using one character.
Solution:   Add an argument to control the length. (closes #7006)
Files:      runtime/doc/eval.txt, src/evalfunc.c, src/filepath.c,
            src/proto/filepath.pro, src/testdir/test_functions.mnv

Patch 8.2.1742
Problem:    Test still fails without the terminal feature.
Solution:   Put check for terminal feature in separate function.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.1743
Problem:    Cannot build without the eval feature.
Solution:   Move shorten_dir outside of #ifdef.
Files:      src/filepath.c

Patch 8.2.1744
Problem:    MNV9: using ":const!" is weird.
Solution:   Use "var" - "final" - "const" like Dart.  "let" still works for
            now.
Files:      runtime/doc/mnv9.txt, src/ex_cmds.h, src/errors.h, src/evalvars.c,
            src/proto/evalvars.pro, src/cmdexpand.c, src/eval.c,
            src/ex_docmd.c, src/mnv9compile.c, src/mnv9execute.c,
            src/mnv9script.c, src/mnv.h, src/ex_cmdidxs.h,
            src/testdir/test_mnv9_assign.mnv, src/testdir/test_mnv9_script.mnv

Patch 8.2.1745
Problem:    Tiny version doesn't build.
Solution:   Add dummy ex_var() function.
Files:      src/ex_docmd.c

Patch 8.2.1746
Problem:    MNV9: Cannot use "fina" for "finally". (Naruhiko Nishino)
Solution:   Specifically check for "fina". (closes #7020)
Files:      src/ex_docmd.c, src/testdir/test_trycatch.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1747
Problem:    Result of expand() unexpectedly depends on 'completeslash'.
Solution:   Temporarily reset 'completeslash'. (Yasuhiro Matsumoto,
            closes #7021)
Files:      src/evalfunc.c, src/testdir/test_ins_complete.mnv

Patch 8.2.1748
Problem:    Closing split window in other tab may cause a crash.
Solution:   Set tp_curwin properly. (Rob Pilling, closes #7018)
Files:      src/window.c, src/testdir/test_winbuf_close.mnv

Patch 8.2.1749
Problem:    MNV9: crash when closure fails in nested function.
Solution:   Handle function returns before dereferencing remaining closures.
            (closes #7008)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1750
Problem:    Setting firstline with popup_setoptions() fails if cursorline is
            set.
Solution:   Use apply_options(). Update the popup before applying "zz".
            (closes #7010)
Files:      src/popupwin.c, src/proto/popupwin.pro, src/move.c,
            src/testdir/test_popupwin.mnv,
            src/testdir/dumps/Test_popupwin_win_execute_cursorline.dump,
            src/testdir/dumps/Test_popupwin_set_firstline_1.dump,
            src/testdir/dumps/Test_popupwin_set_firstline_2.dump

Patch 8.2.1751
Problem:    Using 2 where bool is expected may throw an error.
Solution:   Make this backwards compatible.
Files:      src/typval.c, src/evalfunc.c, src/testdir/test_search.mnv,
            src/testdir/test_terminal2.mnv

Patch 8.2.1752
Problem:    GTK GUI: cannot map alt-? with <A-?>. (Ingo Karkat)
Solution:   Adjust the characters for which the shift modifier is removed.
            (closes #7016)  Make Motif and Win32 use the same function as GTK.
Files:      src/misc2.c, src/gui_x11.c, src/gui_w32.c,
            src/testdir/test_termcodes.mnv

Patch 8.2.1753
Problem:    MNV9: crash when using import at script level.
Solution:   Give a "not implemented yet" error. (closes #7026)
Files:      src/evalvars.c

Patch 8.2.1754
Problem:    Completion with spell checking not tested.
Solution:   Add a test case. (Dominique Pellé, closes #7024)
Files:      src/testdir/test_spell.mnv

Patch 8.2.1755
Problem:    MNV9: crash when using invalid heredoc marker. (Dhiraj Mishra)
Solution:   Check for NULL list. (closes #7027)  Fix comment character.
Files:      src/mnv9compile.c, src/evalvars.c,
            src/testdir/test_mnv9_assign.mnv

Patch 8.2.1756
Problem:    MNV9: :let will soon be disallowed.
Solution:   Add v:disallow_let temporarily.  Fix tests.
Files:      src/mnv.h, src/errors.h, src/evalvars.c, src/mnv9compile.c,
            src/userfunc.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1757
Problem:    Mac: default locale is lacking the encoding.
Solution:   Add ".UTF-8 to the locale. (Yee Cheng Chin, closes #7022)
Files:      src/os_mac_conv.c, src/testdir/test_environ.mnv

Patch 8.2.1758
Problem:    MNV9: type of unmaterialized list is wrong.
Solution:   Use list<number>.
Files:      src/mnv9type.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1759
Problem:    MNV9: Some tests are still using :let.
Solution:   Change more declarations to use :var.
Files:      src/testdir/test_mnv9_expr.mnv

Patch 8.2.1760
Problem:    MNV9: crash when end marker is missing. (Dhiraj Mishra)
Solution:   Check for end of function lines. (closes #7031)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.1761
Problem:    MNV9: Some tests are still using :let.
Solution:   Change more declarations to use :var.
Files:      src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_cmd.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.1762
Problem:    When a timer uses :stopinsert Insert mode completion isn't
            stopped. (Stanley Chan)
Solution:   Call ins_compl_prep(ESC).
Files:      src/edit.c, src/testdir/test_ins_complete.mnv,
            src/testdir/dumps/Test_pum_stopped_by_timer.dump

Patch 8.2.1763
Problem:    MNV9: cannot use "true" for popup window scrollbar option.
Solution:   use dict_get_bool(). (closes #7029)
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv

Patch 8.2.1764
Problem:    MNV9: no error when assigning to script var with wrong type.
Solution:   Fix off-by-one error. (closes #7028)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.1765
Problem:    MNV9: some tests use "var var".
Solution:   Use "var name". (closes #7032)
Files:      src/testdir/test_mnv9_assign.mnv, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1766
Problem:    MNV9: Some tests are still using :let.
Solution:   Change the last few declarations to use :var.
Files:      src/testdir/runtest.mnv, src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_cmd.mnv,
            src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_expr.mnv, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_script.mnv, src/testdir/test_maparg.mnv,
            src/testdir/test_popupwin.mnv, src/testdir/test_textprop.mnv

Patch 8.2.1767
Problem:    MNV9: test fails with python support.
Solution:   Use "let" in legacy function.
Files:      src/testdir/test_mnv9_func.mnv

Patch 8.2.1768
Problem:    Cannot use the help menu from a terminal window.
Solution:   Add ":tlnoremenu" commands. (Yee Cheng Chin, closes #7023)
Files:      runtime/menu.mnv, src/testdir/test_gui.mnv

Patch 8.2.1769
Problem:    A popup filter interferes with using :normal to move the cursor in
            a popup.
Solution:   Do not invoke the filter when ex_normal_busy is set.
Files:      runtime/doc/popup.txt, src/getchar.c, src/evalfunc.c,
            src/ex_docmd.c, src/menu.c, src/globals.h,
            src/testdir/test_popupwin.mnv,
            src/testdir/dumps/Test_popupwin_normal_cmd.dump

Patch 8.2.1770
Problem:    Invalid memory use when using SpellFileMissing autocmd.
Solution:   Add test case. (Dominique Pellé, closes #7036)  Fix using a window
            that was closed.
Files:      src/spell.c, src/testdir/test_spell.mnv

Patch 8.2.1771
Problem:    synIDattr() cannot get the value of ctermul.
Solution:   Add the "ul" value for "what". (closes #7037)
Files:      runtime/doc/eval.txt, src/highlight.c, src/evalfunc.c,
            src/testdir/test_highlight.mnv

Patch 8.2.1772
Problem:    Cannot use CTRL-W <Down> to move out of a terminal window.
Solution:   Use special_to_buf() instead of mb_char2bytes(). (closes #7045)
Files:      src/terminal.c, src/testdir/test_terminal.mnv

Patch 8.2.1773
Problem:    Crash when calling mapset() with a list as first argument.
Solution:   Check for NULL. (closes #7040)
Files:      src/map.c, src/testdir/test_maparg.mnv

Patch 8.2.1774
Problem:    GTK: hang when forced to exit.
Solution:   Do not clean up "mainwin" when really_exiting is set.
            (Zdenek Dohnal, closes #7042)
Files:      src/gui_gtk_x11.c

Patch 8.2.1775
Problem:    MS-Windows: adding a long quickfix list is slow.
Solution:   Shorten the buffer name only for the first entry. (Yegappan
            Lakshmanan, closes #7039, closes #7033)
Files:      src/quickfix.c, src/testdir/test_quickfix.mnv

Patch 8.2.1776
Problem:    Filetype.mnv may be loaded twice.
Solution:   Do "syntax on" after "filetype on". (Adam Stankiewicz,
            closes #7049)
Files:      runtime/defaults.mnv

Patch 8.2.1777
Problem:    MNV9: some assignment tests in the wrong file.
Solution:   Move assignment tests to test_mnv9_assign.
Files:      src/testdir/test_mnv9_assign.mnv, src/testdir/test_mnv9_script.mnv

Patch 8.2.1778
Problem:    MNV9: returning from a partial call clears outer context, causing
            a crash.
Solution:   Put the outer context in the stack frame. (closes #7044)
Files:      src/mnv9execute.c, src/mnv9.h, src/testdir/test_mnv9_func.mnv

Patch 8.2.1779
Problem:    Some debian changelog files are not recognized.
Solution:   Add */debian/changelog. (Jason Franklin)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.1780
Problem:    Statusline not updated when splitting windows.
Solution:   Call status_redraw_all(). (Jason Franklin, closes #5496)
Files:      src/window.c, src/testdir/test_statusline.mnv

Patch 8.2.1781
Problem:    Writing to prompt buffer interferes with insert mode.
Solution:   Use win_enter() instead of just setting "curwin". (Ben Jackson,
            closes #7035)
Files:      src/autocmd.c, src/testdir/test_prompt_buffer.mnv

Patch 8.2.1782
Problem:    MNV9: cannot pass boolean to mapset().
Solution:   Use get_tv_bool(). (closes #7041)
Files:      src/map.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1783 (after 8.2.1781)
Problem:    Try-catch test fails.
Solution:   Don't call win_enter(), only call entering_window().
Files:      src/autocmd.c, src/window.c, src/proto/window.pro,
            src/testdir/runtest.mnv

Patch 8.2.1784
Problem:    commits are not scanned for security problems
Solution:   Enable Github code scanning. (Christian Brabandt, closes #7057)
Files:      .github/workflows/codeql-analysis.yml

Patch 8.2.1785
Problem:    Compiler warning for strcpy() out of bounds. (Christian Brabandt)
Solution:   use memmove() instead.
Files:      src/dict.c

Patch 8.2.1786
Problem:    Various Normal mode commands not fully tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #7059)
Files:      src/testdir/test_normal.mnv, src/testdir/test_regexp_utf8.mnv,
            src/testdir/test_registers.mnv, src/testdir/test_spellfile.mnv,
            src/testdir/test_tagjump.mnv, src/testdir/test_visual.mnv

Patch 8.2.1787
Problem:    Crash with 'incsearch' and very long line.
Solution:   Check whether regprog becomes NULL. (closes #7063)
Files:      src/search.c, src/testdir/test_search.mnv

Patch 8.2.1788
Problem:    MNV9: still allows :let for declarations.
Solution:   Make the default for v:disallow_let one.  It can still be set to
            zero to allow for using :let.
Files:      src/evalvars.c, src/testdir/runtest.mnv

Patch 8.2.1789
Problem:    MNV9: crash with invalid list constant. (Dhiraj Mishra)
Solution:   Return FAIL when compiling the list fails. (closes #7066)
Files:      src/mnv9compile.c, src/errors.h, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1790
Problem:    MS-Windows with Python: crash when executed from Vifm.
Solution:   Use NUL instead of CONIN. (Ken Takata, closes #7061, closes #7053)
Files:      src/if_python3.c

Patch 8.2.1791
Problem:    MNV9: debugger test fails.
Solution:   Use "var" instead of "let".
Files:      src/testdir/test_debugger.mnv

Patch 8.2.1792
Problem:    Configure does not recognize Racket 6.1+.
Solution:   Add a check for "rktio". (closes #7062)
Files:      src/configure.ac, src/auto/configure

Patch 8.2.1793
Problem:    Not consistently giving the "is a directory" warning.
Solution:   Adjust check for illegal file name and directory. (Yasuhiro
            Matsumoto, closes #7067)
Files:      src/fileio.c, src/testdir/test_edit.mnv

Patch 8.2.1794
Problem:    No falsy Coalescing operator.
Solution:   Add the "??" operator.  Fix mistake with function argument count.
Files:      runtime/doc/eval.txt, src/eval.c, src/mnv9compile.c,
            src/mnv9type.c, src/testdir/test_expr.mnv,
            src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.1795
Problem:    MNV9: operators && and || have a confusing result.
Solution:   Make the result a boolean.
Files:      runtime/doc/mnv9.txt, src/eval.c, src/mnv9compile.c,
            src/mnv9execute.c, src/mnv9type.c, src/structs.h, src/mnv9.h,
            src/testdir/test_mnv9_expr.mnv, src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_cmd.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.1796
Problem:    MNV9: invalid memory access with weird function name. (Dhiraj
            Mishra)
Solution:   Check the name is valid.  Add a test.
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1797
Problem:    MNV9: some parts of the code not tested.
Solution:   Add a few tests.
Files:      src/testdir/test_mnv9_func.mnv

Patch 8.2.1798
Problem:    MNV9: ternary operator condition is too permissive.
Solution:   Use tv_get_bool_chk().
Files:      runtime/doc/mnv9.txt, src/eval.c, src/mnv9compile.c,
            src/mnv9execute.c, src/testdir/mnv9.mnv,
            src/testdir/test_expr.mnv, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_cmd.mnv, src/testdir/test_mnv9_script.mnv

Patch 8.2.1799
Problem:    Some Normal mode commands not fully tested.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #7073)
Files:      src/testdir/test_gf.mnv, src/testdir/test_goto.mnv,
            src/testdir/test_normal.mnv, src/testdir/test_registers.mnv,
            src/testdir/test_startup.mnv, src/testdir/test_tabpage.mnv,
            src/testdir/test_visual.mnv

Patch 8.2.1800
Problem:    MNV9: memory leak if "if" condition is invalid.
Solution:   Free ppconst earlier.
Files:      src/mnv9compile.c

Patch 8.2.1801
Problem:    Undo file not found when using ":args" or ":next".
Solution:   Handle like editing another file. (closes #7072)
Files:      src/ex_cmds.c, src/testdir/test_undo.mnv

Patch 8.2.1802
Problem:    MNV9: crash with unterminated dict. (Dhiraj Mishra)
Solution:   Return empty string instead of NULL. (closes #7084)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1803
Problem:    A few failures are not tested.
Solution:   Test a few failures. (Dominique Pellé, closes #7075)
Files:      src/testdir/test_arglist.mnv, src/testdir/test_cmdline.mnv,
            src/testdir/test_json.mnv, src/testdir/test_listdict.mnv

Patch 8.2.1804
Problem:    resolve('/') returns an empty string.
Solution:   Don't remove single slash. (closes #7074)
Files:      src/filepath.c, src/testdir/test_functions.mnv

Patch 8.2.1805
Problem:    Unix: terminal mode changed when using ":shell".
Solution:   Avoid calling settmode() when not needed. (issue #7079)
Files:      src/os_unix.c

Patch 8.2.1806
Problem:    MS-Windows with Python: MNV freezes after import command.
Solution:   Use either "NUL" or "CONIN$" when reopening stdin. (Yasuhiro
            Matsumoto, closes #7083)
Files:      src/if_python3.c

Patch 8.2.1807
Problem:    Can use :help in a terminal popup window.
Solution:   Give an error. (closes #7088)
Files:      src/help.c, src/testdir/test_popupwin.mnv

Patch 8.2.1808
Problem:    No test coverage for ":spelldump!".
Solution:   Add a test. (Dominique Pellé, closes #7089)
Files:      src/testdir/test_spell.mnv

Patch 8.2.1809
Problem:    Mapping some keys with Ctrl does not work properly.
Solution:   For terminal, GTK and Motif handle "@", "^" and "_" codes.
Files:      src/misc2.c, src/proto/misc2.pro, src/term.c, src/gui_gtk_x11.c,
            src/gui_x11.c, src/testdir/test_termcodes.mnv

Patch 8.2.1810
Problem:    Some code in normal.c not covered by tests.
Solution:   Add normal mode tests. (Yegappan Lakshmanan, closes #7086)
Files:      src/testdir/test_charsearch.mnv, src/testdir/test_normal.mnv

Patch 8.2.1811
Problem:    Mapping Ctrl-key does not work for '{', '}' and '|'.
Solution:   Remove the shift modifier. (closes #6457)
Files:      runtime/doc/map.txt, src/misc2.c, src/testdir/test_termcodes.mnv

Patch 8.2.1812
Problem:    MNV9: nested closure throws an internal error.
Solution:   Do not skip a local variable with a partial. (closes #7065)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1813
Problem:    MNV9: can assign wrong type to script dict. (Christian J. Robinson)
Solution:   Check the type if known.
Files:      src/structs.h, src/eval.c, src/mnv9script.c,
            src/proto/mnv9script.pro, src/proto/evalvars.pro,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1814 (after 8.2.1813)
Problem:    Missing change to remove "static".
Solution:   Add the change.
Files:      src/evalvars.c

Patch 8.2.1815
Problem:    MNV9: memory leak when using function reference.
Solution:   Temporarily disable the test.
Files:      src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.1816
Problem:    MNV9: another memory leak when using function reference.
Solution:   Temporarily disable the tests.
Files:      src/testdir/test_mnv9_func.mnv

Patch 8.2.1817
Problem:    MNV9: wrong instruction when reusing a local variable spot.
Solution:   Clear a newly allocated local variable. (closes #7080)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1818
Problem:    SE Linux: deprecation warning for security_context_t.
Solution:   Use "char *" instead. (James McCoy, closes #7093)
Files:      src/os_unix.c

Patch 8.2.1819
Problem:    MNV9: Memory leak when using a closure.
Solution:   Compute the minimal refcount in the funcstack.  Reenable disabled
            tests.
Files:      src/mnv9execute.c, src/proto/mnv9execute.pro, src/structs.h,
            src/eval.c, src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.1820
Problem:    MNV9: crash when error happens in timer callback.
Solution:   Check that current_exception is not NULL. (closes #7100)
Files:      src/ex_docmd.c

Patch 8.2.1821
Problem:    MNV9: concatenating to a NULL list doesn't work.
Solution:   Handle a NULL list like an empty list. (closes #7064)
Files:      src/list.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.1822 (after 8.2.1821)
Problem:    List test doesn't fail.
Solution:   Adjust the test for NULL list handling.
Files:      src/testdir/test_listdict.mnv

Patch 8.2.1823
Problem:    "gN" does not select the matched string.
Solution:   Move the cursor to the start of the match.
Files:      src/search.c, src/testdir/test_gn.mnv

Patch 8.2.1824
Problem:    MNV9: variables at the script level escape their scope.
Solution:   When leaving a scope remove variables declared in it.
Files:      src/structs.h, src/ex_eval.c, src/evalvars.c,
            src/proto/evalvars.pro, src/testdir/test_mnv9_script.mnv

Patch 8.2.1825
Problem:    MNV9: accessing freed memory.
Solution:   Clear sv_name when the variable is deleted.
Files:      src/ex_eval.c

Patch 8.2.1826
Problem:    MNV9: cannot use a {} block at script level.
Solution:   Recognize a {} block.
Files:      src/ex_docmd.c, src/ex_cmds.h, src/ex_cmdidxs.h, src/ex_eval.c,
            src/structs.h, src/proto/ex_eval.pro, src/errors.h,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1827
Problem:    Filetype detection does not test enough file names.
Solution:   Test more file names. (Adam Stankiewicz, closes #7099)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.1828
Problem:    Build failure without the +eval feature.
Solution:   Add dummies for ex_block and ex_endblock.
Files:      src/ex_docmd.c

Patch 8.2.1829
Problem:    Warnings when executing Github actions.
Solution:   Use another method to set environment variables. (Ken Takata,
            closes #7107)
Files:      .github/workflows/ci-windows.yaml

Patch 8.2.1830
Problem:    MS-Windows: Python3 issue with stdin.
Solution:   Check if stdin is readable. (Ken Takata, closes #7106)
Files:      src/if_python3.c

Patch 8.2.1831
Problem:    File missing from distribution.
Solution:   Add the github code analyses file.
Files:      Filelist

Patch 8.2.1832
Problem:    readdirex() error is displayed as a message. (Yegappan Lakshmanan)
Solution:   Use semsg() instead of smsg().
Files:      src/fileio.c, src/testdir/test_functions.mnv

Patch 8.2.1833
Problem:    When reading from stdin dup() is called twice.
Solution:   Remove the dup() in main.c. (Ken Takata, closes #7110)
Files:      src/main.c

Patch 8.2.1834
Problem:    PyEval_InitThreads() is deprecated in Python 3.9.
Solution:   Do not call PyEval_InitThreads in Python 3.9 and later. (Ken
            Takata, closes #7113)  Avoid warnings for functions.
Files:      src/if_python3.c, src/if_py_both.h

Patch 8.2.1835
Problem:    ":help ??" finds the "!!" tag.
Solution:   Do not translate "?" into ".".  (Naruhiko Nishino, closes #7114,
            closes #7115)
Files:      src/help.c, src/testdir/test_help_tagjump.mnv

Patch 8.2.1836
Problem:    Autocmd test fails on pacifist systems.
Solution:   Check that /bin/kill exists. (James McCoy, closes #7117)
            Tune the timing, make the autocmd test run faster.
Files:      src/testdir/test_autocmd.mnv

Patch 8.2.1837
Problem:    Using "gn" after "gN" does not work.
Solution:   Extend the other end of the Visual area. (closes #7109)
Files:      src/search.c, src/testdir/test_gn.mnv

Patch 8.2.1838
Problem:    MNV9: cannot insert a comment line in an expression.
Solution:   Skip comment lines at the script level. (closes #7111)
Files:      src/eval.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1839
Problem:    MNV9: memory leaks reported in assign test.
Solution:   Move the failing job_start() call to separate test files, it
            causes false leak reports.
Files:      src/testdir/test_mnv9_assign.mnv, src/testdir/test_mnv9_fails.mnv,
            src/testdir/Make_all.mak

Patch 8.2.1840
Problem:    MNV9: error message is not clear about compilation error.
Solution:   Say "compiling" instead of "processing".
Files:      src/mnv9compile.c, src/message.c, src/globals.h,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.1841
Problem:    MNV9: test for compilation error fails in normal build.
Solution:   Invoke CheckRunMNVInTerminal in a separate function.
Files:      src/testdir/test_mnv9_func.mnv

Patch 8.2.1842
Problem:    Crash when USE_FNAME_CASE is defined and using :browse.
Solution:   Don't use read-only memory for ".". (Yegappan Lakshmanan,
            closes #7123)
Files:      src/ex_cmds.c, src/ex_docmd.c, src/testdir/test_edit.mnv

Patch 8.2.1843
Problem:    Netbeans: with huge buffer number memory allocation may fail.
Solution:   Check for size overflow.
Files:      src/netbeans.c

Patch 8.2.1844
Problem:    Using "q" at the more prompt doesn't stop a long message.
Solution:   Check for "got_int". (closes #7122)
Files:      src/message.c, src/testdir/test_messages.mnv,
            src/testdir/dumps/Test_quit_long_message.dump

Patch 8.2.1845
Problem:    MNV9: function defined in a block can't use variables defined in
            that block.
Solution:   First step: Make a second hashtab that holds all script variables,
            also block-local ones, with more information.
Files:      src/structs.h, src/evalvars.c, src/ex_eval.c, src/mnv9script.c,
            src/proto/mnv9script.pro, src/scriptfile.c

Patch 8.2.1846
Problem:    MNV9: variables declared in a local block are not found in
            when a function is compiled.
Solution:   Look for script variables in sn_all_vars.
Files:      src/structs.h, src/mnv9compile.c, src/proto/mnv9compile.pro,
            src/userfunc.c, src/proto/userfunc.pro, src/ex_eval.c,
            src/mnv9script.c, src/proto/mnv9script.pro, src/mnv9execute.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1847
Problem:    MNV9: using negative value for unsigned type.
Solution:   Use zero instead of -1.
Files:      src/mnv9compile.c

Patch 8.2.1848
Problem:    Crash when passing a NULL string or list to popup_settext().
Solution:   Check for NULL pointers. (closes #7132)
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv

Patch 8.2.1849
Problem:    MNV9: garbage collection frees block-local variables.
Solution:   Mark all script variables as used.
Files:      src/evalvars.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1850
Problem:    "vat" does not select tags correctly over line break.
Solution:   Adjust the search pattern. (Aufar Gilbran, closes #7136)
Files:      src/textobject.c, src/testdir/test_textobjects.mnv

Patch 8.2.1851
Problem:    MNV9: "!" followed by space incorrectly used.
Solution:   Skip over trailing spaces. (closes #7131)
Files:      src/eval.c, src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1852
Problem:    map() returning zero for NULL list is unexpected.
Solution:   Return the empty list. (closes #7133)
Files:      src/list.c, src/testdir/test_filter_map.mnv,
            src/testdir/test_blob.mnv

Patch 8.2.1853
Problem:    "to_f" is recognized at "topleft" modifier.
Solution:   Do not recognize modifier when "_" follows. (closes #7019)
Files:      src/ex_docmd.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.1854
Problem:    MNV9: crash when throwing exception for NULL string. (Dhiraj
            Mishra)
Solution:   Handle NULL string like empty string. (closes #7139)
Files:      src/mnv9execute.c, src/errors.h, src/testdir/test_mnv9_script.mnv

Patch 8.2.1855
Problem:    MNV9: get error message when nothing is wrong.
Solution:   Check called_emsg instead of did_emsg. (closes #7143)
Files:      src/mnv9compile.c, src/mnv9execute.c, src/errors.h

Patch 8.2.1856
Problem:    "2resize" uses size of current window. (Daniel Steinberg)
Solution:   Use size of resized window. (Yasuhiro Matsumoto, closes #7152)
Files:      src/ex_docmd.c, src/testdir/test_window_cmd.mnv

Patch 8.2.1857
Problem:    MNV9: using job_status() on an unused var gives an error.
Solution:   Return "fail". (closes #7158)
Files:      src/job.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.1858
Problem:    MNV9: filter functions return number instead of bool.
Solution:   Return v:true instead of one. (closes #7144)
Files:      src/popupwin.c, src/evalfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1859
Problem:    MNV9: crash in unpack assignment.
Solution:   Make sure an error message is turned into an exception.
            (closes #7159)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1860
Problem:    MNV9: memory leak when throwing empty string.
Solution:   Free the empty string.
Files:      src/mnv9execute.c

Patch 8.2.1861
Problem:    MNV9: no specific error when parsing lambda fails.
Solution:   Also give syntax errors when not evaluating. (closes #7154)
Files:      src/dict.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1862
Problem:    mnv9: memory leak when compiling lambda fails.
Solution:   Call clear_evalarg().
Files:      src/mnv9compile.c

Patch 8.2.1863
Problem:    Json code not sufficiently tested.
Solution:   Add more test cases. (Dominique Pellé, closes #7166)
Files:      src/testdir/test_json.mnv

Patch 8.2.1864
Problem:    MNV9: no error for wrong list type.
Solution:   Add flag to indicate a constant. (closes #7160)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.1865
Problem:    MNV9: add() does not check type of argument.
Solution:   Inline the add() call. (closes #7160)
Files:      src/mnv9.h, src/mnv9compile.c, src/mnv9execute.c, src/errors.h,
            src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.1866
Problem:    MNV9: appending to pushed blob gives wrong result.
Solution:   Set ga_maxlen when copying a blob.
Files:      src/blob.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1867
Problem:    MNV9: argument to add() not checked for blob.
Solution:   Add the BLOBAPPEND instruction.
Files:      src/mnv9.h, src/mnv9compile.c, src/mnv9execute.c, src/errors.h,
            src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.1868
Problem:    MNV9: no error for missing space after comma in dict.
Solution:   Check for white space. (closes #6672)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1869
Problem:    MNV9: memory leak when using add().
Solution:   Free the added item.
Files:      src/mnv9execute.c

Patch 8.2.1870
Problem:    MNV9: no need to keep all script variables.
Solution:   Only keep script variables when a function was defined that could
            use them.  Fix freeing static string on exit.
Files:      src/mnv9script.c, src/proto/mnv9script.pro, src/structs.h,
            src/ex_eval.c, src/userfunc.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.1871
Problem:    Using %v in 'errorformat' may fail before %Z.
Solution:   Set qf_viscol only when qf_col is set. (closes #7169)
Files:      src/quickfix.c, src/testdir/test_quickfix.mnv

Patch 8.2.1872
Problem:    Matchfuzzy() does not prefer sequential matches.
Solution:   Give sequential matches a higher bonus. (Christian Brabandt,
            closes #7140)
Files:      src/search.c, src/testdir/test_matchfuzzy.mnv

Patch 8.2.1873
Problem:    MNV9: missing white space when using <f-args>.
Solution:   Add spaces. (Christian J. Robinson)
Files:      src/usercmd.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.1874
Problem:    Can't do something just before leaving Insert mode.
Solution:   Add the InsertLeavePre autocommand event. (closes #7177)
Files:      runtime/doc/autocmd.txt, src/edit.c, src/mnv.h,
            src/autocmd.c, src/testdir/test_edit.mnv

Patch 8.2.1875
Problem:    Warning when building GTK gui.
Solution:   Add missing function parameter.
Files:      src/gui_gtk_f.c

Patch 8.2.1876
Problem:    MNV9: argument types for builtin functions are not checked at
            compile time.
Solution:   Add an argument type checking mechanism. Implement type checks for
            one function.
Files:      src/evalfunc.c, src/proto/evalfunc.pro, src/mnv9compile.c,
            src/testdir/test_mnv9_func.mnv, src/testdir/test_mnv9_builtin.mnv,
            src/testdir/Make_all.mak

Patch 8.2.1877 (after 8.2.1876)
Problem:    Test for function list fails.
Solution:   Move "obsolete" comments one line up.
Files:      src/evalfunc.c

Patch 8.2.1878
Problem:    GTK: error for redefining function. (Tony Mechelynck)
Solution:   Remove "gtk_" prefix from local functions and prepend "gui_" to
            global functions.
Files:      src/gui_gtk_f.c, src/gui_gtk_f.h, src/gui_gtk.c, src/gui_gtk_x11.c

Patch 8.2.1879
Problem:    MNV9: argument types of insert() not checked when compiling.
Solution:   Add argument type checks for insert().
Files:      src/evalfunc.c, src/proto/evalfunc.pro, src/mnv9compile.c,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.1880
Problem:    MNV9: Asan complains about adding zero to NULL.
Solution:   Check for argument count first.
Files:      src/mnv9compile.c

Patch 8.2.1881
Problem:    Cannot build with GTK3.
Solution:   Adjust form functions.
Files:      src/gui_gtk_f.c

Patch 8.2.1882
Problem:    MNV9: v:disallow_let is no longer needed.
Solution:   Remove v:disallow_let.
Files:      src/evalvars.c, src/mnv.h, src/mnv9compile.c

Patch 8.2.1883
Problem:    Compiler warnings when using Python.
Solution:   Adjust PyCFunction to also have the second argument.  Use "int"
            return type for some functions.  Insert "(void *)" to get rid of
            the remaining warnings.
Files:      src/if_py_both.h, src/if_python.c, src/if_python3.c

Patch 8.2.1884
Problem:    Compiler warning for uninitialized variable. (John Marriott)
Solution:   Initialize with NULL.
Files:      src/mnv9compile.c, src/evalfunc.c

Patch 8.2.1885
Problem:    Filetype tests unnecessarily creates swap files.
Solution:   Disable 'swapfile'. (Ken Takata, closes #7183)
Files:      src/testdir/test_filetype.mnv

Patch 8.2.1886
Problem:    Using ":silent!" in a popup filter has unexpected effect.
Solution:   Use did_emsg instead of called_emsg. (closes #7178)
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv

Patch 8.2.1887
Problem:    Github actions not optimally configured.
Solution:   Run CI on any pushed branches. Set fail-fast. (Ozaki Kiichi,
            closes #7184)
Files:      .github/workflows/ci-windows.yaml

Patch 8.2.1888
Problem:    MNV9: Getbufline(-1, 1, '$') gives an error.
Solution:   Return an empty list. (closes #7180)
Files:      src/evalbuffer.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.1889
Problem:    MNV9: erroneous error for missing white space after {}.
Solution:   Don't skip over white space after {}. (issue #7167)
Files:      src/dict.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1890
Problem:    MNV9: strange error for subtracting from a list.
Solution:   Check getting a number, not a string. (closes #7167)
Files:      src/eval.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1891
Problem:    MNV9: skipping over expression doesn't handle line breaks.
Solution:   Pass evalarg to skip_expr(). (closes #7157)
Files:      src/mnv9compile.c, src/eval.c, src/proto/eval.pro, src/ex_docmd.c,
            src/misc1.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.1892
Problem:    Valgrind warns for using uninitialized access in tests.
Solution:   Fix condition for breaking out of loop. (Dominique Pellé,
            closes #7187)
Files:      src/terminal.c

Patch 8.2.1893
Problem:    Fuzzy matching does not support multiple words.
Solution:   Add support for matching white space separated words. (Yegappan
            Lakshmanan, closes #7163)
Files:      runtime/doc/eval.txt, src/search.c,
            src/testdir/test_matchfuzzy.mnv

Patch 8.2.1894
Problem:    MNV9: command modifiers are not supported.
Solution:   Support "silent" and "silent!".
Files:      src/structs.h, src/mnv9compile.c, src/mnv9.h, src/mnv9execute.c,
            src/evalvars.c, src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_cmd.mnv

Patch 8.2.1895 (after 8.2.1894)
Problem:    MNV9: silent command modifier test fails.
Solution:   Add missing changes.
Files:      src/ex_docmd.c

Patch 8.2.1896
Problem:    Valgrind warns for using uninitialized memory.
Solution:   NUL terminate the SmcOpenConnection() error message. (Dominique
            Pellé, closes #7194)
Files:      src/os_unix.c

Patch 8.2.1897
Problem:    Command modifiers are saved and set inconsistently.
Solution:   Separate parsing and applying command modifiers.  Save values in
            cmdmod_T.
Files:      src/structs.h, src/ex_docmd.c, src/proto/ex_docmd.pro,
            src/ex_cmds.h, src/mnv9compile.c

Patch 8.2.1898
Problem:    Command modifier parsing always uses global cmdmod.
Solution:   Pass in cmdmod_T to use.  Rename struct fields consistently.
Files:      src/structs.h, src/arglist.c, src/buffer.c, src/bufwrite.c,
            src/diff.c, src/change.c, src/cmdhist.c, src/edit.c,
            src/ex_cmds.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_getln.c,
            src/fileio.c, src/filepath.c, src/gui.c, src/gui_gtk_x11.c,
            src/help.c, src/if_cscope.c, src/indent.c, src/mark.c,
            src/memline.c, src/message.c, src/option.c, src/ops.c,
            src/os_unix.c, src/quickfix.c, src/register.c, src/scriptfile.c,
            src/search.c, src/session.c, src/tag.c, src/terminal.c,
            src/textformat.c, src/usercmd.c, src/mnv9compile.c, src/window.c,
            src/proto/ex_docmd.pro

Patch 8.2.1899
Problem:    Crash in out-of-memory situation.
Solution:   Bail out if shell_name is NULL. (Dominique Pellé, closes #7196)
Files:      src/ex_cmds.c

Patch 8.2.1900
Problem:    MNV9: command modifiers do not work.
Solution:   Make most command modifiers work.
Files:      src/mnv9.h, src/mnv9compile.c, src/mnv9execute.c,
            src/usercmd.c, src/proto/usercmd.pro, src/scriptfile.c,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.1901
Problem:    Variable completion does not work in command line window.
Solution:   Use the "prevwin". (closes #7198)
Files:      src/evalvars.c, src/testdir/test_ins_complete.mnv

Patch 8.2.1902
Problem:    Default option values are changed when using :badd for an existing
            buffer.
Solution:   When calling buflist_new() pass a zero line number. (closes #7195)
Files:      src/ex_cmds.c, src/testdir/test_buffer.mnv

Patch 8.2.1903 (after 8.2.1902)
Problem:    Buffer test fails with normal features.
Solution:   Use 'numberwidth' instead of 'conceallevel' in the test.
Files:      src/testdir/test_buffer.mnv

Patch 8.2.1904
Problem:    Still using default option values after using ":badd +1".
Solution:   Find a window where options were set.  Don't set the window when
            using ":badd".
Files:      src/buffer.c, src/ex_cmds.c, src/mnv.h,
            src/testdir/test_buffer.mnv

Patch 8.2.1905
Problem:    The wininfo list may contain stale entries.
Solution:   When closing a window remove any other entry where the window
            pointer is NULL.
Files:      src/buffer.c, src/proto/buffer.pro, src/window.c

Patch 8.2.1906
Problem:    Warning for signed/unsigned.
Solution:   Use size_t instead of int. (Mike Williams)
Files:      src/proto/usercmd.pro, src/usercmd.c, src/mnv9execute.c

Patch 8.2.1907
Problem:    Complete_info().selected may be wrong.
Solution:   Update cp_number if it was never set. (issue #6945)
Files:      src/insexpand.c, src/testdir/test_ins_complete.mnv

Patch 8.2.1908
Problem:    Lua is initialized even when not used.
Solution:   Put lua_init() after check for "eap->skip". (Christian Brabandt,
            closes #7191).  Avoid compiler warnings.
Files:      src/if_lua.c, src/testdir/test_lua.mnv

Patch 8.2.1909
Problem:    Number of status line items is limited to 80.
Solution:   Dynamically allocate the arrays. (Rom Grk, closes #7181)
Files:      runtime/doc/options.txt, src/buffer.c, src/optionstr.c,
            src/proto/buffer.pro, src/screen.c, src/structs.h,
            src/testdir/test_options.mnv, src/testdir/test_statusline.mnv,
            src/mnv.h

Patch 8.2.1910
Problem:    Reading past the end of the command line.
Solution:   Check for NUL. (closes #7204)
Files:      src/ex_docmd.c, src/testdir/test_edit.mnv

Patch 8.2.1911
Problem:    Tiny build fails.
Solution:   Add #ifdef.
Files:      src/insexpand.c

Patch 8.2.1912
Problem:    With Python 3.9 some tests fail.
Solution:   Take into account the different error message. (James McCoy,
            closes #7210)
Files:      src/testdir/test_python3.mnv

Patch 8.2.1913
Problem:    GTK GUI: rounding for the cell height is too strict.
Solution:   Round up above 15/16 of a pixel. (closes #7203)
Files:      src/gui_gtk_x11.c

Patch 8.2.1914
Problem:    MNV9: cannot put line break in expression for '=' register.
Solution:   Pass fgetline to set_expr_line(). (closes #7209)
Files:      src/register.c, src/proto/register.pro, src/ex_docmd.c,
            src/eval.c, src/proto/eval.pro, src/misc2.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.1915
Problem:    MNV9: error for wrong number of arguments is not useful.
Solution:   Mention whatever we have for the name. (closes #7208)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1916
Problem:    MNV9: function call is aborted even when "silent!" is used.
Solution:   Use did_emsg instead of called_emsg. (closes #7213)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1917
Problem:    No test for improved Man command.
Solution:   Test that shell arguments are properly escaped.
Files:      src/testdir/test_man.mnv

Patch 8.2.1918
Problem:    MNV9: E1100 mentions :let.
Solution:   Mention "var". (closes #7207)
Files:      src/mnv9script.c, src/errors.h

Patch 8.2.1919
Problem:    Assert_fails() setting emsg_silent changes normal execution.
Solution:   Use a separate flag in_assert_fails.
Files:      src/testing.c, src/globals.h, src/buffer.c, src/change.c,
            src/fileio.c, src/insexpand.c, src/message.c, src/misc1.c,
            src/normal.c, src/screen.c, src/term.c, src/mnv9execute.c,
            src/testdir/test_mnv9_func.mnv, src/testdir/gen_opt_test.mnv,
            src/testdir/test_autocmd.mnv, src/testdir/test_mapping.mnv,
            src/testdir/test_popup.mnv, src/testdir/test_terminal.mnv

Patch 8.2.1920
Problem:    Listlbr test fails when run after another test.
Solution:   Add test separately to list of test targets.
Files:      src/testdir/Make_all.mak, src/testdir/test_alot_utf8.mnv

Patch 8.2.1921
Problem:    Fuzzy matching does not recognize path separators.
Solution:   Add a bonus for slash and backslash. (Yegappan Lakshmanan,
            closes #7225)
Files:      src/search.c, src/testdir/test_matchfuzzy.mnv

Patch 8.2.1922
Problem:    Win32: scrolling doesn't work properly when part of window is
            off-screen.
Solution:   Fall back to GDI scrolling if part of the window is off-screen.
            Handle multi-monitor setup better. (Ken Takata, closes #7219)
Files:      src/gui_w32.c

Patch 8.2.1923
Problem:    MNV9: "filter" command modifier doesn't work.
Solution:   Check for space on char before argument. (closes #7216,
            closes #7222)
Files:      src/ex_docmd.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.1924
Problem:    MNV9: crash when indexing dict with NULL key.
Solution:   Use empty string instead of NULL. (closes #7229)  Make error
            message more useful for empty string.
Files:      src/mnv9execute.c, src/globals.h, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1925 (after 8.2.1924)
Problem:    List/dict test fails.
Solution:   Correct expected exception.
File:       src/testdir/test_listdict.mnv

Patch 8.2.1926
Problem:    Cannot use a space in 'spellfile'. (Filipe Brandenburger)
Solution:   Permit using a space. (closes #7230)
Files:      src/spell.c, src/testdir/gen_opt_test.mnv

Patch 8.2.1927
Problem:    MNV9: get unknown error with an error in a timer function.
Solution:   Use did_emsg instead of called_emsg. (closes #7231)
Files:      src/mnv9compile.c, src/mnv9execute.c

Patch 8.2.1928
Problem:    MNV9: "silent!" not effective when list index is wrong.
Solution:   Ignore list index failure when emsg_silent is set. (closes #7232)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.1929
Problem:    MS-Windows: problem loading Perl 5.32.
Solution:   Define NO_THREAD_SAFE_LOCALE. (Ken Takata, closes #7234)
Files:      src/if_perl.xs

Patch 8.2.1930
Problem:    Wrong input if removing shift results in special key code.
Solution:   Handle special key codes. (closes #7189)
Files:      src/term.c, src/testdir/test_termcodes.mnv

Patch 8.2.1931
Problem:    MNV9: arguments of extend() not checked at compile time.
Solution:   Add argument type checking for extend().
Files:      src/evalfunc.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.1932
Problem:    Compiler warnings when building with Athena GUI.
Solution:   Fix function signatures.
Files:      src/gui_at_fs.c

Patch 8.2.1933
Problem:    Cannot sort using locale ordering.
Solution:   Add a flag for :sort and sort() to use the locale. (Dominique
            Pellé, closes #7237)
Files:      runtime/doc/change.txt, runtime/doc/eval.txt, src/ex_cmds.c,
            src/list.c, src/testdir/test_sort.mnv

Patch 8.2.1934
Problem:    MNV9: command modifiers in :def function not tested.
Solution:   Add tests.  Fix using modifier before filter command.
Files:      src/ex_docmd.c, src/mnv9compile.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.1935 (after 8.2.1933)
Problem:    Sort test fails on Mac.
Solution:   Disable the sort test with locale on Mac.
Files:      src/testdir/test_sort.mnv

Patch 8.2.1936
Problem:    Session sets the local 'scrolloff' value to the global value.
Solution:   Do not let restoring the global option value change the local
            value.
Files:      src/session.c, src/testdir/test_mksession.mnv

Patch 8.2.1937
Problem:    MNV9: test for confirm modifier fails in some situations.
Solution:   Add a short wait.  Handle failure better.
Files:      src/testdir/term_util.mnv, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.1938
Problem:    Wiping out a terminal buffer makes some tests fail.
Solution:   Do not wipe out the terminal buffer unless wanted.
Files:      src/testdir/term_util.mnv, src/testdir/test_terminal.mnv,
            src/testdir/test_terminal3.mnv

Patch 8.2.1939
Problem:    Invalid memory access in Ex mode with global command.
Solution:   Make sure the cursor is on a valid line. (closes #7238)
Files:      src/move.c, src/testdir/test_ex_mode.mnv

Patch 8.2.1940
Problem:    MNV9: browse modifier test fails on Mac.
Solution:   Only test when the +browse feature is available.
Files:      src/testdir/test_mnv9_cmd.mnv

Patch 8.2.1941
Problem:    Ex mode test fails on MS-Windows with GUI.
Solution:   Skip the test when using gmnv.
Files:      src/testdir/test_ex_mode.mnv

Patch 8.2.1942
Problem:    Insufficient test coverage for the Netbeans interface.
Solution:   Add more tests. Fix an uncovered bug. (Yegappan Lakshmanan,
            closes #7240)
Files:      runtime/doc/netbeans.txt, src/mouse.c,
            src/testdir/test_netbeans.py, src/testdir/test_netbeans.mnv,
            src/testdir/test_quickfix.mnv

Patch 8.2.1943
Problem:    MNV9: wrong error message when colon is missing.
Solution:   Check for a missing colon. (issue #7239)
Files:      src/ex_docmd.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.1944
Problem:    Netbeans test is flaky.
Solution:   Add a short delay. (Yegappan Lakshmanan, closes #7246)
Files:      src/testdir/test_netbeans.mnv

Patch 8.2.1945
Problem:    Crash when passing NULL function to reduce().
Solution:   Check for NULL pointer and give an error. (Dominique Pellé,
            closes #7243)
Files:      src/list.c, src/errors.h, src/testdir/test_listdict.mnv

Patch 8.2.1946
Problem:    sort() with NULL string not tested.
Solution:   Add a test.  use v:collate. (Dominique Pellé, closes #7247)
Files:      src/testdir/test_sort.mnv

Patch 8.2.1947
Problem:    Crash when using "zj" without folds. (Sean Dewar)
Solution:   Check for at least one fold. (closes #7245)
Files:      src/fold.c, src/testdir/test_fold.mnv

Patch 8.2.1948
Problem:    GUI: crash when handling message while closing a window. (Srinath
            Avadhanula)
Solution:   Don't handle message while closing a window. (closes #7250)
Files:      src/window.c, src/globals.h, src/getchar.c

Patch 8.2.1949
Problem:    MNV9: using extend() on null dict is silently ignored.
Solution:   Give an error message.  Initialize a dict variable with an empty
            dictionary. (closes #7251)
Files:      src/errors.h, src/list.c, src/evalvars.c,
            src/testdir/test_mnv9_assign.mnv

Patch 8.2.1950
Problem:    MNV9: crash when compiling function fails when getting type.
Solution:   Handle NULL type. (closes #7253)
Files:      src/mnv9type.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1951 (after 8.2.1949)
Problem:    Test for list and dict fails.
Solution:   Adjust for using an empty list/dict for a null one.
Files:      src/testdir/test_listdict.mnv, src/testdir/test_python2.mnv,
            src/testdir/test_python3.mnv

Patch 8.2.1952
Problem:    MNV9: crash when using a NULL dict key.
Solution:   Use a NULL dict key like an empty string. (closes #7249)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.1953
Problem:    MNV9: extra "unknown" error after other error.
Solution:   Restore did_emsg count after EXEC instruction. (closes #7254)
            Improve error message from assert_fails()
Files:      src/mnv9execute.c, src/testing.c,
            src/testdir/test_mnv9_script.mnv, src/testdir/test_assert.mnv

Patch 8.2.1954
Problem:    MNV9: not all command modifiers are tested.
Solution:   Add tests for "keep" modifiers.  Fix that marks are lost even
            though ":lockmarks" is used.
Files:      src/ex_cmds.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.1955
Problem:    MNV9: not all command modifiers are tested.
Solution:   Add tests for remaining modifiers.
Files:      src/testdir/test_mnv9_cmd.mnv

Patch 8.2.1956
Problem:    MNV9: cannot specify argument types for lambda.
Solution:   Allow adding argument types.  Check arguments when calling a
            function reference.
Files:      src/userfunc.c, src/proto/userfunc.pro, src/mnv9compile.c,
            src/eval.c, src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.1957
Problem:    Diff and cursorcolumn highlighting don't mix.
Solution:   Fix condition for what attribute to use. (Christian Brabandt,
            closes #7258, closes #7260)
Files:      src/drawline.c, src/testdir/dumps/Test_diff_cuc_01.dump,
            src/testdir/dumps/Test_diff_cuc_02.dump,
            src/testdir/dumps/Test_diff_cuc_03.dump,
            src/testdir/dumps/Test_diff_cuc_04.dump,
            src/testdir/test_diffmode.mnv

Patch 8.2.1958 (after 8.2.1956)
Problem:    Build failure with timers.
Solution:   Add missing change.
Files:      src/popupwin.c

Patch 8.2.1959
Problem:    Crash when terminal buffer name is made empty. (Dhiraj Mishra)
Solution:   Fall back to "[No Name]". (closes #7262)
Files:      src/buffer.c, src/proto/buffer.pro, src/terminal.c,
            src/testdir/test_terminal.mnv

Patch 8.2.1960
Problem:    Warning for uninitialized variable.
Solution:   Initialize the variable.
Files:      src/evalfunc.c

Patch 8.2.1961
Problem:    Various comments can be improved.
Solution:   Various comment adjustments.
Files:      src/dict.c, src/structs.h, src/time.c, src/testdir/shared.mnv,
            src/testdir/test_netbeans.mnv, src/gui_motif.c

Patch 8.2.1962
Problem:    Netbeans may access freed memory.
Solution:   Check the buffer pointer is still valid.  Add a test. (Yegappan
            Lakshmanan, closes #7248)
Files:      src/netbeans.c, src/testdir/test_netbeans.mnv

Patch 8.2.1963
Problem:    Crash when using a popup window with "latin1" encoding.
Solution:   Don't use ScreenLinesUC when enc_utf8 is false. (closes #7241)
Files:      src/screen.c, src/terminal.c, src/testdir/test_popupwin.mnv

Patch 8.2.1964
Problem:    Not all ConTeXt files are recognized.
Solution:   Add two patterns. (closes #7263)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.1965
Problem:    MNV9: tests fail without the channel feature.
Solution:   Check if the channel feature is present. (Dominique Pellé,
            closes #7270)
Files:      src/testdir/test_mnv9_expr.mnv

Patch 8.2.1966
Problem:    Popup becomes current window after closing a terminal window.
Solution:   When restoring the window after executing autocommands, check that
            the window ID is still the same.  (Naruhiko Nishino,
            closes #7272)
Files:      src/autocmd.c, src/window.c, src/proto/window.pro, src/structs.h,
            src/testdir/test_popupwin.mnv

Patch 8.2.1967
Problem:    The session file does not restore the alternate file.
Solution:   Add ":balt".  Works like ":badd" and also sets the buffer as the
            alternate file.  Use it in the session file. (closes #7269,
            closes #6714)
Files:      runtime/doc/windows.txt, src/ex_cmds.h, src/ex_cmdidxs.h,
            src/ex_docmd.c, src/mnv.h, src/ex_cmds.c, src/session.c,
            src/testdir/test_buffer.mnv

Patch 8.2.1968
Problem:    MNV9: has() assumes a feature does not change dynamically.
Solution:   Check whether a feature may change dynamically. (closes #7265)
Files:      src/mnv9compile.c, src/evalfunc.c, src/proto/evalfunc.pro,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.1969
Problem:    MNV9: map() may change the list or dict item type.
Solution:   Add mapnew().
Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
            src/list.c, src/proto/list.pro, src/testdir/test_filter_map.mnv

Patch 8.2.1970
Problem:    It is easy to make mistakes when cleaning up swap files after the
            system crashed.
Solution:   Warn for the process still running after recovery.  Do not
            automatically delete a swap file created on another system.
            (David Fries, closes #7273)
Files:      src/memline.c, src/testdir/test_swap.mnv

Patch 8.2.1971
Problem:    Memory leak when map() fails.
Solution:   Clear the typval.
Files:      src/list.c

Patch 8.2.1972
Problem:    Crash when recreating nested fold.
Solution:   Check for empty growarray. (closes #7278)
Files:      src/fold.c, src/testdir/test_fold.mnv

Patch 8.2.1973
Problem:    Finding a patch number can be a bit slow.
Solution:   Use binary search. (closes #7279)
Files:      src/version.c

Patch 8.2.1974
Problem:    MNV9: test for has('gui_running') fails with MNVDLL.
Solution:   Adjust the #ifdef. (Ken Takata, closes #7276)
Files:      src/evalfunc.c

Patch 8.2.1975
Problem:    Win32: memory leak when encoding conversion fails.
Solution:   Free the allocated memory. (Ken Takata, closes #7277)
Files:      src/os_win32.c

Patch 8.2.1976
Problem:    Cannot backspace in prompt buffer after using cursor-left. (Maxim
            Kim)
Solution:   Ignore "arrow_used" in a prompt buffer. (closes #7281)
Files:      src/edit.c, src/testdir/test_prompt_buffer.mnv

Patch 8.2.1977
Problem:    MNV9: error for using a string in a condition is confusing.
Solution:   Give a more specific error.  Also adjust the compile time type
            checking for || and &&.
Files:      src/mnv9compile.c, src/mnv9execute.c, src/proto/mnv9execute.pro,
            src/typval.c, src/errors.h, src/testdir/test_mnv9_cmd.mnv,
            src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.1978
Problem:    Making a mapping work in all modes is complicated.
Solution:   Add the <Cmd> special key. (Yegappan Lakshmanan, closes #7282,
            closes 4784, based on patch by Bjorn Linse)
Files:      runtime/doc/autocmd.txt, runtime/doc/eval.txt,
            runtime/doc/map.txt, src/edit.c, src/errors.h, src/ex_docmd.c,
            src/ex_getln.c, src/getchar.c, src/insexpand.c, src/keymap.h,
            src/map.c, src/misc2.c, src/normal.c, src/ops.c,
            src/proto/getchar.pro, src/screen.c, src/terminal.c,
            src/testdir/test_mapping.mnv

Patch 8.2.1979
Problem:    "term_opencmd" option of term_start() is truncated. (Sergey
            Vlasov)
Solution:   Allocate the buffer to hold the command. (closes #7284)
Files:      src/terminal.c, src/testdir/test_terminal.mnv

Patch 8.2.1980
Problem:    MNV9: some tests are not done at the script level.
Solution:   Use CheckDefAndScriptSuccess() in more places.  Fix uncovered
            problems.
Files:      src/eval.c, src/list.c, src/scriptfile.c,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.1981
Problem:    MinGW: parallel compilation might fail.
Solution:   Add dependencies on $(OUTDIR). (Masamichi Abe, closes #7287)
Files:      src/Make_cyg_ming.mak

Patch 8.2.1982
Problem:    Quickfix window not updated when adding invalid entries.
Solution:   Update the quickfix buffer properly. (Yegappan Lakshmanan, closes
            #7291, closes #7271)
Files:      src/quickfix.c, src/testdir/test_quickfix.mnv

Patch 8.2.1983
Problem:    ml_get error when using <Cmd> to open a terminal.
Solution:   If the window changed reset the incsearch state. (closes #7289)
Files:      src/ex_getln.c, src/testdir/test_terminal.mnv,
            src/testdir/dumps/Test_terminal_from_cmd.dump

Patch 8.2.1984
Problem:    Cannot use :mnvgrep in omni completion, causing C completion to
            fail.
Solution:   Add the EX_LOCK_OK flag to :mnvgrep. (closes #7292)
Files:      src/ex_cmds.h, src/testdir/test_quickfix.mnv

Patch 8.2.1985
Problem:    Crash when closing terminal popup with <Cmd> mapping.
Solution:   Check b_term is not NULL. (closes #7294)
Files:      src/terminal.c, src/testdir/test_terminal.mnv

Patch 8.2.1986
Problem:    Expression test is flaky on Appveyor.
Solution:   Temporarily disable the test in MS-Windows.
Files:      src/testdir/test_mnv9_expr.mnv

Patch 8.2.1987
Problem:    MS-Windows: Win32.mak is no longer needed.
Solution:   Do not include Win32.mak. (Jason McHugh, closes #7290)
Files:      src/Make_mvc.mak, src/INSTALLpc.txt

Patch 8.2.1988
Problem:    Still in Insert mode when opening terminal popup with a <Cmd>
            mapping in Insert mode.
Solution:   Exit Insert mode. (closes #7295)
Files:      src/edit.c, src/testdir/test_terminal.mnv

Patch 8.2.1989
Problem:    Info popup triggers WinEnter and WinLeave autocommands.
Solution:   Suppress autocommands for the info popup. (closes #7296)
Files:      src/popupmenu.c, src/testdir/test_popupwin.mnv

Patch 8.2.1990
Problem:    Cursor position wrong in terminal popup with finished job.
Solution:   Only add the top and left offset when not done already.
            (closes #7298)
Files:      src/popupwin.c, src/structs.h, src/drawline.c, src/move.c,
            src/terminal.c, src/testdir/dumps/Test_terminal_popup_m1.dump

Patch 8.2.1991
Problem:    Coverity warns for not using the ga_grow() return value.
Solution:   Bail out if ga_grow() fails. (Yegappan Lakshmanan, closes #7303)
Files:      src/getchar.c

Patch 8.2.1992
Problem:    Build fails with small features.
Solution:   Add #ifdef.
Files:      src/move.c

Patch 8.2.1993
Problem:    Occasional failure of the netbeans test.
Solution:   Add "silent!". (Yegappan Lakshmanan, closes #7304)
Files:      src/testdir/test_netbeans.mnv

Patch 8.2.1994 (after 8.2.1981)
Problem:    MS-Windows: MinGW always does a full build.
Solution:   Only check if $OUTDIR exists. (Masamichi Abe, closes #7311)
Files:      src/Make_cyg_ming.mak

Patch 8.2.1995
Problem:    The popup menu can cause too much redrawing.
Solution:   Reduce the length of the displayed text. (Yasuhiro Matsumoto,
            closes #7306)
Files:      src/popupmenu.c

Patch 8.2.1996
Problem:    MNV9: invalid error for argument of extend().
Solution:   Check if the type could match. (closes #7299)
Files:      src/evalfunc.c, src/mnv9compile.c, src/proto/mnv9compile.pro,
            src/mnv9type.c, src/proto/mnv9type.pro,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.1997
Problem:    Window changes when using bufload() while in a terminal popup.
Solution:   When searching for a window by ID also find a popup window.
            (closes #7307)
Files:      src/window.c, src/testdir/test_terminal.mnv

Patch 8.2.1998
Problem:    Terminal Cmd test sometimes fails to close popup.
Solution:   Add "term_finish" option.
Files:      src/testdir/test_terminal.mnv

Patch 8.2.1999
Problem:    Terminal popup test sometimes fails.
Solution:   Wait for the popup to close.
Files:      src/testdir/test_terminal.mnv

Patch 8.2.2000
Problem:    MNV9: dict.key assignment not implemented yet.
Solution:   Implement dict.key assignment. (closes #7312)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2001
Problem:    MNV9: :def function does not apply 'maxfuncdepth'.
Solution:   Use 'maxfuncdepth'. (issue #7313)
Files:      src/mnv9execute.c, src/userfunc.c, src/proto/userfunc.pro,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.2002
Problem:    MNV9: lambda argument shadowed by function name.
Solution:   Let function name be shadowed by lambda argument. (closes #7313)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2003
Problem:    Build error with +conceal but without +popupwin.
Solution:   Add #ifdef. (Tom Ryder, closes #7316)
Files:      src/drawline.c

Patch 8.2.2004 (after 8.2.2002)
Problem:    Compiler warning for uninitialized variable.
Solution:   Initialize "ufunc". (John Marriott)
Files:      src/mnv9compile.c

Patch 8.2.2005
Problem:    Redoing a mapping with <Cmd> doesn't work properly.
Solution:   Fill the redo buffer.  Use "<SNR>" instead of a key code.
            (closes #7282)
Files:      src/ops.c, src/getchar.c, src/testdir/test_mapping.mnv

Patch 8.2.2006
Problem:    .pbtxt files are not recognized.
Solution:   Recognize .pbtxt as protobuf text buffers. (closes #7326)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.2007
Problem:    Test for insert mode in popup is not reliable.
Solution:   Wait for the popup to disappear. (Ozaki Kiichi, closes #7321)
Files:      src/testdir/test_terminal.mnv

Patch 8.2.2008
Problem:    MS-Windows GUI: handling channel messages lags.
Solution:   Reduce the wait time from 100 to 10 msec. (closes #7097)
Files:      src/gui_w32.c

Patch 8.2.2009
Problem:    MS-Windows: setting $LANG in gmnvext only causes problems.
Solution:   Do not set $LANG. (Ken Takata, closes #7325)
Files:      src/GmnvExt/gmnvext.cpp

Patch 8.2.2010
Problem:    MNV9: compiling fails for unreachable return statement.
Solution:   Fix it. (closes #7319)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.2011
Problem:    "syn sync" reports a very large number.
Solution:   Use "at the first line".
Files:      src/syntax.c, src/testdir/test_syntax.mnv

Patch 8.2.2012
Problem:    MNV9: confusing error message when using bool wrongly.
Solution:   Mention "Bool" instead of "Special". (closes #7323)
Files:      src/typval.c, src/errors.h, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2013
Problem:    MNV9: not skipping white space after unary minus.
Solution:   Skip whitespace. (closes #7324)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2014
Problem:    Using CTRL-O in a prompt buffer moves cursor to start of the line.
Solution:   Do not move the cursor when restarting edit. (closes #7330)
Files:      src/job.c, src/testdir/test_prompt_buffer.mnv

Patch 8.2.2015
Problem:    MNV9: literal dict #{} is not like any other language.
Solution:   Support the JavaScript syntax.
Files:      runtime/doc/mnv9.txt, src/mnv9compile.c,
            src/proto/mnv9compile.pro, src/errors.h,
            src/testdir/test_mnv9_expr.mnv, src/testdir/test_mnv9_builtin.mnv,
            src/testdir/test_mnv9_func.mnv, src/testdir/test_mnv9_script.mnv

Patch 8.2.2016
Problem:    Swap file test is a little flaky.
Solution:   Don't set a byte to a fixed value, increment it.
Files:      src/testdir/test_swap.mnv

Patch 8.2.2017 (after 8.2.2015)
Problem:    Missing part of the dict change.
Solution:   Also change the script level dict.
Files:      src/dict.c

Patch 8.2.2018
Problem:    MNV9: script variable not found from lambda.
Solution:   In a lambda also check the script hashtab for a variable without a
            scope. (closes #7329)
Files:      src/evalvars.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2019 (after 8.2.2016)
Problem:    Swap file test fails on MS-Windows.
Solution:   Add four to the process ID. (Ken Takata, closes #7333)
Files:      src/testdir/test_swap.mnv

Patch 8.2.2020
Problem:    Some compilers do not like the "namespace" argument.
Solution:   Rename to "use_namespace". (closes #7332)
Files:      src/mnv9compile.c, src/proto/mnv9compile.pro

Patch 8.2.2021
Problem:    MNV9: get E1099 when autocommand resets did_emsg.
Solution:   Add did_emsg_cumul. (closes #7336)
Files:      src/globals.h, src/ex_docmd.c, src/mnv9execute.c,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.2022
Problem:    MNV9: star command recognized erroneously.
Solution:   Give an error for missing colon. (issue #7335)
Files:      src/ex_docmd.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2023
Problem:    MNV: memory leak when :execute fails.
Solution:   Clear the growarray.
Files:      src/mnv9execute.c

Patch 8.2.2024
Problem:    Flicker when redrawing a popup with a title and border.
Solution:   Do not redraw the border where the title is displayed. (Naruhiko
            Nishino, closes #7334)
Files:      src/popupwin.c

Patch 8.2.2025
Problem:    Amiga: Not all colors are used on OS4.
Solution:   Adjust the #ifdef to include __amigaos4__. (Ola Söder,
            closes #7328)
Files:      src/term.c

Patch 8.2.2026
Problem:    Coverity warns for possibly using not NUL terminated string.
Solution:   Put a NUL in b0_hname just in case.
Files:      src/memline.c

Patch 8.2.2027
Problem:    Coverity warns for uninitialized field.
Solution:   Set "v_lock".
Files:      src/list.c

Patch 8.2.2028
Problem:    Coverity warns for using an uninitialized variable.
Solution:   Initialize to NULL.
Files:      src/eval.c

Patch 8.2.2029
Problem:    Coverity warns for not checking return value.
Solution:   Check that u_save_cursor() returns OK.
Files:      src/ops.c

Patch 8.2.2030
Problem:    Some tests fail on Mac.
Solution:   Avoid Mac test failures.  Add additional test for wildmenu.
            (Yegappan Lakshmanan, closes #7341)
Files:      src/testdir/runtest.mnv, src/testdir/test_cmdline.mnv,
            src/testdir/test_options.mnv, src/testdir/test_popupwin.mnv

Patch 8.2.2031
Problem:    Some tests fail when run under valgrind.
Solution:   Avoid timing problems.
Files:      src/testdir/test_mnv9_func.mnv, src/testdir/test_channel.mnv,
            src/testdir/test_clientserver.mnv, src/testdir/test_debugger.mnv,
            src/testdir/test_quotestar.mnv

Patch 8.2.2032
Problem:    Cabalconfig and cabalproject filetypes not recognized.
Solution:   Detect more cabal files. (Marcin Szamotulski, closes #7339)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.2033
Problem:    MNV9: :def without argument gives compilation error.
Solution:   Add the DEF instruction. (closes #7344)
Files:      src/ex_docmd.c, src/mnv9.h, src/mnv9compile.c, src/mnv9execute.c,
            src/userfunc.c, src/proto/userfunc.pro,
            src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.2034
Problem:    MNV9: list unpack in for statement not compiled yet.
Solution:   Compile list unpack. (closes #7345)
Files:      src/mnv9.h, src/mnv9compile.c, src/mnv9execute.c, src/errors.h,
            src/eval.c, src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.2035
Problem:    MS-Windows: some tests may fail.
Solution:   Avoid test failures. (Yegappan Lakshmanan, closes #7346)
Files:      src/testdir/test_channel.mnv, src/testdir/test_ex_mode.mnv,
            src/testdir/test_functions.mnv

Patch 8.2.2036
Problem:    Current buffer is messed up if creating a new buffer for the
            quickfix window fails.
Solution:   Check that creating the buffer succeeds. (closes #7352)
Files:      src/quickfix.c, src/testdir/test_quickfix.mnv,
            src/testdir/dumps/Test_quickfix_window_fails.dump

Patch 8.2.2037
Problem:    Compiler test depends on list of compiler plugins.
Solution:   Compare with the actual list of compiler plugins.
Files:      src/testdir/test_compiler.mnv

Patch 8.2.2038
Problem:    Compiler test fails on MS-Windows.
Solution:   Sort the found compiler plugin names.
Files:      src/testdir/test_compiler.mnv

Patch 8.2.2039
Problem:    MNVinfo is not written when creating a new file.
Solution:   Set "b_marks_read" in the new buffer. (Christian Brabandt,
            closes #7350)
Files:      src/bufwrite.c, src/testdir/test_mnvinfo.mnv

Patch 8.2.2040
Problem:    Terminal buffer disappears even when 'bufhidden' is "hide".
            (Sergey Vlasov)
Solution:   Check 'bufhidden' when a terminal buffer becomes hidden.
            (closes #7358)
Files:      src/buffer.c, src/testdir/test_terminal.mnv

Patch 8.2.2041
Problem:    Haskell filetype not optimally recognized.
Solution:   Recognize all *.hsc files as Haskell. (Marcin Szamotulski,
            closes #7354)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.2042
Problem:    Build failure with +profile but without +reltime.
Solution:   Adjust #ifdef. (Christian Brabandt, closes #7361)
Files:      src/syntax.c

Patch 8.2.2043
Problem:    GTK3: white border around text stands out.
Solution:   Use current theme color. (closes #7357, issue #349)
Files:      src/gui_gtk_x11.c

Patch 8.2.2044
Problem:    MS-Windows: swap file test sometimes fails.
Solution:   Use a more reliable way to change the process ID. When "timeout"
            fails use "ping" to wait up to ten minutes. (Ken Takata,
            closes #7365)
Files:      .github/workflows/ci-windows.yaml, src/testdir/test_swap.mnv

Patch 8.2.2045
Problem:    Highlighting a character too much with incsearch.
Solution:   Check "search_match_endcol". (Christian Brabandt, closes #7360)
Files:      src/drawline.c, src/testdir/test_search.mnv,
            src/testdir/dumps/Test_incsearch_newline1.dump,
            src/testdir/dumps/Test_incsearch_newline2.dump,
            src/testdir/dumps/Test_incsearch_newline3.dump,
            src/testdir/dumps/Test_incsearch_newline4.dump,
            src/testdir/dumps/Test_incsearch_newline5.dump

Patch 8.2.2046
Problem:    Some test failures don't give a clear error.
Solution:   Use assert_match() and assert_fails() instead of assert_true().
            (Ken Takata, closes #7368)
Files:      src/testdir/test_autocmd.mnv, src/testdir/test_backspace_opt.mnv

Patch 8.2.2047
Problem:    Amiga: FEAT_ARP defined when it should not.
Solution:   Adjust #ifdef. (Ola Söder, closes #7370)
Files:      src/feature.h

Patch 8.2.2048
Problem:    Amiga: obsolete code.
Solution:   Remove the unused lines. (Ola Söder, closes #7373)
Files:      src/gui.c

Patch 8.2.2049
Problem:    Amiga: obsolete function.
Solution:   Remove the function. (Ola Söder, closes #7374)
Files:      src/memfile.c

Patch 8.2.2050
Problem:    Search test contains unneeded sleeps.
Solution:   Rename the function, remove sleeps. (Christian Brabandt,
            closes #7369)
Files:      src/testdir/test_search.mnv

Patch 8.2.2051
Problem:    MNV9: crash when aborting a user function call.
Solution:   Do not use the return value when aborting. (closes #7372)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2052
Problem:    MNV9: "edit +4 fname" gives an error. (Naruhiko Nishino)
Solution:   Allow using a range in the +cmd argument. (closes #7364)
Files:      src/ex_docmd.c, src/proto/ex_docmd.pro, src/mnv.h, src/ex_cmds.c,
            src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2053
Problem:    MNV9: lambda doesn't accept argument types.
Solution:   Optionally accept argument types at the script level.
Files:      src/eval.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2054
Problem:    Amiga: FEAT_ARP defined when it should not.
Solution:   Adjust "||" to "&&" in #ifdef. (Ola Söder, closes #7375)
Files:      src/feature.h

Patch 8.2.2055
Problem:    MS-Windows: two MNV instances may use the same temp file.
Solution:   Use the process ID for the temp name. (Ken Takata, closes #7378)
Files:      src/fileio.c

Patch 8.2.2056
Problem:    Configure fails when building with the
            "implicit-function-declaration" error enabled, specifically on Mac.
Solution:   Declare the functions like in the source code. (suggestion by
            Clemens Lang, closes #7380)
Files:      src/configure.ac, src/auto/configure

Patch 8.2.2057
Problem:    Getting the selection may trigger TextYankPost autocmd.
Solution:   Only trigger the autocommand when yanking in MNV, not for getting
            the selection. (closes #7367)
Files:      src/clipboard.c, src/normal.c, src/register.c,
            src/testdir/test_autocmd.mnv

Patch 8.2.2058
Problem:    Using mkview/loadview changes the jumplist.
Solution:   Use ":keepjumps".  Don't let ":badd" or ":balt" change the
            jumplist. (closes #7371)
Files:      src/session.c, src/ex_docmd.c, src/testdir/test_mksession.mnv

Patch 8.2.2059
Problem:    Amiga: can't find plugins.
Solution:   Do not use "**" in the pattern. (Ola Söder, closes #7384)
Files:      src/main.c

Patch 8.2.2060
Problem:    Check for features implemented with "if".
Solution:   Use the Check commands. (Ken Takata, closes #7383)
Files:      src/testdir/test_autocmd.mnv, src/testdir/test_compiler.mnv,
            src/testdir/test_delete.mnv, src/testdir/test_diffmode.mnv,
            src/testdir/test_expr.mnv, src/testdir/test_fold.mnv

Patch 8.2.2061
Problem:    MNV9: E1030 error when using empty string for term_sendkeys().
Solution:   Don't check for an invalid type unless the terminal can't be
            found. (closes #7382)
Files:      src/terminal.c, src/testdir/test_termcodes.mnv

Patch 8.2.2062
Problem:    <Cmd> does not handle CTRL-V.
Solution:   Call get_literal() after encountering CTRL-V. (closes #7387)
Files:      src/getchar.c, src/testdir/test_mapping.mnv

Patch 8.2.2063
Problem:    MNV9: only one level of indexing supported.
Solution:   Handle more than one index in an assignment.
Files:      src/mnv9compile.c, src/errors.h, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2064
Problem:    terminal: cursor is on while redrawing, causing flicker.
Solution:   Switch the cursor off while redrawing.  Always add the top and
            left offset to the cursor position when not done already.
            (closes #5943)
Files:      src/terminal.c, src/popupwin.c

Patch 8.2.2065
Problem:    Using map() and filter() on a range() is inefficient.
Solution:   Do not materialize the range. (closes #7388)
Files:      src/list.c, src/testdir/test_functions.mnv

Patch 8.2.2066
Problem:    MNV9: assignment with += doesn't work.
Solution:   Do not see the "+" as an addition operator.
Files:      src/eval.c, src/ex_docmd.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2067 (after 8.2.2064)
Problem:    Cursor position in popup terminal is wrong.
Solution:   Don't check the flags.
Files:      src/terminal.c, src/testdir/test_popupwin.mnv

Patch 8.2.2068
Problem:    Transparent syntax item uses start/end of containing region.
Solution:   Do not change the startpos and endpos of a transparent region to
            that of its containing region. (Adrian Ghizaru, closes #7349,
            closes #7391)
Files:      src/syntax.c, src/testdir/test_syntax.mnv

Patch 8.2.2069
Problem:    The quickfix window is not updated after setqflist().
Solution:   Update the quickfix buffer. (Yegappan Lakshmanan, closes #7390,
            closes #7385)
Files:      src/quickfix.c, src/testdir/test_quickfix.mnv

Patch 8.2.2070
Problem:    Can't get the exit value in MNVLeave or MNVLeavePre autocommands.
Solution:   Add v:exiting like in Neomnv. (Yegappan Lakshmanan, closes #7395)
Files:      runtime/doc/autocmd.txt, runtime/doc/eval.txt, src/evalvars.c,
            src/main.c, src/testdir/test_exit.mnv, src/mnv.h

Patch 8.2.2071
Problem:    MNV9: list assign doesn't accept an empty remainder list.
Solution:   Recognize list assignment with ";".
Files:      src/ex_docmd.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2072
Problem:    MNV9: list assign not well tested.
Solution:   Test with different destinations.  Fix white space error.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2073
Problem:    MNV9: for with unpack only works for local variables.
Solution:   Recognize different destinations.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2074
Problem:    MNV9: using :normal from MNV9 script can't handle range.
Solution:   Execute a :normal command in legacy script context. (closes #7401)
Files:      src/structs.h, src/ex_docmd.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2075
Problem:    Error for const argument to mapnew().
Solution:   Don't give an error. (closes #7400)
Files:      src/list.c, src/testdir/test_filter_map.mnv

Patch 8.2.2076
Problem:    MS-Windows console: sometimes drops typed characters.
Solution:   Do not wait longer than 10 msec for input. (issue #7164)
Files:      src/os_win32.c

Patch 8.2.2077
Problem:    Build failure with small features.
Solution:   Add #ifdef.
Files:      src/structs.h, src/ex_docmd.c

Patch 8.2.2078
Problem:    Illegal memory access when using :print on invalid text. (Dhiraj
            Mishra)
Solution:   Check for more composing characters than supported. (closes #7399)
Files:      src/message.c, src/testdir/test_utf8.mnv

Patch 8.2.2079
Problem:    MNV9: cannot put a linebreak before or after "in" of ":for".
Solution:   Skip over linebreak.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2080
Problem:    MNV9: no proper error message for using s:var in for loop.
Solution:   Give a specific error.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2081
Problem:    MNV9: cannot handle a linebreak after "=" in assignment.
Solution:   Skip over linebreak. (closes #7407)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.2082
Problem:    MNV9: can still use the deprecated #{} dict syntax.
Solution:   Remove support for #{} in MNV9 script. (closes #7406, closes #7405)
Files:      src/dict.c, src/proto/dict.pro, src/eval.c, src/mnv9compile.c,
            src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_builtin.mnv, src/testdir/test_mnv9_cmd.mnv,
            src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_expr.mnv, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_script.mnv, src/testdir/test_popupwin.mnv,
            src/testdir/test_textprop.mnv

Patch 8.2.2083
Problem:    MNV9: crash when using ":silent!" and getting member fails.
Solution:   Jump to on_fatal_error. (closes #7412)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2084
Problem:    CTRL-V U doesn't work to enter a Unicode character when
            modifyOtherKeys is effective. (Ken Takata)
Solution:   Add a flag to get_literal() for the shift key. (closes #7413)
Files:      src/edit.c, src/proto/edit.pro, src/ex_getln.c, src/getchar.c,
            src/normal.c, src/testdir/test_termcodes.mnv

Patch 8.2.2085
Problem:    Qt translation file is recognized as typescript.
Solution:   Check the first line for "<?xml". (closes #7418)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.2086
Problem:    Libvterm tests are only run on Linux.
Solution:   Use static libraries. (Ozaki Kiichi, closes #7419)
Files:      .travis.yml, src/Makefile, src/libvterm/Makefile,
            src/libvterm/t/run-test.pl

Patch 8.2.2087
Problem:    MNV9: memory leak when statement is truncated.
Solution:   Increment the number of local variables.
Files:      src/mnv9compile.c

Patch 8.2.2088
Problem:    MNV9: script test sometimes fails.
Solution:   Unlet variables.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.2089
Problem:    Libvterm test fails to build on Mac.
Solution:   Adjust configure to remove a space between -L and the path that
            follows.
Files:      src/configure.ac, src/auto/configure

Patch 8.2.2090
Problem:    MNV9: dict does not accept a key in quotes.
Solution:   Recognize a key in single or double quotes.
Files:      runtime/doc/mnv9.txt, src/dict.c, src/proto/dict.pro,
            src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2091
Problem:    MS-Windows: build warnings.
Solution:   Add a #pragma to suppress the deprecation warning. (Ken Takata)
            Avoid using a non-ASCII character. (closes #7421)
Files:      src/message.c, src/os_win32.c

Patch 8.2.2092
Problem:    MNV9: unpredictable errors for script tests.
Solution:   Use a different script file name for each run.
Files:      src/testdir/mnv9.mnv, src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_func.mnv, src/testdir/test_quickfix.mnv,
            src/testdir/test_mnv9_assign.mnv

Patch 8.2.2093
Problem:    MNV9: script test sometimes fails.
Solution:   Do not find a script variable by its typval if the name was
            cleared.
Files:      src/mnv9script.c

Patch 8.2.2094
Problem:    When an expression fails getting the next command may be wrong.
Solution:   Do not check for a next command after :eval fails. (closes #7415)
Files:      src/eval.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2095
Problem:    MNV9: crash when failed dict member is followed by concatenation.
Solution:   Remove the dict from the stack. (closes #7416)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2096
Problem:    MNV9: command modifiers not restored after assignment.
Solution:   Jump to nextline instead of using continue.
Files:      src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.2097
Problem:    MNV9: using :silent! when calling a function prevents aborting
            that function.
Solution:   Add emsg_silent_def and did_emsg_def.
Files:      src/globals.h, src/message.c, src/mnv9execute.c,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.2098
Problem:    MNV9: function argument of sort() and map() not tested.
Solution:   Add a couple of tests.
Files:      src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2099
Problem:    MNV9: some checks are not tested.
Solution:   Add a few more tests.  Give better error messages.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.2100
Problem:    Insufficient testing for function range and dict.
Solution:   Add a few tests. (Dominique Pellé, closes #7428)
Files:      src/testdir/test_functions.mnv, src/testdir/test_lambda.mnv,
            src/testdir/test_signals.mnv, src/testdir/test_user_func.mnv

Patch 8.2.2101
Problem:    MNV9: memory leak when literal dict has an error and when an
            expression is not complete.
Solution:   Clear the typval and the growarray.
Files:      src/dict.c, src/mnv9compile.c

Patch 8.2.2102
Problem:    MNV9: not all error messages tested.
Solution:   Add a few test cases.
Files:      src/testdir/test_mnv9_func.mnv

Patch 8.2.2103
Problem:    MNV9: unreachable code.
Solution:   Remove the code to prepend s: to the variable name
Files:      src/mnv9compile.c

Patch 8.2.2104
Problem:    Build problem with Ruby 2.7.
Solution:   Adjust function declarations. (Ozaki Kiichi, closes #7430)
Files:      src/configure.ac, src/auto/configure, src/if_ruby.c

Patch 8.2.2105
Problem:    Sound test is a bit flaky.
Solution:   Use WaitForAssert(). (Dominique Pellé, closes #7429)
Files:      src/testdir/test_sound.mnv

Patch 8.2.2106
Problem:    TOML files are not recognized.
Solution:   Match *.toml. (issue #7432)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.2107
Problem:    MNV9: some errors not tested.
Solution:   Add tests.  Fix getting the right error.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.2108
Problem:    MNV9: no test to check for :let error.
Solution:   Add a test.  Rename tests from _let_ to _var_.
Files:      src/testdir/test_mnv9_assign.mnv

Patch 8.2.2109
Problem:    "mnv -" does not work well when modifyOtherKeys is enabled and a
            shell command is executed on startup.
Solution:   Only change modifyOtherKeys when executing a shell command in raw
            mode.
Files:      src/os_unix.c

Patch 8.2.2110
Problem:    Cannot use ":shell" when reading from stdin. (Gary Johnson)
Solution:   Revert patch 8.2.1833.
Files:      src/main.c

Patch 8.2.2111
Problem:    GTK: Menu background is the same color as the main window.
Solution:   Fix white space around the text in another way. (closes #7437,
            closes #7427)
Files:      src/gui_gtk_x11.c

Patch 8.2.2112
Problem:    Running tests may leave some files behind.
Solution:   Delete the right files.  Fix a few typos. (Dominique Pellé,
            closes #7436)
Files:      src/testdir/test_filetype.mnv, src/testdir/test_messages.mnv,
            src/testdir/test_mksession.mnv

Patch 8.2.2113
Problem:    MS-Windows GUI: crash after using ":set guifont=" four times.
Solution:   Check for NULL pointer. (Ken Takata, closes #7434)
Files:      src/gui_dwrite.cpp, src/testdir/test_gui.mnv

Patch 8.2.2114
Problem:    MNV9: unreachable code in assignment.
Solution:   Remove impossible condition and code.
Files:      src/mnv9compile.c

Patch 8.2.2115
Problem:    MNV9: some errors not tested for; dead code.
Solution:   Add a test.  Remove dead code.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2116
Problem:    MS-Windows GUI: test for 'guifont' is incomplete.
Solution:   Set 'renderoptions'. (Christian Brabandt)
Files:      src/testdir/test_gui.mnv

Patch 8.2.2117
Problem:    Some functions use any value as a string.
Solution:   Check that the value is a non-empty string.
Files:      src/typval.c, src/proto/typval.pro, src/mbyte.c, src/filepath.c,
            src/testdir/test_mnv9_builtin.mnv, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2118
Problem:    Dead code in the job support. (Dominique Pellé)
Solution:   Define USE_ARGV before checking for it.
Files:      src/job.c

Patch 8.2.2119
Problem:    GTK3: status line background color is wrong.
Solution:   Don't change the code for earlier GTK3 versions. (closes #7444)
Files:      src/gui_gtk_x11.c

Patch 8.2.2120
Problem:    Not all Perl functionality is tested.
Solution:   Add a few more test cases. (Dominique Pellé, closes #7440)
Files:      src/testdir/test_perl.mnv

Patch 8.2.2121
Problem:    Internal error when using \ze before \zs in a pattern.
Solution:   Check the end is never before the start. (closes #7442)
Files:      src/regexp_bt.c, src/regexp_nfa.c,
            src/testdir/test_regexp_latin.mnv

Patch 8.2.2122
Problem:    MNV9: crash when sourcing mnv9script early.
Solution:   Use set_option_value() instead of setting p_cpo directly.
            (closes #7441)
Files:      src/scriptfile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2123
Problem:    After using a complete popup the buffer is listed. (Boris
            Staletic)
Solution:   Make the buffer unlisted.
Files:      src/popupmenu.c, src/testdir/test_popupwin.mnv

Patch 8.2.2124
Problem:    MNV9: a range cannot be computed at runtime.
Solution:   Add the ISN_RANGE instruction.
Files:      src/mnv9.h, src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.2125 (after 8.2.2122)
Problem:    MNV9: leaking memory.
Solution:   Free the saved 'cpo' value.
Files:      src/scriptfile.c

Patch 8.2.2126
Problem:    Ruby: missing function prototype.
Solution:   Add the prototype.
Files:      src/if_ruby.c

Patch 8.2.2127
Problem:    MNV9: executing user command defined in MNV9 script not tested.
Solution:   Add a test.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.2128
Problem:    There is no way to do something on CTRL-Z.
Solution:   Add MNVSuspend and MNVResume autocommand events. (closes #7450)
Files:      runtime/doc/autocmd.txt, src/autocmd.c, src/ex_docmd.c,
            src/normal.c, src/testdir/test_suspend.mnv, src/mnv.h

Patch 8.2.2129
Problem:    MS-Windows: Checking if a file name is absolute is slow.
Solution:   Do not use mch_FullName(). (closes #7033)
Files:      src/os_mswin.c

Patch 8.2.2130
Problem:    Insert mode completion messages end up in message history.
Solution:   Set msg_hist_off. (closes #7452)
Files:      src/insexpand.c, src/testdir/test_ins_complete.mnv

Patch 8.2.2131
Problem:    MNV9: crash when lambda uses same var as assignment.
Solution:   Do not let lookup_local change lv_from_outer, make a copy.
            (closes #7461)
Files:      src/mnv9compile.c, src/ex_docmd.c, src/proto/ex_docmd.pro,
            src/evalvars.c, src/proto/evalvars.pro,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.2132
Problem:    Padding not drawn properly for popup window with title.
Solution:   Draw the padding below the title. (closes #7460)
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv,
            src/testdir/dumps/Test_popupwin_longtitle_3.dump,
            src/testdir/dumps/Test_popupwin_longtitle_4.dump

Patch 8.2.2133
Problem:    MNV9: checking for a non-empty string is too strict.
Solution:   Check for any string. (closes #7447)
Files:      src/typval.c, src/proto/typval.pro, src/errors.h, src/filepath.c,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2134
Problem:    MNV9: get E1099 when autocmd triggered in builtin function.
Solution:   Check that did_emsg increased instead of checking that it changed.
            (closes #7448)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2135
Problem:    MNV9: #{ still seen as start of dict in some places.
Solution:   Remove check for { after #. (closes #7456)
Files:      src/ex_docmd.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2136
Problem:    MNV9: Using uninitialized variable.
Solution:   Initialize "len" to zero.  Clean up fnamemodify().
Files:      src/filepath.c

Patch 8.2.2137
Problem:    MNV9: :echo and :execute give error for empty argument.
Solution:   Ignore an empty argument. (closes #7468)
Files:      src/mnv9compile.c, src/errors.h, src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.2138
Problem:    MNV9: "exit_cb" causes MNV to exit.
Solution:   Require white space after a command in MNV9 script. (closes #7467)
            Also fix that MNV9 style heredoc was not always recognized.
Files:      src/ex_cmds.h, src/ex_docmd.c, src/errors.h, src/userfunc.c,
            src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_script.mnv, src/testdir/test_let.mnv

Patch 8.2.2139
Problem:    MNV9: unreachable code in assignment.
Solution:   Don't check "new_local" when "has_index" is set.  Add test for
            wrong type of list index.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2140
Problem:    Build failure with tiny features.
Solution:   Add #ifdef.
Files:      src/ex_docmd.c

Patch 8.2.2141
Problem:    A user command with try/catch may not catch an expression error.
Solution:   When an expression fails check for following "|". (closes #7469)
Files:      src/eval.c, src/testdir/test_trycatch.mnv,
            src/testdir/test_mnvscript.mnv

Patch 8.2.2142
Problem:    Memory leak when heredoc is not terminated.
Solution:   Free heredoc_trimmed.
Files:      src/userfunc.c

Patch 8.2.2143
Problem:    MNV9: dead code in compiling :unlet.
Solution:   Don't check for "!" a second time.
Files:      src/mnv9compile.c

Patch 8.2.2144
Problem:    MNV9: some corner cases not tested.
Solution:   Add a few tests.
Files:      src/testdir/test_mnv9_script.mnv, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2145
Problem:    MNV9: concatenating lists does not adjust type of result.
Solution:   When list member types differ use "any" member type.
            (closes #7473)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2146
Problem:    MNV9: automatic conversion of number to string for dict key.
Solution:   Do not convert number to string. (closes #7474)
Files:      src/dict.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2147
Problem:    Quickfix window title not updated in all tab pages.
Solution:   Update the quickfix window title in all tab pages. (Yegappan
            Lakshmanan, closes #7481, closes #7466)
Files:      src/quickfix.c, src/testdir/test_quickfix.mnv

Patch 8.2.2148
Problem:    MNV9: crash when user command doesn't match.
Solution:   Adjust command index. (closes #7479)
Files:      src/ex_docmd.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2149
Problem:    Popupwin test for latin1 sometimes fails.
Solution:   Wait for the script to finish.
Files:      src/testdir/test_popupwin.mnv

Patch 8.2.2150
Problem:    Github actions CI isn't used for all available platforms.
Solution:   Update the github workflows. (Ozaki Kiichi, closes #7433)
Files:      .coveralls.yml, .github/workflows/ci-windows.yaml,
            .github/workflows/ci.yml, .travis.yml, README.md,
            ci/build-snd-dummy.sh, ci/setup-xvfb.sh

Patch 8.2.2151
Problem:    $dir not expanded when configure checks for moonjit.
Solution:   Use double quotes instead of single quotes. (closes #7478)
Files:      src/configure.ac, src/auto/configure

Patch 8.2.2152
Problem:    screenpos() does not include the WinBar offset.
Solution:   Use W_WINROW() instead of directly using w_window. (closes #7487)
Files:      src/move.c, src/testdir/test_cursor_func.mnv

Patch 8.2.2153
Problem:    Popupwin test for latin1 still fails sometimes.
Solution:   Wait for the "cat" command to finish.
Files:      src/testdir/test_popupwin.mnv

Patch 8.2.2154
Problem:    Popupwin test for terminal buffer fails sometimes.
Solution:   Wait for the prompt to appear.
Files:      src/testdir/test_popupwin.mnv

Patch 8.2.2155
Problem:    Warning from Github actions for code analysis.
Solution:   Remove the "git checkout HEAD^2" block.
Files:      .github/workflows/codeql-analysis.yml

Patch 8.2.2156
Problem:    Github actions run on pushing a tag.
Solution:   Don't run CI on tag push. Omit coveralls on pull-request.
            (Ozaki Kiichi, closes #7489)
Files:      .github/workflows/ci.yml, .github/workflows/codeql-analysis.yml

Patch 8.2.2157
Problem:    MNV9: can delete a MNV9 script variable from a function.
Solution:   Check the variable is defined in MNV9 script. (closes #7483)
Files:      src/evalvars.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2158
Problem:    CI on cirrus times out, coveralls doesn't always run.
Solution:   Set timeout to 20 minutes. Adjust condition. (closes #7493)
Files:      .cirrus.yml, .github/workflows/ci.yml

Patch 8.2.2159
Problem:    MNV9: when declaring a list it is not allocated yet, causing a
            following extend() to fail.
Solution:   When fetching a variable value for a list or dict that is null
            allocate the list or dict, so it can be used. (closes #7491)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2160
Problem:    Various typos.
Solution:   Fix spelling mistakes. (closes #7494)
Files:      src/bufwrite.c, src/cindent.c, src/cmdexpand.c, src/eval.c,
            src/ex_cmds.c, src/feature.h, src/getchar.c, src/gui_haiku.cc,
            src/gui_xmdlg.c, src/help.c, src/if_ole.cpp, src/insexpand.c,
            src/list.c, src/map.c, src/memline.c, src/normal.c,
            src/os_win32.c, src/search.c, src/term.c,
            src/testdir/test_arglist.mnv, src/testdir/test_autocmd.mnv,
            src/testdir/test_debugger.mnv, src/testdir/test_increment.mnv,
            src/testdir/test_menu.mnv, src/testdir/test_netbeans.mnv,
            src/testdir/test_popupwin.mnv, src/testdir/test_python2.mnv,
            src/testdir/test_python3.mnv, src/testdir/test_sort.mnv,
            src/testdir/test_terminal2.mnv, src/testdir/test_terminal3.mnv,
            src/testdir/test_vartabs.mnv, src/testdir/test_mnvscript.mnv,
            src/textprop.c, src/userfunc.c, src/mnv9.h, src/mnv9compile.c,
            src/mnv9execute.c

Patch 8.2.2161
Problem:    Arguments -T and -x not tested yet.
Solution:   Add a test. (Dominique Pellé, closes #7490)
Files:      src/testdir/test_startup.mnv

Patch 8.2.2162
Problem:    MNV9: Cannot load or store autoload variables.
Solution:   Add ISN_LOADAUTO and ISN_STOREAUTO. (closes #7485)
Files:      src/mnv9compile.c, src/mnv9.h, src/mnv9execute.c, src/dict.c,
            src/eval.c, src/evalvars.c, src/proto/evalvars.pro,
            src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.2163
Problem:    Crash when discarded exception is the current exception.
Solution:   Compare the exception with current_exception. (closes #7499)
Files:      src/ex_eval.c

Patch 8.2.2164
Problem:    MNV9: autoload function doesn't work in script that starts with
            an upper case letter.
Solution:   Check for the autoload character. (closes #7502)
Files:      src/userfunc.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2165
Problem:    MNV9: assignment to dict member does not work.
Solution:   Fix recognizing dict member. (closes #7484)
Files:      src/ex_docmd.c, src/eval.c, src/evalvars.c, src/mnv.h

Patch 8.2.2166
Problem:    Auto format doesn't work when deleting text.
Solution:   Make "x" trigger auto format. (closes #7504)
Files:      src/ops.c, src/testdir/test_textformat.mnv

Patch 8.2.2167
Problem:    MNV9: assign test fails. (Elimar Riesebieter)
Solution:   Adjust the test for dict assignment.
Files:      src/testdir/test_mnv9_assign.mnv

Patch 8.2.2168
Problem:    MNV9: error for assigning to dict of dict.
Solution:   Remember the destination type. (closes #7506)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2169
Problem:    MNV9: test leaves file behind.
Solution:   Rename script files. (Dominique Pellé, closes #7511)
            Use try/finally.
Files:      src/testdir/test_mnv9_script.mnv, src/testdir/mnv9.mnv

Patch 8.2.2170
Problem:    MNV9: a global function defined in a :def function fails if it
            uses the context.
Solution:   Create a partial to store the closure context. (see #7410)
Files:      src/userfunc.c, src/proto/userfunc.pro, src/mnv9execute.c,
            src/structs.h, src/testdir/test_mnv9_func.mnv

Patch 8.2.2171
Problem:    Valgrind warning for using uninitialized value.
Solution:   Do not use "startp" or "endp" unless there is a match.
Files:      src/regexp_nfa.c

Patch 8.2.2172
Problem:    MNV9: number of arguments is not always checked. (Yegappan
            Lakshmanan)
Solution:   Check number of arguments when calling function by name.
Files:      src/userfunc.c, src/proto/userfunc.pro, src/mnv9execute.c,
            src/testdir/test_mnv9_func.mnv, src/testdir/test_mnv9_script.mnv

Patch 8.2.2173
Problem:    MNV9: get internal error when assigning to undefined variable.
Solution:   Add error message. (closes #7475)
Files:      src/mnv9compile.c, src/mnv9execute.c, src/errors.h,
            src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2174
Problem:    Mac version doesn't specify the CPU architecture.
Solution:   Add "arm64" or "x86_64". (Yee Cheng Chin, closes #7519)
Files:      src/version.c

Patch 8.2.2175
Problem:    Github actions: clang-11 handling suboptimal.
Solution:   Separate step of installing clang-11. Get ubuntu release name
            dynamically. (Ozaki Kiichi, closes #7514)
Files:      .github/workflows/ci.yml

Patch 8.2.2176
Problem:    Crash with a sequence of fold commands.
Solution:   Bail out when there are no folds at all.  Add a test (Dominique
            Pellé) (closes #7515)
Files:      src/fold.c, src/testdir/test_fold.mnv

Patch 8.2.2177
Problem:    Pattern "^" does not match if the first character in the line is
            combining. (Rene Kita)
Solution:   Do accept a match at the start of the line. (closes #6963)
Files:      src/regexp_nfa.c, src/testdir/test_regexp_utf8.mnv

Patch 8.2.2178
Problem:    Python 3: non-utf8 character cannot be handled.
Solution:   Change the string decode. (Björn Linse, closes #1053)
Files:      src/if_py_both.h, src/if_python.c, src/if_python3.c,
            src/testdir/test_python3.mnv, src/testdir/test_python2.mnv

Patch 8.2.2179
Problem:    MNV9: crash when indexing a dict with a number.
Solution:   Add ISN_STOREINDEX. (closes #7513)
Files:      src/mnv9compile.c, src/mnv9execute.c, src/mnv9.h,
            src/errors.h, src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.2180
Problem:    MNV9: test for error after error is flaky.
Solution:   Wait for job to finish instead of a fixed delay.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.2181
Problem:    Valgrind warnings for using uninitialized value.
Solution:   Do not use "start" or "end" unless there is a match.
Files:      src/regexp_nfa.c, src/regexp_bt.c

Patch 8.2.2182
Problem:    MNV9: value of 'magic' is still relevant.
Solution:   Always behave like 'magic' is on in MNV9 script (closes #7509)
Files:      src/option.c, src/proto/option.pro, src/arglist.c, src/buffer.c,
            src/cmdexpand.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c,
            src/insexpand.c, src/normal.c, src/search.c, src/tag.c,
            src/structs.h, src/globals.h, src/ex_cmds.h,
            src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2183
Problem:    MNV9: value of 'edcompatible' and 'gdefault' are used.
Solution:   Ignore these deprecated options in MNV9 script. (closes #7508)
Files:      src/ex_cmds.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2184
Problem:    MNV9: no error when using "2" for a line number.
Solution:   Give an error message if the line number is invalid. (closes #7492)
Files:      src/typval.c, src/evalfunc.c, src/testdir/test_mnv9_builtin.mnv,
            src/testdir/test_cursor_func.mnv

Patch 8.2.2185
Problem:    BufUnload is not triggered for the quickfix dummy buffer.
Solution:   Do trigger BufUnload. (Pontus Leitzler, closes #7518, closes #7517)
            Fix white space around "=".
Files:      src/quickfix.c, src/testdir/test_autocmd.mnv

Patch 8.2.2186
Problem:    MNV9: error when using 'opfunc'.
Solution:   Do not expect a return value from 'opfunc'. (closes #7510)
Files:      src/eval.c, src/proto/eval.pro, src/ops.c,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.2187
Problem:    Python 3 test fails sometimes. (Christian Brabandt)
Solution:   Accept two SystemError messages.
Files:      src/testdir/test_python3.mnv

Patch 8.2.2188
Problem:    MNV9: crash when calling global function from :def function.
Solution:   Set the outer context.  Define the partial for the context on the
            original function. Use a refcount to keep track of which ufunc is
            using a dfunc. (closes #7525)
Files:      src/mnv9compile.c, src/proto/mnv9compile.pro, src/mnv9execute.c,
            src/proto/mnv9execute.pro, src/userfunc.c, src/proto/userfunc.pro,
            src/structs.h, src/mnv9.h, src/testdir/test_mnv9_func.mnv

Patch 8.2.2189
Problem:    Cannot repeat a command that uses the small delete register.
Solution:   Store the register name instead of the contents. (Christian
            Brabandt, closes #7527)
Files:      src/ops.c, src/register.c, src/testdir/test_registers.mnv

Patch 8.2.2190
Problem:    MNV9: crash when compiled with EXITFREE.
Solution:   Check that df_ufunc is not NULL.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2191
Problem:    MNV9: using wrong name with lambda in nested function.
Solution:   Copy the lambda name earlier. (closes #7525)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2192
Problem:    Codecov on github actions fails.
Solution:   Revert to codecov script. (Ozaki Kiichi, closes #7529)
Files:      Filelist, .github/workflows/ci.yml

Patch 8.2.2193
Problem:    MNV9: can change constant in :def function.
Solution:   Check if a variable is locked. (issue #7526)
Files:      src/evalvars.c, src/proto/evalvars.pro, src/mnv9execute.c,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.2194
Problem:    MNV9: cannot use :const or :final at the script level.
Solution:   Support using :const and :final. (closes #7526)
Files:      src/mnv.h, src/evalvars.c, src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.2195
Problem:    Failing tests for :const.
Solution:   Add missing check for ASSIGN_FINAL.
Files:      src/eval.c, src/evalvars.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2196
Problem:    :version output has extra spaces in compile and link command.
Solution:   Adjust QUOTESED. (closes #7505)
Files:      src/configure.ac, src/auto/configure

Patch 8.2.2197
Problem:    Assert arguments order reversed.
Solution:   Swap the arguments. (Christian Brabandt, closes #7531)
Files:      src/testdir/test_registers.mnv

Patch 8.2.2198
Problem:    ml_get error when resizing window and using text property.
Solution:   Validate botline of the right window. (closes #7528)
Files:      src/move.c, src/proto/move.pro, src/textprop.c,
            src/testdir/test_textprop.mnv

Patch 8.2.2199
Problem:    First write after setting 'eol' does not have NL added. (Tomáš
            Janoušek)
Solution:   Only use b_no_eol_lnum when doing a binary write. (closes #7535)
Files:      src/bufwrite.c, src/testdir/test_writefile.mnv

Patch 8.2.2200
Problem:    MNV9: lambda without white space around -> is confusing.
Solution:   Require white space in a :def function. (issue #7503)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.2201
Problem:    Write file test fails on MS-Windows.
Solution:   Force edit after setting 'fileformat'.
Files:      src/testdir/test_writefile.mnv

Patch 8.2.2202
Problem:    Write file test still fails on MS-Windows.
Solution:   Set fileformat with the :edit command
Files:      src/testdir/test_writefile.mnv

Patch 8.2.2203
Problem:    Moodle gift files are not recognized.
Solution:   Add a filetype pattern. (Delim Temizer)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.2204
Problem:    MNV9: using -> both for method and lambda is confusing.
Solution:   Use => for lambda in :def function.
Files:      runtime/doc/mnv9.txt, src/mnv9compile.c, src/userfunc.c,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.2205
Problem:    MNV9: memory leak when parsing lambda fails.
Solution:   Clear growarrays.
Files:      src/userfunc.c

Patch 8.2.2206
Problem:    :exe command line completion only works for first argument.
Solution:   Skip over text if more is following. (closes #7546)
Files:      src/eval.c, src/testdir/test_cmdline.mnv

Patch 8.2.2207
Problem:    Illegal memory access if popup menu items are changed while the
            menu is visible. (Tomáš Janoušek)
Solution:   Make a copy of the text. (closes #7537)
Files:      src/popupmenu.c, src/testdir/test_popup.mnv,
            src/testdir/dumps/Test_popup_command_04.dump,
            src/testdir/dumps/Test_popup_command_05.dump

Patch 8.2.2208
Problem:    MNV9: after reloading a script variable index may be invalid.
Solution:   When the sequence number doesn't match give an error for using a
            script-local variable from a compiled function. (closes #7547)
Files:      src/mnv9.h, src/structs.h, src/errors.h, src/mnv9compile.c,
            src/mnv9execute.c, src/scriptfile.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.2209
Problem:    MNV9: return type of => lambda not parsed.
Solution:   Parse and use the return type.
Files:      src/mnv9compile.c, src/userfunc.c, src/mnv9type.c,
            src/proto/mnv9type.pro, src/mnv9script.c, src/eval.c,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.2210
Problem:    MNV9: allocating a type to set TTFLAG_BOOL_OK.
Solution:   Add t_number_bool.
Files:      src/globals.h, src/mnv9type.c, src/mnv9compile.c

Patch 8.2.2211
Problem:    MS-Windows: can't load Python dll if not in the path.
Solution:   Use the InstallPath registry entry. (Kelvin Lee, closes #7540)
Files:      src/if_python3.c

Patch 8.2.2212
Problem:    MNV9: lambda with => does not work at the script level.
Solution:   Make it work.
Files:      src/eval.c, src/mnv9type.c, src/userfunc.c,
            src/testdir/test_mnv9_assign.mnv, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2213
Problem:    Checking white space around -> is not backwards compatible.
Solution:   Only check white space around =>.
Files:      src/userfunc.c

Patch 8.2.2214
Problem:    ":e#" does not give a warning for missing white space.
Solution:   Adjust the check for white space. (closes #7545)
Files:      src/ex_docmd.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2215
Problem:    MNV9: `=expr` not recognized in global command.
Solution:   Skip over pattern. (issue #7541)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2216
Problem:    MNV9: range with missing colon can be hard to spot.
Solution:   Include the start of the range in the error. (closes #7543)
Files:      src/errors.h, src/ex_docmd.c, src/mnv9compile.c,
            src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2217
Problem:    MNV9: command modifiers not restored in catch block.
Solution:   Restore command modifiers. (closes #7542)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2218
Problem:    MNV9: failure if passing more arguments to a lambda than expected.
Solution:   Only put expected arguments on the stack. (closes #7548)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2219
Problem:    MNV9: method call with expression not supported.
Solution:   Implement expr->(expr)().
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2220
Problem:    MNV9: memory leak when parsing nested parenthesis.
Solution:   Clear newargs.
Files:      src/userfunc.c

Patch 8.2.2221
Problem:    If <Down> is mapped on the command line 'wildchar' is inserted.
Solution:   Set KeyTyped when using 'wildchar'. (closes #7552)
Files:      src/cmdexpand.c, src/testdir/test_cmdline.mnv

Patch 8.2.2222
Problem:    MNV9: cannot keep script variables when reloading.
Solution:   Add the "noclear" argument to :mnv9script.
Files:      runtime/doc/mnv9.txt, src/structs.h, src/scriptfile.c,
            src/mnv9script.c, src/ex_cmds.h, src/ex_docmd.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.2223
Problem:    MNV9: Reloading marks a :def function as deleted.
Solution:   Clear the function contents but keep the index.
Files:      runtime/doc/mnv9.txt, src/mnv9compile.c, src/userfunc.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.2224
Problem:    MNV9: crash if script reloaded with different variable type.
Solution:   Check the type when accessing the variable.
Files:      src/mnv9execute.c, src/mnv9compile.c, src/mnv9.h, src/mnv9type.c,
            src/proto/mnv9type.pro, src/errors.h, src/evalvars.c,
            src/mnv9script.c, src/proto/mnv9script.pro,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.2225
Problem:    MNV9: error when using :import in legacy script twice.
Solution:   Make it possible to redefine an import when reloading.
Files:      src/mnv9script.c, src/proto/mnv9script.pro, src/structs.h,
            src/evalvars.c, src/mnv9compile.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.2226
Problem:    MNV9: script test fails.
Solution:   Add missing change.
Files:      src/scriptfile.c

Patch 8.2.2227
Problem:    MNV9: recognizing lambda is too complicated.
Solution:   Call compile_lambda() and check for NOTDONE.
Files:      src/mnv9compile.c, src/userfunc.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2228
Problem:    MNV9: cannot use ":e #" because # starts a comment.
Solution:   Support using %% instead of #.
Files:      src/ex_docmd.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2229
Problem:    build failure without the +eval feature.
Solution:   Add #ifdef.
Files:      src/ex_docmd.c

Patch 8.2.2230
Problem:    MNV9: insert completion runs into error.
Solution:   Insert colon before range. (closes #7556)
Files:      src/insexpand.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2231
Problem:    When "--remote file" is used "file" is not reloaded.
Solution:   When a :drop command is used for a file that is already displayed
            in a window and it has not been changed, check if it needs to be
            reloaded. (closes #7560)
Files:      src/ex_cmds.c, src/testdir/test_clientserver.mnv

Patch 8.2.2232
Problem:    Compiler error for falling through into next case.
Solution:   Move FALLTHROUGH below the #endif
Files:      src/ex_docmd.c

Patch 8.2.2233
Problem:    Cannot convert a byte index into a character index.
Solution:   Add charidx(). (Yegappan Lakshmanan, closes #7561)
Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
            src/testdir/test_functions.mnv

Patch 8.2.2234
Problem:    Command line wildmenu test often fails with Unix GUI.
Solution:   Skip the test where it is expected to fail.
Files:      src/testdir/test_cmdline.mnv

Patch 8.2.2235
Problem:    Build failure with some Ruby versions.
Solution:   Adjust the code for Ruby 3.0. (Ozaki Kiichi, closes #7564)
Files:      ci/config.mk.clang.sed, src/if_ruby.c

Patch 8.2.2236
Problem:    'scroll' option can change when setting the statusline or tabline
            but the option context is not updated.
Solution:   Update the script context when the scroll option is changed as a
            side effect. (Christian Brabandt, closes #7533)
Files:      runtime/doc/options.txt, src/scriptfile.c,
            src/testdir/test_options.mnv, src/mnv.h, src/window.c

Patch 8.2.2237
Problem:    CI on Mac fails in sed command.
Solution:   Set LC_ALL to "C". (Ozaki Kiichi, closes #7565)
Files:      .github/workflows/ci.yml

Patch 8.2.2238
Problem:    MNV9: cannot load a MNV9 script without the +eval feature.
Solution:   Support MNV9 script syntax without the +eval feature.
Files:      src/ex_docmd.c, src/mnv9script.c, src/globals.h, src/main.c,
            src/autocmd.c, src/buffer.c, src/structs.h, src/menu.c,
            src/scriptfile.c, src/usercmd.c, src/proto.h, src/errors.h

Patch 8.2.2239
Problem:    MNV9: concatenating lines with backslash is inconvenient.
Solution:   Support concatenating lines starting with '|', useful for
            :autocmd, :command, etc. (closes #6702)
Files:      runtime/doc/mnv9.txt, src/scriptfile.c, src/mnv9script.c,
            src/proto/mnv9script.pro, src/mnv9compile.c,
            src/proto/mnv9compile.pro, src/userfunc.c, src/structs.h,
            src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2240
Problem:    Clientserver test fails if full path is used.
Solution:   Ignore the path preceding the file name.
Files:      src/testdir/test_clientserver.mnv

Patch 8.2.2241
Problem:    Build with Ruby and clang may fail.
Solution:   Adjust configure and sed script. (Ozaki Kiichi, closes #7566)
Files:      ci/config.mk.clang.sed, src/auto/configure, src/configure.ac

Patch 8.2.2242
Problem:    MNV9: line continuation with bar does not work at script level.
Solution:   Check for MNV9 script.
Files:      src/structs.h, src/ex_docmd.c, src/userfunc.c, src/scriptfile.c,
            src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2243
Problem:    Crash when popup mask contains zeroes.
Solution:   Check boundaries properly. (closes #7569)
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv

Patch 8.2.2244
Problem:    Crash when making the window width of the not-current window
            negative.
Solution:   Make sure the window width is not negative. (closes #7568)
Files:      src/window.c, src/testdir/test_window_cmd.mnv

Patch 8.2.2245
Problem:    MNV9: return value of winrestcmd() cannot be executed.
Solution:   Put colons before each range. (closes #7571)
Files:      src/evalwindow.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2246
Problem:    Cursor keys not recognized at the hit-Enter prompt after executing
            an external command.
Solution:   Change the codes for the extra cursor keys. (closes #7562)
            Tune the delays to avoid test flakiness.
Files:      runtime/doc/term.txt, src/term.c, src/testdir/test_terminal3.mnv

Patch 8.2.2247
Problem:    VMS: various smaller problems.
Solution:   Fix VMS building and other problems. (Zoltan Arpadffy)
Files:      src/term.c, src/gui_gtk_vms.h, src/os_vms_conf.h, src/gui_x11.c,
            src/Make_vms.mms, src/macros.h, src/gui.h, src/os_unix.h

Patch 8.2.2248
Problem:    ASAN error on exit with GUI.
Solution:   Check the window still has lines. (Christian Brabandt,
            closes #7573)
Files:      src/term.c

Patch 8.2.2249
Problem:    Termcodes test is flaky when used over ssh with X forwarding.
Solution:   Set 'mousetime' to a larger value. (Dominique Pellé, closes #7576,
            closes #7563)
Files:      src/testdir/test_termcodes.mnv

Patch 8.2.2250
Problem:    MNV9: sublist is ambiguous.
Solution:   Require white space around the colon. (closes #7409)
Files:      src/mnv9compile.c, src/eval.c, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.2251
Problem:    Test failures in legacy script.
Solution:   Check for MNV9 script.
Files:      src/eval.c

Patch 8.2.2252
Problem:    MNV9: crash when using lambda without return type in dict.
Solution:   Without a return type use t_unknown. (closes #7587)
Files:      src/mnv9type.c, src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2253
Problem:    MNV9: expr test fails.
Solution:   Add missing assignment.
Files:      src/userfunc.c

Patch 8.2.2254
Problem:    MNV9: bool option type is number.
Solution:   Have get_option_value() return a different value for bool and
            number options. (closes #7583)
Files:      src/option.h, src/option.c, src/proto/option.pro, src/evalvars.c,
            src/if_mzsch.c, src/if_ruby.c, src/spell.c, src/typval.c,
            src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2255 (after 8.2.2254)
Problem:    Tcl test fails.
Solution:   Change option handling.
Files:      src/if_tcl.c

Patch 8.2.2256
Problem:    MNV9: cannot use function( after line break in :def function.
Solution:   Check for "(" after "function". (closes #7581)
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2257
Problem:    MNV9: using -> for lambda is ambiguous.
Solution:   Stop supporting ->, must use =>.
Files:      src/eval.c, src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_builtin.mnv, src/testdir/test_mnv9_cmd.mnv,
            src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_expr.mnv, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.2258
Problem:    Not all OCaml related files are detected.
Solution:   Update OCaml file type detection.  (Markus Mottl, closes #7590)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.2259
Problem:    Test_Executable() fails when using chroot.
Solution:   Ignore the difference between "sbin" and "bin".
Files:      src/testdir/test_functions.mnv

Patch 8.2.2260
Problem:    Window resize test fails in very wide terminal.
Solution:   Resize using the 'columns' option.  (Vladimir Lomov, closes #7592)
Files:      src/testdir/test_window_cmd.mnv

Patch 8.2.2261
Problem:    MNV9: boolean option gets string type.
Solution:   Check for VAR_BOOL. (closes #7588)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2262
Problem:    MNV9: converting bool to string prefixes v:.
Solution:   Do not use the v: prefix.
Files:      src/evalvars.c, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.2263
Problem:    MNV9: compilation error with try-catch in skipped block.
Solution:   Do not bail out when generate_instr() returns NULL. (closes #7584)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2264
Problem:    MNV9: no error for mismatched :endfunc or :enddef.
Solution:   Check for the mismatch. (issue #7582)
Files:      src/errors.h, src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2265
Problem:    Error message for missing endfunc/enddef is last line.
Solution:   Report the line where the function starts. (closes #7582)
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2266
Problem:    MNV9: it can be hard to see where white space is missing.
Solution:   Mention the text where the error was seen. (closes #7580)
Files:      src/errors.h, src/eval.c, src/evalvars.c, src/userfunc.c,
            src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2267
Problem:    MNV9: cannot use unlet for a dict member.
Solution:   Pass GLV_NO_DECL to get_lval(). (closes #7585)
Files:      src/evalvars.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2268
Problem:    MNV9: list unpack seen as declaration.
Solution:   Check for "var". (closes #7594)
Files:      src/mnv9compile.c, src/evalvars.c, src/eval.c, src/mnv.h,
            src/mnv9execute.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2269
Problem:    Not all :hardcopy code covered by tests.
Solution:   Test more combinations. (Dominique Pellé, closes #7595)
Files:      src/testdir/test_hardcopy.mnv

Patch 8.2.2270
Problem:    Warning for size_t to int conversion. (Randall W. Morris)
Solution:   Add a type cast.
Files:      src/mnv9execute.c

Patch 8.2.2271
Problem:    ml_get error when changing hidden buffer in Python.
Solution:   Block updating folds. (closes #7598)
Files:      src/evalbuffer.c, src/testdir/test_python3.mnv

Patch 8.2.2272
Problem:    MNV9: extend() can violate the type of a variable.
Solution:   Add the type to the dictionary or list and check items against it.
            (closes #7593)
Files:      src/structs.h, src/evalvars.c, src/dict.c, src/list.c,
            src/mnv9script.c, src/proto/mnv9script.pro, src/mnv9compile.c,
            src/mnv9execute.c, src/testdir/test_mnv9_builtin.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.2273
Problem:    Build failure.
Solution:   Add missing changes to header file.
Files:      src/mnv9.h

Patch 8.2.2274
Problem:    badge for Travis is outdated.
Solution:   Update badge for move from travis-ci.org to travis-ci.com.
Files:      README.md

Patch 8.2.2275
Problem:    CTRL-C not recognized in Mintty.
Solution:   Recognize the modifyOtherKeys code ending in "u". (Christian
            Brabandt, closes #7575)
Files:      src/ui.c

Patch 8.2.2276
Problem:    List of distributed files is outdated.
Solution:   Update the file list.  Minor comment updates.
Files:      Filelist, src/clipboard.c, src/fileio.c, src/option.c,
            src/screen.c, src/testdir/test_signals.mnv,
            src/testdir/Make_vms.mms

Patch 8.2.2277
Problem:    Missing backslash.
Solution:   Add backslash.
Files:      Filelist

Patch 8.2.2278
Problem:    Falling back to old regexp engine can some patterns.
Solution:   Do not fall back once [[:lower:]] or [[:upper:]] is used.
            (Christian Brabandt, closes #7572)
Files:      src/regexp.c, src/regexp_nfa.c, src/testdir/test_regexp_utf8.mnv

Patch 8.2.2279
Problem:    MNV9: memory leak with catch in skipped block.
Solution:   Free the pattern if not used.
Files:      src/mnv9compile.c

Patch 8.2.2280
Problem:    Fuzzy matching doesn't give access to the scores.
Solution:   Return the scores with a third list. (Yegappan Lakshmanan,
            closes #7596)
Files:      runtime/doc/eval.txt, src/search.c,
            src/testdir/test_matchfuzzy.mnv

Patch 8.2.2281
Problem:    MNV9: compiled "wincmd" cannot be followed by bar.
Solution:   Check for bar after "wincmd". (closes #7599)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2282
Problem:    Length check mismatch with argument of strncmp(). (Christian
            Brabandt)
Solution:   Adjust length check.
Files:      src/ui.c

Patch 8.2.2283
Problem:    MNV9: crash when lambda has fewer arguments than expected.
Solution:   Don't check arguments when already failed. (closes #7606)
Files:      src/mnv9type.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2284
Problem:    MNV9: cannot set an option to a boolean value.
Solution:   Check for VAR_BOOL. (closes #7603)
Files:      src/evalvars.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2285
Problem:    MNV9: cannot set an option to a false.
Solution:   For VAR_BOOL use string "0". (closes #7603)
Files:      src/evalvars.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2286
Problem:    Sort test fails when locale is Canadian English. (Neil H Watson)
Solution:   Expect a different sort order. (closes #7609)
Files:      src/testdir/test_sort.mnv

Patch 8.2.2287
Problem:    Sort test fails when locale is French Canadian.
Solution:   Expect a different sort order. (Dominique Pellé, closes #7609)
Files:      src/testdir/test_sort.mnv

Patch 8.2.2288
Problem:    MNV9: line break and comment not always skipped.
Solution:   Skip over white space and then line break more consistently.
            (closes #7610)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2289
Problem:    MNV9: 'cpo' can become empty.
Solution:   Use empty_option instead of an empty string.  Update quickfix
            buffer after restoring 'cpo'.  (closes #7608)
Files:      src/evalfunc.c, src/syntax.c, src/eval.c, src/quickfix.c,
            src/evalbuffer.c, src/ex_eval.c, src/gui_motif.c, src/map.c,
            src/testdir/test_quickfix.mnv

Patch 8.2.2290
Problem:    MNV9: unlet of global variable cannot be compiled.
Solution:   Skip over variables that might be defined later. Give an error if
            a subscript is found. (closes #7585)
Files:      src/eval.c, src/mnv9compile.c, src/mnv.h,
            src/testdir/test_mnv9_assign.mnv

Patch 8.2.2291
Problem:    MNV9: cannot use "null" for v:null.
Solution:   Support "null" like "true" and "false". (closes #7495)
Files:      runtime/doc/mnv9.txt, src/mnv9compile.c, src/evalvars.c,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.2292
Problem:    MNV: expr test fails.
Solution:   Add missing part of "null" support.
Files:      src/eval.c

Patch 8.2.2293
Problem:    Build failure with Motif. (Tony Mechelynck)
Solution:   Use empty_option instead of empty_options.
Files:      src/gui_motif.c

Patch 8.2.2294
Problem:    VMS: a few remaining problems.
Solution:   Add VMS specific changes. Add Lua support. (Zoltan Arpadffy)
Files:      src/fileio.c, src/os_vms_conf.h, src/Make_vms.mms, src/macros.h,
            src/os_vms.c, src/mnv9execute.c, src/gui_xmebw.c, src/os_unix.h

Patch 8.2.2295
Problem:    Incsearch does not detect empty pattern properly.
Solution:   Return magic state when skipping over a pattern. (Christian
            Brabandt, closes #7612, closes #6420)
Files:      src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c, src/globals.h,
            src/option.c, src/tag.c, src/proto/regexp.pro, src/regexp.c,
            src/search.c, src/structs.h, src/mnv9compile.c,
            src/testdir/dumps/Test_incsearch_sub_01.dump,
            src/testdir/dumps/Test_incsearch_sub_02.dump,
            src/testdir/test_search.mnv

Patch 8.2.2296
Problem:    Cannot use CTRL-N and CTRL-P in a popup menu.
Solution:   Use CTRL-N like <Down> and CTRL-P like <Up>. (closes #7614)
Files:      runtime/doc/popup.txt, src/popupwin.c,
            src/testdir/test_popupwin.mnv

Patch 8.2.2297
Problem:    MNV9: cannot set 'number' to a boolean value.
Solution:   Use tv_get_bool(). (closes #7615)
Files:      src/evalvars.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2298
Problem:    MNV9: comment right after "(" of function not recognized.
Solution:   Do not skip over white space before calling get_function_args().
            (closes #7613)
Files:      src/userfunc.c, src/proto/userfunc.pro,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.2299
Problem:    MNV9: invalid memory access making error message flaky.
Solution:   Do not check cmd_argt for CMD_USER. (issue #7467)
Files:      src/ex_docmd.c, src/mnv9execute.c, src/errors.h,
            src/mnv9compile.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2300
Problem:    MNV9: wrong order on type stack when using dict.
Solution:   Generate constants before a dict. (closes #7619)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2301
Problem:    MNV9: cannot unlet a dict or list item.
Solution:   Add ISN_UNLETINDEX.  Refactor assignment code to use for unlet.
Files:      src/mnv9compile.c, src/mnv9.h, src/mnv9execute.c,
            src/testdir/test_mnv9_assign.mnv

Patch 8.2.2302
Problem:    MNV9: using an option value may use uninitialized memory.
Solution:   Clear v_lock. (closes #7620)
Files:      src/typval.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2303
Problem:    MNV9: backtick expansion doesn't work for :foldopen.
Solution:   Do recognize backtick expansion. (closes #7621)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2304
Problem:    MNV9: no test for unletting an imported variable.
Solution:   Add a test.  Fix line number in error.
Files:      src/mnv9execute.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2305
Problem:    MNV9: "++var" and "--var" are silently accepted.
Solution:   Give an error message.
Files:      src/mnv9compile.c, src/eval.c, src/proto/eval.pro,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.2306
Problem:    MNV9: when using function reference type is not checked.
Solution:   When using a function reference lookup the type and check the
            argument types. (issue #7629)
Files:      src/userfunc.c, src/proto/userfunc.pro, src/eval.c, src/structs.h,
            src/mnv9type.c, src/proto/mnv9type.pro, src/mnv9compile.c,
            src/mnv9execute.c, src/evalvars.c, src/evalfunc.c,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.2307
Problem:    A shell command in the mnvrc causes terminal output.
Solution:   Do not call starttermcap() after a shell command if the termcap
            wasn't active before.
Files:      src/ex_cmds.c

Patch 8.2.2308
Problem:    MNV9: no error when assigning lambda to funcref without return
            value.
Solution:   Default return value to "any". (closes #7629)
Files:      src/userfunc.c, src/mnv9compile.c,
            src/testdir/test_mnv9_assign.mnv, src/testdir/test_mnv9_func.mnv

Patch 8.2.2309
Problem:    0o777 not recognized as octal.
Solution:   Use mnv_isodigit(). (Ken Takata, closes #7633, closes #7631)
Files:      src/charset.c, src/testdir/test_eval_stuff.mnv

Patch 8.2.2310
Problem:    MNV9: winsaveview() return type is too generic.
Solution:   use dict<number> instead of dict<any>. (closes #7626)
Files:      src/evalfunc.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2311
Problem:    MNV9: cannot assign to a variable that shadows a command modifier.
Solution:   Check for assignment after possible command modifier.
            (closes #7632)
Files:      src/mnv9compile.c, src/ex_docmd.c,
            src/testdir/test_mnv9_assign.mnv

Patch 8.2.2312
Problem:    Build failure with Ruby 3.0 and 32 bits.
Solution:   Add #ifdef. (closes #7638)
Files:      src/if_ruby.c

Patch 8.2.2313
Problem:    MNV9: using uninitialized field when parsing range. ":silent!" not
            respected when parsing range fails.
Solution:   Initialize ea.skip.  On pattern failure handle it like an error.
            (closes #7636)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2314
Problem:    MNV9: returning zero takes two instructions.
Solution:   Add ISN_RETURN_ZERO.
Files:      src/mnv9.h, src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.2315
Problem:    MNV9: "enddef" as dict key misinterpreted as function end.
Solution:   Check for following colon. (closes #7640)
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2316
Problem:    MNV9: cannot list a lambda function.
Solution:   Support the <lambda>9 notation, like :disassemble. (closes #7634)
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2317
Problem:    MNV9: command modifier before list unpack doesn't work.
Solution:   Only recognize "[" directly after the name. (closes #7641)
Files:      src/ex_docmd.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2318
Problem:    MNV9: string and list index work differently.
Solution:   Make string index work like list index. (closes #7643)
Files:      src/eval.c, src/proto/eval.pro, src/mnv9execute.c, src/list.c,
            src/proto/mnv9execute.pro, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2319
Problem:    "exptype_T" can be read as "expected type".
Solution:   Rename to "exprtype_T", expression type.
Files:      src/eval.c, src/typval.c, src/proto/typval.pro, src/mnv9compile.c,
            src/proto/mnv9compile.pro, src/mnv9execute.c, src/structs.h,
            src/mnv9.h

Patch 8.2.2320
Problem:    MNV9: no error for comparing bool with string.
Solution:   Check for wrong types when comparing. (closes #7639)
Files:      src/typval.c, src/errors.h, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2321
Problem:    MNV9: cannot nest closures.
Solution:   Add the nesting level to ISN_LOADOUTER and ISN_STOREOUTER.
            (closes #7150, closes #7635)
Files:      src/mnv9.h, src/mnv9compile.c, src/mnv9execute.c, src/structs.h,
            src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.2322
Problem:    MNV9: closure nested limiting to one level.
Solution:   Add outer_T.  Also make STOREOUTER work.
Files:      src/mnv9execute.c, src/mnv9.h, src/structs.h,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.2323
Problem:    MNV9: error when inferring type from empty dict/list.
Solution:   When the member is t_unknown use t_any. (closes #7009)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2324
Problem:    Not easy to get mark en cursor position by character count.
Solution:   Add functions that use character index. (Yegappan Lakshmanan,
            closes #7648)
Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/eval.c,
            src/evalfunc.c, src/proto/eval.pro, src/tag.c,
            src/testdir/test_cursor_func.mnv, src/typval.c

Patch 8.2.2325
Problem:    MNV9: crash if map() changes the item type.
Solution:   Check that the item type is still OK. (closes #7652)
            Fix problem with mapnew() on range list.
Files:      src/evalfunc.c, src/proto/evalfunc.pro, src/mnv9compile.c,
            src/list.c, src/testdir/test_mnv9_builtin.mnv,
            src/testdir/test_mnv9_expr.mnv, src/testdir/test_mnv9_func.mnv

Patch 8.2.2326
Problem:    Build error with +eval feature but without +spell.
Solution:   Adjust #ifdef. (John Marriott)
Files:      src/mbyte.c

Patch 8.2.2327
Problem:    Debugging code included.
Solution:   Remove the debugging code.
Files:      src/mnv9execute.c

Patch 8.2.2328
Problem:    Some test files may not be deleted.
Solution:   Add a delete() call, correct name. (Dominique Pellé, closes #7654)
Files:      src/testdir/test_clientserver.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.2329
Problem:    Not all ways MNV can be started are tested.
Solution:   Add a test for different program names. (Dominique Pellé,
            closes #7651)
Files:      src/testdir/test_startup.mnv

Patch 8.2.2330
Problem:    MNV9: crash when using :trow in a not executed block.
Solution:   Don't generate the instruction when skipping. (closes #7659)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2331
Problem:    MNV9: wrong error when modifying dict declared with :final.
Solution:   Do not check for writable variable when an index follows.
            (closes #7657)
Files:      src/mnv9compile.c, src/structs.h, src/mnv9script.c,
            src/proto/mnv9script.pro, src/evalvars.c,
            src/testdir/test_mnv9_assign.mnv

Patch 8.2.2332
Problem:    MNV9: missing :endif not reported when using :windo.
Solution:   Pass a getline function to do_cmdline(). (closes #7650)
Files:      src/mnv9execute.c, src/structs.h, src/scriptfile.c,
            src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2333
Problem:    MNV9: warning for uninitialized variable. (Tony Mechelynck)
Solution:   Initialize "res".
Files:      src/mnv9execute.c

Patch 8.2.2334
Problem:    Pascal-like filetypes not always detected.
Solution:   Improved Puppet, InstantFPC and Pascal detection. (Doug Kearns,
            closes #7662)
Files:      runtime/autoload/dist/ft.mnv, runtime/filetype.mnv,
            runtime/scripts.mnv, src/testdir/test_filetype.mnv

Patch 8.2.2335
Problem:    MNV9: "silent return" does not restore command modifiers.
Solution:   Restore command modifiers before returning. (closes #7649)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.2336
Problem:    MNV9: it is not possible to extend a dictionary with different
            item types.
Solution:   Add extendnew(). (closes #7666)
Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
            src/list.c, src/proto/list.pro, src/testdir/test_listdict.mnv,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2337
Problem:    Configure test for GTK only says "no". (Harm te Hennepe)
Solution:   Hint that a -def package is needed. (closes #5229)
Files:      src/configure.ac, src/auto/configure

Patch 8.2.2338
Problem:    MNV9: no error if using job_info() result wrongly.
Solution:   Adjust return type on number of arguments. (closes #7667)
Files:      src/evalfunc.c, src/globals.h, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2339
Problem:    Cannot get the type of a value as a string.
Solution:   Add typename().
Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
            src/mnv9type.c, src/proto/mnv9type.pro,
            src/testdir/test_mnvscript.mnv, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2340
Problem:    win_execute() unexpectedly returns number zero when failing.
Solution:   Return an empty string. (closes #7665)
Files:      src/evalwindow.c, src/testdir/test_mnv9_builtin.mnv,
            src/testdir/test_execute_func.mnv

Patch 8.2.2341
Problem:    Expression command line completion shows variables but not
            functions after "g:". (Gary Johnson)
Solution:   Prefix "g:" when needed to a global function.
Files:      src/evalfunc.c, src/evalvars.c, src/proto/evalvars.pro,
            src/testdir/test_cmdline.mnv

Patch 8.2.2342
Problem:    "char" functions return the wrong column in Insert mode when the
            cursor is beyond the end of the line.
Solution:   Compute the column correctly. (Yegappan Lakshmanan, closes #7669)
Files:      src/eval.c, src/evalfunc.c, src/testdir/test_cursor_func.mnv

Patch 8.2.2343
Problem:    MNV9: return type of readfile() is any.
Solution:   Add readblob() so that readfile() can be expected to always
            return a list of strings. (closes #7671)
Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
            src/filepath.c, src/proto/filepath.pro,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2344
Problem:    Using inclusive index for slice is not always desired.
Solution:   Add the slice() method, which has an exclusive index. (closes
            #7408)
Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
            src/eval.c, src/proto/eval.pro, src/mnv9execute.c,
            src/proto/mnv9execute.pro, src/list.c, src/proto/list.pro,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2345
Problem:    No focus events in a terminal.
Solution:   Add the t_fd and t_fe termcap entries and implement detecting
            focus events. (Hayaki Saito, Magnus Groß, closes #7673,
            closes #609, closes #5526)
Files:      runtime/doc/term.txt, src/optiondefs.h, src/term.c, src/term.h

Patch 8.2.2346
Problem:    Codecov reports every little coverage drop.
Solution:   Tolerate a 0.05% drop. Hide the appveyor config file. (Ozaki
            Kiichi, closes #7678)
Files:      .appveyor.yml, appveyor.yml, .codecov.yml

Patch 8.2.2347
Problem:    Build failure without GUI.
Solution:   Add #ifdef.
Files:      src/term.c

Patch 8.2.2348 (after 8.2.2345)
Problem:    No check for modified files after focus gained. (Mathias Stearn)
Solution:   Call ui_focus_change().
Files:      src/term.c, src/ui.c

Patch 8.2.2349
Problem:    MNV9: cannot handle line break after parenthesis at line end.
Solution:   Skip over line break. (closes #7677)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2350
Problem:    Using "void" for no reason.
Solution:   Use "char *".
Files:      src/ex_docmd.c

Patch 8.2.2351
Problem:    MNV9: error message for "throw" in function that was called with
            "silent!".
Solution:   Do not throw the exception when not caught or displayed.
            (closes #7672)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2352
Problem:    If the focus lost/gained escape sequence is received twice it is
            not ignored. (Christ van Willegen)
Solution:   Adjust the logic to ignore the escape code.
Files:      src/term.c

Patch 8.2.2353
Problem:    Sparql files are not detected.
Solution:   Add the sparql filetype.  (closes #7679)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.2354
Problem:    Crash with a weird combination of autocommands.
Solution:   Increment b_nwindows when needed. (closes #7674)
Files:      src/ex_cmds.c, src/buffer.c, src/proto/buffer.pro,
            src/testdir/test_autocmd.mnv

Patch 8.2.2355
Problem:    Stray test failure on Appveyor.
Solution:   Finish insert command.
Files:      src/testdir/test_autocmd.mnv

Patch 8.2.2356
Problem:    MNV9: ":put =expr" does not handle a list properly.
Solution:   Use the same logic as eval_to_string_eap(). (closes #7684)
Files:      src/mnv9execute.c, src/eval.c, src/proto/eval.pro,
            src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2357
Problem:    MNV9: crash when parsing function return type fails.
Solution:   Bail out and set return type to "unknown". (closes #7685)
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2358
Problem:    Wrong #ifdef for use_xterm_like_mouse().
Solution:   Use FEAT_MOUSE_XTERM.
Files:      src/term.c

Patch 8.2.2359
Problem:    Strange test failure with MS-Windows.
Solution:   Skip the system() call for now.
Files:      src/testdir/test_autocmd.mnv

Patch 8.2.2360
Problem:    Test leaves file behind.
Solution:   Delete the right file. (Dominique Pellé, closes #7689)
Files:      src/testdir/test_filetype.mnv

Patch 8.2.2361
Problem:    MNV9: no highlight for "s///gc" when using 'opfunc'.
Solution:   Reset 'lazyredraw' temporarily. (closes #7687)
Files:      src/ex_cmds.c

Patch 8.2.2362
Problem:    MNV9: check of builtin function argument type is incomplete.
Solution:   Use need_type() instead of check_arg_type().
Files:      src/mnv9compile.c, src/proto/mnv9compile.pro, src/evalfunc.c,
            src/proto/evalfunc.pro, src/mnv9type.c, src/proto/mnv9type.pro,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2363
Problem:    curpos() does not accept a string argument as before.
solution:   Make a string argument work again. (Yegappan Lakshmanan,
            closes #7690)
Files:      src/evalfunc.c, src/testdir/test_cursor_func.mnv

Patch 8.2.2364
Problem:    MNV9: line break in lambda accesses freed memory.
Solution:   Make a copy of the return type. (closes #7664)
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2365
Problem:    MNV9: no check for map() changing item type at script level.
Solution:   Check the new value type.
Files:      src/list.c, src/testdir/test_mnv9_builtin.mnv,
            src/testdir/test_mnv9_assign.mnv

Patch 8.2.2366
Problem:    When using ":sleep" the cursor is always displayed.
Solution:   Do not display the cursor when using ":sleep!". (Jeremy Lerner,
            closes #7688)
Files:      runtime/doc/index.txt, runtime/doc/various.txt, src/ex_cmds.h,
            src/ex_docmd.c, src/normal.c, src/proto/ex_docmd.pro, src/term.c,
            src/testdir/Make_all.mak, src/testdir/test_sleep.mnv

Patch 8.2.2367
Problem:    Test failures on some less often used systems.
Solution:   Adjust printf formats and types. (James McCoy, closes #7691)
Files:      src/errors.h, src/evalfunc.c, src/list.c, src/mnv9execute.c

Patch 8.2.2368
Problem:    Insufficient tests for setting options.
Solution:   Add a few tests. (Dominique Pellé, closes #7695)
Files:      src/testdir/test_options.mnv

Patch 8.2.2369
Problem:    MNV9: functions return true/false but can't be used as bool.
Solution:   Add ret_number_bool(). (closes #7693)
Files:      src/evalfunc.c, src/testdir/test_mnv9_builtin.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.2370
Problem:    MNV9: command fails in catch block.
Solution:   Reset force_abort and need_rethrow. (closes #7692)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2371
Problem:    MNV9: crash when using types in :for with unpack.
Solution:   Check for skip_var_list() failing. Pass include_type to
            skip_var_one(). Skip type when compiling. (closes #7694)
Files:      src/mnv9compile.c, src/evalvars.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.2372 (after 8.2.2371)
Problem:    Confusing error message for wrong :let command.
Solution:   Only check for type in MNV9 script.
Files:      src/evalvars.c

Patch 8.2.2373
Problem:    MNV9: list assignment only accepts a number index.
Solution:   Accept "any" and do a runtime type check. (closes #7694)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2374
Problem:    Accessing uninitialized memory in test_undo.
Solution:   Do not look in typebuf.tb_buf if it is empty. (Dominique Pellé,
            closes #7697)
Files:      src/edit.c

Patch 8.2.2375
Problem:    Test for RGB color skipped in the terminal.
Solution:   Run the GUI if possible.
Files:      src/testdir/test_highlight.mnv

Patch 8.2.2376
Problem:    MNV9: crash when dividing by zero in compiled code using
            constants.
Solution:   Call num_divide() and num_modulus(). (closes #7704)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2377
Problem:    MNV9: crash when using a range after another expression.
Solution:   Set the variable type to number. Fix using :put with a range and
            the "=" register. (closes #7706)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2378
Problem:    MNV9: no error message for dividing by zero.
Solution:   Give an error message. (issue #7704)
Files:      src/errors.h, src/eval.c, src/mnv9execute.c,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.2379
Problem:    Finding spell suggestions twice if 'spellsuggest' contains number.
Solution:   Only do internal suggestions once.  (closes #7713)
Files:      src/spellsuggest.c

Patch 8.2.2380
Problem:    MNV9: occasional crash when using try/catch and a timer.
Solution:   Save and restore "need_rethrow" when invoking a timer callback.
            (closes #7708)
Files:      src/time.c

Patch 8.2.2381
Problem:    MNV9: divide by zero does not abort expression execution.
Solution:   Use a "failed" flag. (issue #7704)
Files:      src/eval.c, src/proto/eval.pro, src/evalvars.c, src/mnv9compile.c,
            src/testdir/mnv9.mnv, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2382 (after 8.2.2381)
Problem:    Build failure.
Solution:   Add missing changes.
Files:      src/mnv9execute.c

Patch 8.2.2383
Problem:    Focus escape sequences are not named in ":set termcap" output.
Solution:   Add the names to the list. (closes #7718)
Files:      src/misc2.c

Patch 8.2.2384
Problem:    Turtle filetype not recognized.
Solution:   Add a rule to detect turtle files. (closes #7722)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.2385
Problem:    "gj" and "gk" do not work correctly when inside a fold.
Solution:   Move check for folding. (closes #7724, closes #4095)
Files:      src/normal.c, src/testdir/test_fold.mnv

Patch 8.2.2386
Problem:    MNV9: crash when using ":silent! put".
Solution:   When ignoring an error for ":silent!" rewind the stack and skip
            ahead to restoring the cmdmod. (closes #7717)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2387
Problem:    Runtime type check does not mention argument index.
Solution:   Add ct_arg_idx. (closes #7720)
Files:      src/mnv9.h, src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_builtin.mnv,
            src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.2388
Problem:    No easy way to get the maximum or minimum number value.
Solution:   Add v:numbermax and v:numbermin.
Files:      src/evalvars.c, src/mnv.h, src/testdir/test_eval_stuff.mnv,
            runtime/doc/eval.txt

Patch 8.2.2389
Problem:    Test failure on a few systems.
Solution:   Avoid that "char" value is negative.
Files:      src/mnv9compile.c, src/mnv9execute.c, src/mnv9.h

Patch 8.2.2390
Problem:    MNV9: using positive offset is unexpected.
Solution:   Use int8_T instead of char. (James McCoy)
Files:      src/mnv9.h, src/mnv9compile.c, src/mnv9execute.c

Patch 8.2.2391
Problem:    Memory leak when creating a global function with closure.
Solution:   Create a separate partial for every instantiated function.
Files:      src/userfunc.c, src/mnv9execute.c

Patch 8.2.2392
Problem:    Fennel filetype not recognized.
Solution:   Detect with pattern and hashbang. (Chinmay Dalal, closes #7729)
Files:      runtime/filetype.mnv, runtime/scripts.mnv,
            src/testdir/test_filetype.mnv

Patch 8.2.2393
Problem:    MNV9: error message when script line starts with "[{".
Solution:   Do not give an error for checking for end of list.
Files:      src/dict.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2394
Problem:    MNV9: min() and max() return type is "any".
Solution:   Use return type "number". (closes #7728)
Files:      src/evalfunc.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2395
Problem:    MNV9: error for wrong type may report wrong line number.
Solution:   Save and restore the line number when evaluating the expression.
            (closes #7727)
Files:      src/evalvars.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2396
Problem:    MNV9: no white space allowed before "->".
Solution:   Allow for white space. (closes #7725)
Files:      src/ex_docmd.c, src/eval.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2397
Problem:    MNV9: "%%" not seen as alternate file name for commands with a
            buffer name argument.
Solution:   Recognize "%%" like "#". (closes #7732)
Files:      src/buffer.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2398 (after 8.2.2396)
Problem:    Method test fails.
Solution:   Adjust test for allowed white space.
Files:      src/testdir/test_method.mnv

Patch 8.2.2399 (after 8.2.2385)
Problem:    Fold test fails in wide terminal.
Solution:   Adjust the test. (Dominique Pelle, closes #7731, closes #7739)
Files:      src/testdir/test_fold.mnv

Patch 8.2.2400
Problem:    MNV9: compiled functions are not profiled.
Solution:   Add initial changes to profile compiled functions.  Fix that a
            script-local function was hard to debug.
Files:      runtime/doc/repeat.txt, src/mnv9.h, src/mnv9compile.c,
            src/mnv9execute.c, src/userfunc.c, src/proto/mnv9compile.pro,
            src/structs.h, src/mnv9type.c, src/debugger.c, src/ex_cmds.h,
            src/ex_docmd.c, src/profiler.c, src/proto/profiler.pro,
            src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_profile.mnv

Patch 8.2.2401
Problem:    Build fails without +profiling feature.
Solution:   Add #ifdefs.
Files:      src/mnv9compile.c, src/mnv9execute.c, src/mnv9.h, src/structs.h,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.2402
Problem:    Some filetypes not detected.
Solution:   Detect Ruby Signature and Puppet related files. (Doug Kearns)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.2403
Problem:    MNV9: profiling if/elseif/endif not correct.
Solution:   Add profile instructions.  Fix that "elseif" was wrong.
Files:      src/mnv9compile.c, src/testdir/test_profile.mnv,
            src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.2404
Problem:    MNV9: profiling try/catch not correct.
Solution:   Add profile instructions.  Fix that "entry" did not rethrow an
            exception.
Files:      src/mnv9compile.c, src/mnv9execute.c, src/testdir/test_profile.mnv

Patch 8.2.2405
Problem:    MNV9: no need to allow white space before "(" for :def.
Solution:   Give an error for stray white space. (issue #7734)
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2406
Problem:    MNV9: profiled :def function leaks memory.
Solution:   Delete the profiled instructions.
Files:      src/mnv9compile.c

Patch 8.2.2407
Problem:    Old jumplist code is never used.
Solution:   Delete the dead code. (Yegappan Lakshmanan, closes #7740)
Files:      src/mark.c

Patch 8.2.2408
Problem:    MinGW: "--preprocessor" flag no longer supported.
Solution:   Remove the flag, use the defaults. (Christopher Wellons,
            closes #7741)
Files:      src/GmnvExt/Make_ming.mak, src/Make_cyg_ming.mak

Patch 8.2.2409
Problem:    MNV9: profiling only works for one function.
Solution:   Select the right instructions when calling and returning.
            (closes #7743)
Files:      src/mnv9compile.c, src/mnv9execute.c, src/mnv9.h,
            src/testdir/test_profile.mnv

Patch 8.2.2410
Problem:    Build failure without the +profiling feature.
Solution:   Add dummy argument to macro.
Files:      src/mnv9.h

Patch 8.2.2411
Problem:    Profile test fails on MS-Windows.
Solution:   Do the profiling in a separate MNV command.
Files:      src/testdir/test_profile.mnv

Patch 8.2.2412
Problem:    Not all fields in "cstack" are initialized which might cause a
            crash.
Solution:   Use CLEAR_FIELD().
Files:      src/ex_docmd.c

Patch 8.2.2413
Problem:    Crash when using :all while using a cmdline window. (Zdenek Dohnal)
Solution:   Disallow :all from the cmdline window.
Files:      src/arglist.c, src/ex_getln.c, src/testdir/test_arglist.mnv

Patch 8.2.2414
Problem:    Using freed memory when closing the cmdline window.
Solution:   Check the window is still valid.
Files:      src/ex_getln.c

Patch 8.2.2415
Problem:    No way to check for the cmdwin feature, cmdline_hist is now always
            enabled.
Solution:   Add has('cmdwin') support. Skip arglist test on Windows
            temporarily.
Files:      runtime/doc/cmdline.txt, src/evalfunc.c,
            src/testdir/test_autocmd.mnv, src/testdir/test_arglist.mnv,
            src/testdir/test_cmdline.mnv, src/testdir/test_ins_complete.mnv,
            src/testdir/test_normal.mnv, src/testdir/test_tabpage.mnv,
            src/testdir/test_termcodes.mnv, src/testdir/test_window_cmd.mnv

Patch 8.2.2416
Problem:    May get stuck in command line window state.
Solution:   Reset "cmdwin_type" when editing buffer fails.  Make arglist test
            pass on MS-Windows.
Files:      src/ex_getln.c, src/testdir/test_arglist.mnv

Patch 8.2.2417
Problem:    Condition stack values may be used when not set.
Solution:   Clear cs_script_var_len and cs_block_id just in case they get used
            later. (issue #7733)
Files:      src/ex_eval.c

Patch 8.2.2418
Problem:    Color not changed if ModeMsg highlight is set in InsertEnter
            autocmd event. (Paul Swanson)
Solution:   Call highlight_changed() after triggering InsertEnter.
            (closes #7751)
Files:      src/edit.c

Patch 8.2.2419
Problem:    Autocmd test was failing on MS-Windows with GUI.
Solution:   Remove stray feedkeys().
Files:      src/testdir/test_autocmd.mnv

Patch 8.2.2420
Problem:    Too many problems with using all autocommand events.
Solution:   Disallow defining an autocommand for all events.
Files:      src/autocmd.c, src/errors.h, src/testdir/test_autocmd.mnv,
            src/testdir/test_quickfix.mnv, src/testdir/test_window_cmd.mnv

Patch 8.2.2421
Problem:    Double free when using autocommand with "argdel". (Houyunsong)
Solution:   Add the arglist_locked flag.
Files:      src/arglist.c, src/testdir/test_autocmd.mnv

Patch 8.2.2422
Problem:    Crash when deleting with line number out of range. (Houyunsong)
Solution:   Avoid using a negative line number.
Files:      src/normal.c, src/testdir/test_ex_mode.mnv

Patch 8.2.2423 (after 8.2.2422)
Problem:    Missing error message.
Solution:   Add the error message.
Files:      src/errors.h

Patch 8.2.2424
Problem:    Some tests are known to cause an error with ASAN.
Solution:   Add CheckNotAsan.
Files:      src/testdir/check.mnv, src/testdir/test_ins_complete.mnv,
            src/testdir/test_memory_usage.mnv, src/testdir/test_ex_mode.mnv

Patch 8.2.2425
Problem:    Cursor on invalid line with range and :substitute.
Solution:   Do not move the cursor when skipping commands. (closes #3434)
Files:      src/ex_cmds.c, src/testdir/test_eval_stuff.mnv

Patch 8.2.2426
Problem:    Allowing 'completefunc' to switch windows causes trouble.
Solution:   use "textwinlock" instead of "textlock".
Files:      src/insexpand.c, src/testdir/test_ins_complete.mnv,
            src/testdir/test_popup.mnv

Patch 8.2.2427
Problem:    Can still switch windows for 'completefunc'.
Solution:   Also disallow switching windows for other completions.
Files:      src/insexpand.c, src/testdir/test_ins_complete.mnv,
            src/testdir/test_popup.mnv

Patch 8.2.2428
Problem:    FocusGained does not work when 'ttymouse' is empty.
Solution:   Don't use the short mouse code if there is a longer matching code.
            (closes #7755)  Add a test.
Files:      src/term.c, src/testdir/test_termcodes.mnv

Patch 8.2.2429
Problem:    :goto does not work correctly with text properties. (Sam McCall)
Solution:   Add a test. (Andrew Radev)  Also use the text property size when
            computing the remaining offset. (closes #5930)
Files:      src/memline.c, src/testdir/test_textprop.mnv

Patch 8.2.2430
Problem:    :mnvgrep expands wildcards twice.
Solution:   Do not expand wildcards a second time.
Files:      src/quickfix.c, src/arglist.c, src/testdir/test_quickfix.mnv

Patch 8.2.2431
Problem:    Warning for -fno-strength-reduce with Clang 11.
Solution:   Adjust check for clang version number.
Files:      src/configure.ac, src/auto/configure

Patch 8.2.2432
Problem:    Libvterm tests are executed even when libtool doesn't work.
Solution:   Only run libvterm tests if /usr/bin/gcc exists.
Files:      src/Makefile

Patch 8.2.2433
Problem:    Opening cmdline window gives error in BufLeave autocommand.
Solution:   Reset cmdwin_type when triggering the autocommand.
Files:      src/ex_cmds.c, src/testdir/test_cmdline.mnv

Patch 8.2.2434
Problem:    MNV9: no error when compiling str2nr() with a number.
Solution:   Add argument type checks. (closes #7759)
Files:      src/evalfunc.c, src/typval.c, src/proto/typval.pro,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2435
Problem:    setline() gives an error for some types.
Solution:   Allow any type, convert each item to a string.
Files:      runtime/doc/eval.txt, src/evalbuffer.c, src/typval.c,
            src/proto/typval.pro, src/debugger.c, src/mnv9execute.c,
            src/testdir/test_bufline.mnv, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2436
Problem:    MNV9 script test is a bit flaky.
Solution:   Wait longer for exit callback.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.2437
Problem:    Deprecation warnings with default configuration.
Solution:   Add -Wno-deprecated-declarations.
Files:      src/configure.ac, src/auto/configure

Patch 8.2.2438
Problem:    Out of bounds compiler warning.
Solution:   Increase the size of uf_name.
Files:      src/structs.h

Patch 8.2.2439
Problem:    Not easy to figure out what packages to get when installing MNV on
            a new Ubuntu system.
Solution:   Mention explicit commands that are easy to follow.
Files:      src/INSTALL

Patch 8.2.2440
Problem:    Documentation based on patches is outdated.
Solution:   Add changes to documentation in a patch.
Files:      runtime/doc/arabic.txt, runtime/doc/autocmd.txt,
            runtime/doc/change.txt, runtime/doc/channel.txt,
            runtime/doc/cmdline.txt, runtime/doc/debugger.txt,
            runtime/doc/develop.txt, runtime/doc/digraph.txt,
            runtime/doc/editing.txt, runtime/doc/eval.txt,
            runtime/doc/filetype.txt, runtime/doc/ft_sql.txt,
            runtime/doc/gui.txt, runtime/doc/gui_w32.txt,
            runtime/doc/gui_x11.txt, runtime/doc/hangulin.txt,
            runtime/doc/helphelp.txt, runtime/doc/help.txt,
            runtime/doc/if_lua.txt, runtime/doc/if_mzsch.txt,
            runtime/doc/if_tcl.txt, runtime/doc/indent.txt,
            runtime/doc/index.txt, runtime/doc/insert.txt,
            runtime/doc/intro.txt, runtime/doc/map.txt, runtime/doc/mbyte.txt,
            runtime/doc/message.txt, runtime/doc/mlang.txt,
            runtime/doc/motion.txt, runtime/doc/netbeans.txt,
            runtime/doc/options.txt, runtime/doc/os_dos.txt,
            runtime/doc/os_haiku.txt, runtime/doc/os_unix.txt,
            runtime/doc/os_vms.txt, runtime/doc/os_win32.txt,
            runtime/doc/pattern.txt, runtime/doc/pi_getscript.txt,
            runtime/doc/pi_logipat.txt, runtime/doc/pi_netrw.txt,
            runtime/doc/pi_tar.txt, runtime/doc/pi_mnvball.txt,
            runtime/doc/pi_zip.txt, runtime/doc/popup.txt,
            runtime/doc/print.txt, runtime/doc/quickfix.txt,
            runtime/doc/quickref.txt, runtime/doc/recover.txt,
            runtime/doc/remote.txt, runtime/doc/repeat.txt,
            runtime/doc/rileft.txt, runtime/doc/sign.txt,
            runtime/doc/spell.txt, runtime/doc/starting.txt,
            runtime/doc/syntax.txt, runtime/doc/tabpage.txt,
            runtime/doc/tagsrch.txt, runtime/doc/terminal.txt,
            runtime/doc/term.txt, runtime/doc/testing.txt,
            runtime/doc/textprop.txt, runtime/doc/tips.txt,
            runtime/doc/todo.txt, runtime/doc/uganda.txt,
            runtime/doc/undo.txt, runtime/doc/usr_02.txt,
            runtime/doc/usr_03.txt, runtime/doc/usr_04.txt,
            runtime/doc/usr_05.txt, runtime/doc/usr_07.txt,
            runtime/doc/usr_08.txt, runtime/doc/usr_10.txt,
            runtime/doc/usr_11.txt, runtime/doc/usr_20.txt,
            runtime/doc/usr_22.txt, runtime/doc/usr_23.txt,
            runtime/doc/usr_24.txt, runtime/doc/usr_27.txt,
            runtime/doc/usr_30.txt, runtime/doc/usr_31.txt,
            runtime/doc/usr_40.txt, runtime/doc/usr_41.txt,
            runtime/doc/usr_42.txt, runtime/doc/usr_44.txt,
            runtime/doc/usr_45.txt, runtime/doc/usr_46.txt,
            runtime/doc/usr_90.txt, runtime/doc/usr_toc.txt,
            runtime/doc/various.txt, runtime/doc/version5.txt,
            runtime/doc/version6.txt, runtime/doc/version7.txt,
            runtime/doc/version8.txt, runtime/doc/vi_diff.txt,
            runtime/doc/mnv9.txt, runtime/doc/visual.txt,
            runtime/doc/windows.txt

Patch 8.2.2441
Problem:    MNV9: extend() does not give an error for a type mismatch.
Solution:   Check the type of the second argument. (closes #7760)
Files:      src/list.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2442
Problem:    Automatic GUI selection does not check for GTK 3.
Solution:   Make SKIP_GTK3 empty for automatic GUI support.  Set SKIP_GTK3 to
            YES when checking for GTK2.
Files:      src/configure.ac, src/auto/configure

Patch 8.2.2443
Problem:    MNV9: no compile time error for wrong str2float argument.
Solution:   Check argument type. (closes #7759)
Files:      src/evalfunc.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2444
Problem:    MNV9: compile error with combination of operator and list.
Solution:   Generate constants before parsing a list or dict. (closes #7757)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2445
Problem:    MNV9: no proper error for lambda missing return type.
Solution:   Check for this error. (closes #7758)
Files:      src/errors.h, src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2446
Problem:    Setting 'term' empty has different error if compiled with GUI.
Solution:   Insert "else". (closes #7766)
Files:      src/optionstr.c, src/testdir/test_options.mnv

Patch 8.2.2447
Problem:    'foldlevel' not applied to folds restored from session.
Solution:   Set 'foldlevel' after creating the folds. (closes #7767)
Files:      src/fold.c, src/testdir/test_mksession.mnv

Patch 8.2.2448
Problem:    Compilation error with Ruby 3.0.
Solution:   Adjust #ifdefs and declaration. (Ken Takata, closes #7761)
Files:      src/if_ruby.c

Patch 8.2.2449
Problem:    MNV9: flatten() always changes the list type.
Solution:   Disallow using flatten() and add flattennew().
Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
            src/list.c, src/proto/list.pro, src/errors.h, src/mnv9compile.c,
            src/testdir/test_flatten.mnv, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2450
Problem:    MS-Windows: ADS was not preserved if 'backupcopy' is "yes".
Solution:   Copy ADS before truncating the file. (Ken Takata, closes #7762)
Files:      src/bufwrite.c

Patch 8.2.2451
Problem:    MS-Windows: Extended Attributes not preserved.
Solution:   Preserve Extended Attributes when writing a file. (Ken Takata,
            closes #7765)
Files:      src/os_win32.c

Patch 8.2.2452
Problem:    No completion for the 'filetype' option.
Solution:   Add filetype completion. (Martin Tournoij, closes #7747)
Files:      src/option.c, src/optiondefs.h, src/testdir/test_options.mnv

Patch 8.2.2453
Problem:    MNV9: a variable name with "->" in the next line doesn't work.
Solution:   Recognize a variable name by itself. (closes #7770)
Files:      src/ex_docmd.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2454
Problem:    Leading space can not be made visible.
Solution:   Add "lead:" to 'listchars'. (closes #7772)
Files:      runtime/doc/options.txt, src/drawline.c, src/globals.h,
            src/message.c, src/screen.c, src/testdir/test_listchars.mnv

Patch 8.2.2455
Problem:    MNV9: key type that can be used for literal dict and indexing is
            inconsistent.
Solution:   Allow using number and bool as key for a literal dict. (#7771)
Files:      runtime/doc/mnv9.txt, src/dict.c, src/eval.c, src/mnv9compile.c,
            src/testdir/test_mnv9_expr.mnv, src/testdir/test_mnv9_builtin.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.2456
Problem:    Coverity warning for strcpy() into fixed size array.
Solution:   Add a type cast to hopefully silence the bogus warning.
Files:      src/userfunc.c

Patch 8.2.2457
Problem:    Coverity warns for memory leak.
Solution:   Free memory when out of memory.
Files:      src/if_cscope.c

Patch 8.2.2458
Problem:    Coverity warns for :retab using freed memory.
Solution:   Use the updated line pointer when moving text properties.
Files:      src/indent.c

Patch 8.2.2459
Problem:    Coverity reports dead code.
Solution:   Remove the dead code.
Files:      src/eval.c

Patch 8.2.2460
Problem:    Coverity warns for unused value.
Solution:   Do not reset the return value to OK.
Files:      src/mnv9compile.c

Patch 8.2.2461
Problem:    Coverity warns for unchecked return value.
Solution:   Add "(void)" to avoid the warning.
Files:      src/mnv9execute.c

Patch 8.2.2462
Problem:    Coverity warns for not checking for fseek() error.
Solution:   Give an error message if fseek() fails.
Files:      src/spellfile.c

Patch 8.2.2463
Problem:    Using :arglocal in an autocommand may use freed memory.
            (houyunsong)
Solution:   Check if the arglist is locked.
Files:      src/arglist.c, src/testdir/test_autocmd.mnv

Patch 8.2.2464
Problem:    Using freed memory if window closed in autocommand. (houyunsong)
Solution:   Check the window still exists.
Files:      src/ex_cmds.c, src/testdir/test_autocmd.mnv

Patch 8.2.2465
Problem:    Using freed memory in :psearch. (houyunsong)
Solution:   Check the current window is still valid.  Fix flaky test.
Files:      src/search.c, src/testdir/test_autocmd.mnv

Patch 8.2.2466
Problem:    Max() and min() can give many error messages.
Solution:   Bail out at the first error. (closes #1039, closes #7778)
Files:      src/evalfunc.c, src/testdir/test_functions.mnv

Patch 8.2.2467
Problem:    Script generated by :mkview changes alternate file.
Solution:   Only write :balt in the session file. (Harish Rajagopal,
            closes #7779)
Files:      src/session.c, src/testdir/test_mksession.mnv

Patch 8.2.2468
Problem:    Not easy to get the full command name from a shortened one.
Solution:   Add fullcommand(). (Martin Tournoij, closes #7777)
Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
            src/ex_docmd.c, src/proto/evalfunc.pro,
            src/testdir/test_cmdline.mnv

Patch 8.2.2469
Problem:    Confusing error if :winsize has a wrong argument.
Solution:   Quote the argument in the error. (closes #2523)
Files:      src/ex_docmd.c, src/testdir/test_excmd.mnv

Patch 8.2.2470
Problem:    Popup_getoptions() does not get textprop from other tab.
Solution:   use win_valid_any_tab(). (closes #7786)
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv

Patch 8.2.2471
Problem:    Popup_setoptions() does not set textprop in other tab.
Solution:   use win_valid_any_tab(). (closes #7788)
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv

Patch 8.2.2472
Problem:    Crash when using command line window in an autocommand.
            (houyunsong)
Solution:   Save and restore au_new_curbuf.
Files:      src/ex_cmds.c, src/testdir/test_autocmd.mnv

Patch 8.2.2473
Problem:    Crash when leaving command line window triggers autocommand.
            (houyunsong)
Solution:   Make sure not to close the current window or buffer.
Files:      src/ex_getln.c, src/testdir/test_autocmd.mnv

Patch 8.2.2474
Problem:    Using freed memory when window is closed by autocommand.
            (houyunsong)
Solution:   Check the window pointer is still valid.
Files:      src/quickfix.c, src/testdir/test_autocmd.mnv

Patch 8.2.2475
Problem:    Autocommand tests hangs on MS-Windows.
Solution:   Skip one test.
Files:      src/testdir/test_autocmd.mnv

Patch 8.2.2476
Problem:    Using freed memory when using an autocommand to split a window
            while a buffer is being closed.
Solution:   Disallow splitting when the buffer has b_locked_split set.
Files:      src/buffer.c, src/window.c, src/errors.h, src/structs.h,
            src/popupwin.c, src/testdir/test_autocmd.mnv

Patch 8.2.2477
Problem:    Autocommand tests hang on MS-Windows.
Solution:   Skip a couple of tests.  Fix file name.
Files:      src/testdir/test_autocmd.mnv

Patch 8.2.2478
Problem:    MS-Windows: backup files for plugins are loaded.
Solution:   Do not use the alternate file name for files ending in "~".
Files:      src/filepath.c

Patch 8.2.2479
Problem:    set/getbufline test fails without the job feature.
Solution:   Check whether the job feature is supported. (Dominique Pellé,
            closes #7790)
Files:      src/testdir/test_bufline.mnv, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2480
Problem:    MNV9: some errors for white space do not show context.
Solution:   Include the text at the error.
Files:      src/errors.h, src/dict.c, src/list.c, src/userfunc.c,
            src/mnv9compile.c, src/mnv9script.c, src/mnv9type.c

Patch 8.2.2481
Problem:    MNV9: confusing error when variable arguments have a default
            value.
Solution:   Give a specific error message. (closes #7793)
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2482
Problem:    Build error.
Solution:   Add new error message.
Files:      src/errors.h

Patch 8.2.2483
Problem:    MNV9: type error for malformed expression.
Solution:   Check for end of command before checking type. (closes #7795)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2484
Problem:    MNV9: Cannot use a comment starting with #{ after an expression.
Solution:   Remove the check for "{" since #{ dictionaries are not supported.
Files:      src/ex_docmd.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2485
Problem:    When sourcing a script again the script version isn't reset.
Solution:   Set sn_version to one when sourcing a script again. Clear
            sn_save_cpo properly. (closes #7608)
Files:      src/scriptfile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2486
Problem:    MNV9: some errors for white space do not show context.
Solution:   Include the text at the error.
Files:      src/errors.h, src/dict.c, src/list.c, src/userfunc.c,
            src/mnv9compile.c, src/mnv9type.c

Patch 8.2.2487
Problem:    Terminal shows garbage after double-wide character with a
            combining character. (Kyoichiro Yamada)
Solution:   Libvterm: do not add the width of the combining character to the
            glyph width. (closes #7801)
Files:      src/libvterm/src/state.c, src/testdir/test_terminal.mnv,
            src/testdir/dumps/Test_terminal_combining.dump

Patch 8.2.2488
Problem:    json_encode() gives generic argument error.
Solution:   Mention the type that can't be encoded. (issue #7802)
Files:      src/json.c, src/errors.h, src/testdir/test_json.mnv

Patch 8.2.2489
Problem:    current buffer is wrong after deletebufline() fails to delete a
            line in another buffer.
Solution:   Restore the current buffer.
Files:      src/evalbuffer.c, src/testdir/test_bufline.mnv

Patch 8.2.2490
Problem:    'wrap' option is always reset when starting diff mode.
Solution:   Add the "followwrap" item in 'diffopt'. (Rick Howe, closes #7797)
Files:      runtime/doc/diff.txt, runtime/doc/options.txt, src/diff.c,
            src/testdir/test_diffmode.mnv

Patch 8.2.2491
Problem:    Popup window for text property may show in first screen line.
Solution:   If the text position is invisible do not show the popup window.
            (closes #7807)
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv,
            src/testdir/dumps/Test_popup_prop_not_visible_01.dump,
            src/testdir/dumps/Test_popup_prop_not_visible_02.dump,
            src/testdir/dumps/Test_popup_prop_not_visible_03.dump

Patch 8.2.2492
Problem:    Command line buffer name cannot be translated.
Solution:   Add _(). (Gabriel Dupras, closes #7812)
Files:      src/ex_getln.c

Patch 8.2.2493
Problem:    Text property for text left of window shows up.
Solution:   Check if the text property ends before the current column.
            (closes #7806)
Files:      src/drawline.c, src/testdir/test_textprop.mnv,
            src/testdir/dumps/Test_textprop_nowrap_01.dump,
            src/testdir/dumps/Test_textprop_nowrap_02.dump

Patch 8.2.2494
Problem:    ":rmnvinfo!" clears most of oldfiles.
Solution:   Add VIF_ONLY_CURBUF to read_mnvinfo(). (closes #1781)
Files:      src/mnvinfo.c, src/mnv.h

Patch 8.2.2495
Problem:    Text jumps up and down when moving the cursor in a small window
            with wrapping text and 'scrolloff' set.
Solution:   Adjust the computation of w_skipcol. (partly by Ghjuvan Lacambre,
            closes #7813)
Files:      src/move.c, src/testdir/test_breakindent.mnv

Patch 8.2.2496 (after 8.2.2495)
Problem:    Insufficient testing for text jumping fix.
Solution:   Add another test case.
Files:      src/testdir/test_breakindent.mnv

Patch 8.2.2497
Problem:    No error when using more than one character for a register name.
Solution:   In MNV9 script check for a single character string. (closes #7814)
            Fix that VAR_BOOL and VAR_SPECIAL are not considered equal.
Files:      src/errors.h, src/evalfunc.c, src/typval.c,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2498
Problem:    No test for what 8.2.2494 fixes.
Solution:   Add a simple change to test the fix. (closes #7818)
Files:      src/testdir/test_mnvinfo.mnv

Patch 8.2.2499
Problem:    "mnv -g --version" does not redirect output.
Solution:   Reset gui.starting when showing version info. (closes #7815)
Files:      src/main.c, src/testdir/test_version.mnv

Patch 8.2.2500 (after 8.2.2499)
Problem:    Build fails without the GUI feature.
Solution:   Add #ifdef.
Files:      src/main.c

Patch 8.2.2501
Problem:    Not always clear where an error is reported.
Solution:   Add the where_T structure and pass it around. (closes #7796)
Files:      src/structs.h, src/mnv9type.c, src/proto/mnv9type.pro,
            src/errors.h, src/evalvars.c, src/proto/evalvars.pro, src/eval.c,
            src/proto/eval.pro, src/mnv9execute.c, src/mnv9script.c,
            src/proto/mnv9script.pro, src/dict.c, src/list.c,
            src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2502
Problem:    A few github actions are failing.
Solution:   Install setuptools-rust. (closes #7823)
Files:      .github/workflows/ci.yml

Patch 8.2.2503
Problem:    MNV9: a caught error may leave something on the stack.
Solution:   Drop items from the stack if needed. (closes #7826)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2504
Problem:    MNV9: crash when using an argument from a closure.
Solution:   Check if gen_load_outer is NULL. (closes #7821)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2505
Problem:    MNV9: crash after defining function with invalid return type.
Solution:   Clear function growarrays.  Fix memory leak.
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2506
Problem:    MNV9: :continue does not work correctly in a :try block
Solution:   Add the TRYCLEANUP instruction. (closes #7827)
Files:      src/mnv9compile.c, src/mnv9execute.c, src/mnv9.h,
            src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.2507
Problem:    Github build may fail if Ubuntu 20.04 is used.  Installing rust is
            not needed.
Solution:   Specify ubuntu-18.04 instead of latest. Update "pip" instead of
            installing rust. (Ozaki Kiichi, closes #7820)
Files:      .github/workflows/ci.yml

Patch 8.2.2508
Problem:    Cannot change the character displayed in non existing lines.
Solution:   Add the "eob" item to 'fillchars'. (closes #7832, closes #3820)
Files:      runtime/doc/options.txt, runtime/doc/todo.txt,
            runtime/doc/windows.txt, src/drawscreen.c, src/globals.h,
            src/optiondefs.h, src/screen.c, src/testdir/test_display.mnv

Patch 8.2.2509
Problem:    Tests fail on s390 build.
Solution:   Initialize trycmd_T.
Files:      src/mnv9execute.c

Patch 8.2.2510
Problem:    Internal error when popup with mask is zero height or width.
Solution:   Bail out if width or height is zero. (closes #7831)
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv

Patch 8.2.2511
Problem:    MNV9: cannot use MNV9 script syntax in some places.
Solution:   Add the :mnv9cmd command modifier. Incompatible: Makes ":mnv9"
            mean ":mnv9cmd" instead of ":mnv9script".
Files:      runtime/doc/mnv9.txt, runtime/doc/repeat.txt, src/ex_docmd.c,
            src/ex_cmds.h, src/structs.h, src/ex_cmdidxs.h, src/errors.h,
            src/testdir/test_mnv9_cmd.mnv, src/testdir/test_cmdline.mnv,
            src/testdir/dumps/Test_wildmenu_1.dump,
            src/testdir/dumps/Test_wildmenu_2.dump,
            src/testdir/dumps/Test_wildmenu_3.dump,
            src/testdir/dumps/Test_wildmenu_4.dump,
            src/testdir/test_quickfix.mnv

Patch 8.2.2512
Problem:    MNV9: compiling error test sometimes fails.
Solution:   use WaitForAssert() instead of sleeping for a bit. (Dominique
            Pellé, closes #7837)
Files:      src/testdir/term_util.mnv, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.2513 (after 8.2.2511)
Problem:    MNV9: missing part of :mnv9cmd change.
Solution:   Use command modifier in in_mnv9script().
Files:      src/mnv9script.c

Patch 8.2.2514 (after 8.2.2511)
Problem:    MNV9: build error in tiny version.
Solution:   Add #ifdef.
Files:      src/ex_docmd.c

Patch 8.2.2515
Problem:    Memory access error when truncating an empty message.
Solution:   Check for an empty string. (Dominique Pellé, closes #7841)
Files:      src/message.c, src/message_test.c

Patch 8.2.2516
Problem:    Test failure on s390. (analyses by James McCoy)
Solution:   Only set the try_finally label when not skipping.
Files:      src/mnv9compile.c

Patch 8.2.2517
Problem:    MNV9: fix for s390 not tested on other systems.
Solution:   Add a test.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.2518
Problem:    'listchars' should be window-local.
Solution:   Make 'listchars' global-local. (Yegappan Lakshmanan, Marco Hinz,
            closes #5206, closes #7850)
Files:      runtime/doc/options.txt, src/buffer.c, src/charset.c,
            src/drawline.c, src/drawscreen.c, src/evalfunc.c, src/globals.h,
            src/indent.c, src/message.c, src/misc1.c, src/option.c,
            src/option.h, src/optiondefs.h, src/optionstr.c,
            src/proto/screen.pro, src/screen.c, src/structs.h,
            src/testdir/test_listchars.mnv, src/testdir/test_listlbr.mnv

Patch 8.2.2519
Problem:    MNV9: no reason to keep strange Vi behavior.
Solution:   ":3" and ":3|" both go to line 3. ":|" does not print the line.
            (closes #7840)
Files:      src/ex_docmd.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2520
Problem:    Missing tests for 'listchars'.
Solution:   Add a few more checks. (Yegappan Lakshmanan, closes #7854)
Files:      src/testdir/test_listchars.mnv

Patch 8.2.2521
Problem:    Some compilers can't handle pointer initialization. (John
            Marriott)
Solution:   Use a local struct and assign it afterwards.
Files:      src/screen.c

Patch 8.2.2522
Problem:    Beancount filetype not recognized.
Solution:   Add a detection rule. (Brian Ryall, closes #7859)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.2523
Problem:    Svelte filetype not recognized.
Solution:   Add a detection rule. (Brian Ryall, closes #7858)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.2524
Problem:    Cannot change the characters displayed in the foldcolumn.
Solution:   Add fields to 'fillchars'. (Yegappan Lakshmanan, Matthieu Coudron,
            closes #7860)
Files:      runtime/doc/options.txt, src/globals.h, src/mouse.c, src/screen.c,
            src/testdir/test_display.mnv

Patch 8.2.2525
Problem:    MNV9: only local variables checked for a name.
Solution:   Also check arguments and script variables. (closes #7838)
Files:      src/mnv9compile.c, src/ex_docmd.c, src/proto/ex_docmd.pro,
            src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2526 (after 8.2.2525)
Problem:    Build failure.
Solution:   Change lookup_scriptvar() arguments.
Files:      src/evalvars.c, src/proto/evalvars.pro

Patch 8.2.2527
Problem:    MNV9: lambda return type is not determined at script level.
Solution:   Compile the lambda to get the return type. (closes #7843)
Files:      src/eval.c, src/mnv.h, src/mnv9.h,
            src/testdir/test_mnv9_assign.mnv

Patch 8.2.2528
Problem:    MNV9: crash when compiling lambda fails.
Solution:   Bail out after compilation fails. (closes #7862)
Files:      src/eval.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2529
Problem:    MNV9: Not possible to use legacy and MNV9 script in one file.
Solution:   MNV9: allow for "if false" before :mnv9script. (closes #7851)
Files:      runtime/doc/mnv9.txt, src/ex_docmd.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.2530
Problem:    MNV9: not enough testing for profiling.
Solution:   Add a test with nested functions and a lambda.  Fix profiling
            for calling a compiled function.
Files:      src/profiler.c, src/proto/profiler.pro, src/userfunc.c,
            src/mnv9execute.c, src/testdir/test_profile.mnv

Patch 8.2.2531
Problem:    MNV9: the :k command is obscure.
Solution:   Disallow using :k, can use :mark instead. (closes #7874)
Files:      runtime/doc/mnv9.txt, src/ex_docmd.c, src/mnv9script.c,
            src/mnv9compile.c, src/ex_cmds.h, src/testdir/test_mnv9_script.mnv

Patch 8.2.2532
Problem:    MNV9: confusing error if :k is used with a range.
Solution:   Give an error about the range. (issue #7874)
Files:      src/mnv9script.c, src/mnv9compile.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.2533
Problem:    MNV9: cannot use a range with :unlet.
Solution:   Implement ISN_UNLETRANGE.
Files:      src/errors.h, src/eval.c, src/evalvars.c, src/list.c,
            src/proto/evalvars.pro, src/proto/list.pro, src/mnv9.h,
            src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_assign.mnv

Patch 8.2.2534
Problem:    Missing test coverage.
Solution:   Improve test coverage for completion with different encodings,
            mapset(), and term function failures. (Dominique Pellé,
            closes #7877)
Files:      src/testdir/test_edit.mnv, src/testdir/test_maparg.mnv,
            src/testdir/test_terminal3.mnv

Patch 8.2.2535
Problem:    MS-Windows: cannot run all mnv9 tests.
Solution:   Make test_mnv9 target work.
Files:      src/Make_mvc.mak

Patch 8.2.2536
Problem:    Coverity complains about unchecked return value.
Solution:   Add (void).
Files:      src/userfunc.c

Patch 8.2.2537
Problem:    MNV9: crash when map() fails.
Solution:   Clear typval before using it. (closes #7884)
Files:      src/list.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2538
Problem:    Crash when using Python list iterator.
Solution:   Increment the list reference count. (closes #7886)
Files:      src/if_py_both.h, src/testdir/test_python3.mnv

Patch 8.2.2539
Problem:    MNV9: return from finally block causes a hang.
Solution:   Store both the finally and endtry indexes. (closes #7885)
Files:      src/mnv9execute.c, src/mnv9compile.c, src/mnv9.h,
            src/testdir/test_mnv9_script.mnv,

Patch 8.2.2540
Problem:    MNV9: no error for using script var name for argument.
Solution:   Check for this error. (closes #7868)
Files:      src/userfunc.c, src/mnv9compile.c, src/proto/mnv9compile.pro,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.2541
Problem:    Popup_create() does not allow boolean for "cursorline".
Solution:   Use dict_get_bool(). (issue #7869)
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv

Patch 8.2.2542
Problem:    Highlight of char beyond line end is not correct. (Chuan Wei Foo)
Solution:   Fix counting NUL as one cell.  Draw one more character if the EOL
            is part of the match. (closes #7883)
Files:      src/match.c, src/testdir/test_search.mnv,
            src/testdir/dumps/Test_hlsearch_1.dump,
            src/testdir/dumps/Test_hlsearch_2.dump

Patch 8.2.2543
Problem:    MNV9: a return inside try/catch does not restore exception state
            properly.
Solution:   When there is no ":finally" jump to ":endtry". (closes #7882)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2544
Problem:    MNV9: error for argument when checking for lambda.
Solution:   Respect the skip flag. (closes #7887)
Files:      src/userfunc.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2545
Problem:    Errors and crash when terminal window is zero height. (Leonid V.
            Fedorenchik)
Solution:   Do not resize when width or height is zero. (closes #7890)
Files:      src/terminal.c, src/testdir/test_terminal.mnv

Patch 8.2.2546
Problem:    Typo in mouse key name.
Solution:   Fix the typo. (issue #4725)
Files:      src/misc2.c

Patch 8.2.2547
Problem:    "%" command not accurate for big files.
Solution:   Make it more accurate for files up to 21M lines. (Dominique Pellé,
            closes #7889)
Files:      src/normal.c

Patch 8.2.2548
Problem:    May get stuck in the cmdline window using :normal.
Solution:   Have nv_esc() return K_IGNORE.
Files:      src/normal.c

Patch 8.2.2549
Problem:    Crash after using "g:" in a for loop.
Solution:   Increment the reference count. (closes #7892)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2550
Problem:    Signal stack size is wrong with latest glibc 2.34.
Solution:   Use sysconf(_SC_SIGSTKSZ) if available. (Zdenek Dohnal, closes
            #7895)
Files:      src/config.h.in, src/configure.ac, src/os_unix.c,
            src/auto/configure

Patch 8.2.2551
Problem:    MS-Windows: colors test file is not installed.
Solution:   Also copy runtime/colors/tools. (Ken Takata, closes #7902)
Files:      nsis/gmnv.nsi

Patch 8.2.2552
Problem:    MNV9: no reason to consider "{{{{{{{{" a command.
Solution:   Just use "{". (issue #7904)
Files:      src/ex_cmds.h

Patch 8.2.2553
Problem:    MNV9: Cannot put "|" after "{".
Solution:   Add the EX_TRLBAR flag. (issue #7904)
Files:      src/ex_cmds.h, src/ex_eval.c

Patch 8.2.2554
Problem:    MNV9: exporting a final is not tested.
Solution:   Add a test.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.2555
Problem:    MNV9: missing test for 8.2.2553.
Solution:   Add a simple test.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.2556
Problem:    MNV9: :import with "as" not fully supported.
Solution:   Implement "as" for more cases.
Files:      src/mnv9script.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2557
Problem:    Compiler warning for shadowed variable.
Solution:   Declare "p" only once.
Files:      src/mnv9script.c

Patch 8.2.2558
Problem:    No error if a lambda argument shadows a variable.
Solution:   Check that the argument name shadows a local, argument or script
            variable. (closes #7898)
Files:      src/mnv9compile.c, src/proto/mnv9compile.pro, src/userfunc.c,
            src/mnv9script.c, src/errors.h, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_expr.mnv, src/testdir/test_mnv9_script.mnv

Patch 8.2.2559
Problem:    MS-Windows: guifont test fails on Windows XP.
Solution:   Check windowsversion().
Files:      src/testdir/test_gui.mnv

Patch 8.2.2560
Problem:    Setting 'winminheigt' does not take tabline into account.
Solution:   Subtract the tabline from the available height. (closes #7899)
Files:      src/window.c, src/testdir/test_options.mnv

Patch 8.2.2561
Problem:    Not all textprop code is covered by tests.
Solution:   Add a few more test cases. (Dominique Pellé, closes #7908)
Files:      src/testdir/test_textprop.mnv

Patch 8.2.2562
Problem:    GUI: star register changed when 'clipboard' is "unnamedplus". (Ingo
            Karkat)
Solution:   Do not change the star register when 'clipboard' contains
            "unnamedplus" and not "unnamed". (closes #1516)
Files:      src/register.c

Patch 8.2.2563
Problem:    Cannot use multibyte characters for folding in 'fillchars'.
Solution:   Port pull request 11568 to MNV. (Yegappan Lakshmanan,
            closes #7924)
Files:      src/drawline.c, src/drawscreen.c, src/macros.h,
            src/proto/screen.pro, src/screen.c, src/testdir/test_fold.mnv,
            src/testdir/test_profile.mnv

Patch 8.2.2564
Problem:    Focus events end Insert mode if 'esckeys' is not set.
Solution:   Do not enable focus events when 'esckeys' is off. (closes #7926)
Files:      src/term.c

Patch 8.2.2565
Problem:    MNV9: "..=" not always recognized.
Solution:   Do not consider "..=" to be string concatenation. (closes #7905)
Files:      src/eval.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2566
Problem:    MNV9: Function name is not recognized.
Solution:   Change lookup_scriptvar() to also find function names.
            (closes #7770)
Files:      src/mnv9script.c, src/evalvars.c, src/proto/evalvars.pro,
            src/ex_docmd.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2567
Problem:    MNV9: no error if variable is defined for existing function.
Solution:   Check if name isn't already in use. (closes #7897)
Files:      src/evalvars.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2568
Problem:    Second time a preview popup is opened highlight is not set.
            (Gabriel Dupras)
Solution:   Apply 'previewpopup' after getting the file. (closes #7928)
Files:      src/tag.c, src/testdir/test_popupwin.mnv,
            src/testdir/dumps/Test_popupwin_previewpopup_2.dump,
            src/testdir/dumps/Test_popupwin_previewpopup_3.dump,
            src/testdir/dumps/Test_popupwin_previewpopup_4.dump,
            src/testdir/dumps/Test_popupwin_previewpopup_5.dump

Patch 8.2.2569
Problem:    'fillchars' "stl" and "stlnc" items must be single byte.
Solution:   Accept multi-byte characters. (Christian Wellenbrock, Yegappan
            Lakshmanan, closes #7927)
Files:      runtime/doc/options.txt, src/buffer.c, src/macros.h, src/screen.c,
            src/testdir/test_fold.mnv, src/testdir/test_statusline.mnv

Patch 8.2.2570
Problem:    Tests fail when run as root.
Solution:   Add a comment mentioning the expected failure. (issue #7919)
Files:      src/testdir/test_edit.mnv, src/testdir/test_excmd.mnv,
            src/testdir/test_help.mnv, src/testdir/test_writefile.mnv

Patch 8.2.2571
Problem:    Test may leave file behind.
Solution:   Delete the temporary file.  Don't profile in the running MNV
            instance.
Files:      src/testdir/test_quickfix.mnv, src/testdir/test_profile.mnv

Patch 8.2.2572
Problem:    MNV9: crash when getting the types for a legacy function.
Solution:   Initialize the type list growarray. (closes #7929)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2573
Problem:    MNV9: using invalid pointer for error message.
Solution:   Use the right pointer. (closes #7921)
Files:      src/eval.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2574
Problem:    MNV9: crash when calling partial with wrong function.
Solution:   Check argument types of called function. (closes #7912)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2575
Problem:    MNV9: a function name with "->" in the next line doesn't work.
Solution:   Recognize a function name by itself. (closes #7770)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2576
Problem:    MNV9: defining a :func function checks for white space after a
            comma in the arguments.
Solution:   Only check for white space in a :def function. (closes #7930)
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2577
Problem:    Compiler warning for type conversion.
Solution:   Add a typecast. (Mike Williams)
Files:      src/drawline.c

Patch 8.2.2578
Problem:    Lua cannot handle a passed in lambda.
Solution:   Handle VAR_PARTIAL. (Prabir Shrestha, closes #7937, closes #7936)
Files:      src/if_lua.c, src/testdir/test_lua.mnv

Patch 8.2.2579
Problem:    MNV9: crash in garbagecollect after for loop.
Solution:   Do not set a reference in script item when the name was cleared.
            (closes #7935)
Files:      src/evalvars.c

Patch 8.2.2580
Problem:    MNV9: checking vararg type is wrong when function is auto-loaded.
Solution:   Use the member type. (closes #7933)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2581
Problem:    MNV9: sourcing MNV9 script triggers a redraw.
Solution:   Do not let setting/restoring 'cpoptions' cause a redraw.
            (closes #7920)
Files:      src/mnv.h, src/option.c, src/optionstr.c, src/scriptfile.c,
            src/mnv9script.c, src/testdir/test_mnv9_script.mnv,
            src/testdir/dumps/Test_mnv9_no_redraw.dump

Patch 8.2.2582 (after 8.2.2581)
Problem:    MNV9: screendump test fails on MS-Windows.
Solution:   Use :function instead of :def.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.2583
Problem:    MNV9: cannot compare result of getenv() with null.
Solution:   Make the return type of getenv() "any". (closes #7943)
Files:      src/evalfunc.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2584
Problem:    MNV9: type error for assigning the result of list concatenation to
            a list.
Solution:   Do not consider concatenation result in a constant. (closes #7942)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2585
Problem:    MNV9: illegal memory access.
Solution:   Check byte right after "null", not one more.
Files:      src/mnv9compile.c

Patch 8.2.2586
Problem:    Process id may be invalid.
Solution:   Use sysinfo.uptime to check for recent reboot. (suggested by Hugo
            van der Sanden, closes #7947)
Files:      src/configure.ac, src/auto/configure, src/config.h.in,
            src/memline.c, src/testing.c, src/globals.h,
            src/testdir/test_recover.mnv

Patch 8.2.2587 (after 8.2.2586)
Problem:    Recover test fails on FreeBSD.
Solution:   Check for Linux.
Files:      src/testdir/check.mnv, src/testdir/test_recover.mnv

Patch 8.2.2588 (after 8.2.2586)
Problem:    Build failure with tiny features.
Solution:   Add #ifdef.  Run recover test separately.
Files:      src/memline.c, src/testdir/Make_all.mak, src/testdir/test_alot.mnv

Patch 8.2.2589 (after 8.2.2586)
Problem:    Recover test hangs in the GUI.
Solution:   Add g:skipped_reason to skip a _nocatch_ test.
Files:      src/testdir/runtest.mnv, src/testdir/test_recover.mnv

Patch 8.2.2590
Problem:    MNV9: default argument value may cause internal error.
Solution:   Hide later function arguments when compiling the expression.
            (closes #7948)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2591
Problem:    Poke files are not recognized.
Solution:   Add a filetype entry. (Matt Ihlenfield)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.2592
Problem:    Code coverage could be improved.
Solution:   Add a few more tests. (Dominique Pellé, closes #7957)
Files:      src/testdir/test_fileformat.mnv, src/testdir/test_normal.mnv,
            src/testdir/test_sleep.mnv, src/testdir/test_textformat.mnv,
            src/testdir/test_mnvinfo.mnv

Patch 8.2.2593
Problem:    List of distributed files is incomplete.
Solution:   Add a file and rename another.
Files:      Filelist

Patch 8.2.2594
Problem:    Alternate buffer added to session file even when it's hidden.
Solution:   Check the 'buflisted' option. (closes #7951)
Files:      src/session.c, src/testdir/test_mksession.mnv

Patch 8.2.2595
Problem:    Setting 'winminheight' may cause 'lines' to change.
Solution:   Also take minimal height of other tabpages into account. (#7899)
Files:      src/window.c, src/testdir/test_options.mnv

Patch 8.2.2596
Problem:    :doautocmd may confuse scripts listening to WinEnter.
Solution:   Do the current buffer last. (closes #7958)
Files:      src/autocmd.c, src/testdir/test_autocmd.mnv

Patch 8.2.2597
Problem:    MNV9: "import * as" does not work at script level.
Solution:   Implement using an imported namespace.
Files:      src/mnv.h, src/eval.c, src/evalvars.c, src/proto/evalvars.pro,
            src/mnv9execute.c, src/errors.h, src/mnv9script.c,
            src/proto/mnv9script.pro, src/testdir/test_mnv9_script.mnv

Patch 8.2.2598
Problem:    MNV9: :open does not need to be supported.
Solution:   Do not support :open in MNV9 script.
Files:      src/ex_docmd.c, src/mnv9script.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2599 (after 8.2.2597)
Problem:    Build failure.
Solution:   Add missing change.
Files:      src/mnv9compile.c

Patch 8.2.2600
Problem:    MNV9: crash when putting an unknown type in a dictionary.
            (Yegappan Lakshmanan)
Solution:   Handle a NULL type pointer.
Files:      src/mnv9type.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2601
Problem:    Memory usage test often fails on FreeBSD.
Solution:   Increase multiplier for upper limit.
Files:      src/testdir/test_memory_usage.mnv

Patch 8.2.2602
Problem:    MNV9: continue doesn't work if :while is very first command.
            (Yegappan Lakshmanan)
Solution:   Add one to the continue instruction index.
Files:      src/mnv9execute.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2603
Problem:    MNV9: no effect if user command is also a function.
Solution:   Check for paren following. (closes #7960)
Files:      src/evalvars.c, src/proto/evalvars.pro, src/ex_docmd.c,
            src/proto/ex_docmd.pro, src/mnv9compile.c,
            src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2604
Problem:    GUI-specific command line arguments not tested.
Solution:   Add tests for several arguments. (Dominique Pellé, closes #7962)
Files:      src/testdir/test_startup.mnv

Patch 8.2.2605
Problem:    MNV9: string index and slice does not include composing chars.
Solution:   Include composing characters. (issue #6563)
Files:      runtime/doc/mnv9.txt, src/mnv9execute.c,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.2606
Problem:    strchars() defaults to counting composing characters.
Solution:   Add strcharlen() which ignores composing characters.
Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
            src/testdir/test_utf8.mnv

Patch 8.2.2607
Problem:    strcharpart() cannot include composing characters.
Solution:   Add the {skipcc} argument.
Files:      runtime/doc/eval.txt, src/evalfunc.c,
            src/testdir/test_expr_utf8.mnv

Patch 8.2.2608
Problem:    Character input not fully tested.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #7963)
Files:      src/testdir/test_functions.mnv, src/testdir/test_messages.mnv,
            src/testdir/test_paste.mnv, src/testdir/test_registers.mnv,
            src/testdir/test_undo.mnv

Patch 8.2.2609
Problem:    Test disabled on MS-Windows even though it should work.
Solution:   Restore the condition for skipping the test. (Ken Takata,
            closes #7970)
Files:      src/testdir/test_startup.mnv

Patch 8.2.2610
Problem:    Mouse click test fails when using remote connection.
Solution:   Use a larger 'mousetime'. (Dominique Pellé, closes #7968)
Files:      src/testdir/test_selectmode.mnv

Patch 8.2.2611
Problem:    Conditions for startup tests are not exactly right.
Solution:   Check for type of GUI instead of MS-Windows. (Ozaki Kiichi,
            closes #7976)
Files:      src/main.c, src/testdir/check.mnv, src/testdir/test_startup.mnv

Patch 8.2.2612
Problem:    col('.') may get outdated column value.
Solution:   Add a note to the help how to make this work and add a test for
            it. (closes #7971)
Files:      runtime/doc/map.txt, src/testdir/test_mapping.mnv

Patch 8.2.2613 (after 8.2.2612)
Problem:    New test throws exception.
Solution:   Adjust the function cleanup.
Files:      src/testdir/test_mapping.mnv

Patch 8.2.2614
Problem:    MNV9: function is deleted while executing.
Solution:   increment the call count, when more than zero do not delete the
            function but mark it as dead. (closes #7977)
Files:      src/mnv9execute.c, src/userfunc.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.2615 (after 8.2.2614)
Problem:    Test is sourcing the wrong file.
Solution:   Correct the file name.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.2616
Problem:    MNV9: if 'cpo' is changed in MNV9 script it may be restored.
Solution:   Apply the changes to 'cpo' to the restored value.
Files:      runtime/doc/mnv9.txt, src/scriptfile.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.2617
Problem:    MNV9: script variable in a block scope not found by a nested
            function.
Solution:   Copy the block scope IDs before compiling the function.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.2618
Problem:    MNV9: cannot use a normal list name to store function refs.
Solution:   Allow a lower case name if it is indexed.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2619
Problem:    MNV9: no test for return type of lambda.
Solution:   Add a test.
Files:      src/testdir/test_mnv9_func.mnv

Patch 8.2.2620
Problem:    MNV9: Using #{ for a dictionary gives strange errors.
Solution:   Give an error when using #{ for a comment after a command.
Files:      src/mnv9compile.c, src/mnv9script.c, src/proto/mnv9script.pro,
            src/errors.h, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.2621
Problem:    typval2type() cannot handle recursive structures.
Solution:   Use copyID. (closes #7979)
Files:      src/list.c, src/mnv9script.c, src/mnv9type.c,
            src/proto/mnv9type.pro, src/testdir/test_mnvscript.mnv

Patch 8.2.2622
Problem:    GTK: error when starting up and -geometry is given. (Dominique
            Pellé)
Solution:   Use another function to get the monitor if the window has not been
            created yet. (closes #7978)
Files:      src/gui_gtk_x11.c, src/proto/gui_gtk_x11.pro, src/gui_beval.c,
            src/gui_xim.c

Patch 8.2.2623
Problem:    Some tests fail when run as root.
Solution:   Use CheckNotRoot.
Files:      src/testdir/test_edit.mnv, src/testdir/test_excmd.mnv,
            src/testdir/test_help.mnv, src/testdir/test_writefile.mnv

Patch 8.2.2624
Problem:    Atom files not recognized.
Solution:   Recognize .atom as XML. (Kivin Locke, closes #7986)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.2625
Problem:    Rss files not recognized.
Solution:   Recognize .rss as XML. (Kivin Locke, closes #7987)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.2626
Problem:    GTK3: error when starting up and -geometry is given. (Dominique
            Pellé)
Solution:   Use another function to get the monitor if the window has not been
            created yet. (closes #7978)
Files:      src/gui_gtk_x11.c

Patch 8.2.2627
Problem:    No need to check for BSD after checking for not root.
Solution:   Remove CheckNotBSD. (Ozaki Kiichi, closes #7989)
Files:      src/testdir/test_excmd.mnv, src/testdir/test_help.mnv,
            src/testdir/check.mnv

Patch 8.2.2628
Problem:    MNV9: #{ can still be used at the script level.
Solution:   Give an error for #{ like in a :def function.
Files:      src/eval.c, src/ex_docmd.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2629
Problem:    MNV9: error for #{{ is not desired.
Solution:   Adjust the checks. (closes #7990)
Files:      src/errors.h, src/mnv9script.c, src/ex_docmd.c,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.2630
Problem:    Hard to see where a test gets stuck.
Solution:   Print the executed test function. (Dominique Pellé, closes #7975)
Files:      src/testdir/Makefile

Patch 8.2.2631
Problem:    Commands from winrestcmd() do not always work properly. (Leonid V.
            Fedorenchik)
Solution:   Repeat the size commands twice. (closes #7988)
Files:      src/evalwindow.c, src/testdir/test_window_cmd.mnv

Patch 8.2.2632
Problem:    Not all command line arguments are tested.
Solution:   Add tests for -D and -serverlist. (Dominique Pellé, closes #7992)
Files:      src/testdir/test_clientserver.mnv, src/testdir/test_startup.mnv

Patch 8.2.2633
Problem:    Multi-byte 'fillchars' for folding do not show properly.
Solution:   Handle multi-byte characters correctly. (Yegappan Lakshmanan,
            closes #7983, closes #7955)
Files:      src/screen.c, src/testdir/test_fold.mnv

Patch 8.2.2634
Problem:    'tagfunc' does not indicate using a pattern.
Solution:   Add the "r" flag. (Andy Massimino, closes #7982)
Files:      runtime/doc/tagsrch.txt, src/tag.c, src/testdir/test_tagfunc.mnv

Patch 8.2.2635
Problem:    MNV9: cannot define an inline function.
Solution:   Make an inline function mostly work.
Files:      src/userfunc.c, src/errors.h, src/mnv9compile.c, src/misc2.c,
            src/proto/mnv9compile.pro, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2636 (after 8.2.2635)
Problem:    Memory leak when compiling inline function.
Solution:   Free the prefetched line.
Files:      src/userfunc.c, src/mnv9compile.c, src/structs.h, src/globals.h,
            src/eval.c

Patch 8.2.2637
Problem:    prop_remove() causes a redraw even when nothing changed.
Solution:   Only redraw if a property was removed. (Dominique Pellé)
Files:      src/textprop.c

Patch 8.2.2638
Problem:    Cannot write a message to the terminal from the GUI.
Solution:   Add :echoconsole and use it in the test runner. (issue #7975)
Files:      runtime/doc/eval.txt, runtime/doc/index.txt, src/ex_cmds.h,
            src/ex_cmdidxs.h, src/eval.c, src/ui.c, src/proto/ui.pro,
            src/term.c, src/testdir/runtest.mnv

Patch 8.2.2639 (after 8.2.2638)
Problem:    Build failure when fsync() is not available.
Solution:   Add #ifdef.
Files:      src/ui.c

Patch 8.2.2640
Problem:    screenstring() returns non-existing composing characters.
Solution:   Only use composing characters if there is a base character.
Files:      src/evalfunc.c, src/testdir/test_listchars.mnv

Patch 8.2.2641
Problem:    Display test fails because of lacking redraw.
Solution:   Add a redraw command.
Files:      src/testdir/test_display.mnv

Patch 8.2.2642
Problem:    MNV9: no clear error for wrong inline function.
Solution:   Check for something following the "{".
Files:      src/userfunc.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2643
Problem:    Various code not covered by tests.
Solution:   Add a few more test. (Yegappan Lakshmanan, closes #7995)
Files:      src/testdir/test_edit.mnv, src/testdir/test_functions.mnv,
            src/testdir/test_mapping.mnv, src/testdir/test_termcodes.mnv,
            src/testdir/test_undo.mnv

Patch 8.2.2644
Problem:    prop_clear() causes a screen update even when nothing changed.
Solution:   Only redraw when a property was cleared. (Dominique Pellé)
Files:      src/textprop.c

Patch 8.2.2645
Problem:    Using inline function is not properly tested.
Solution:   Add test cases, esp. for errors.  Minor code improvements.
Files:      src/userfunc.c, src/errors.h, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.2646
Problem:    MNV9: error for not using string doesn't mention argument.
Solution:   Add argument number.
Files:      src/filepath.c, src/typval.c, src/proto/typval.pro, src/errors.h,
            src/mbyte.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2647
Problem:    Terminal test sometimes hangs.
Solution:   Wait for the shell to display a prompt.
Files:      src/testdir/test_terminal.mnv

Patch 8.2.2648
Problem:    Terminal resize test sometimes hangs.
Solution:   Wait for the shell to display a prompt and other output.
Files:      src/testdir/test_terminal2.mnv

Patch 8.2.2649
Problem:    MNV9: some wincmd arguments cause a white space error.
Solution:   Insert a space before the count. (closes #8001)
Files:      src/window.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2650
Problem:    MNV9: command modifiers not handled in nested function.
Solution:   Keep function-local info in a structure and save it on the stack.
Files:      src/mnv9execute.c, src/mnv9.h, src/testdir/test_mnv9_func.mnv

Patch 8.2.2651
Problem:    MNV9: restoring command modifiers happens after jump.
Solution:   Move the restore instruction to before the jump. (closes #8006)
            Also handle for and while.
Files:      src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.2652
Problem:    MNV9: can use command modifier without an effect.
Solution:   Give an error for a misplaced command modifier.  Fix error message
            number.
Files:      src/mnv9compile.c, src/ex_docmd.c, src/proto/ex_docmd.pro,
            src/ex_eval.c, src/testdir/test_mnv9_cmd.mnv,
            src/testdir/test_mnv9_builtin.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.2653
Problem:    Build failure.
Solution:   Add missing changes.
Files:      src/errors.h

Patch 8.2.2654
Problem:    MNV9: getting a character from a string can be slow.
Solution:   Avoid a function call to get the character byte size. (#8000)
Files:      src/mnv9execute.mnv

Patch 8.2.2655
Problem:    The -w command line argument doesn't work.
Solution:   Don't set 'window' when set with the -w argument. (closes #8011)
Files:      src/term.c, src/testdir/test_startup.mnv

Patch 8.2.2656
Problem:    Some command line arguments and regexp errors not tested.
Solution:   Add a few test cases. (Dominique Pellé, closes #8013)
Files:      src/testdir/test_regexp_latin.mnv, src/testdir/test_startup.mnv

Patch 8.2.2657
Problem:    MNV9: error message for declaring variable in for loop.
Solution:   Clear variables when entering block again. (closes #8012)
Files:      src/ex_eval.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2658
Problem:    :for cannot loop over a string.
Solution:   Accept a string argument and iterate over its characters.
Files:      runtime/doc/eval.txt, src/eval.c, src/mnv9compile.c,
            src/mnv9execute.c, src/errors.h, src/testdir/test_mnvscript.mnv,
            src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.2659 (after 8.2.2658)
Problem:    Eval test fails because for loop on string works.
Solution:   Check looping over function reference fails.
Files:      src/testdir/test_eval_stuff.mnv

Patch 8.2.2660
Problem:    MNV9: no error for declaration with trailing text.
Solution:   Give an error. (closes #8014)
Files:      src/evalvars.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2661
Problem:    Leaking memory when looping over a string.
Solution:   Free the memory.
Files:      src/eval.c

Patch 8.2.2662
Problem:    There is no way to avoid some escape sequences.
Solution:   Suppress escape sequences when the --not-a-term argument is used.
            (Gary Johnson)
Files:      src/main.c, src/os_unix.c, src/testdir/test_startup.mnv

Patch 8.2.2663
Problem:    MNV9: leaking memory when inline function has an error.
Solution:   Free the partially allocated function.
Files:      src/userfunc.c

Patch 8.2.2664
Problem:    MNV9: not enough function arguments checked for string.
Solution:   Check in balloon functions.  Refactor function arguments.
Files:      src/typval.c, src/proto/typval.pro, src/filepath.c,
            src/evalfunc.c, src/mbyte.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2665 (after 8.2.2664)
Problem:    Test failures.
Solution:   Check more specific feature.  Add missing change.
Files:      src/testdir/test_mnv9_builtin.mnv, src/evalbuffer.c

Patch 8.2.2666
Problem:    MNV9: not enough function arguments checked for string.
Solution:   Check in ch_logfile(), char2nr() and others.
Files:      src/channel.c, src/evalfunc.c, src/filepath.c, src/eval.c,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2667
Problem:    prop_find() cannot find item matching both id and type.
Solution:   Add the "both" argument. (Naohiro Ono, closes #8019)
Files:      runtime/doc/textprop.txt, src/testdir/test_textprop.mnv,
            src/textprop.c

Patch 8.2.2668
Problem:    MNV9: omitting "call" for "confirm()" does not give an error.
Solution:   Do not recognize a modifier followed by "(".
Files:      src/ex_docmd.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2669
Problem:    Command line completion does not work after "mnv9".
Solution:   Include the "9". (Naohiro Ono, closes #8025)
Files:      src/cmdexpand.c, src/ex_docmd.c, src/testdir/test_cmdline.mnv

Patch 8.2.2670
Problem:    MNV9: error for append(0, text).
Solution:   Check for negative number. (closes #8022)
Files:      src/typval.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2671 (after 8.2.2670)
Problem:    Error for line number in legacy script.
Solution:   Check for number type.
Files:      src/typval.c

Patch 8.2.2672
Problem:    MNV9: cannot use :lockvar and :unlockvar in compiled script.
Solution:   Implement locking support.
Files:      src/mnv9compile.c, src/errors.h, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2673
Problem:    MNV9: script-local funcref can have lower case name.
Solution:   Require an upper case name.
Files:      src/evalvars.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2674
Problem:    Motif: cancelling the font dialog resets the font.
Solution:   When no font is selected to not change the font. (closes #7825,
            closes #8035)  Fix compiler warnings.
Files:      src/gui_x11.c, src/gui_motif.c

Patch 8.2.2675
Problem:    Directory change in a terminal window shell is not followed.
Solution:   Add the 'autoshelldir' option. (closes #6290)
Files:      runtime/doc/options.txt, runtime/doc/quickref.txt,
            runtime/optwin.mnv, src/charset.c, src/feature.h, src/option.h,
            src/optiondefs.h, src/terminal.c, src/testdir/check.mnv,
            src/testdir/test_terminal3.mnv

Patch 8.2.2676
Problem:    Missing error message.
Solution:   Add new error message.
Files:      src/errors.h

Patch 8.2.2677
Problem:    MNV9: cannot use only some of the default arguments.
Solution:   Use v:none to use default argument value.  Remove
            uf_def_arg_idx[], use JUMP_IF_ARG_SET. (closes #6504)
Files:      runtime/doc/mnv9.txt, src/mnv9compile.c, src/mnv9execute.c,
            src/userfunc.c, src/structs.h, src/mnv9.h,
            src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.2678
Problem:    Test for 'autoshelldir' does not reset the option.
Solution:   Reset the option after testing.
Files:      src/testdir/test_terminal3.mnv

Patch 8.2.2679
Problem:    Winbar drawn over status line for non-current window with winbar
            if frame is zero height. (Leonid V. Fedorenchik)
Solution:   Do not draw the window if the frame height is zero. (closes #8037)
Files:      src/drawscreen.c, src/testdir/test_winbar.mnv,
            src/testdir/dumps/Test_winbar_not_visible.dump

Patch 8.2.2680
Problem:    MNV9: problem defining a script variable from legacy function.
Solution:   Check if the script is MNV9, not the current syntax.
            (closes #8032)
Files:      src/mnv9script.c, src/proto/mnv9script.pro, src/evalvars.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.2681
Problem:    MNV9: test fails for redeclaring script variable.
Solution:   It's OK to assign to an existing script variable in legacy.
Files:      src/evalvars.c

Patch 8.2.2682
Problem:    MNV9: cannot find Name.Func from "import * as Name". (Alexander
            Goussas)
Solution:   When no variable found try finding a function. (closes #8045)
            Check that the function was exported.
Files:      src/mnv9compile.c, src/mnv9script.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.2683
Problem:    Build failure without the +eval feature.
Solution:   Add #ifdef.
Files:      src/mnv9script.c

Patch 8.2.2684
Problem:    Not enough folding code is tested.
Solution:   Add more test cases. (Yegappan Lakshmanan, closes #8046)
Files:      src/testdir/test_fold.mnv, src/testdir/test_mksession.mnv,
            src/testdir/test_source.mnv

Patch 8.2.2685 (after 8.2.2152)
Problem:    Custom statusline not drawn correctly with WinBar.
Solution:   Also adjust the column for the custom status line. (Yee Cheng
            Chin, closes #8047)
Files:      src/drawscreen.c, src/proto/drawscreen.pro, src/screen.c,
            src/testdir/dumps/Test_winbar_not_visible_custom_statusline.dump,
            src/testdir/test_winbar.mnv

Patch 8.2.2686
Problem:    Status line is not updated when going to cmdline mode.
Solution:   Redraw status lines if 'statusline' is set and going to status
            line mode. (based on patch from Justin M. Keyes et al.,
            closes #8044)
Files:      src/ex_getln.c, src/testdir/test_statusline.mnv,
            src/testdir/dumps/Test_statusline_mode_1.dump,
            src/testdir/dumps/Test_statusline_mode_2.dump

Patch 8.2.2687
Problem:    MNV9: cannot use "const" for global variable in :def function.
Solution:   Do allow using :const for a global variable. (closes #8030)
Files:      src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_assign.mnv

Patch 8.2.2688
Problem:    MNV9: crash when using s: for script variable.
Solution:   Pass the end pointer. (closes #8045)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2689
Problem:    Tiny build fails.
Solution:   Add #ifdef around use of p_stl.
Files:      src/ex_getln.c

Patch 8.2.2690
Problem:    PowerShell files are not recognized.
Solution:   Recognize several PowerShell extension. (Heath Stewart,
            closes #8051)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.2691
Problem:    Autoconf may mess up compiler flags.
Solution:   Handle removing FORTIFY_SOURCE a bit better. (Vladimir Lomov,
            closes #8049)
Files:      src/configure.ac, src/auto/configure

Patch 8.2.2692
Problem:    MNV9: locked script variable can be changed.
Solution:   Check for locked value. (closes #8031)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2693
Problem:    MNV9: locked script variable can be changed.
Solution:   Check legacy script variable for being locked. (issue #8031)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2694
Problem:    When 'matchpairs' is empty every character beeps. (Marco Hinz)
Solution:   Bail out when no character in 'matchpairs' was found.
            (closes #8053)  Add assert_nobeep().
Files:      runtime/doc/testing.txt, runtime/doc/eval.txt, src/search.c,
            src/testing.c, src/proto/testing.pro, src/evalfunc.c,
            src/testdir/test_textformat.mnv

Patch 8.2.2695
Problem:    Cursor position reset with nested autocommands.
Solution:   Only check and reset line numbers for not nested autocommands.
            (closes #5820)
Files:      src/autocmd.c, src/testdir/test_terminal.mnv

Patch 8.2.2696
Problem:    Lua test fails with Lua 5.4.3 and later.
Solution:   Check for different error messages. (Yegappan Lakshmanan,
            closes #8050)
Files:      src/testdir/test_lua.mnv

Patch 8.2.2697
Problem:    Function list test fails.
Solution:   Add missing function. (Yegappan Lakshmanan)
Files:      runtime/doc/usr_41.txt

Patch 8.2.2698 (after 8.2.2696)
Problem:    Lua test fails on MS-Windows.
Solution:   Fall back to old method if "lua -v" doesn't work.
Files:      src/testdir/test_lua.mnv

Patch 8.2.2699
Problem:    Lua test fails.
Solution:   Fix condition. (Yegappan Lakshmanan, closes #8060)
Files:      src/testdir/test_lua.mnv

Patch 8.2.2700
Problem:    Nested autocmd test fails sometimes.
Solution:   Wait for the job to finish.
Files:      src/testdir/test_terminal.mnv

Patch 8.2.2701
Problem:    Order of removing FORTIFY_SOURCE is wrong.
Solution:   Use the more specific pattern first.
Files:      src/configure.ac, src/auto/configure

Patch 8.2.2702
Problem:    Compiler completion test fails when more scripts are added.
Solution:   Add a more generic pattern.
Files:      src/testdir/test_compiler.mnv

Patch 8.2.2703
Problem:    MNV9: memory leak when failing on locked variable.
Solution:   Free the memory.
Files:      src/mnv9execute.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2704
Problem:    Adding a lot of completions can be a bit slow.
Solution:   Use fast_breakcheck() instead of ui_breakcheck() when adding a
            list of completions. (Ben Jackson, closes #8061)
Files:      src/insexpand.c

Patch 8.2.2705
Problem:    MNV9: misleading reported line number for wrong type.
Solution:   Remember and use the line number at the start. (closes #8059)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2706
Problem:    MNV9: wrong line number reported for boolean operator.
Solution:   Use the line number before skipping over line break.
            (closes #8058)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2707 (after 8.2.2704)
Problem:    Adding a lot of completions can still be a bit slow.
Solution:   Add the check for CP_FAST. (Ben Jackson)
Files:      src/insexpand.c

Patch 8.2.2708
Problem:    Test sometimes fails waiting for shell in terminal.
Solution:   Use WaitForAssert() so we can see the actual job status.  Use
            Run_shell_in_terminal().
Files:      src/testdir/term_util.mnv, src/testdir/test_mksession.mnv

Patch 8.2.2709
Problem:    The GTK GUI has a gap next to the scrollbar.
Solution:   Calculate the scrollbar padding for GTK. (closes #8027)
Files:      src/gui_gtk.c

Patch 8.2.2710
Problem:    MNV9: not all tests cover script and :def function.
Solution:   Run tests in both if possible. Fix differences.
Files:      src/eval.c, src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/mnv9.mnv, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2711
Problem:    "gj" in a closed fold does not move out of the fold. (Marco Hinz)
Solution:   Add a check for being in a closed fold. (closes #8062)
Files:      src/normal.c, src/testdir/test_fold.mnv

Patch 8.2.2712
Problem:    Memory leak when adding to a blob fails.
Solution:   Clear the second typval before returning.
Files:      src/eval.c

Patch 8.2.2713
Problem:    Folding code not sufficiently tested.
Solution:   Add a few more test cases. (Yegappan Lakshmanan, closes #8064)
Files:      src/testdir/test_fold.mnv

Patch 8.2.2714
Problem:    Filetype pattern ending in star is too far up.
Solution:   Move down to where patterns ending in star belong. (closes #8065)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.2715
Problem:    MNV9: tests fail without the channel feature. (Dominique Pellé)
Solution:   Check for the channel feature. (closes #8063)
Files:      src/testdir/test_mnv9_builtin.mnv, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2716
Problem:    The equivalent class regexp is missing some characters.
Solution:   Update the list of equivalent characters. (Dominique Pellé,
            closes #8029)
Files:      src/regexp_bt.c, src/regexp_nfa.c,
            src/testdir/test_regexp_utf8.mnv

Patch 8.2.2717
Problem:    GTK menu items don't show a tooltip.
Solution:   Add a callback to show the tooltip. (Leonid V. Fedorenchik,
            closes #8067, closes #7810)
Files:      src/gui_gtk.c

Patch 8.2.2718
Problem:    MNV9: no explicit test for using a global function without the g:
            prefix.
Solution:   Add a test case.
Files:      src/testdir/test_mnv9_func.mnv

Patch 8.2.2719
Problem:    MNV9: appending to dict item doesn't work in a :def function.
Solution:   Implement assignment with operator on indexed item.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2720
Problem:    GTK menu tooltip moves the cursor.
Solution:   Position the cursor after displaying the tooltip.  Do not show the
            tooltip when editing the command line.
Files:      src/gui_gtk.c

Patch 8.2.2721
Problem:    MNV9: cannot have a linebreak inside a lambda.
Solution:   Compile the expression before the arguments.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2722
Problem:    MNV9: crash when using LHS with double index.
Solution:   Handle lhs_dest which is "dest_expr". (closes #8068)
            Fix confusing error message for missing dict item.
Files:      src/mnv9compile.c, src/eval.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2723 (after 8.2.2722)
Problem:    Assignment test fails.
Solution:   Adjust error number.
Files:      src/testdir/test_let.mnv

Patch 8.2.2724 (after 8.2.2722)
Problem:    MNV9: concatenating to list in dict not tested.
Solution:   Add a test. (issue #8068)
Files:      src/testdir/test_mnv9_assign.mnv

Patch 8.2.2725
Problem:    MNV9: message about compiling is wrong when using try/catch.
Solution:   Store the compiling flag with the message. (closes #8071)
Files:      src/ex_docmd.c, src/ex_eval.c, src/structs.h,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.2726
Problem:    Confusing error message with white space before comma in the
            arguments of a function declaration.
Solution:   Give a specific error message. (closes #2235)
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2727 (after 8.2.2726)
Problem:    Function test fails.
Solution:   Adjust expected error number.
Files:      src/testdir/test_user_func.mnv

Patch 8.2.2728
Problem:    Special key names don't work if 'isident' is cleared.
Solution:   Add mnv_isNormalIDc() and use it for special key names.
            (closes #2389)
Files:      src/charset.c, src/proto/charset.pro, src/misc2.c,
            src/testdir/test_mapping.mnv

Patch 8.2.2729
Problem:    MNV9: wrong error message for referring to legacy script variable.
Solution:   Do allow referring to a variable in legacy script without "s:" if
            it exists at compile time. (closes #8076)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2730
Problem:    Coverity complains about not restoring character.
Solution:   Also restore the character in case of an error.
Files:      src/mnv9compile.c

Patch 8.2.2731
Problem:    Mac: SF symbols are not displayed properly.
Solution:   Add custom range to list of double-width characters. (Yee Cheng
            Chin, closes #8077)
Files:      src/mbyte.c

Patch 8.2.2732
Problem:    Prompt for s///c in Ex mode can be wrong.
Solution:   Position the cursor before showing the prompt. (closes #8073)
Files:      src/ex_cmds.c, src/testdir/test_ex_mode.mnv

Patch 8.2.2733
Problem:    Detecting Lua version is not reliable.
Solution:   Add "mnv.lua_version". (Ozaki Kiichi, closes #8080)
Files:      runtime/doc/if_lua.txt, ci/if_ver-1.mnv, src/if_lua.c,
            src/testdir/test_lua.mnv

Patch 8.2.2734
Problem:    MNV9: cannot use legacy script-local var from :def function.
Solution:   Do not insist on using "s:" prefix. (closes #8076)
Files:      src/mnv9compile.c, src/proto/mnv9compile.pro,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.2735
Problem:    MNV9: function reference found with prefix, not without.
Solution:   Also find function reference without prefix.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2736
Problem:    MNV9: for loop over string is a bit slow.
Solution:   Avoid using strlen().
Files:      src/mnv9execute.c

Patch 8.2.2737
Problem:    Status line not updated when local 'statusline' option set.
Solution:   Check the 'statusline' option of each window.
Files:      src/ex_getln.c, src/testdir/test_statusline.mnv,
            src/testdir/dumps/Test_statusline_mode_1.dump,
            src/testdir/dumps/Test_statusline_mode_2.dump

Patch 8.2.2738
Problem:    Extending a list with itself can give wrong result.
Solution:   Remember the item before where the insertion happens and skip to
            after the already inserted items. (closes #1112)
Files:      src/list.c, src/testdir/test_listdict.mnv

Patch 8.2.2739
Problem:    MNV9: a lambda accepts too many arguments at the script level.
Solution:   Do not set uf_varargs in MNV9 script.
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.2740
Problem:    MNV9: lambda with varargs doesn't work.
Solution:   Make "...name" work.  Require type to be a list.
Files:      src/userfunc.c, src/mnv9compile.c, src/mnv9execute.c,
            src/errors.h, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.2741
Problem:    MNV9: Partial call does not check right arguments.
Solution:   Adjust the offset for whether the partial is before or after the
            arguments. (closes #8091)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2742
Problem:    MNV9: when compiling a function fails it is cleared.
Solution:   Keep the function lines, prevent execution with a different
            status. (closes #8093)
Files:      src/mnv9compile.c, src/structs.h, src/mnv9execute.c,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.2743
Problem:    MNV9: function state stuck when compiling with ":silent!".
Solution:   Check for uf_def_status to be UF_COMPILING.
Files:      src/mnv9compile.c, src/message.c, src/globals.h,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.2744
Problem:    MNV9: no way to explicitly ignore an argument.
Solution:   Use the underscore as the name for an ignored argument.
Files:      runtime/doc/mnv9.txt, src/mnv9compile.c, src/eval.c,
            src/evalvars.c, src/errors.h, src/testdir/test_mnv9_func.mnv

Patch 8.2.2745 (after 8.2.2744)
Problem:    MNV9: missing part of the argument change.
Solution:   Add missing changes.
Files:      src/userfunc.c

Patch 8.2.2746 (after 8.2.2745)
Problem:    Check for duplicate arguments does not work.
Solution:   Correct condition.
Files:      src/userfunc.c

Patch 8.2.2747
Problem:    MNV9: not always an error for too many function arguments.
Solution:   Check for getting too many arguments.
Files:      src/mnv9execute.c, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2748
Problem:    MNV9: memory leak when calling :def function fails.
Solution:   Jump to failed_early instead of returning.
Files:      src/mnv9execute.c

Patch 8.2.2749
Problem:    MNV9: test for error can be a bit flaky.
Solution:   Increase the wait time a bit.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.2750
Problem:    MNV9: error for using underscore in nested function.
Solution:   Do not consider "_" already defined. (closes #8096)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2751
Problem:    Coverity warns for using NULL pointer.
Solution:   Check for NULL in calling function.
Files:      src/userfunc.c

Patch 8.2.2752
problem:    coverity reports unreachable code.
Solution:   Remove check for positive index.
Files:      src/typval.c

Patch 8.2.2753
Problem:    MNV9: cannot ignore an item in assignment unpack.
Solution:   Allow using an underscore.
Files:      runtime/doc/mnv9.txt, src/mnv.h, src/evalvars.c, src/eval.c,
            src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2754
Problem:    :sleep! does not always hide the cursor.
Solution:   Add the cursor_is_asleep flag. (Jeremy Lerner, closes #8097,
            closes #7998)
Files:      src/drawscreen.c, src/ex_docmd.c, src/gui.c, src/proto/term.pro,
            src/term.c

Patch 8.2.2755
Problem:    MNV9: no error for using a number in a condition.
Solution:   Also use ISN_COND2BOOL if the type is t_number_bool.
            (closes #7644)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.2756
Problem:    MNV9: blob index and slice not implemented yet.
Solution:   Implement blob index and slice.
Files:      src/mnv9compile.c, src/mnv9.h, src/mnv9execute.c, src/eval.c,
            src/blob.c, src/proto/blob.pro, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2757
Problem:    MNV9: blob tests for legacy and MNV9 script are separate.
Solution:   Add CheckLegacyAndMNV9Success().  Make blob index assign work.
Files:      src/mnv9compile.c, src/mnv9.h, src/mnv9execute.c, src/errors.h,
            src/blob.c, src/proto/blob.pro, src/eval.c, src/ex_docmd.c,
            src/testdir/mnv9.mnv, src/testdir/test_blob.mnv

Patch 8.2.2758
Problem:    MNV9: wrong line number for autoload function with wrong name.
Solution:   Set and restore SOURCING_LNUM. (closes #8100)
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2759
Problem:    MNV9: for loop infers type of loop variable.
Solution:   Do not get the member type. (closes #8102)
Files:      src/mnv9type.c, src/proto/mnv9type.pro, src/list.c,
            src/mnv9script.c, src/proto/mnv9script.pro, src/mnv.h,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.2760
Problem:    MNV9: no error for changing a for loop variable.
Solution:   Make the loop variable read-only. (issue #8102)
Files:      src/eval.c, src/evalvars.c, src/mnv9compile.c, src/mnv.h,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.2761
Problem:    Using "syn include" does not work properly.
Solution:   Don't add current_syn_inc_tag to topgrp. (Jaehwang Jerry Jung,
            closes #8104)
Files:      src/syntax.c, src/testdir/test_syntax.mnv

Patch 8.2.2762
Problem:    MNV9: function line truncated when compiling.
Solution:   Copy the line before processing it. (closes #8101)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.2763
Problem:    MNV9: cannot use type in for loop unpack at script level.
Solution:   Advance over the type name.
Files:      src/evalvars.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2764
Problem:    Memory leak when default function argument is allocated.
Solution:   Free the expression result.
Files:      src/userfunc.c, src/testdir/test_functions.mnv

Patch 8.2.2765
Problem:    MNV9: not all blob operations work.
Solution:   Run more tests also with MNV9 script and :def functions.  Fix what
            doesn't work.
Files:      src/eval.c, src/blob.c, src/proto/blob.pro, src/mnv9execute.c,
            src/errors.h, src/testdir/mnv9.mnv, src/testdir/test_blob.mnv

Patch 8.2.2766 (after 8.2.2765)
Problem:    Test failure.
Solution:   Add change to MNV9 compilation error message.
Files:      src/mnv9compile.c

Patch 8.2.2767 (after 8.2.2765)
Problem:    Compiler warning for unused argument.
Solution:   Remove the argument.
Files:      src/blob.c, src/proto/blob.pro, src/mnv9execute.c, src/eval.c

Patch 8.2.2768
Problem:    MNV9: memory leak with blob range error.
Solution:   Jump to end instead of returning.
Files:      src/mnv9compile.c

Patch 8.2.2769
Problem:    Modula-3 config files are not recognized.
Solution:   Add filetype patterns. (Doug Kearns)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.2770
Problem:    MNV9: type of loop variable is not used.
Solution:   Parse and check the variable type. (closes #8107)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2771
Problem:    MNV9: assignment not recognized if declaration was skipped.
Solution:   Also recognized an assignment if the variable does not exist.
            (closes #8108)
Files:      src/ex_docmd.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2772
Problem:    Problems when restoring 'runtimepath' from a session file.
Solution:   Add the "skiprtp" item in 'sessionoptions'.
Files:      runtime/doc/options.txt, src/session.c, src/optionstr.c,
            src/option.h, src/mnv.h, src/option.c,
            src/testdir/test_mksession.mnv

Patch 8.2.2773
Problem:    PSL filetype not recognized.
Solution:   Add a filetype pattern. (Daniel Kho, closes #8117)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.2774
Problem:    MNV9: cannot import an existing name even when using "as".
Solution:   Do not check for an existing name when using "as". (closes #8113)
Files:      src/mnv9script.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2775
Problem:    MNV9: wrong line number used for some commands.
Solution:   For :exe, :echo and the like use the line number of the start of
            the command.  When calling a function set the line number in the
            script context.
Files:      src/mnv9compile.c, src/mnv9execute.c, src/structs.h,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.2776
Problem:    :mksession uses current value of 'splitbelow' and 'splitright'
            even though "options" is not in 'sessionoptions'. (Maxim Kim)
Solution:   Save and restore the values, instead of setting to the current
            value. (closes #8119)
Files:      src/session.c, src/testdir/test_mksession.mnv

Patch 8.2.2777
Problem:    MNV9: blob operations not tested in all ways.
Solution:   Run tests with CheckLegacyAndMNV9Success().  Make blob assign with
            index work.
Files:      src/mnv9compile.c, src/mnv9execute.c, src/errors.h, src/blob.c,
            src/proto/blob.pro, src/testdir/test_blob.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.2778
Problem:    Problem restoring 'packpath' in session.
Solution:   Let "skiprtp" also apply to 'packpath'.
Files:      runtime/doc/options.txt, src/option.c,
            src/testdir/test_mksession.mnv

Patch 8.2.2779
Problem:    Memory access error in remove() for blob.
Solution:   Adjust length for memmove().
Files:      src/blob.c

Patch 8.2.2780
Problem:    MNV9: for loop over blob doesn't work.
Solution:   Make it work.
Files:      src/mnv9compile.c, src/mnv9execute.c, src/testdir/test_blob.mnv

Patch 8.2.2781
Problem:    Add() silently skips when adding to null list or blob.
Solution:   Give an error in MNV9 script.  Allocate blob when it is NULL like
            with list and dict.
Files:      src/list.c, src/evalvars.c, src/mnv9execute.c,
            src/testdir/test_blob.mnv, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2782
Problem:    MNV9: blob operations not fully tested.
Solution:   Make more blob tests run in MNV9 script.  Fix filter().  Make
            insert() give an error for a null blob, like add().
Files:      src/list.c, src/testdir/test_blob.mnv,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2783
Problem:    Duplicate code for setting byte in blob, blob test may fail.
Solution:   Call blob_set_append().  Test sort failure with "N".
Files:      src/eval.c, src/testdir/test_blob.mnv

Patch 8.2.2784
Problem:    MNV9: cannot use \=expr in :substitute.
Solution:   Compile the expression into instructions and execute them when
            invoked.
Files:      src/mnv9.h, src/mnv9compile.c, src/mnv9execute.c,
            src/proto/mnv9execute.pro, src/regexp.c, src/ex_cmds.c,
            src/proto/ex_cmds.pro, src/globals.h,
            src/testdir/test_mnv9_cmd.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.2785
Problem:    MNV9: cannot redirect to local variable.
Solution:   Compile :redir when redirecting to a variable.
Files:      src/mnv9compile.c, src/mnv9.h, src/mnv9execute.c, src/errors.h,
            src/evalvars.c, src/proto/evalvars.pro,
            src/testdir/test_mnv9_cmd.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.2786
Problem:    MNV9: memory leak when using :s with expression.
Solution:   Clean up the instruction list.
Files:      src/mnv9compile.c

Patch 8.2.2787
Problem:    MS-Windows: crash when using :echoconsole.
Solution:   Do not write a NUL when it's already there.
Files:      src/os_win32.c

Patch 8.2.2788
Problem:    Raku is now the only name what once was called perl6.
Solution:   Adjust the filetype detection. (closes #8120)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.2789
Problem:    MNV9: using \=expr in :substitute does not handle jumps.
Solution:   Start with instruction count zero. (closes #8128)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2790 (after 8.2.2788)
Problem:    filetype test fails
Solution:   Also update the scripts detection
Files:      runtime/scripts.mnv

Patch 8.2.2791
Problem:    MNV9: memory leak when using \=expr in :substitute.
Solution:   Do not allocate a new instruction list.
Files:      src/mnv9compile.c

Patch 8.2.2792
Problem:    MNV9: :disas shows instructions for default args but no text.
Solution:   Show the expression test above the default argument instructions.
            (closes #8129)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.2793
Problem:    MS-Windows: string literals are writable with MSVC.
Solution:   Add the /GF compiler flag.  Make mch_write() safer. (Ken Takata,
            closes #8133)
Files:      src/Make_mvc.mak, src/os_win32.c

Patch 8.2.2794
Problem:    Linux users don't know how to get ncurses.
Solution:   Add the name of the package. (closes #8132)
Files:      src/configure.ac, src/auto/configure

Patch 8.2.2795
Problem:    Coverity warns for not using return value.
Solution:   Check the return value of compiling the substitute expression.
Files:      src/mnv9compile.c

Patch 8.2.2796
Problem:    MNV9: redir to variable does not accept an index.
Solution:   Make the index work.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2797
Problem:    Search highlight disappears in the Visual area.
Solution:   Combine the search attributes. (closes #8134)
Files:      src/drawline.c, src/testdir/test_search.mnv,
            src/testdir/dumps/Test_hlsearch_visual_1.dump

Patch 8.2.2798
Problem:    MNV9: redir to variable with append does not accept an index.
Solution:   Make the appending work.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2799
Problem:    MNV9: type casts don't fully work at the script level.
Solution:   Implement the missing piece.
Files:      src/eval.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2800
Problem:    After a timer displays text a hit-enter prompt is given.
Solution:   Reset msg_didany and need_wait_return. (closes #8136)
Files:      src/drawscreen.c, src/testdir/test_timers.mnv

Patch 8.2.2801
Problem:    Free Pascal makefile not recognized.
Solution:   Add the fpcmake filetype. (Doug Kearns)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.2802
Problem:    MNV9: illegal memory access.
Solution:   Check for comment before checking for white space. (closes #8142)
Files:      src/eval.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2803
Problem:    Flicker when the popup menu has an info popup.
Solution:   Avoid drawing over the popup when it's going to be redrawn in the
            same position. (closes #8131)  Also avoid redrawing the scrollbar.
Files:      src/popupmenu.c, src/proto/popupmenu.pro, src/drawscreen.c,
            src/globals.h

Patch 8.2.2804
Problem:    Setting buffer local mapping with mapset() changes global mapping.
Solution:   Only set the local mapping. (closes #8143)
Files:      src/map.c, src/testdir/test_maparg.mnv

Patch 8.2.2805
Problem:    MNV9: cannot use legacy syntax in MNV9 script.
Solution:   Add the :legacy command.
Files:      src/ex_cmds.h, runtime/doc/mnv9.txt, runtime/doc/index.txt
            src/ex_cmdidxs.h, src/ex_docmd.c, src/structs.h, src/mnv9script.c,
            src/mnv9compile.c, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_assign.mnv

Patch 8.2.2806
Problem:    MNV9: using "++nr" as a command might not work.
Solution:   Do not recognize "++" and "--" in a following line as addition or
            subtraction.
Files:      src/mnv9compile.c, src/ex_docmd.c, src/ex_cmds.h, src/ex_cmdidxs.h,
            src/mnv9script.c, src/proto/mnv9script.pro, src/eval.c,
            src/testdir/test_mnv9_assign.mnv, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2807
Problem:    Build fails with tiny features.
Solution:   Use a dummy function for ex_incdec().
Files:      src/ex_docmd.c

Patch 8.2.2808
Problem:    MNV9: increment and decrement not sufficiently tested.
Solution:   Add assertions.
Files:      src/testdir/test_mnv9_assign.mnv

Patch 8.2.2809
Problem:    MNV9: :def function compilation fails when using :legacy.
Solution:   Reset CMOD_LEGACY when compiling a function. (closes #8137)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2810
Problem:    MNV9: crash when calling a function in a substitute expression.
Solution:   Set the instructions back to the substitute expression
            instructions. (closes #8148)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2811
Problem:    MNV9: error for missing white space doesn't say where it is
            missing
Solution:   Mention the command. (closes #8149)
Files:      src/ex_docmd.c, src/errors.h, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2812
Problem:    MNV9: still crash when using substitute expression.
Solution:   Put the instruction list in the stack frame. (closes #8154)
Files:      src/mnv9execute.c, src/mnv9.h, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2813
Problem:    Cannot grep using fuzzy matching.
Solution:   Add the "f" flag to :mnvgrep. (Yegappan Lakshmanan, closes #8152)
Files:      runtime/doc/quickfix.txt, src/ex_cmds.c, src/proto/search.pro,
            src/quickfix.c, src/search.c, src/mnv.h,
            src/testdir/test_quickfix.mnv

Patch 8.2.2814 (after 8.2.2812)
Problem:    MNV9: unused variable. (John Marriott)
Solution:   Adjust #ifdef.
Files:      src/mnv9execute.c

Patch 8.2.2815
Problem:    Status line flickers when redrawing popup menu info.
Solution:   Do not redraw the status line when the focus is in the popup
            window. (issue #8144)
Files:      src/popupmenu.c

Patch 8.2.2816
Problem:    MNV9: comment below expression in lambda causes problems.
Solution:   Use a single space for empty and comment lines. (closes #8156)
Files:      src/eval.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2817
Problem:    MNV9: script sourcing continues after an error.
Solution:   Make an error in any command in "mnv9script" abort sourcing.
Files:      src/ex_docmd.c, src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.2818
Problem:    No jump added to jumplist when opening terminal in current window.
Solution:   Call setpcmark(). (closes #8158)
Files:      src/terminal.c, src/testdir/test_terminal.mnv

Patch 8.2.2819
Problem:    Finishing an abbreviation with a multi-byte char may not work.
Solution:   Escape K_SPECIAL in the typed character. (closes #8160)
Files:      src/map.c, src/testdir/test_mapping.mnv

Patch 8.2.2820
Problem:    Session file may divide by zero.
Solution:   Avoid writing divide by zero. (closes #8162)
Files:      src/session.c, src/testdir/test_mksession.mnv

Patch 8.2.2821
Problem:    MS-Windows: unnecessarily loading libraries when registering OLE.
Solution:   Skip loading libraries when invoked with "-register".
Files:      src/main.c, src/globals.h, src/os_win32.c

Patch 8.2.2822 (after 8.2.2821)
Problem:    MS-Windows: unnecessarily loading libraries when unregistering OLE.
Solution:   Also skip loading libraries when invoked with "-unregister".  Run
            MNV for README.txt with user privileges.
Files:      src/main.c, nsis/gmnv.nsi, nsis/README.txt

Patch 8.2.2823
Problem:    MS-Windows: launching MNV from installer doesn't open README.
Solution:   Adjust the quotes.
Files:      nsis/gmnv.nsi

Patch 8.2.2824
Problem:    MS-Windows: build failure with MSVC.
Solution:   Adjust the list of distributed files.  Add hint about python.
            Adjust path for reading runtime files.
Files:      Filelist, src/testdir/shared.mnv,
            src/testdir/test_function_lists.mnv

Patch 8.2.2825
Problem:    Code in checkreadonly() not fully tested.
Solution:   Add more tests. (Dominique Pellé, closes #8169)
Files:      src/testdir/test_excmd.mnv

Patch 8.2.2826
Problem:    Compiler warnings for int to size_t conversion. (Randall W.
            Morris)
Solution:   Add type casts.
Files:      src/map.c, src/quickfix.c

Patch 8.2.2827
Problem:    Test file was not deleted.
Solution:   Uncomment the delete() call. (Dominique Pellé, closes #8172)
Files:      src/testdir/test_mksession.mnv

Patch 8.2.2828
Problem:    Coverity complains about not checking the rename() return value.
Solution:   Add "(void)", can't do anything in case of a failure.
Files:      src/fileio.c

Patch 8.2.2829
Problem:    Some comments are not correct or clear.
Solution:   Adjust the comments.  Add test for cursor position.
Files:      src/regexp_bt.c, src/regexp_nfa.c,
            src/testdir/test_exec_while_if.mnv,
            src/testdir/test_substitute.mnv

Patch 8.2.2830
Problem:    Terminal colors are not updated when 'background' is set.
Solution:   Call term_update_colors() for all terminals. (Marcin Szamotulski,
            closes #8171, closes #8150)
Files:      src/terminal.c, src/proto/terminal.pro, src/optionstr.c

Patch 8.2.2831
Problem:    MNV9: expandcmd() not tested.
Solution:   Add a test.
Files:      src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2832
Problem:    Operator cancelled by moving mouse when using popup. (Sergey
            Vlasov)
Solution:   Do not trigger an operator for a mouse move events. (closes #8176)
Files:      src/normal.c

Patch 8.2.2833
Problem:    Two key command cancelled by moving mouse when using popup.
            (Sergey Vlasov)
Solution:   Ignore K_MOUSEMOVE in plain_vgetc().
Files:      src/getchar.c

Patch 8.2.2834
Problem:    MNV9: :cexpr does not work with local variables.
Solution:   Compile :cexpr.
Files:      src/mnv9compile.c, src/mnv9.h, src/mnv9execute.c, src/quickfix.c,
            src/proto/quickfix.pro, src/testdir/test_quickfix.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.2835 (after 8.2.2834)
Problem:    MNV9: leaking memory in :cexpr.
Solution:   Also free the command line copy.
Files:      src/mnv9compile.c

Patch 8.2.2836 (after 8.2.2834)
Problem:    Build failure without the +quickfix feature. (John Marriott)
Solution:   Add #ifdef.
Files:      src/mnv9compile.c, src/mnv9execute.c, src/tag.c

Patch 8.2.2837
Problem:    Various code lines not covered by tests.
Solution:   Add test cases. (Dominique Pellé, closes #8178)
Files:      src/testdir/test_excmd.mnv, src/testdir/test_functions.mnv,
            src/testdir/test_options.mnv, src/testdir/test_startup.mnv,
            src/testdir/test_syntax.mnv, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2838
Problem:    File extension .wrap not recognized.
Solution:   Use dosini filetype for .wrap files. (Liam Beguin, closes #8177)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.2839
Problem:    Default redirection missing "ash" and "dash".
Solution:   Recognize "ash" and "dash". (Natanael Copa, closes #8180)
Files:      runtime/doc/options.txt, src/option.c

Patch 8.2.2840
Problem:    MNV9: member operation not fully tested.
Solution:   Add a few tests.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2841
Problem:    MS-Windows: cursor in wrong position when 'lazyredraw' and
            'statusline' are set.
Solution:   Call compute_cmdrow(). (closes #8170, closes #8184)
Files:      src/os_win32.c

Patch 8.2.2842
Problem:    MNV9: skip argument to searchpair() is not compiled.
Solution:   Add VAR_INSTR.
Files:      src/structs.h, src/mnv9.h, src/mnv9compile.c, src/mnv9execute.c,
            src/proto/mnv9execute.pro, src/eval.c, src/evalfunc.c, src/mnv.h,
            src/evalvars.c, src/typval.c, src/mnv9type.c, src/testing.c,
            src/mnvinfo.c, src/if_py_both.h, src/json.c,
            src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2843 (after 8.2.2842)
Problem:    MNV9: skip argument to searchpairpos() is not compiled.
Solution:   Handle like searchpair().  Also for search() and searchpos().
Files:      src/mnv9compile.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2844
Problem:    MNV9: memory leak when using searchpair().
Solution:   Free the v_instr field.
Files:      src/typval.c

Patch 8.2.2845
Problem:    MS-Windows: warning for signed/unsigned comparison.
Solution:   Add type cast.
Files:      src/terminal.c

Patch 8.2.2846
Problem:    MNV9: "echo Func()" does not give an error for a function without
            a return value.
Solution:   Give an error.  Be more specific about why a value is invalid.
Files:      src/globals.h, src/errors.h, src/eval.c, src/evalfunc.c,
            src/typval.c, src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2847
Problem:    Perl not tested sufficiently.
Solution:   Add test.  Also test W17. (Dominique Pellé, closes #8193)
Files:      src/testdir/test_arabic.mnv, src/testdir/test_perl.mnv

Patch 8.2.2848
Problem:    Crash when calling partial.
Solution:   Check for NULL pointer. (Dominique Pellé, closes #8202)
Files:      src/eval.c, src/evalfunc.c, src/testdir/test_functions.mnv,
            src/testdir/test_listdict.mnv

Patch 8.2.2849
Problem:    Bufwrite not sufficiently tested.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #8192)
Files:      src/testdir/test_startup.mnv, src/testdir/test_writefile.mnv

Patch 8.2.2850
Problem:    Recalling commands from history is not tested.
Solution:   Add tests. (closes #8194)
Files:      src/testdir/test_cmdline.mnv

Patch 8.2.2851
Problem:    Using <Cmd> mapping on the command line triggers CmdlineChanged.
            (Naohiro Ono)
Solution:   Jump to cmdline_not_changed if the command line didn't change.
            (closes #8208)
Files:      src/ex_getln.c, src/testdir/test_cmdline.mnv

Patch 8.2.2852
Problem:    Configure can add --as-needed a second time.
Solution:   Only add --as-needed if not already there.  (Natanael Copa,
            closes #8189, closes #8181)
Files:      src/configure.ac, src/auto/configure

Patch 8.2.2853 (after 8.2.2851)
Problem:    Window is not updated after using <Cmd> mapping.
Solution:   So jump to cmdline_changed but skip autocommand.
Files:      src/ex_getln.c

Patch 8.2.2854
Problem:    Custom statusline cannot contain % items.
Solution:   Add "%{% expr %}". (closes #8190)
Files:      runtime/doc/options.txt, src/buffer.c, src/optionstr.c,
            src/testdir/test_statusline.mnv

Patch 8.2.2855
Problem:    White space after "->" does not give E274.
Solution:   Do not skip white space in legacy script. (closes #8212)
Files:      src/eval.c, src/testdir/test_method.mnv

Patch 8.2.2856
Problem:    Get readonly error for device that can't be written to.
Solution:   Check for being able to write first. (closes #8205)
Files:      src/ex_cmds.c, src/testdir/test_writefile.mnv

Patch 8.2.2857
Problem:    MNV9: exception in ISN_INSTR caught at wrong level.
Solution:   Set the starting trylevel in exec_instructions(). (closes #8214)
Files:      src/mnv9compile.c, src/mnv9execute.c, src/globals.h,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2858 (after 8.2.2857)
Problem:    Test fails because of changed error message.
Solution:   Adjust the expected error message.
Files:      src/testdir/test_ex_mode.mnv

Patch 8.2.2859 (after 8.2.2857)
Problem:    Tcl test fails because of changed error message.
Solution:   Adjust the expected error message.
Files:      src/testdir/test_tcl.mnv

Patch 8.2.2860
Problem:    Adding a text property causes the whole window to be redrawn.
Solution:   Use changed_lines_buf() to only redraw the affected lines.
Files:      src/change.c, src/proto/change.pro, src/textprop.c

Patch 8.2.2861
Problem:    MNV9: "legacy return" is not recognized as a return statement.
Solution:   Specifically check for a return command. (closes #8213)
Files:      src/mnv9compile.c, src/mnv9execute.c, src/mnv9.h,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.2862
Problem:    Removing a text property causes the whole window to be redrawn.
Solution:   Use changed_lines_buf() to only redraw the affected lines.
Files:      src/textprop.c

Patch 8.2.2863 (after 8.2.2862)
Problem:    Removing a text property does not redraw optimally.
Solution:   Only redraw the lines that mithg actually have been changed.
Files:      src/textprop.c

Patch 8.2.2864
Problem:    MNV9: crash when using inline function.
Solution:   Check for NULL pointer. Make using inline function work inside
            lambda. (closes #8217)
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2865 (after 8.2.2864)
Problem:    Skipping over function body fails.
Solution:   Do not define the function when skipping.
Files:      src/userfunc.c

Patch 8.2.2866
Problem:    MNV9: memory leak when using inline function.
Solution:   Remember what strings to free.
Files:      src/userfunc.c, src/structs.h, src/eval.c

Patch 8.2.2867 (after 8.2.2866)
Problem:    Build failure.
Solution:   Add missing part of the change.
Files:      src/globals.h

Patch 8.2.2868
Problem:    MNV9: When executing a compiled expression the trylevel at start
            is changed but not restored. (closes #8214)
Solution:   Restore the trylevel at start.
Files:      src/mnv9execute.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2869
Problem:    Using unified diff is not tested.
Solution:   Test all cases also with unified diff. (issue #8197)
Files:      src/testdir/test_diffmode.mnv

Patch 8.2.2870
Problem:    CmdlineChange event triggered twice for CTRL-R.
Solution:   Return CMDLINE_NOT_CHANGED from cmdline_insert_reg().
            (closes #8219)
Files:      src/ex_getln.c, src/testdir/test_cmdline.mnv

Patch 8.2.2871
Problem:    Unnecessary MNV_ISDIGIT() calls, badly indented code.
Solution:   Call skipdigits() on the next character.  Improve indenting.
            (Dominique Pellé, closes #8227)
Files:      src/charset.c, src/evalfunc.c, src/ex_docmd.c, src/json.c,
            src/ops.c, src/tag.c, src/mnv9compile.c

Patch 8.2.2872
Problem:    Python tests fail without the channel feature.
Solution:   Add a feature check. (Dominique Pellé, closes #8226)
Files:      src/testdir/test_python2.mnv, src/testdir/test_python3.mnv

Patch 8.2.2873
Problem:    Not enough tests for writing buffers.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #8229)
Files:      src/testdir/test_buffer.mnv, src/testdir/test_cmdline.mnv,
            src/testdir/test_functions.mnv, src/testdir/test_writefile.mnv

Patch 8.2.2874
Problem:    MS-Windows: screen redraws too often.
Solution:   Do not redraw when peeking for a character. (closes #8230,
            closes #8211)
Files:      src/os_win32.c

Patch 8.2.2875
Problem:    Cancelling inputlist() after a digit does not return zero.
Solution:   Always return zero when cancelling. (closes #8231)
Files:      src/misc1.c, src/testdir/test_functions.mnv

Patch 8.2.2876
Problem:    Configure cannot detect Python 3.10.
Solution:   Use sys.version_info. (closes #8233)
Files:      src/configure.ac, src/auto/configure

Patch 8.2.2877
Problem:    Insufficient tests for popup menu rightleft.
Solution:   Add tests. (Yegappan Lakshmanan, closes #8235)
Files:      src/testdir/test_popup.mnv,
            src/testdir/dumps/Test_pum_rightleft_01.dump,
            src/testdir/dumps/Test_pum_rightleft_02.dump,
            src/testdir/dumps/Test_pum_scrollbar_01.dump,
            src/testdir/dumps/Test_pum_scrollbar_02.dump

Patch 8.2.2878
Problem:    MNV9: for loop list unpack only allows for one "_".
Solution:   Drop the value when the variable is "_". (closes #8232)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2879
Problem:    File extension .hsig not recognized.
Solution:   Use Haskell filetype for .hsig files. (Marcin Szamotulski,
            closes #8236)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.2880
Problem:    Unified diff fails if actually used.
Solution:   Invoke :diffupdate in the test.  Fix the check for working external
            diff. (Ghjuvan Lacambre, Christian Brabandt, closes #8197)
Files:      src/diff.c, src/testdir/test_diffmode.mnv

Patch 8.2.2881
Problem:    Various pieces of code not covered by tests.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #8245)
Files:      src/testdir/test_const.mnv, src/testdir/test_functions.mnv,
            src/testdir/test_python2.mnv, src/testdir/test_python3.mnv,
            src/testdir/test_user_func.mnv, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.2882
Problem:    MNV9: memory leak when lambda has an error.
Solution:   Free the list of argument types on failure.
Files:      src/userfunc.c

Patch 8.2.2883
Problem:    MS-Windows manifest file name is misleading.
Solution:   Rename the file. (closes #8241)
Files:      .gitignore, .hgignore, Filelist, Makefile, src/Make_cyg_ming.mak,
            src/Make_mvc.mak, src/gmnv.exe.mnf, src/mnv.manifest, src/mnv.rc

Patch 8.2.2884
Problem:    Not enough cscope code is covered by tests.
Solution:   Add a few test cases. (Dominique Pellé, closes #8246)
Files:      src/testdir/test_cscope.mnv

Patch 8.2.2885
Problem:    searching for \%'> does not match linewise end of line. (Tim Chase)
Solution:   Match end of line if column is MAXCOL. (closes #8238)
Files:      src/regexp_nfa.c, src/regexp_bt.c, src/testdir/test_search.mnv

Patch 8.2.2886
Problem:    Various pieces of code not covered by tests.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #8255)
Files:      src/testdir/test_expr.mnv, src/testdir/test_functions.mnv,
            src/testdir/test_listdict.mnv, src/testdir/test_registers.mnv,
            src/testdir/test_user_func.mnv, src/testdir/test_mnv9_builtin.mnv,
            src/testdir/test_mnv9_expr.mnv, src/testdir/test_mnv9_func.mnv

Patch 8.2.2887
Problem:    Crash when passing null string to fullcommand().
Solution:   Check for NULL pointer. (closes #8256)
Files:      src/ex_docmd.c, src/testdir/test_cmdline.mnv

Patch 8.2.2888
Problem:    MNV9: "k" command recognized in MNV9 script.
Solution:   Do not recognize "k" or "s" and "d" with flags.
Files:      src/ex_docmd.c, src/testdir/test_mnv9_builtin.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.2889
Problem:    Typo and verbose comment in Makefiles.
Solution:   Fix typo. Use @#. (Ken Takata, closes #8252)
Files:      Makefile, src/testdir/Makefile

Patch 8.2.2890
Problem:    Text property duplicated when data block splits.
Solution:   Do not continue text prop from previous line. (closes #8261)
Files:      src/memline.c, src/structs.h, src/testdir/test_textprop.mnv

Patch 8.2.2891
Problem:    Cannot build with Perl 5.34.
Solution:   Add Perl_SvTRUE_common(). (Ozaki Kiichi, closes #8266,
            closes #8250)
Files:      src/if_perl.xs

Patch 8.2.2892
Problem:    Error message contains random characters.
Solution:   Pass the right pointer to error_white_both(). (closes #8272,
            closes #8263)
Files:      src/eval.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2893
Problem:    Multi-byte text in popup title shows up wrong.
Solution:   Use the character width instead of the byte length. (Ralf Schandl,
            closes #8267, closes #8264)
Files:      src/popupwin.c, src/message_test.c, src/testdir/test_popupwin.mnv,
            src/testdir/dumps/Test_popupwin_multibytetitle.dump

Patch 8.2.2894
Problem:    MS-Windows: using enc_locale() for strftime() might not work.
Solution:   Use wcsftime(). (Ken Takata, closes #8271)
Files:      src/time.c

Patch 8.2.2895
Problem:    MNV9: random characters appear in some error messages.
Solution:   Pass the correct pointer. (closes #8277)
Files:      src/eval.c, src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2896
Problem:    Spellfile functionality not fully tested.
Solution:   Add tests for CHECKCOMPOUNDPATTERN and COMMON. (Dominique Pellé,
            closes #8270)
Files:      src/testdir/test_spellfile.mnv

Patch 8.2.2897
Problem:    MNV9: can use reserved words at the script level.
Solution:   Check variable names for reserved words. (closes #8253)
Files:      src/mnv9compile.c, src/mnv9script.c, src/proto/mnv9script.pro,
            src/eval.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2898
Problem:    QuitPre and ExitPre not triggered when GUI window is closed.
Solution:   Call before_quit_autocmds(). (closes #8242)
Files:      src/ex_docmd.c, src/proto/ex_docmd.pro, src/gui.c

Patch 8.2.2899
Problem:    Appveyor script does not detect nmake failure.
Solution:   Explicitly check for executable. (Ken Takata, closes #8281)
Files:      ci/appveyor.bat

Patch 8.2.2900
Problem:    QuitPre is triggered before :wq writes the file, which is
            different from other commands.
Solution:   Trigger QuitPre after writing the file. (closes #8279)
Files:      src/ex_docmd.c, src/testdir/test_writefile.mnv

Patch 8.2.2901
Problem:    Some operators not fully tested.
Solution:   Add a few test cases. (Yegappan Lakshmanan, closes #8282)
Files:      src/testdir/test_cpoptions.mnv, src/testdir/test_increment.mnv,
            src/testdir/test_normal.mnv, src/testdir/test_virtualedit.mnv,
            src/testdir/test_visual.mnv

Patch 8.2.2902
Problem:    Spellfile functionality not fully tested.
Solution:   Add tests for CIRCUMFIX, NOBREAK and others. (Dominique Pellé,
            closes #8283)
Files:      src/testdir/test_spellfile.mnv

Patch 8.2.2903
Problem:    Cursor position wrong on wrapped line with 'signcolumn'.
Solution:   Don't add space for showbreak twice. (Christian Brabandt,
            closes #8262)
Files:      src/drawline.c, src/testdir/test_display.mnv

Patch 8.2.2904
Problem:    "g$" causes scroll if half a double width char is visible.
Solution:   Advance to the last fully visible character. (closes #8254)
Files:      src/normal.c, src/testdir/test_normal.mnv

Patch 8.2.2905
Problem:    No error when defaults.mnv cannot be loaded.
Solution:   Add an error message. (Christian Brabandt, closes #8248)
Files:      runtime/doc/starting.txt, src/errors.h, src/main.c,
            src/testdir/test_startup.mnv

Patch 8.2.2906 (after 8.2.2905)
Problem:    ASAN reports errors for test_startup for unknown reasons.
Solution:   Temporarily disable the new test.
Files:      src/testdir/test_startup.mnv

Patch 8.2.2907
Problem:    Memory leak when running out of memory.
Solution:   Free the allocated memory. (Dominique Pellé, closes #8284)
Files:      src/term.c

Patch 8.2.2908
Problem:    Crash when using a terminal popup window from the cmdline window.
Solution:   Instead of checking cmdwin_type call cmdwin_is_active().
            (closes #8286)
Files:      src/terminal.c, src/errors.h, src/testdir/test_cmdline.mnv,
            src/testdir/dumps/Test_cmdwin_no_terminal.dump

Patch 8.2.2909
Problem:    Build error with non-Unix system.
Solution:   Always include limits.h.
Files:      src/mnv.h

Patch 8.2.2910
Problem:    Test for cmdline window and terminal fails on MS-Windows.
Solution:   Skip the test on MS-Windows.
Files:      src/testdir/test_cmdline.mnv

Patch 8.2.2911
Problem:    Pattern "\%V" does not match all of block selection. (Rick Howe)
Solution:   Use the value of vi_curswant. (closes #8285)
Files:      src/regexp.c, src/testdir/test_search.mnv,
            src/testdir/dumps/Test_hlsearch_block_visual_match.dump

Patch 8.2.2912
Problem:    MS-Windows: most users expect using Unicode.
Solution:   Default 'encoding' to utf-8 on MS-Windows. (Ken Takata,
            closes #3907)
Files:      runtime/doc/options.txt, src/mbyte.c, src/option.c, src/option.h,
            src/testdir/test_writefile.mnv

Patch 8.2.2913
Problem:    MS-Windows conpty supports using mouse events.
Solution:   When enabling the mouse enable mouse input and disable quick edit
            mode. (Wez Furlong, closes #8280)
Files:      src/os_win32.c

Patch 8.2.2914
Problem:    Cannot paste a block without adding padding.
Solution:   Add "zp" and "zP" which paste without adding padding. (Christian
            Brabandt, closes #8289)
Files:      runtime/doc/change.txt, runtime/doc/index.txt, src/normal.c,
            src/register.c, src/mnv.h, src/testdir/test_normal.mnv,
            src/testdir/test_visual.mnv

Patch 8.2.2915
Problem:    MS-Windows: when using "default" for encoding utf-8 is used.
Solution:   Use the system encoding. (Ken Takata, closes #8300)
Files:      src/mbyte.c, runtime/doc/options.txt

Patch 8.2.2916
Problem:    Operators are not fully tested.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #8290)
Files:      src/ops.c, src/testdir/test_netbeans.mnv,
            src/testdir/test_normal.mnv, src/testdir/test_visual.mnv

Patch 8.2.2917
Problem:    Spellfile functionality not fully tested.
Solution:   Add tests for SFX with removal of characters, spelling
            suggestions with NOBREAK and others. (Dominique Pellé,
            closes #8293)
Files:      src/testdir/test_spellfile.mnv

Patch 8.2.2918
Problem:    Builtin function can be shadowed by global variable.
Solution:   Check for builtin function before variable. (Yasuhiro Matsumoto,
            closes #8302)
Files:      src/eval.c, src/testdir/test_functions.mnv

Patch 8.2.2919
Problem:    Using ":!command" does not work if the command uses posix_spawn().
Solution:   Do not call ioctl() with TIOCSCTTY. (Felipe Contreras)
Files:      src/os_unix.c

Patch 8.2.2920
Problem:    Still a way to shadow a builtin function. (Yasuhiro Matsumoto)
Solution:   Check the key when using extend(). (issue #8302)
Files:      src/eval.c, src/dict.c, src/proto/dict.pro,
            src/testdir/test_functions.mnv

Patch 8.2.2921
Problem:    E704 for script local variable is not backwards compatible.
            (Yasuhiro Matsumoto)
Solution:   Only give the error in MNV9 script.  Also check for function-local
            variable.
Files:      src/dict.c, src/testdir/test_functions.mnv

Patch 8.2.2922
Problem:    Computing array length is done in various ways.
Solution:   Use ARRAY_LENGTH everywhere. (Ken Takata, closes #8305)
Files:      src/arabic.c, src/blowfish.c, src/cindent.c, src/cmdexpand.c,
            src/cmdhist.c, src/dosinst.c, src/eval.c, src/evalfunc.c,
            src/ex_docmd.c, src/fileio.c, src/gui_athena.c, src/gui_gtk_x11.c,
            src/gui_haiku.cc, src/gui_photon.c, src/gui_w32.c,
            src/gui_xmebw.c, src/hardcopy.c, src/help.c, src/highlight.c,
            src/if_mzsch.c, src/macros.h, src/main.c, src/map.c, src/mbyte.c,
            src/memline.c, src/menu.c, src/misc2.c, src/normal.c, src/ops.c,
            src/option.c, src/optiondefs.h, src/os_win32.c, src/popupwin.c,
            src/quickfix.c, src/regexp.c, src/screen.c, src/search.c,
            src/syntax.c, src/term.c, src/terminal.c, src/time.c,
            src/usercmd.c, src/version.c

Patch 8.2.2923
Problem:    EBCDIC build is broken.
Solution:   Move sortFunctions() to evalfunc.c. (Ken Takata, closes #8306)
Files:      src/eval.c, src/evalfunc.c, src/proto/evalfunc.pro

Patch 8.2.2924
Problem:    Superfluous extern declaration.
Solution:   Delete the declaration. (Ken Takata, closes #8307)
Files:      src/main.c

Patch 8.2.2925
Problem:    MNV9: line continuation comment uses legacy syntax.
Solution:   Check for #\ instead of "\. (closes #8295)
Files:      src/scriptfile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2926
Problem:    MNV9: no good error for using :legacy in a :def function.
Solution:   Give an explicit error where :legacy is not working.
            (closes #8309)
Files:      src/mnv9compile.c, src/errors.h, src/testdir/test_mnv9_func.mnv

Patch 8.2.2927
Problem:    Test commented out because it fails with ASAN.
Solution:   Only skip the test when running with ASAN.
Files:      src/testdir/test_startup.mnv

Patch 8.2.2928
Problem:    The evalfunc.c file is too big.
Solution:   Move float related functionality to a separate file. (Yegappan
            Lakshmanan, closes #8287)
Files:      Filelist, src/Make_ami.mak, src/Make_cyg_ming.mak,
            src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md,
            src/eval.c, src/evalfunc.c, src/float.c, src/proto.h,
            src/proto/eval.pro, src/proto/float.pro

Patch 8.2.2929
Problem:    Accidentally enable tcl by default.
Solution:   Revert change to Makefile
Files:      src/Makefile

Patch 8.2.2930
Problem:    When a popup is visible a mouse move my restart Visual mode.
Solution:   Reset held_button when ending Visual mode. (closes #8318)
Files:      src/mouse.c, src/proto/mouse.pro, src/normal.c

Patch 8.2.2931
Problem:    MNV9: line continuation comment still uses legacy syntax in one
            place.
Solution:   Check for #\ instead of "\ earlier. (closes #8316)
Files:      src/scriptfile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.2932 (after 8.2.2930)
Problem:    Select mode test fails.
Solution:   Do not always reset the held mouse button.
Files:      src/mouse.c, src/normal.c, src/proto/normal.pro

Patch 8.2.2933
Problem:    When 'clipboard' is "unnamed" zp and zP do not work correctly.
Solution:   Pass -1 to str_to_reg() and fix computing the character width
            instead of using the byte length. (Christian Brabandt,
            closes #8301, closes #8317)
Files:      src/clipboard.c, src/mbyte.c, src/register.c

Patch 8.2.2934 (after 8.2.2933)
Problem:    ASAN error when using text from the clipboard.
Solution:   Get width of each character.
Files:      src/register.c

Patch 8.2.2935 (after 8.2.2934)
Problem:    Calculating register width is not always needed. (Christian
            Brabandt)
Solution:   Only calculate the width when the type is MBLOCK.
Files:      src/register.c

Patch 8.2.2936
Problem:    MNV9: converting number to bool uses wrong stack offset. (Salman
            Halim)
Solution:   Include the offset in the 2BOOL command.
Files:      src/mnv9compile.c, src/mnv9.h, src/mnv9execute.c,
            src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.2937
Problem:    Popup test fails if rightleft feature not enabled.
Solution:   Check that the rightleft feature is available. (Dominique Pellé,
            closes #8321)
Files:      src/testdir/test_popup.mnv

Patch 8.2.2938
Problem:    After using motion force from feedkeys() it may not be reset.
Solution:   Clear motion_force in clearop(). (closes #8323)
Files:      src/normal.c, src/testdir/test_visual.mnv

Patch 8.2.2939
Problem:    GTK: righthand scrollbar does not show with split window.
Solution:   Adjust padding when two scrollbars are used. (Matt Wozniski,
            closes #8324)
Files:      src/gui_gtk.c

Patch 8.2.2940
Problem:    MS-Windows: cannot see the size of the text area when resizing the
            gmnv window.
Solution:   Show a tooltip with the text size. (Ken Takata, closes #8326)
Files:      src/gui_w32.c

Patch 8.2.2941
Problem:    MNV9: using `=expr` does not handle a list of strings.
Solution:   Convert a list to a string and escape each item. (closes #8310)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2942
Problem:    MNV9: internal error when calling function with too few arguments
Solution:   Check for argument count to be too few. (closes #8325)
Files:      src/errors.h, src/mnv9execute.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2943
Problem:    MNV9: check for argument count ignores default values.
Solution:   Take default argument values into account.
Files:      src/mnv9execute.c

Patch 8.2.2944
Problem:    MNV9: no error when using job or channel as a string.
Solution:   Be more strict about conversion to string. (closes #8312)
Files:      src/typval.c, src/job.c, src/proto/job.pro, src/channel.c,
            src/proto/channel.pro, src/eval.c, src/mnv9execute.c,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.2945
Problem:    Some buffer related code is not tested.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #8320)
Files:      src/termlib.c, src/testdir/test_excmd.mnv,
            src/testdir/test_recover.mnv, src/testdir/test_swap.mnv,
            src/testdir/test_visual.mnv

Patch 8.2.2946
Problem:    MNV9: substitute expression cannot be a List in a :def function.
Solution:   Use typval2string(). (closes #8330)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2947
Problem:    Build failure without the channel feature.
Solution:   Add back #ifdef. (John Marriott)
Files:      src/eval.c

Patch 8.2.2948
Problem:    Substitute() accepts a number but not a float expression.
Solution:   Also accept a float. (closes #8331)
Files:      src/typval.c, src/testdir/test_substitute.mnv

Patch 8.2.2949 (after 8.2.2948)
Problem:    Tests failing because there is no error for float to string
            conversion.
Solution:   Change the check for failure to check for correct result.  Make
            some conversions strict in MNV9 script.
Files:      src/evalfunc.c, src/float.c, src/findfile.c, src/json.c,
            src/filepath.c, src/testdir/test_eval_stuff.mnv,
            src/testdir/test_execute_func.mnv,
            src/testdir/test_float_func.mnv, src/testdir/test_functions.mnv,
            src/testdir/test_listdict.mnv, src/testdir/test_glob2regpat.mnv

Patch 8.2.2950
Problem:    Sound code not fully tested.
Solution:   Add more sound tests. (Dominique Pellé, closes #8332)
Files:      src/testdir/test_sound.mnv

Patch 8.2.2951
Problem:    MNV9: cannot use heredoc in :def function for :python, :lua, etc.
Solution:   Concatenate the heredoc lines and pass them in the ISN_EXEC_SPLIT
            instruction.
Files:      src/userfunc.c, src/mnv9compile.c, src/mnv9.h, src/mnv9execute.c,
            src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.2952
Problem:    Recover test fails on big endian systems.
Solution:   Disable the failing test on big endian systems. (Yegappan
            Lakshmanan, closes #8335)
Files:      src/testdir/test_recover.mnv, src/testdir/test_swap.mnv

Patch 8.2.2953 (after 8.2.2951)
Problem:    MNV9: leaking memory when using heredoc script.
Solution:   Free the first line.
Files:      src/mnv9execute.c

Patch 8.2.2954
Problem:    Short file name extension for Scala not recognized.
Solution:   Recognize *.sc. (closes #8337)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.2955
Problem:    MNV9: using filter in compiled command does not work.
Solution:   Generate EXEC including the command modifier.
Files:      src/mnv9compile.c, src/ex_docmd.c, src/ex_cmds.c,
            src/proto/ex_cmds.pro, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.2956
Problem:    MNV9: need to plan for future additions.
Solution:   Reserve commands for future use: :type, :class, :enum.
Files:      src/ex_cmds.h, src/ex_cmdidxs.h

Patch 8.2.2957
Problem:    Using getchar() in MNV9 script is problematic.
Solution:   Add getcharstr(). (closes #8343)
Files:      runtime/doc/eval.txt, src/evalfunc.c, src/getchar.c,
            src/proto/getchar.pro, src/testdir/test_functions.mnv

Patch 8.2.2958 (after 8.2.2957)
Problem:    Function list test fails.
Solution:   Add newly added function to the list.  Fix typo.
Files:      runtime/doc/usr_41.txt, src/testdir/test_function_lists.mnv

Patch 8.2.2959
Problem:    sound_playfile() is not tested on MS-Windows.
Solution:   Make it work and enable the test. (Dominique Pellé, closes #8338)
Files:      src/sound.c, src/testdir/test_sound.mnv

Patch 8.2.2960
Problem:    Swap file recovery not sufficiently tested.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #8339)
Files:      src/testdir/test_recover.mnv

Patch 8.2.2961
Problem:    Keys typed during a :normal command are discarded.
Solution:   Concatenate saved typeahead and typed keys. (closes #8340)
Files:      src/getchar.c, src/proto/getchar.pro, src/ex_docmd.c,
            src/evalfunc.c, src/debugger.c, src/ui.c, src/proto/ui.pro

Patch 8.2.2962
Problem:    MS-Windows command line arguments have wrong encoding.
Solution:   Always use utf-8 in get_cmd_argsW(). (Ken Takata, closes #8347)
Files:      src/os_win32.c

Patch 8.2.2963
Problem:    GUI: mouse move may start Visual mode with a popup visible.
Solution:   Add special code for mouse move. (closes #8318)
Files:      src/mnv.h, src/gui.c, src/keymap.h, src/term.c

Patch 8.2.2964
Problem:    MNV9: hang when using space after ->. (Naohiro Ono)
Solution:   Skip over white space to find the function name. (closes #8341)
Files:      src/eval.c, src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.2965
Problem:    MNV9: crash when calling function that failed to compile.
Solution:   Fail when trying to call the function. (closes #8344)
Files:      src/errors.h, src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2966
Problem:    ml_get errors after recovering a file. (Yegappan Lakshmanan)
Solution:   Fix the cursor position after deleting lines.
Files:      src/memline.c

Patch 8.2.2967
Problem:    MNV9: crash when using two levels of partials.
Solution:   Add outer_ref_T and use it in the execution context.
Files:      src/structs.h, src/mnv9execute.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.2968 (after 8.2.2967)
Problem:    MNV9: memory leak
Solution:   Unreference pt_outer of partial.
Files:      src/eval.c

Patch 8.2.2969
Problem:    Subtracting from number option fails when result is zero. (Ingo
            Karkat)
Solution:   Reset the string value when using the numeric value.
            (closes #8351)
Files:      src/evalvars.c, src/testdir/test_mnvscript.mnv

Patch 8.2.2970
Problem:    Python configure check uses deprecated command.
Solution:   Use sysconfig instead of distutils if possible. (Zdenek Dohnal,
            closes #8354)
Files:      src/configure.ac, src/auto/configure

Patch 8.2.2971
Problem:    Cannot yank a block without trailing spaces.
Solution:   Add the "zy" command. (Christian Brabandt, closes #8292)
Files:      runtime/doc/change.txt, runtime/doc/index.txt, src/normal.c,
            src/ops.c, src/register.c, src/structs.h,
            src/testdir/test_visual.mnv

Patch 8.2.2972
Problem:    "%bd" tries to delete popup window buffers, which fails. (Ralf
            Schandl)
Solution:   Do not try to delete a popup window buffer. (closes #8349)
Files:      src/buffer.c, src/mnv.h, src/testdir/test_popupwin.mnv

Patch 8.2.2973
Problem:    Fix for recovery and diff mode not tested.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #8352)
Files:      src/testdir/test_diffmode.mnv, src/testdir/test_prompt_buffer.mnv,
            src/testdir/test_recover.mnv

Patch 8.2.2974
Problem:    Greek spell checking uses wrong case folding.
Solution:   Fold capital sigma depending on whether it is at the end of a
            word or not. (closes #299)
Files:      src/spell.c, src/proto/spell.pro, src/spellfile.c,
            src/spellsuggest.c

Patch 8.2.2975
Problem:    MNV9: can only use an autoload function name as a string.
Solution:   Load the autoload script when encountered. (closes #8124)
Files:      src/mnv9compile.c, src/evalvars.c, src/scriptfile.c,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.2976 (after 8.2.2975)
Problem:    Build failure without the +eval feature.
Solution:   Add #ifdefs.
Files:      src/scriptfile.c

Patch 8.2.2977
Problem:    Crash when using a null function reference. (Naohiro Ono)
Solution:   Check for an invalid function name. (closes #8367)
Files:      src/eval.c, src/errors.h, src/testdir/test_functions.mnv

Patch 8.2.2978 (after 8.2.2977)
Problem:    Warning for uninitialized variable.
Solution:   Set return value to FAIL.
Files:      src/eval.c

Patch 8.2.2979
Problem:    Not all options code is covered by tests.
Solution:   Add more tests for options. (Yegappan Lakshmanan, closes #8369)
Files:      src/testdir/test_edit.mnv, src/testdir/test_excmd.mnv,
            src/testdir/test_help.mnv, src/testdir/test_mksession.mnv,
            src/testdir/test_options.mnv, src/testdir/test_vartabs.mnv,
            src/testdir/test_window_cmd.mnv

Patch 8.2.2980
Problem:    Popup window test is a bit flaky.
Solution:   Add a redraw command.
Files:      src/testdir/test_popupwin.mnv

Patch 8.2.2981
Problem:    Recovery test is not run on big-endian systems.
Solution:   Make it work on big-endian systems. (James McCoy, closes #8368)
Files:      src/testdir/test_recover.mnv

Patch 8.2.2982
Problem:    MNV9: future commands are not reserved yet.
Solution:   Add commands to be implemented later.  Make "this" a reserved
            name.
Files:      runtime/doc/mnv9.txt, src/ex_cmds.h, src/ex_cmdidxs.h,
            src/mnv9script.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.2983
Problem:    MNV9: an inline function requires specifying the return type.
Solution:   Make the return type optional.
Files:      src/eval.c, src/mnv9compile.c, src/userfunc.c,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.2984 (after 8.2.2983)
Problem:    MNV9: Test fails because of missing return statement.
Solution:   When type is unknown set type to void.
Files:      src/mnv9compile.c

Patch 8.2.2985
Problem:    MNV9: a compiled function cannot be debugged.
Solution:   Add initial debugging support.
Files:      src/mnv9.h, src/mnv9compile.c, src/proto/mnv9compile.pro,
            src/mnv.h, src/eval.c, src/mnv9execute.c, src/userfunc.c,
            src/mnv9type.c, src/testdir/test_debugger.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.2986
Problem:    Build failure without the profile feature.
Solution:   Add #ifdef.
Files:      src/mnv9compile.c

Patch 8.2.2987
Problem:    Build failure with normal features.
Solution:   Remove #define.
Files:      src/mnv9execute.c

Patch 8.2.2988
Problem:    MNV9: debugger test fails.
Solution:   Get the debugger instructions when needed.
Files:      src/mnv.h, src/mnv9.h

Patch 8.2.2989
Problem:    MNV9: memory leak when debugging a :def function.
Solution:   Free the debug instructions.
Files:      src/mnv9compile.c

Patch 8.2.2990
Problem:    Jupyter Notebook files are not recognized.
Solution:   Recognize *.ipynb. (closes #8375)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.2991
Problem:    MNV9: no completion for :mnv9 and :legacy.
Solution:   Expand argument as a command. (closes #8377)
Files:      src/cmdexpand.c, src/testdir/test_cmdline.mnv

Patch 8.2.2992
Problem:    MNV9: completion for :disassemble is incomplete.
Solution:   Recognize the "debug" and "profile" arguments.
Files:      src/cmdexpand.c, src/mnv9execute.c, src/proto/mnv9execute.pro,
            src/mnv.h, src/testdir/test_cmdline.mnv

Patch 8.2.2993
Problem:    'fileencodings' default value should depend on 'encoding'. (Gary
            Johnson)
Solution:   When 'encoding' is "utf-8" use a different default value for
            'fileencodings'.
Files:      src/mbyte.c, src/option.c, src/proto/option.pro,
            src/testdir/test_options.mnv

Patch 8.2.2994
Problem:    Various code is not fully tested.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #8378)
Files:      src/testdir/test_excmd.mnv, src/testdir/test_mapping.mnv,
            src/testdir/test_modeline.mnv, src/testdir/test_options.mnv,
            src/testdir/test_paste.mnv, src/mnv9compile.c

Patch 8.2.2995
Problem:    Linker errors with dynamic Python 3.10.
Solution:   Add a couple of library entries. (Zdenek Dohnal, closes #8381,
            closes #8356)
Files:      src/if_python3.c

Patch 8.2.2996
Problem:    MNV9: when debugging cannot inspect local variables.
Solution:   Make local variables available when debugging.
Files:      src/mnv9execute.c, src/proto/mnv9execute.pro, src/mnv9compile.c,
            src/mnv9.h, src/debugger.c, src/testdir/test_debugger.mnv

Patch 8.2.2997 (after 8.2 2996)
Problem:    MNV9: disassemble test fails.
Solution:   Adjust expected output.
Files:      src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.2998 (after 8.2 2996)
Problem:    MNV9: disassemble test fails.
Solution:   Add missing call to lookup_debug_var().
Files:      src/evalvars.c

Patch 8.2.2999
Problem:    Balloon sometimes does not hide with GTK 3.
Solution:   Also listen to GDK_LEAVE_NOTIFY. (Johannes Stezenbach)
Files:      src/gui_beval.c

Patch 8.2.3000
Problem:    MNV9: warning for uninitialized variable.
Solution:   Add initialization. (John Marriott)
Files:      src/mnv9compile.c

Patch 8.2.3001
Problem:    MNV9: memory leak when compilation fails.
Solution:   Free the list of variable names.
Files:      src/mnv9compile.c

Patch 8.2.3002
Problem:    MNV doesn't abort on a fatal Tcl error.
Solution:   Change emsg() to iemsg(). (Dominique Pellé, closes #8383)
Files:      src/if_tcl.c

Patch 8.2.3003
Problem:    MNV9: closure compiled with wrong compile type.
Solution:   Use COMPILE_TYPE() when calling a function. (closes #8384)
Files:      src/mnv9execute.c, src/testdir/test_debugger.mnv

Patch 8.2.3004
Problem:    MNV9: error for missing colon given while skipping.
Solution:   Do not give the error when skipping. (closes #8385)
Files:      src/ex_docmd.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.3005
Problem:    MNV9: using a void value does not give a proper error message.
Solution:   Give a clear error message. (closes #8387)
Files:      src/typval.c, src/mnv9compile.c, src/mnv9.h, src/mnv9execute.c,
            src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.3006
Problem:    Crash when echoing a value very early. (Naruhiko Nishino)
Solution:   Do not use a NUL to truncate the message, make a copy.
            (closes #8388)
Files:      src/message.c, src/testdir/test_startup.mnv

Patch 8.2.3007 (after 8.2.3005)
Problem:    MNV9: test for void value fails.
Solution:   Adjust expected error.  Do not make a copy of void.
Files:      src/typval.c, src/testdir/test_functions.mnv

Patch 8.2.3008 (after 8.2.3006)
Problem:    Startup test may hang.
Solution:   Add quit command in the script.
Files:      src/testdir/test_startup.mnv

Patch 8.2.3009 (after 8.2.3006)
Problem:    Startup test may hang.
Solution:   Do not run the test in the GUI.
Files:      src/testdir/test_startup.mnv

Patch 8.2.3010
Problem:    Not enough testing for mnvinfo code.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #8390)
Files:      src/register.c, src/testdir/test_fileformat.mnv,
            src/testdir/test_smartindent.mnv, src/testdir/test_mnvinfo.mnv

Patch 8.2.3011
Problem:    MNV9: cannot get argument values during debugging.
Solution:   Lookup names in the list of arguments.  Put debug instruction
            halfway for command.
Files:      src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_debugger.mnv

Patch 8.2.3012
Problem:    When 'rightleft' is set the line number is sometimes drawn
            reversed.
Solution:   Adjust how space is handled. (Christian Brabandt, closes #8389,
            closes #8391)
Files:      src/drawline.c, src/testdir/test_number.mnv

Patch 8.2.3013
Problem:    MNV: when debugging only the first line of a command using line
            continuation is displayed.
Solution:   Find the next command and concatenate lines until that one.
            (closes #8392)
Files:      src/mnv9execute.c, src/testdir/test_debugger.mnv

Patch 8.2.3014
Problem:    Coverity warns for freeing static string.
Solution:   Do not assign static string to pointer. (Dominique Pellé,
            closes #8397)
Files:      src/mnv9execute.c

Patch 8.2.3015
Problem:    MNV9: Assigning to @# requires a string. (Naohiro Ono)
Solution:   Accent a number or a string. (closes #8396)
Files:      src/mnv9compile.c, src/mnv9execute.c, src/globals.h,
            src/testdir/test_mnv9_assign.mnv

Patch 8.2.3016
Problem:    Confusing error when expression is followed by comma.
Solution:   Give a different error for trailing text. (closes #8395)
Files:      src/eval.c, src/testdir/test_let.mnv,
            src/testdir/test_eval_stuff.mnv, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_script.mnv, src/testdir/test_mnvinfo.mnv,
            src/testdir/test_mnvscript.mnv

Patch 8.2.3017
Problem:    MNV9: debugger shows too many lines.
Solution:   Truncate at a comment, "enddef", etc. (closes #8392)
Files:      src/mnv9execute.c, src/testdir/test_debugger.mnv

Patch 8.2.3018
Problem:    Formatting using quickfixtextfunc is lost when updating location
            lists for different buffers.  (Yorick Peterse)
Solution:   Use the right window for the location list. (Yegappan Lakshmanan,
            closes #8400, closes #8403)
Files:      src/quickfix.c, src/testdir/test_quickfix.mnv

Patch 8.2.3019
Problem:    Location list only has the start position.
Solution:   Make it possible to add an end position. (thinca, closes #8393)
Files:      runtime/doc/eval.txt, src/quickfix.c,
            src/testdir/dumps/Test_quickfix_cwindow_1.dump,
            src/testdir/dumps/Test_quickfix_cwindow_2.dump,
            src/testdir/test_quickfix.mnv, src/testdir/test_tagjump.mnv,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.3020
Problem:    Unreachable code.
Solution:   Remove the code. (closes #8406)
Files:      src/ex_docmd.c

Patch 8.2.3021
Problem:    Spaces allowed between option name and "!", "?", etc.
Solution:   Disallow spaces in MNV9 script, it was not documented.
            (closes #8408)
Files:      src/option.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.3022
Problem:    Available encryption methods are not strong enough.
Solution:   Add initial support for xchacha20. (Christian Brabandt,
            closes #8394)
Files:      .github/workflows/ci.yml, runtime/doc/eval.txt,
            runtime/doc/options.txt, runtime/doc/various.txt,
            src/INSTALLpc.txt, src/Make_cyg_ming.mak, src/Make_mvc.mak,
            src/auto/configure, src/blowfish.c, src/bufwrite.c,
            src/config.h.in, src/configure.ac, src/crypt.c, src/crypt_zip.c,
            src/errors.h, src/evalfunc.c, src/feature.h, src/fileio.c,
            src/memline.c, src/option.c, src/optionstr.c,
            src/proto/blowfish.pro, src/proto/crypt.pro,
            src/proto/crypt_zip.pro, src/structs.h,
            src/testdir/samples/crypt_sodium_invalid.txt,
            src/testdir/test_crypt.mnv, src/undo.c, src/version.c

Patch 8.2.3023
Problem:    MNV9: arguments for execute() not checked at compile time.
Solution:   Add a function to check the argument types.
Files:      src/evalfunc.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3024 (after 8.2.3023)
Problem:    execute() function test fails.
Solution:   Adjust test for different error.
Files:      src/testdir/test_execute_func.mnv

Patch 8.2.3025
Problem:    Not enough tests for quickfix end_col and end_lnum.
Solution:   Add a few more test cases. (Shane-XB-Qian, closes #8409)
Files:      src/testdir/test_quickfix.mnv

Patch 8.2.3026
Problem:    MNV9: cannot set breakpoint in compiled function.
Solution:   Check for breakpoint when calling a function.
Files:      src/mnv9execute.c, src/structs.h, src/mnv.h, src/mnv9.h,
            src/debugger.c, src/testdir/test_debugger.mnv

Patch 8.2.3027
Problem:    MNV9: breakpoint in compiled function not always checked.
Solution:   Check for breakpoint when calling compiled function from compiled
            function.
Files:      src/mnv9execute.c, src/testdir/test_debugger.mnv

Patch 8.2.3028
Problem:    GUI mouse events not tested.
Solution:   Add test_gui_mouse_event().  Add mouse tests. Also add a few
            mnvinfo tests. (Yegappan Lakshmanan, closes #8407)
Files:      runtime/doc/eval.txt, runtime/doc/testing.txt,
            runtime/doc/usr_41.txt, src/evalfunc.c, src/proto/testing.pro,
            src/testdir/test_gui.mnv, src/testdir/test_mnvinfo.mnv,
            src/testing.c

Patch 8.2.3029
Problem:    MNV9: crash when using operator and list unpack assignment.
            (Naohiro Ono)
Solution:   Get variable value before operation. (closes #8416)
Files:      src/mnv9.h, src/mnv9compile.c, src/mnv9execute.c, src/ex_docmd.c,
            src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.3030
Problem:    Coverity reports a memory leak.
Solution:   Fix the leak and a few typos. (Dominique Pellé, closes #8418)
Files:      src/crypt.c, src/errors.h

Patch 8.2.3031
Problem:    No error if a function name starts with an underscore. (Naohiro
            Ono)
Solution:   In MNV9 script disallow a function name starting with an
            underscore, as is mentioned in the help. (closes #8414)
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.3032
Problem:    Build problems with MSVC, other crypt issues with libsodium.
Solution:   Adjust MSVC makefile. Disable swap file only when 'key' is set.
            Adjust error message used when key is wrong.  Fix Coverity issues.
            (Christian Brabandt, closes #8420, closes #8411)
Files:      src/Make_mvc.mak, src/crypt.c, src/errors.h, src/fileio.c,
            src/memline.c, src/proto/crypt.pro

Patch 8.2.3033
Problem:    No error when using alpha delimiter with :global.
Solution:   Check the delimiter like with :substitute. (closes #8415)
Files:      src/ex_cmds.c, src/testdir/test_global.mnv

Patch 8.2.3034
Problem:    Installing packages on github CI sometimes fails.
Solution:   Update package information first. (Christian Brabandt,
            closes #8432)
Files:      .github/workflows/ci.yml

Patch 8.2.3035
Problem:    MNV9: crash when calling :def function with partial and return
            type is not set.
Solution:   When the return type is not set handle like the return type is
            unknown. (closes #8422)
Files:      src/mnv9type.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.3036
Problem:    MNV9: builtin function arguments not checked at compile time.
Solution:   Add more argument type specs. Check arguments to test_setmouse()
            and test_gui_mouse_event(). (Yegappan Lakshmanan, closes #8425)
Files:      src/evalfunc.c, src/testdir/test_assert.mnv,
            src/testdir/test_gui.mnv, src/testdir/test_popupwin.mnv,
            src/testdir/test_mnv9_builtin.mnv, src/testing.c

Patch 8.2.3037
Problem:    Configure reports libcanberra when checking for libsodium.
Solution:   Adjust the message. (Ozaki Kiichi, closes #8435)
Files:      src/configure.ac, src/auto/configure

Patch 8.2.3038
Problem:    Amiga built-in version string doesn't include build date.
Solution:   Add the build date if available. (Ola Söder, closes #8437)
Files:      src/os_amiga.c

Patch 8.2.3039
Problem:    MNV9: breakpoint at a comment line does not work.
Solution:   Add the comment line number to the debug instruction.
            (closes #8429)
Files:      src/mnv9.h, src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_debugger.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.3040
Problem:    GUI: dropping files not tested.
Solution:   Add test_gui_drop_files() and tests. (Yegappan Lakshmanan,
            closes #8434)
Files:      runtime/doc/eval.txt, runtime/doc/testing.txt,
            runtime/doc/usr_41.txt, src/evalfunc.c, src/gui.c,
            src/proto/testing.pro, src/testdir/test_gui.mnv, src/testing.c

Patch 8.2.3041
Problem:    Detecting if the process of a swap file is running fails if the
            process is owned by another user.
Solution:   Check for the ESRCH error. (closes #8436)
Files:      src/os_unix.c

Patch 8.2.3042 (after 8.2.3041)
Problem:    Swap file test fails.
Solution:   Check for a very high process ID instead of one, which should be
            running.
Files:      src/testdir/test_swap.mnv

Patch 8.2.3043
Problem:    Amiga: cannot get the shell size on MorphOS and AROS.
Solution:   Use control sequences. (Ola Söder, closes #8438)
Files:      src/os_amiga.c

Patch 8.2.3044
Problem:    Amiga MorphOS and AROS: process ID is not valid.
Solution:   Use FindTask to return something which is unique to all processes.
            (Ola Söder, closes #8444)
Files:      src/os_amiga.c

Patch 8.2.3045
Problem:    Minor typos.
Solution:   Fix the typos. (Christian Brabandt, closes #8441)
Files:      src/VisMNV/README_VisMNV.txt, src/evalfunc.c, src/testdir/mnv9.mnv

Patch 8.2.3046
Problem:    Amiga MorphOS: Term mode is set using DOS packets.
Solution:   Use the same way of setting term mode on all next gen Amiga-like
            systems.  (Ola Söder, closes #8445)
Files:      src/os_amiga.c

Patch 8.2.3047
Problem:    Increment and decrement don't allow for next command.
Solution:   Allow for comment and next command. (closes #8442)
Files:      src/ex_cmds.h, src/mnv9script.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.3048
Problem:    Strange error for white space after ++ command.
Solution:   Check for white space explicitly. (closes #8440)
Files:      src/mnv9script.c, src/errors.h, src/mnv9compile.c,
            src/testdir/test_mnv9_assign.mnv

Patch 8.2.3049
Problem:    JSON patch file not recognized.
Solution:   Recognize json-patch as json. (Kevin Locke, closes #8450)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3050
Problem:    Cannot recognize elixir files.
Solution:   Recognize Elixir-specific files.  Check if an .ex file is Euphoria
            or Elixir. (Austin Gatlin, closes #8401, closes #8446)
Files:      runtime/autoload/dist/ft.mnv, runtime/filetype.mnv,
            src/testdir/test_filetype.mnv

Patch 8.2.3051
Problem:    MNV9: for loop with one list variable does not work.
Solution:   Use a separate flag for unpacking a list. (closes #8452)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.3052
Problem:    MNV9: "legacy call" does not work.
Solution:   Do not skip "call" after "legacy". (closes #8454)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.3053
Problem:    MNV9: cannot assign to @@ in :def function
Solution:   Handle '@' like '"'. (closes #8456)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.3054
Problem:    MNV9: unpack assignment using "_" after semicolon fails.
Solution:   Drop the expression result. (closes #8453)
Files:      src/mnv9compile.c, src/errors.h, src/testdir/test_mnv9_assign.mnv

Patch 8.2.3055
Problem:    Strange error for assigning to "x.key" on non-dictionary.
Solution:   Add a specific error message. (closes #8451)
Files:      src/eval.c, src/errors.h, src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_listdict.mnv, src/testdir/test_let.mnv

Patch 8.2.3056
Problem:    MNV9: using default value in lambda gives confusing error.
Solution:   Pass "default_args" on the first pass to get the arguments.
            (closes #8455)
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.3057
Problem:    MNV9: debugger test fails with normal features and +terminal.
            (Dominique Pellé)
Solution:   Adjust the INSTRUCTIONS macro. (closes #8460)
Files:      src/mnv9.h

Patch 8.2.3058 (after 8.2.3056)
Problem:    MNV9: cannot use ternary operator in parentheses.
Solution:   Do not use "==" for a default argument value.  (closes #8462)
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.3059 (after 8.2.3056)
Problem:    MNV9: memory leak when using lambda.
Solution:   Do not store the default value strings when skipping.
Files:      src/userfunc.c

Patch 8.2.3060 (after 8.2.3056)
Problem:    MNV9: cannot use ternary operator in parentheses.
Solution:   Do not use "=~" for a default argument value.  (closes #8462)
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.3061
Problem:    Testing the shell option is incomplete and spread out.
Solution:   Move shell tests to one file and increase coverage. (Yegappan
            Lakshmanan, closes #8464)
Files:      src/testdir/Make_all.mak, src/testdir/test_functions.mnv,
            src/testdir/test_options.mnv, src/testdir/test_shell.mnv,
            src/testdir/test_system.mnv

Patch 8.2.3062
Problem:    Internal error when adding several text properties.
Solution:   Do not handle text properties when deleting a line for splitting a
            data block. (closes #8466)
Files:      src/structs.h, src/memline.c, src/testdir/test_textprop.mnv

Patch 8.2.3063
Problem:    Crash when switching 'cryptmethod' to xchacha20 with an existing
            undo file. (Martin Tournoij)
Solution:   Disable reading undo file when decoding can't be done inplace.
            (issue #8467)
Files:      src/fileio.c, src/bufwrite.c

Patch 8.2.3064
Problem:    MNV9: in script cannot set item in uninitialized list.
Solution:   When a list is NULL allocate an empty one. (closes #8461)
Files:      src/eval.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.3065
Problem:    MNV9: error when sourcing script twice and reusing a function
            name.
Solution:   Check if the function is dead. (closes #8463)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.3066
Problem:    MNV9: debugging lambda does not work.
Solution:   Use the compile type of the function when compiling a lambda.
            (closes #8412)
Files:      src/mnv9compile.c, src/testdir/test_debugger.mnv

Patch 8.2.3067
Problem:    Building fails with Athena. (Elimar Riesebieter)
Solution:   Adjust #ifdefs and add the 'drop_file' feature.
Files:      src/evalfunc.c, src/testing.c, src/testdir/test_gui.mnv

Patch 8.2.3068
Problem:    Unicode tables are slightly outdated.
Solution:   Update the tables for Unicode release 13. (Christian Brabandt
            closes #8430)
Files:      runtime/tools/unicode.mnv, src/mbyte.c

Patch 8.2.3069
Problem:    Error messages are spread out.
Solution:   Move some error messages to errors.h.  Use clearer names.
Files:      src/errors.h, src/globals.h, src/arglist.c, src/buffer.c,
            src/channel.c, src/eval.c, src/evalfunc.c, src/evalvars.c,
            src/evalwindow.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c,
            src/filepath.c, src/fold.c, src/getchar.c, src/indent.c,
            src/list.c, src/map.c, src/mark.c, src/normal.c, src/ops.c,
            src/optionstr.c, src/popupwin.c, src/quickfix.c, src/spellfile.c,
            src/textprop.c, src/typval.c, src/undo.c, src/userfunc.c,
            src/mnv9compile.c, src/window.c

Patch 8.2.3070
Problem:    Not enough testing for shell use.
Solution:   Add a bit more testing. (Yegappan Lakshmanan, closes #8469)
Files:      src/testdir/test_shell.mnv, src/testdir/test_startup.mnv

Patch 8.2.3071
Problem:    Shell options are not set properly for PowerShell.
Solution:   Use better option defaults. (Mike Williams, closes #8459)
Files:      runtime/doc/eval.txt, runtime/doc/options.txt,
            runtime/doc/os_dos.txt, src/fileio.c, src/misc2.c, src/option.c,
            src/os_win32.c, src/testdir/test_shell.mnv

Patch 8.2.3072
Problem:    The "zy" command does not work well when 'virtualedit' is set to
            "block". (Johann Höchtl)
Solution:   Make endspaces zero. (Christian Brabandt, closes #8468,
            closes #8448)
Files:      src/register.c, src/testdir/test_visual.mnv

Patch 8.2.3073
Problem:    When cursor is moved for block append wrong text is inserted.
Solution:   Calculate an offset. (Christian Brabandt, closes #8433,
            closes #8288)
Files:      src/ops.c, src/testdir/test_blockedit.mnv,
            src/testdir/test_visual.mnv

Patch 8.2.3074
Problem:    popup_atcursor() uses wrong position with concealing.
Solution:   Keep w_wcol in conceal_check_cursor_line(). (closes #8476)
Files:      src/screen.c, src/proto/screen.pro, src/normal.c, src/edit.c,
            src/ui.c, src/testdir/test_popupwin.mnv,
            src/testdir/dumps/Test_popupwin_atcursor_pos.dump

Patch 8.2.3075
Problem:    Xxd always reports an old version string. (Åsmund Ervik)
Solution:   Update the version string with the last known change date.
            (Jürgen Weigert, closes #8475)
Files:      src/xxd/xxd.c, src/testdir/test_xxd.mnv

Patch 8.2.3076
Problem:    MNV9: using try in catch block causes a hang.
Solution:   Save and restore the ec_in_catch flag. (closes #8478)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.3077
Problem:    MNV9: an error in a catch block is not reported.
Solution:   Put the "in catch" flag in the try stack. (closes #8478)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.3078
Problem:    MNV9: profile test fails.
Solution:   Make throw in :catch jump to :finally.
Files:      src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.3079
Problem:    Powershell core not supported by default.
Solution:   Set option defaults for "pwsh". (Mike Williams, closes #8481)
Files:      runtime/doc/eval.txt, runtime/doc/options.txt,
            runtime/doc/os_dos.txt, runtime/doc/os_win32.txt, src/fileio.c,
            src/misc2.c, src/option.c, src/os_win32.c,
            src/testdir/test_shell.mnv

Patch 8.2.3080
Problem:    Recover test fails on 32bit systems. (Ondřej Súkup)
Solution:   Detect 32/64 bit systems. (Yegappan Lakshmanan, closes #8485,
            closes #8479)
Files:      src/testdir/test_recover.mnv

Patch 8.2.3081
Problem:    Cannot catch errors in a channel command.
Solution:   Instead of skipping the error make it silent. (closes #8477)
Files:      src/channel.c

Patch 8.2.3082
Problem:    A channel command "echoerr" does not show anything.
Solution:   Do not use silent errors when using an "echoerr" command.
            (closes #8494)
Files:      src/channel.c, src/testdir/test_channel.py,
            src/testdir/test_channel.mnv

Patch 8.2.3083
Problem:    Crash when passing null string to charclass().
Solution:   Bail out when string pointer is NULL. (Christian Brabandt,
            closes #8498, closes #8260)
Files:      src/mbyte.c, src/testdir/test_functions.mnv

Patch 8.2.3084
Problem:    MNV9: builtin function argument types are not checked at compile
            time.
Solution:   Add argument types. (Yegappan Lakshmanan, closes #8503)
Files:      src/evalfunc.c, src/testdir/test_functions.mnv,
            src/testdir/test_glob2regpat.mnv,
            src/testdir/test_mnv9_builtin.mnv, src/testdir/test_mnv9_expr.mnv

Patch 8.2.3085
Problem:    JSONC files are not recognized.
Solution:   Recognize .jsonc files. (Izhak Jakov, closes #8500)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3086
Problem:    MNV9: breakpoint on "for" does not work.
Solution:   Use the right line number in ISN_DEBUG. (closes #8486)
Files:      src/mnv9compile.c, src/testdir/test_debugger.mnv

Patch 8.2.3087
Problem:    Gemtext files are not recognized.
Solution:   Recognize .gmi and .gemini files. (closes #8427)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3088
Problem:    With 'virtualedit' set to "block" Visual highlight is wrong after
            using "$".  (Marco Trosi)
Solution:   Do not set w_old_cursor_lcol to MAXCOL. (closes #8495)
Files:      src/drawscreen.c, src/testdir/test_visual.mnv,
            src/testdir/dumps/Test_visual_block_with_virtualedit.dump

Patch 8.2.3089
Problem:    Garbage collection has useless code.
Solution:   Bail out when aborting. (closes #8504)
Files:      src/userfunc.c

Patch 8.2.3090
Problem:    With concealing enabled and indirectly closing a fold the cursor
            may be somewhere in a folded line.
Solution:   Recompute the cursor position when the cursor line can be
            concealed. (closes #8480)
Files:      src/drawscreen.c

Patch 8.2.3091
Problem:    MNV9: default argument expression cannot use previous argument
Solution:   Correct argument index. (closes #8496)
Files:      src/mnv9compile.c, src/structs.h, src/testdir/test_mnv9_func.mnv

Patch 8.2.3092
Problem:    MNV9: builtin function test fails without the +channel feature.
Solution:   Check the +channel feature is supported. (Dominique Pellé,
            closes #8507)
Files:      runtime/doc/eval.txt, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3093
Problem:    tablabel_tooltip test fails with Athena. (Dominique Pellé)
Solution:   Skip the test when using Athena. (closes #8508)
Files:      src/testdir/test_gui.mnv, src/testdir/check.mnv

Patch 8.2.3094
Problem:    Test_popup_atcursor_pos() fails without the conceal feature.
Solution:   Add a check for the conceal feature. (Dominique Pellé,
            closes #8505)
Files:      src/testdir/test_popupwin.mnv

Patch 8.2.3095 (after 8.2.3088)
Problem:    With 'virtualedit' set to "block" block selection is wrong after
            using "$".  (Marco Trosi)
Solution:   Compute the longest selected line. (closes #8495)
Files:      src/drawscreen.c, src/testdir/test_visual.mnv,
            src/testdir/dumps/Test_visual_block_with_virtualedit2.dump

Patch 8.2.3096
Problem:    Temp files remain after running tests.
Solution:   Delete the right files. (Dominique Pellé, closes #8509)
Files:      src/testdir/test_debugger.mnv, src/testdir/test_lambda.mnv,
            src/testdir/test_visual.mnv


Patch 8.2.3097
Problem:    Crash when using "quit" at recovery prompt and autocommands are
            triggered.
Solution:   Block autocommands when creating an empty buffer to use as the
            current buffer. (closes #8506)
Files:      src/buffer.c, src/testdir/test_swap.mnv

Patch 8.2.3098
Problem:    Popup window test is flaky on MS-Windows with GUI.
Solution:   Skip the check in this situation.
Files:      src/testdir/test_popupwin.mnv

Patch 8.2.3099
Problem:    MNV9: missing catch/finally not reported at script level.
Solution:   Give an error. (closes #8487)
Files:      src/structs.h, src/ex_eval.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.3100
Problem:    MNV9: no error when using type with unknown number of arguments.
Solution:   Do not ignore argument count of -1. (closes #8492)
Files:      src/mnv9type.c, src/evalfunc.c, src/proto/evalfunc.pro,
            src/testdir/test_mnv9_assign.mnv, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.3101
Problem:    Missing function prototype for mnv_round().
Solution:   Add the prototype.
Files:      src/proto/float.pro

Patch 8.2.3102 (after 8.2.3097)
Problem:    Test for crash fix does not fail without the fix.
Solution:   Adjust the test sequence. (closes #8506)
Files:      src/testdir/test_swap.mnv

Patch 8.2.3103 (after 8.2.3102)
Problem:    Swap test may fail on some systems when jobs take longer to exit.
Solution:   Use different file names.
Files:      src/testdir/test_swap.mnv

Patch 8.2.3104
Problem:    MNV9: unspecified function type causes type error.
Solution:   Don't check type when min_argcount is negative. (issue #8492)
Files:      src/globals.h, src/mnv9type.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.3105
Problem:    MNV9: type of partial is wrong when it has arguments.
Solution:   Subtract arguments from the count. (issue #8492)
Files:      src/mnv9type.c, src/userfunc.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.3106
Problem:    MNV9: confusing line number reported for error.
Solution:   Use the start line number for the store instruction.
            (closes #8488)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.3107
Problem:    MNV9: error for arguments while type didn't specify arguments.
Solution:   Do not update that type to check when no argument count is
            specified. (closes #8492)
Files:      src/userfunc.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.3108
Problem:    Test for remote_foreground() fails. (Elimar Riesebieter)
Solution:   Check that $DISPLAY is set. (Christian Brabandt)
Files:      src/testdir/check.mnv, src/testdir/test_clientserver.mnv,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3109
Problem:    Check for $DISPLAY never fails.
Solution:   Use eval().
Files:      src/testdir/check.mnv

Patch 8.2.3110
Problem:    A pattern that matches the cursor position is a bit complicated.
Solution:   Use a dot to indicate the cursor line and column. (Christian
            Brabandt, closes #8497, closes #8179)
Files:      runtime/doc/pattern.txt, src/errors.h, src/regexp_bt.c,
            src/regexp_nfa.c, src/testdir/test_regexp_latin.mnv

Patch 8.2.3111
Problem:    MNV9: confusing error with extra whitespace before colon.
Solution:   Check for colon after white space. (closes #8513)
Files:      src/eval.c, src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.3112 (after 8.2.3090)
Problem:    With concealing enabled and indirectly closing a fold the cursor
            may be somewhere in a folded line when it is not on the first line
            of the fold.
Solution:   Check if the cursor is somewhere in the folded text.
Files:      src/drawscreen.c

Patch 8.2.3113
Problem:    No error when for loop variable shadows script variable.
Solution:   Check for the error. (closes #8512)
Files:      src/eval.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.3114
Problem:    Amiga-like systems: build error checking for running process
Solution:   Only build swapfile_process_running() on systems where it is
            actually used. (Ola Söder, closes #8519)
Files:      src/memline.c

Patch 8.2.3115
Problem:    Coverity complains about free_wininfo() use.
Solution:   Add a condition that "wip2" is not equal to "wip". (Neomnv #14996)
Files:      src/window.c

Patch 8.2.3116
Problem:    MNV9: crash when debugging a function with line continuation.
Solution:   Check for a NULL pointer. (closes #8521)
Files:      src/mnv9execute.c, src/testdir/test_debugger.mnv

Patch 8.2.3117
Problem:    MNV9: type not properly checked in for loop.
Solution:   Have items() return a list of lists.  Add runtime type checks.
            (closes #8515)
Files:      src/evalfunc.c, src/globals.h, src/mnv9compile.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.3118
Problem:    MNV9: "any" type not handled correctly in for loop.
Solution:   Change compile time check into runtime check. (closes #8516)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.3119
Problem:    Compiler warning for unused argument.
Solution:   Add UNUSED.
Files:      src/evalfunc.c

Patch 8.2.3120
Problem:    Crypt with sodium test fails on MS-Windows.
Solution:   Make the tests pass. (closes #8428)
Files:      src/testdir/test_crypt.mnv

Patch 8.2.3121
Problem:    'listchars' "exceeds" character appears in foldcolumn. Window
            separator is missing. (Leonid V.  Fedorenchik)
Solution:   Only draw the "exceeds" character in the text area.  Break the
            loop when not drawing the text. (closes #8524)
Files:      src/drawline.c, src/testdir/test_listchars.mnv,
            src/testdir/dumps/Test_listchars_01.dump,
            src/testdir/dumps/Test_listchars_02.dump,
            src/testdir/dumps/Test_listchars_03.dump,
            src/testdir/dumps/Test_listchars_04.dump,
            src/testdir/dumps/Test_listchars_05.dump

Patch 8.2.3122
Problem:    With 'nowrap' cursor position is unexpected in narrow window.
            (Leonid V.  Fedorenchik)
Solution:   Put cursor on the last non-empty line. (closes #8525)
Files:      src/move.c, src/testdir/test_listchars.mnv,
            src/testdir/dumps/Test_listchars_06.dump,
            src/testdir/dumps/Test_listchars_07.dump

Patch 8.2.3123
Problem:    MNV9: confusing error when using white space after option, before
            one of "!&<".
Solution:   Give a specific error. (issue #8408)
Files:      src/errors.h, src/option.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.3124
Problem:    MNV9: no error for white space between option and "=9".
Solution:   Check for extraneous white space. (issue #8408)
Files:      src/option.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.3125
Problem:    Variables are set but not used.
Solution:   Move the declarations to the block where they are used.
            (closes #8527)
Files:      src/regexp_nfa.c

Patch 8.2.3126
Problem:    MNV9: for loop error reports wrong line number.
Solution:   Save and restore the line number when evaluating the expression.
            (closes #8514)
Files:      src/ex_eval.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.3127
Problem:    MNV9: no error when adding number to list of string.
Solution:   Check the value type. (closes #8529)
Files:      src/list.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3128
Problem:    MNV9: uninitialized list does not get type checked.
Solution:   Set the type when initializing the variable. (closes #8529)
Files:      src/eval.c, src/evalvars.c, src/mnv9script.c,
            src/userfunc.c, src/proto/mnv9script.pro,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3129
Problem:    MNV9: imported uninitialized list does not get type checked.
Solution:   Get type from imported variable.
Files:      src/eval.c, src/evalvars.c, src/mnv9script.c,
            src/proto/mnv9script.pro, src/userfunc.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.3130
Problem:    MNV9: import test fails.
Solution:   Rename directory back to "import", use "p" to avoid an error when
            the directory already exists.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.3131
Problem:    MS-Windows: ipv6 channel test is very flaky in the GUI.
Solution:   Skip the test.
Files:      src/testdir/test_channel.mnv

Patch 8.2.3132
Problem:    Compiler warns for size_t to colnr_T conversion. (Randall W.
            Morris)
Solution:   Add a type cast.
Files:      src/drawscreen.c

Patch 8.2.3133
Problem:    MNV9: memory leak when add() fails.
Solution:   Allocate listitem_T after type check.
Files:      src/list.c

Patch 8.2.3134
Problem:    Crash when using typename() on a function reference. (Naohiro Ono)
Solution:   Initialize pointer to NULL. (closes #8531)
Files:      src/mnv9type.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3135
Problem:    MNV9: builtin function arguments not checked at compile time.
Solution:   Add more type checks. (Yegappan Lakshmanan, closes #8539)
Files:      src/channel.c, src/errors.h, src/evalfunc.c, src/proto/typval.pro,
            src/terminal.c, src/testdir/test_search.mnv,
            src/testdir/test_textprop.mnv, src/testdir/test_mnv9_builtin.mnv,
            src/testing.c, src/textprop.c, src/typval.c

Patch 8.2.3136
Problem:    No test for E187 and "No swap file".
Solution:   Add a test. (Dominique Pellé, closes #8540)
Files:      src/testdir/test_cd.mnv, src/testdir/test_swap.mnv

Patch 8.2.3137
Problem:    MNV9: no error when a line only has a variable name.
Solution:   Give an error when an expression is evaluated without an effect.
            (closes #8538)
Files:      src/ex_eval.c, src/errors.h, src/mnv9compile.c,
            src/testdir/test_mnv9_script.mnv, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.3138 (after 8.2.3137)
Problem:    Debugger test fails.
Solution:   Adjust eval command.
Files:      src/testdir/test_debugger.mnv

Patch 8.2.3139
Problem:    Functions for string manipulation are spread out.
Solution:   Move string related functions to a new source file. (Yegappan
            Lakshmanan, closes #8470)
Files:      Filelist, src/Make_ami.mak, src/Make_cyg_ming.mak,
            src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md,
            src/eval.c, src/evalfunc.c, src/mbyte.c, src/misc1.c, src/misc2.c,
            src/proto.h, src/proto/eval.pro, src/proto/evalfunc.pro,
            src/proto/mbyte.pro, src/proto/misc1.pro, src/proto/misc2.pro,
            src/proto/strings.pro, src/strings.c

Patch 8.2.3140 (after 8.2.3131)
Problem:    MS-Windows: ipv6 channel test is very flaky also without the GUI.
Solution:   Skip the test also without the GUI.
Files:      src/testdir/test_channel.mnv

Patch 8.2.3141
Problem:    No error when using :complete for :command without -nargs.
Solution:   Give an error. (Martin Tournoij, closes #8544, closes #8541)
Files:      src/usercmd.c, src/errors.h, src/testdir/test_usercommands.mnv

Patch 8.2.3142
Problem:    MNV9: type check for has_key() argument is too strict.
Solution:   Also allow for a number key argument. (closes #8542)
Files:      src/evalfunc.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3143
Problem:    MNV9: A lambda may be compiled with the wrong context if it is
            called from a profiled function.
Solution:   Compile the lambda with and without profiling. (closes #8543)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.3144
Problem:    MNV9: no error when using an invalid value for a line number.
Solution:   Give an error if the string value is not recognized.
            (closes #8536)
Files:      src/errors.h, src/eval.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3145
Problem:    MNV9: profile test fails without profile feature.
Solution:   Check the profile feature is present.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.3146
Problem:    MNV9: line number wrong for :execute argument.
Solution:   Use the line number of the :execute command itself. (closes #8537)
Files:      src/eval.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.3147
Problem:    MNV9: profiling does not work with a nested function.
Solution:   Also compile a nested function without profiling. (closes #8543)
            Handle that compiling may cause the table of compiled functions to
            change.
Files:      src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.3148
Problem:    MNV9: function arg type check does not handle base offset.
Solution:   Take the base offset into account when checking builtin function
            argument types.
Files:      src/evalfunc.c, src/mnv9compile.c,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3149 (after 8.2.3141)
Problem:    Some plugins have a problem with the error check for using
            :command with -complete but without -nargs.
Solution:   In legacy script only give a warning message.
Files:      src/usercmd.c, src/message.c, src/proto/message.pro,
            src/testdir/test_usercommands.mnv

Patch 8.2.3150
Problem:    MNV9: argument types are not checked at compile time.
Solution:   Add more type checks. (Yegappan Lakshmanan, closes #8545)
Files:      src/evalfunc.c, src/testing.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3151
Problem:    MNV9: profiling fails if nested function is also profiled.
Solution:   Use the compile type from the outer function. (closes #8543)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.3152
Problem:    MNV9: accessing "s:" results in an error.
Solution:   Do not try to lookup a script variable for "s:". (closes #8549)
Files:      src/evalvars.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.3153
Problem:    URLs with a dash in the scheme are not recognized.
Solution:   Allow for a scheme with a dash, but not at the start or end.
            (Tsuyoshi CHO, closes #8299)
Files:      src/misc1.c, src/testdir/test_buffer.mnv

Patch 8.2.3154
Problem:    MNV9: some type checks for builtin functions fail.
Solution:   Correct the type checks. (Yegappan Lakshmanan, closes #8551,
            closes #8550)
Files:      src/evalfunc.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3155
Problem:    Some option related code not covered by tests.
Solution:   Add a few test cases. (Dominique Pellé, closes #8552)
Files:      src/testdir/test_options.mnv, src/testdir/test_set.mnv

Patch 8.2.3156
Problem:    MNV9: term_getansicolors() test fails without +termguicolors.
Solution:   Add a check for the feature. (Dominique Pellé, closes #8555)
Files:      src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3157
Problem:    Crypt test may fail on MS-Windows.
Solution:   Ignore "[unix]" in the file message. (Christian Brabandt,
            closes #8561)
Files:      src/testdir/test_crypt.mnv

Patch 8.2.3158
Problem:    Strange error message when using islocked() with a number.
            (Yegappan Lakshmanan)
Solution:   Check that the name is empty.
Files:      src/evalfunc.c, src/testdir/test_functions.mnv

Patch 8.2.3159
Problem:    Cursor displayed in wrong position after deleting line.
Solution:   When deleting lines do not approximate botline. (fixes #8559)
Files:      src/change.c

Patch 8.2.3160
Problem:    'breakindent' does not work well for bulleted and numbered lists.
Solution:   Add the "list" entry to 'breakindentopt'. (Christian Brabandt,
            closes #8564, closes #1661)
Files:      runtime/doc/options.txt, src/indent.c, src/structs.h,
            src/testdir/test_breakindent.mnv

Patch 8.2.3161
Problem:    MNV9: no error when reltime() has invalid arguments.
Solution:   Add an error. (closes #8562)
Files:      src/time.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3162
Problem:    MNV9: argument types are not checked at compile time.
Solution:   Add more type checks. (Yegappan Lakshmanan, closes #8560)
Files:      runtime/doc/channel.txt, src/clientserver.c, src/cmdhist.c,
            src/errors.h, src/evalfunc.c, src/evalwindow.c, src/filepath.c,
            src/globals.h, src/popupwin.c, src/proto/typval.pro, src/sign.c,
            src/strings.c, src/terminal.c, src/testdir/test_normal.mnv,
            src/testdir/test_reltime.mnv, src/testdir/test_mnv9_builtin.mnv,
            src/testdir/test_mnv9_expr.mnv, src/testing.c, src/textprop.c,
            src/time.c, src/typval.c

Patch 8.2.3163
Problem:    Location list window may open a wrong file.
Solution:   Also update the qf_ptr field. (Wei-Chung Wen, closes #8565,
            closes #8566)
Files:      src/quickfix.c, src/testdir/test_quickfix.mnv

Patch 8.2.3164
Problem:    MS-Windows: reported version lacks patchlevel, causing some update
            tools to update too often. (Klaus Frank)
Solution:   Add the patchlevel to the version. (Christian Brabandt)
Files:      src/dosinst.c

Patch 8.2.3165
Problem:    MNV9: in a || expression the error line number may be wrong.
Solution:   Save and restore the line number when checking the type.
            (closes #8569)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.3166
Problem:    MNV9: nested autoload call error overruled by "Unknown error".
Solution:   Check need_rethrow before giving an "Unknown error".
            (closes #8568)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.3167
Problem:    Get E12 in a job callback when searching for tags. (Andy Stewart)
Solution:   Use the sandbox only for executing a command, not for searching.
            (closes #8511)
Files:      src/tag.c

Patch 8.2.3168
Problem:    MNV9: type error for constant of type any.
Solution:   Do add a runtime type check if a constant has type any.
            (closes #8570)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.3169
Problem:    MNV9: cannot handle nested inline function.
Solution:   Check for nested inline function. (closes #8575)
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.3170
Problem:    Illegal memory access in test.
Solution:   Check pointer is not before the start of the line.
Files:      src/userfunc.c

Patch 8.2.3171
Problem:    Another illegal memory access in test.
Solution:   Check pointer is after the start of the line.
Files:      src/userfunc.c

Patch 8.2.3172
Problem:    MzScheme test fails. (Christian Brabandt)
Solution:   Correct function name.
Files:      src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3173
Problem:    MNV9: argument types are not checked at compile time.
Solution:   Add more type checks. (Yegappan Lakshmanan, closes #8581)
Files:      src/diff.c, src/errors.h, src/evalfunc.c, src/globals.h,
            src/job.c, src/proto/typval.pro, src/strings.c, src/terminal.c,
            src/testdir/test_mnv9_builtin.mnv, src/typval.c

Patch 8.2.3174
Problem:    MNV9: "legacy undo" finds "undo" variable.
Solution:   Do not pass lookup function to find_ex_command(). (closes #8563)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.3175
Problem:    MNV9: using illegal pointer with inline function inside a lambda.
Solution:   Clear eval_tofree_cmdline when advancing to the next line.
            (closes #8578)
Files:      src/eval.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.3176
Problem:    MNV9: no type error for comparing number with string.
Solution:   Add a runtime type check. (closes #8571)
Files:      src/typval.c, src/errors.h, src/testdir/test_mnv9_expr.mnv

Patch 8.2.3177
Problem:    MNV9: can not use "for _ in expr" at script level.
Solution:   Skip assignment if the loop variable is "_".
Files:      src/eval.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.3178
Problem:    MNV9: the file name of an :import cannot be an expression.
Solution:   Accept an expression that results in a string.  Do not support
            :import in a function.
Files:      runtime/doc/mnv9.txt, src/mnv9script.c, src/mnv9compile.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.3179
Problem:    MNV9: cannot assign to an imported variable at script level.
Solution:   Lookup imported items when assigning.
Files:      src/evalvars.c, src/errors.h, src/eval.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.3180
Problem:    MNV9: memory leak when concatenating to an imported string.
Solution:   Clear the destination.
Files:      src/evalvars.c

Patch 8.2.3181
Problem:    MNV9: builtin function test fails without channel feature.
Solution:   Add feature checks. (Dominique Pellé, closes #8586)  Make feature
            checks more consistent.
Files:      src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3182
Problem:    MNV9: crash when using removing items from a constant list.
            (Yegappan Lakshmanan)
Solution:   When a list was allocated with items copy them.
Files:      src/list.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3183
Problem:    Duplicate error numbers.
Solution:   Adjust the error numbers.
Files:      src/errors.h, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3184
Problem:    Cannot add a digraph with a leading space.  It is not easy to list
            existing digraphs.
Solution:   Add setdigraph(), setdigraphlist(), getdigraph() and
            getdigraphlist(). (closes #8580)
Files:      runtime/doc/digraph.txt, runtime/doc/eval.txt,
            runtime/doc/usr_41.txt, src/digraph.c, src/evalfunc.c,
            src/ex_docmd.c, src/globals.h, src/errors.h,
            src/proto/digraph.pro, src/testdir/test_digraph.mnv

Patch 8.2.3185
Problem:    MNV9: start of inline function found in comment line.
Solution:   Do not check for inline function in comment line. (closes #8589)
Files:      src/userfunc.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.3186
Problem:    MNV9: not all failures for import tested
Solution:   Test more import failures
Files:      src/errors.h, src/evalvars.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.3187
Problem:    MNV9: popup timer callback is not compiled.
Solution:   Compile the callback when creating the timer.
Files:      src/mnv9compile.c, src/proto/mnv9compile.pro, src/popupwin.c

Patch 8.2.3188
Problem:    MNV9: argument types are not checked at compile time.
Solution:   Add several more type checks, also at runtime. (Yegappan
            Lakshmanan, closes #8587)
Files:      src/blob.c, src/channel.c, src/clientserver.c, src/cmdexpand.c,
            src/cmdhist.c, src/dict.c, src/diff.c, src/errors.h, src/eval.c,
            src/evalbuffer.c, src/evalfunc.c, src/evalvars.c,
            src/evalwindow.c, src/filepath.c, src/globals.h, src/insexpand.c,
            src/job.c, src/list.c, src/map.c, src/match.c,
            src/proto/typval.pro, src/quickfix.c, src/search.c, src/sign.c,
            src/strings.c, src/terminal.c, src/testdir/test_blob.mnv,
            src/testdir/test_gui.mnv, src/testdir/test_mnv9_builtin.mnv,
            src/testing.c, src/textprop.c, src/time.c, src/typval.c

Patch 8.2.3189
Problem:    MNV9: error when using "try|".
Solution:   Allow for "|" right after a command.
Files:      src/ex_docmd.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.3190
Problem:    Error messages are spread out.
Solution:   Move error messages to errors.h and give them a clear name.
Files:      src/globals.h, src/errors.h, src/buffer.c, src/debugger.c,
            src/digraph.c, src/edit.c, src/ex_cmds.c, src/ex_cmds2.c,
            src/ex_docmd.c, src/ex_eval.c, src/gui.c, src/list.c, src/main.c,
            src/map.c, src/match.c, src/quickfix.c, src/regexp.c,
            src/regexp_bt.c, src/regexp_nfa.c, src/register.c, src/search.c,
            src/session.c, src/spell.c, src/syntax.c, src/time.c,
            src/userfunc.c, src/mnv9execute.c, src/window.c

Patch 8.2.3191
Problem:    MNV9: not enough code is tested.
Solution:   Use CheckLegacyAndMNV9Success() in more places.  Fix uncovered
            problems.
Files:      src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_listdict.mnv

Patch 8.2.3192 (after 8.2.3190)
Problem:    Build failure with small version (Tony Mechelynck).
Solution:   Remove stray #ifdef.
Files:      src/errors.h

Patch 8.2.3193
Problem:    screenpos() is wrong when the last line is partially visible and
            'display' is "lastline".
Solution:   Also compute the position for a partially visible line.
            (closes #8599)
Files:      src/move.c, src/testdir/test_cursor_func.mnv

Patch 8.2.3194
Problem:    MNV9: argument types are not checked at compile time.
Solution:   Add several more type checks, simplify some. (Yegappan
            Lakshmanan, closes #8598)
Files:      src/diff.c, src/evalbuffer.c, src/evalfunc.c, src/job.c,
            src/proto/typval.pro, src/sign.c, src/terminal.c,
            src/testdir/test_mnv9_builtin.mnv, src/typval.c

Patch 8.2.3195
Problem:    MNV9: unclear error when passing too many arguments to lambda.
Solution:   Pass the expression itself instead of "[expression]".
            (closes #8604)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.3196
Problem:    MNV9: bool expression with numbers only fails at runtime.
Solution:   Check constant to be bool at compile time. (closes #8603)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.3197
Problem:    Error messages are spread out.
Solution:   Move a few more error messages to errors.h.
Files:      src/globals.h, src/errors.h, src/edit.c, src/ex_cmds.c,
            src/ex_docmd.c, src/evalvars.c, src/option.c, src/quickfix.c,
            src/regexp_bt.c, src/regexp_nfa.c, src/regexp.c, src/undo.c,
            src/mnv9compile.c, src/mnv9script.c

Patch 8.2.3198
Problem:    Cannot use 'formatlistpat' for breakindent.
Solution:   Use a negative list indent. (Maxim Kim, closes #8594)
Files:      runtime/doc/options.txt, src/indent.c,
            src/testdir/test_breakindent.mnv

Patch 8.2.3199
Problem:    MNV9: execution speed can be improved.
Solution:   Make the break counter static.
Files:      src/mnv9execute.c

Patch 8.2.3200
Problem:    MNV9: hard to guess where a type error is given.
Solution:   Add the function name where possible. (closes #8608)
Files:      src/dict.c, src/proto/dict.pro, src/eval.c, src/list.c,
            src/mnv9compile.c, src/mnv9execute.c, src/structs.h,
            src/mnv9type.c, src/proto/mnv9type.pro, src/if_py_both.h,
            src/errors.h, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3201 (after 8.2.3200)
Problem:    Crash in test.
Solution:   Initialize "where".
Files:      src/eval.c, src/evalvars.c

Patch 8.2.3202
Problem:    MNV9: tests are only executed for legacy script.
Solution:   Run more tests also for MNV9 script.  Fix uncovered problems.
Files:      src/mnv9execute.c, src/ex_docmd.c, src/testdir/test_listdict.mnv

Patch 8.2.3203
Problem:    MNV9: compiled string expression causes type error. (Yegappan
            Lakshmanan)
Solution:   Remove the string type from the stack.
Files:      src/mnv9compile.c, src/evalfunc.c

Patch 8.2.3204
Problem:    Display garbled when 'cursorline' is set and lines wrap. (Gabriel
            Dupras)
Solution:   Avoid inserting lines twice. (closes #7255)
Files:      src/drawscreen.c, src/testdir/test_cursorline.mnv,
            src/testdir/dumps/Test_cursorline_redraw_1.dump,
            src/testdir/dumps/Test_cursorline_redraw_2.dump

Patch 8.2.3205
Problem:    Coverity reports a null pointer dereference.
Solution:   Change the logic to avoid Coverity gets confused.
Files:      src/mnv9compile.c

Patch 8.2.3206
Problem:    MNV9: argument types are not checked at compile time.
Solution:   Add several more type checks. (Yegappan Lakshmanan, closes #8611)
Files:      runtime/doc/eval.txt, src/blob.c, src/cmdhist.c, src/dict.c,
            src/errors.h, src/evalfunc.c, src/filepath.c, src/globals.h,
            src/job.c, src/list.c, src/match.c, src/misc1.c, src/popupwin.c,
            src/proto/typval.pro, src/sign.c, src/terminal.c,
            src/testdir/test_blob.mnv, src/testdir/test_mnv9_builtin.mnv,
            src/typval.c

Patch 8.2.3207
Problem:    MNV9: crash when compiling string fails. (Yegappan Lakshmanan)
Solution:   Adjust the type stack length.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3208
Problem:    Dynamic library load error does not mention why it failed.
Solution:   Add the error message. (Martin Tournoij, closes #8621)
Files:      src/globals.h, src/if_cscope.c, src/if_lua.c, src/if_mzsch.c,
            src/if_perl.xs, src/if_python.c, src/if_python3.c, src/if_ruby.c,
            src/if_tcl.c, src/mbyte.c, src/os_win32.c, src/proto/os_win32.pro,
            src/terminal.c

Patch 8.2.3209
Problem:    MNV9: lambda doesn't find block-local variable.
Solution:   Adjust how a script-local variable is found. (closes #8614)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.3210
Problem:    MNV9: searchpair() sixth argument is compiled. (Yegappan
            Lakshmanan)
Solution:   Only compile the fifth argument.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3211
Problem:    MNV9: argument types are not checked at compile time.
Solution:   Add several more type checks. Fix type check for matchaddpos().
            (Yegappan Lakshmanan, closes #8619)
Files:      src/channel.c, src/evalfunc.c, src/evalvars.c, src/if_cscope.c,
            src/job.c, src/proto/typval.pro,
            src/testdir/test_mnv9_builtin.mnv, src/time.c, src/typval.c

Patch 8.2.3212
Problem:    MNV9: execution speed can be improved.
Solution:   Use __builtin_expect() to have the compiler produce better code.
            (Dominique Pellé, closes #8613)
Files:      src/mnv9execute.c

Patch 8.2.3213
Problem:    NOCOMPOUNDSUGS entry in spell file not tested.
Solution:   Add a test. (Dominique Pellé, closes #8624)
Files:      src/testdir/test_spellfile.mnv

Patch 8.2.3214
Problem:    MS-Windows: passing /D does not set the install location.
Solution:   Adjust how the installer uses $MNV. Update the documentation.
            (Christian Brabandt, Ken Takata, closes #8605)
Files:      nsis/gmnv.nsi, runtime/doc/os_win32.txt

Patch 8.2.3215
Problem:    MNV9: argument types are not checked at compile time.
Solution:   Add several more type checks. Sort the argument lists.
            (Yegappan Lakshmanan, closes #8626)
Files:      src/change.c, src/evalfunc.c, src/filepath.c, src/sound.c,
            src/testdir/test_gui.mnv, src/testdir/test_mnv9_builtin.mnv,
            src/testing.c

Patch 8.2.3216
Problem:    MNV9: crash when using variable in a loop at script level.
Solution:   Do not clear the variable if a function was defined.
            Do not create a new entry in sn_var_vals every time.
            (closes #8628)
Files:      src/eval.c, src/ex_eval.c, src/mnv9script.c, src/userfunc.c,
            src/evalvars.c, src/structs.h

Patch 8.2.3217 (after 8.2.3216)
Problem:    Build failure.
Solution:   Add missing changes.
Files:      src/globals.h

Patch 8.2.3218
Problem:    When using xchacha20 crypt undo file is not removed.
Solution:   Reset 'undofile' and delete the file. (Christian Brabandt,
            closes #8630, closes #8467)
Files:      src/bufwrite.c, src/crypt.c, src/proto/undo.pro,
            src/testdir/test_crypt.mnv, src/undo.c

Patch 8.2.3219
Problem:    :find searches non-existing directories.
Solution:   Check the path is not "..".  Update help. (Christian Brabandt,
            closes #8612, closes #8533)
Files:      runtime/doc/editing.txt, src/findfile.c,
            src/testdir/test_findfile.mnv

Patch 8.2.3220
Problem:    Test_term_setansicolors() fails in some configurations.
Solution:   Check available features. (Dominique Pellé, closes #8636)
Files:      src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3221
Problem:    MNV9: argument types are not checked at compile time.
Solution:   Add several more type checks. (Yegappan Lakshmanan, closes #8632)
Files:      src/evalfunc.c, src/popupwin.c, src/proto/typval.pro,
            src/testdir/test_assert.mnv, src/testdir/test_mnv9_builtin.mnv,
            src/testdir/test_mnv9_script.mnv, src/testing.c, src/typval.c

Patch 8.2.3222
Problem:    MNV9: cannot use loop variable later as lambda argument.
Solution:   When not in function context check the current block ID.
            (closes #8637)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.3223
Problem:    MNV: using {} block in autoloaded omnifunc fails.
Solution:   Allow using {} block when text is locked. (closes #8631)
Files:      src/ex_cmds.h, src/testdir/test_ins_complete.mnv

Patch 8.2.3224
Problem:    Cannot call script-local function after :mnv9cmd. (Christian J.
            Robinson)
Solution:   Skip over "<SNR>123".
Files:      src/mnv9compile.c, src/eval.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.3225
Problem:    Incsearch highlighting is attempted halfway a mapping.
Solution:   Only do incsearch highlighting if keys were typed or there is no
            more typeahead.
Files:      src/ex_getln.c

Patch 8.2.3226
Problem:    New digraph functions use old naming scheme.
Solution:   Use the digraph_ prefix. (Hirohito Higashi, closes #8642)
Files:      runtime/doc/digraph.txt, runtime/doc/eval.txt,
            runtime/doc/usr_41.txt, src/digraph.c, src/edit.c, src/errors.h,
            src/evalfunc.c, src/proto/digraph.pro,
            src/testdir/test_digraph.mnv

Patch 8.2.3227
Problem:    'virtualedit' can only be set globally.
Solution:   Make 'virtualedit' global-local. (Gary Johnson, closes #8638)
Files:      runtime/doc/options.txt, src/buffer.c, src/change.c,
            src/drawscreen.c, src/edit.c, src/misc2.c, src/normal.c,
            src/ops.c, src/option.c, src/option.h, src/optiondefs.h,
            src/optionstr.c, src/proto/option.pro, src/register.c,
            src/structs.h, src/testdir/test_virtualedit.mnv

Patch 8.2.3228
Problem:    Cannot use a simple block for the :command argument. (Maarten
            Tournoij)
Solution:   Recognize a simple {} block. (issue #8623)
Files:      runtime/doc/map.txt, src/misc2.c, src/proto/misc2.pro,
            src/usercmd.c, src/testdir/test_usercommands.mnv

Patch 8.2.3229
Problem:    MNV9: runtime and compile time type checks are not the same.
Solution:   Add more runtime type checks for builtin functions. (Yegappan
            Lakshmanan, closes #8646)
Files:      src/arglist.c, src/change.c, src/channel.c, src/cindent.c,
            src/clientserver.c, src/cmdhist.c, src/dict.c, src/diff.c,
            src/digraph.c, src/errors.h, src/eval.c, src/evalbuffer.c,
            src/evalfunc.c, src/evalwindow.c, src/ex_docmd.c, src/ex_getln.c,
            src/filepath.c, src/findfile.c, src/float.c, src/fold.c,
            src/getchar.c, src/indent.c, src/insexpand.c, src/job.c,
            src/json.c, src/list.c, src/mark.c, src/match.c, src/mbyte.c,
            src/menu.c, src/misc1.c, src/move.c, src/popupwin.c,
            src/proto/typval.pro, src/quickfix.c, src/search.c, src/sign.c,
            src/sound.c, src/strings.c, src/terminal.c,
            src/testdir/test_assert.mnv, src/testdir/test_blob.mnv,
            src/testdir/test_execute_func.mnv,
            src/testdir/test_float_func.mnv, src/testdir/test_functions.mnv,
            src/testdir/test_glob2regpat.mnv, src/testdir/test_listdict.mnv,
            src/testdir/test_mnv9_builtin.mnv,
            src/testdir/test_mnv9_script.mnv, src/testing.c, src/textprop.c,
            src/time.c, src/typval.c, src/undo.c

Patch 8.2.3230
Problem:    MNV9: type error when function return type is not known yet.
Solution:   When return type is unknown, use "any". (closes #8644)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3231
Problem:    Build failure with small features.
Solution:   Adjust #ifdef.
Files:      src/errors.h

Patch 8.2.3232 (after 8.2.3229)
Problem:    system() does not work without a second argument.
Solution:   Do not require a second argument. (Yegappan Lakshmanan,
            closes #8651, closes #8650)
Files:      src/misc1.c, src/proto/typval.pro,
            src/testdir/test_mnv9_builtin.mnv, src/typval.c

Patch 8.2.3233
Problem:    prop_list() and prop_find() do not indicate the buffer for the
            used type.
Solution:   Add "type_bufnr" to the results. (closes #8647)
Files:      runtime/doc/textprop.txt, src/testdir/test_textprop.mnv,
            src/textprop.c

Patch 8.2.3234
Problem:    Crash when printing long string with Lua.
Solution:   Remove lua_pop(). (Martin Tournoij, closes #8648)
Files:      src/if_lua.c, src/testdir/test_lua.mnv

Patch 8.2.3235
Problem:    Cannot use lambda in {} block in user command. (Martin Tournoij)
Solution:   Do not go over the end of the lambda.
Files:      src/userfunc.c, src/testdir/test_usercommands.mnv

Patch 8.2.3236
Problem:    mode() does not indicate using CTRL-O in Select mode.
Solution:   Use "vs" and similar. (closes #8640)
Files:      runtime/doc/eval.txt, src/globals.h, src/misc1.c, src/normal.c,
            src/testdir/test_functions.mnv

Patch 8.2.3237
Problem:    When a builtin function gives an error processing continues.
Solution:   In MNV9 script return FAIL in get_func_tv().
Files:      src/userfunc.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.3238
Problem:    MNV9: error message does not indicate the location.
Solution:   Add the relevant text. (issue #8634)
Files:      src/errors.h, src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.3239
Problem:    MNV9: no error using heredoc for a number variable.
Solution:   Add a type check. (closes #8627)
Files:      src/mnv9compile.c, src/evalvars.c,
            src/testdir/test_mnv9_assign.mnv

Patch 8.2.3240
Problem:    Lua print() does not work properly.
Solution:   Put back lua_pop().
Files:      src/if_lua.c, src/testdir/test_lua.mnv

Patch 8.2.3241
Problem:    MNV9: memory leak when function reports an error.
Solution:   Clear the return value.
Files:      src/userfunc.c

Patch 8.2.3242
Problem:    MNV9: valgrind reports leaks in builtin function test.
Solution:   Do not start a job.
Files:      src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3243
Problem:    MS-Windows: the "edit with multiple MNV" choice is not that
            useful.
Solution:   Change it to "Edit with multiple tabs". (Michael Soyka,
            closes #8645)
Files:      src/GmnvExt/gmnvext.cpp, src/GmnvExt/gmnvext.h

Patch 8.2.3244
Problem:    Lua 5.3 print() with a long string crashes.
Solution:   Use a growarray instead of a Lua buffer. (Yegappan Lakshmanan,
            closes #8655)
Files:      src/if_lua.c, src/misc2.c, src/proto/misc2.pro

Patch 8.2.3245
Problem:    The crypt key may appear in a swap partition.
Solution:   When using xchacha20 use sodium_mlock(). (Christian Brabandt,
            closes #8657)
Files:      src/buffer.c, src/crypt.c, src/errors.h, src/fileio.c,
            src/memline.c, src/mnv.h

Patch 8.2.3246
Problem:    Memory use after free.
Solution:   When clearing a string option set the pointer to "empty_option".
Files:      src/option.c

Patch 8.2.3247
Problem:    Using uninitialized memory when checking for crypt method.
Solution:   Check the header length before using the salt and seed.
Files:      src/fileio.c

Patch 8.2.3248
Problem:    MNV9: error message for wrong input uses wrong line number.
Solution:   Use the line number of the start of the command. (issue #8653)
Files:      src/mnv9script.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.3249
Problem:    MNV9: error for re-imported function with default argument.
Solution:   Do not check argument type if it is still unknown. (closes #8653)
Files:      src/mnv9type.c, src/proto/mnv9type.pro, src/mnv9script.c,
            src/mnv.h, src/eval.c, src/mnv9execute.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.3250
Problem:    MS-Windows: cannot build with libsodium.
Solution:   Change FEAT_SODIUM into HAVE_SODIUM. (Christian Brabandt,
            closes #8668, closes #8663)
Files:      src/Make_mvc.mak

Patch 8.2.3251
Problem:    Listing builtin_gui as an available terminal is confusing.
Solution:   Do not list builtin_gui. (Christian Brabandt, closes #8669,
            closes #8661)
Files:      src/term.c, src/testdir/test_termcodes.mnv

Patch 8.2.3252
Problem:    Duplicated code for adding buffer lines.
Solution:   Move code to a common function.  Also move map functions to map.c.
            (Yegappan Lakshmanan, closes #8665)
Files:      src/evalbuffer.c, src/evalfunc.c, src/map.c, src/proto/map.pro

Patch 8.2.3253
Problem:    Channel test fails randomly.
Solution:   Add a sleep after sending the "echoerr" command. (Michael Soyka)
Files:      src/testdir/test_channel.mnv, src/testdir/test_channel.py

Patch 8.2.3254
Problem:    win_gettype() does not recognize a quickfix window.
Solution:   Add "quickfix" and "loclist". (Yegappan Lakshmanan, closes #8676)
Files:      runtime/doc/eval.txt, src/evalwindow.c, src/misc2.c,
            src/testdir/test_quickfix.mnv

Patch 8.2.3255
Problem:    ci" finds following string but ci< and others don't.
Solution:   When not inside an object find the start. (Connor Lane Smit,
            closes #8670)
Files:      src/search.c, src/testdir/test_textobjects.mnv, src/textobject.c

Patch 8.2.3256
Problem:    Executable test may fail on new Ubuntu system.
Solution:   Consider /usr/bin/cat and /bin/cat the same.
Files:      src/testdir/test_functions.mnv

Patch 8.2.3257
Problem:    Calling prop_find() with -1 for ID gives erroneous error. (Naohiro
            Ono)
Solution:   When passing -1 use -2. (closes #8674)
Files:      src/textprop.c, src/testdir/test_textprop.mnv

Patch 8.2.3258
Problem:    Error messages have the wrong text.
Solution:   Adjust the error message.
Files:      src/errors.h, src/typval.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3259
Problem:    When 'indentexpr' causes an error the did_throw flag may remain
            set.
Solution:   Reset did_throw and show the error. (closes #8677)
Files:      src/indent.c, src/ex_docmd.c, src/proto/ex_docmd.pro

Patch 8.2.3260
Problem:    Build failure with small features.
Solution:   Add #ifdef.
Files:      src/ex_docmd.c

Patch 8.2.3261
Problem:    MNV9: when compiling repeat(123, N) return type is number.
Solution:   Make return type a string. (closes #8664)
Files:      src/evalfunc.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3262
Problem:    Build failure when ABORT_ON_INTERNAL_ERROR is defined.
Solution:   Adjust how estack_len_before is used.
Files:      src/ex_docmd.c

Patch 8.2.3263
Problem:    MNV9: "..=" does not accept same types as the ".." operator.
Solution:   Convert value to string like ".." does. (issue #8664)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.3264 (after 8.2.3263)
Problem:    MNV9: assign test fails.
Solution:   Add missing change.
Files:      src/eval.c

Patch 8.2.3265
Problem:    Smartcase does not work correctly in very magic pattern.
Solution:   Take the magicness into account when skipping over regexp items.
            (Christian Brabandt, closes #8682, closes #7845)
Files:      src/search.c, src/testdir/test_search.mnv

Patch 8.2.3266
Problem:    MNV9: assignment with two indexes may check next line.
Solution:   Limit the number of lines to avoid checking the next line when
            assigning to a LHS subscript. (closes #8660)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.3267
Problem:    MNV9: crash when disassembling a function that uses a deleted
            script variable.
Solution:   Check the variable still exists. (closes #8683)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.3268
Problem:    Cannot use a block with :autocmd like with :command.
Solution:   Add support for a {} block after :autocmd. (closes #8620)
Files:      runtime/doc/autocmd.txt, runtime/doc/map.txt, src/autocmd.c,
            src/proto/autocmd.pro, src/usercmd.c, src/proto/usercmd.pro,
            src/ex_docmd.c, src/mnv.h, src/testdir/test_autocmd.mnv

Patch 8.2.3269
Problem:    MNV9: wrong argument check for partial. (Naohiro Ono)
Solution:   Handle getting return type without arguments. Correct the minimal
            number of arguments for what is included in the partial.
            (closes #8667)
Files:      src/evalfunc.c, src/mnv9type.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.3270
Problem:    prop_find() finds property with ID -2.
Solution:   Use a separate flag to indicate an ID was specified. (issue #8674)
Files:      src/textprop.c

Patch 8.2.3271
Problem:    MNV9: cannot use :command or :au with a block in a :def function.
Solution:   Recognize the start of the block.
Files:      src/userfunc.c, src/usercmd.c, src/ex_docmd.c,
            src/proto/ex_docmd.pro, src/mnv9compile.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.3272
Problem:    Cannot use id zero with prop_find(). (Naohiro Ono)
Solution:   Also accept id zero.
Files:      src/textprop.c, src/testdir/test_textprop.mnv

Patch 8.2.3273
Problem:    Autocmd test fails.
Solution:   Require white space before the "{" that starts a block.
Files:      src/userfunc.c

Patch 8.2.3274
Problem:    Macro for printf format check can be simplified.
Solution:   Add ATTRIBUTE_FORMAT_PRINTF(). (Dominique Pellé, issue #8635)
Files:      src/channel.c, src/gui_xim.c, src/if_mzsch.c, src/nbdebug.c,
            src/nbdebug.h, src/netbeans.c, src/proto.h, src/term.c, src/mnv.h,
            src/mnv9execute.c

Patch 8.2.3275
Problem:    Optimizer can use hints about ga_grow() normally succeeding.
Solution:   Use GA_GROW_FAILS() and GA_GROW_OK() in several places. (Dominique
            Pellé, issue #8635)
Files:      src/arglist.c, src/macros.h, src/mnv9execute.c, src/mnv9compile.c

Patch 8.2.3276
Problem:    MNV9: exists() can only be evaluated at runtime.
Solution:   Evaluate at compile time for option name literals. (closes #8437)
Files:      src/mnv9compile.c, src/evalfunc.c, src/proto/evalfunc.pro,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3277 (after 8.2.3276)
Problem:    MNV9: compiled has() does not work properly.
Solution:   Fix check for has() vs exists().
Files:      src/mnv9compile.c

Patch 8.2.3278
Problem:    MNV9: error when adding 1 to float.
Solution:   Accept t_number_bool. (closes #8687)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.3279
Problem:    MNV9: cannot use block in cmdline window.
Solution:   Add EX_CMDWIN to the CMD_block flags. (closes #8689)
Files:      src/ex_cmds.h, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.3280
Problem:    'virtualedit' local to buffer is not the best solution.
Solution:   Make it window-local. (Gary Johnson, closes #8685)
Files:      runtime/doc/options.txt, src/buffer.c, src/drawscreen.c,
            src/ops.c, src/option.c, src/option.h, src/optionstr.c,
            src/structs.h, src/testdir/test_virtualedit.mnv

Patch 8.2.3281
Problem:    MNV9: TODO items in tests can be taken care of.
Solution:   Update test for now working functionality. (closes #8694)
Files:      src/testdir/test_mnv9_assign.mnv, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.3282
Problem:    MNV9: error about using -complete without -nargs is confusing.
Solution:   Change the wording.
Files:      src/usercmd.c, src/errors.h

Patch 8.2.3283
Problem:    Julia filetype is not recognized
Solution:   Add filetype detection. (Christian Clason, closes #8700)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3284
Problem:    No error for insert() or remove() changing a locked blob.
Solution:   Check a blob is not locked before changing it. (Sean Dewar,
            closes #8696)
Files:      src/blob.c, src/errors.h, src/eval.c, src/list.c,
            src/proto/blob.pro, src/testdir/test_blob.mnv,
            src/testdir/test_eval_stuff.mnv

Patch 8.2.3285
Problem:    Scdoc filetype is not recognized.
Solution:   Add filetype detection. (Gregory Anders, closes #8701)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3286
Problem:    win_enter_ext() has too many boolean arguments.
Solution:   use one flags argument with defined values.
Files:      src/window.c

Patch 8.2.3287
Problem:    Channel events not handled in BufEnter autocommand.
Solution:   Decrement dont_parse_messages earlier. (Tim Pope, closes #8697)
Files:      src/window.c, src/testdir/test_channel.mnv

Patch 8.2.3288
Problem:    Cannot easily access namespace dictionaries from Lua.
Solution:   Add mnv.g, mnv.b, etc. (Yegappan Lakshmanan, closes #8693,
            from NeoMNV)
Files:      runtime/doc/if_lua.txt, src/if_lua.c, src/testdir/test_lua.mnv

Patch 8.2.3289 (after 8.2.3287)
Problem:    Compiler warning for unused variable with small features.
Solution:   Rearrange #ifdefs.
Files:      src/window.c

Patch 8.2.3290
Problem:    MNV9: compiling dict may use pointer after free and leak memory on
            failure.
Solution:   Pass a pointer to generate_PUSHS().  (Zdenek Dohnal, closes #8699)
Files:      src/mnv9compile.c

Patch 8.2.3291
Problem:    Coverity warns for not checking return value.
Solution:   If dict_add() fails give an error message.
Files:      src/if_lua.c, src/testdir/test_lua.mnv

Patch 8.2.3292
Problem:    Underscore in very magic pattern causes a hang.  Pattern with \V
            are case sensitive. (Yutao Yuan)
Solution:   Adjust condition for magicness and advance pointer. (Christian
            Brabandt, closes #8707, closes #8704, closes #8705)
Files:      src/search.c, src/testdir/test_search.mnv

Patch 8.2.3293
Problem:    Finding completions may cause an endless loop.
Solution:   Use a better way to check coming back where the search started.
            (Andy Gozas, closes #8672, closes #8671)
Files:      src/insexpand.c, src/testdir/Make_all.mak,
            src/testdir/test_ins_complete_no_halt.mnv

Patch 8.2.3294
Problem:    Lua: memory leak when adding dict item fails.
Solution:   Free the typval and the dict item.
Files:      src/if_lua.c

Patch 8.2.3295
Problem:    'cursorline' should not apply to 'breakindent'.
Solution:   Make 'cursorline' apply to 'breakindent' and 'showbreak'
            consistently. (closes #8684)
Files:      src/drawline.c, src/testdir/dumps/Test_Xcursorline_19.dump,
            src/testdir/dumps/Test_Xcursorline_20.dump,
            src/testdir/dumps/Test_Xcursorline_21.dump,
            src/testdir/dumps/Test_Xcursorline_22.dump,
            src/testdir/dumps/Test_Xcursorline_23.dump,
            src/testdir/dumps/Test_Xcursorline_24.dump,
            src/testdir/dumps/Test_diff_with_cul_bri_01.dump,
            src/testdir/dumps/Test_diff_with_cul_bri_02.dump,
            src/testdir/dumps/Test_diff_with_cul_bri_03.dump,
            src/testdir/dumps/Test_diff_with_cul_bri_04.dump,
            src/testdir/test_cursorline.mnv, src/testdir/test_diffmode.mnv

Patch 8.2.3296
Problem:    MNV9: cannot add a number to a float.
Solution:   Accept a number if the destination is a float. (closes #8703)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.3297
Problem:    Cannot use all commands inside a {} block after :command and
            :autocmd.
Solution:   Do consider \n to separate commands. (closes #8620)
Files:      runtime/doc/map.txt, src/ex_docmd.c, src/proto/ex_docmd.pro,
            src/ex_eval.c, src/proto/ex_eval.pro, src/eval.c, src/evalvars.c,
            src/ex_cmds.c, src/syntax.c, src/userfunc.c, src/mnv9compile.c,
            src/mnv9script.c, src/errors.h, src/testdir/test_autocmd.mnv,
            src/testdir/test_usercommands.mnv

Patch 8.2.3298
Problem:    Build failure with small features.
Solution:   Add #ifdef.
Files:      src/ex_docmd.c

Patch 8.2.3299
Problem:    MNV9: exists() does not handle much at compile time.
Solution:   Handle variable names. (closes #8688)
Files:      src/mnv9compile.c, src/evalfunc.c,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3300
Problem:    Lua: can only execute one MNV command at a time.  Not easy to get
            the MNV version.
Solution:   Make mnv.command() accept multiple lines.  Add mnv.version().
            (Yegappan Lakshmanan, closes #8716)
Files:      runtime/doc/if_lua.txt, src/evalfunc.c, src/if_lua.c,
            src/proto/evalfunc.pro, src/testdir/test_lua.mnv,
            src/testdir/test_shell.mnv

Patch 8.2.3301
Problem:    Memory allocation functions don't have their own place.
Solution:   Move memory allocation functions to alloc.c.  (Yegappan
            Lakshmanan, closes #8717)
Files:      Filelist, src/Make_ami.mak, src/Make_cyg_ming.mak,
            src/Make_mvc.mak, src/Make_vms.mms, src/Makefile, src/README.md,
            src/alloc.c, src/misc2.c, src/proto.h, src/proto/alloc.pro,
            src/proto/misc2.pro

Patch 8.2.3302
Problem:    Coverity is not run from github.
Solution:   Add a coverity script. (James McCoy, closes #8714)
Files:      .github/workflows/coverity.yml, Filelist

Patch 8.2.3303
Problem:    Some structures could be smaller.
Solution:   Rearrange members to reduce size. (Dominique Pellé, closes #8725)
Files:      src/structs.h, src/mnv9.h, src/mnv9execute.c

Patch 8.2.3304
Problem:    Popup window title with wide characters is truncated.
Solution:   Use mnv_strsize() instead of MB_CHARLEN(). (Naruhiko Nishino,
            closes #8721)
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv,
            src/testdir/dumps/Test_popupwin_multibytetitle.dump

Patch 8.2.3305
Problem:    MNV9: :finally in skipped block not handled correctly.
Solution:   Check whether :finally is in a skipped block. (Naruhiko Nishino,
            closes #8724)
Files:      src/ex_eval.c, src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.3306
Problem:    Unexpected "No matching autocommands".
Solution:   Do not give the message when aborting.  Mention the arguments in
            the message. (closes #8690)
Files:      src/autocmd.c,

Patch 8.2.3307
Problem:    MNV9: :echoconsole cannot access local variables.
Solution:   Handle like other :echo commands. (closes #8708)
Files:      src/mnv9compile.c, src/mnv9.h, src/mnv9execute.c,
            src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.3308
Problem:    MNV9: no runtime check for argument type if a function only has
            varargs.
Solution:   Also check argument types if uf_va_type is set. (closes #8715)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.3309
Problem:    MNV9: divide by zero causes a crash.
Solution:   Give an error message. (closes #8727)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.3310
Problem:    MNV9: unpack assignment does not mention source of type error.
Solution:   Mention the argument number. (closes #8719)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.3311
Problem:    MNV9: check for DO_NOT_FREE_CNT is very slow.
Solution:   Move to a separate function so it can be skipped by setting
            $TEST_SKIP_PAT.
Files:      src/testdir/test_mnv9_expr.mnv, src/testdir/runtest.mnv

Patch 8.2.3312
Problem:    MNV9: after "if false" line breaks in expression not skipped.
Solution:   Do parse the expression. (closes #8723)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.3313
Problem:    Unused code in win_exchange() and frame_remove().
Solution:   Remove the code. (closes #8728)
Files:      src/window.c

Patch 8.2.3314
Problem:    Behavior of exists() in a :def function is unpredictable.
Solution:   Add exists_compiled().
Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
            src/errors.h, src/mnv9compile.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3315
Problem:    Cannot use single quote in a float number for readability.
Solution:   Support single quotes like in numbers. (closes #8713)
Files:      src/typval.c, src/float.c, src/proto/float.pro, src/json.c,
            src/mnvinfo.c, src/testdir/test_float_func.mnv

Patch 8.2.3316 (after 8.2.3315)
Problem:    Float test fails.
Solution:   Add missing change.
Files:      src/evalfunc.c

Patch 8.2.3317
Problem:    MNV9: No error for missing white space before return type.
Solution:   Check for white space. (closes #8733)
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.3318
Problem:    MNV9: cannot ignore quotes in number at the command line.
Solution:   Use in_mnv9script() so that after ":mnv9" quotes are ignored.
Files:      src/typval.c, src/testdir/test_float_func.mnv

Patch 8.2.3319
Problem:    Coverity action on github does not work.
Solution:   Remove undefined $SRCDIR. (James McCoy, closes #8739)
Files:      .github/workflows/coverity.yml

Patch 8.2.3320
Problem:    Some local functions are not static.
Solution:   Add "static".  Move snprintf() related code to strings.c.
            (Yegappan Lakshmanan, closes #8734)
Files:      src/alloc.c, src/channel.c, src/dict.c, src/digraph.c, src/edit.c,
            src/ex_docmd.c, src/getchar.c, src/job.c, src/list.c,
            src/message.c, src/profiler.c, src/proto/channel.pro,
            src/proto/dict.pro, src/proto/digraph.pro, src/proto/edit.pro,
            src/proto/ex_docmd.pro, src/proto/getchar.pro, src/proto/job.pro,
            src/proto/list.pro, src/proto/profiler.pro, src/proto/spell.pro,
            src/proto/mnv9compile.pro, src/proto/mnv9script.pro,
            src/proto/mnv9type.pro, src/spell.c, src/strings.c,
            src/mnv9compile.c, src/mnv9script.c, src/mnv9type.c, src/window.c

Patch 8.2.3321
Problem:    Some code is not tested.
Solution:   Add some more tests. (Dominique Pellé, closes #8735)
Files:      src/testdir/test_excmd.mnv, src/testdir/test_writefile.mnv

Patch 8.2.3322
Problem:    MNV9: checking type of dict does not check member type.
Solution:   When getting the type of a typval use dv_type and lv_type.
            (closes #8732)
Files:      src/mnv9type.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3323
Problem:    Help tag for exists_compiled() is wrong. (Maxim Kim)
Solution:   Adjust the help tag.
Files:      runtime/doc/eval.txt

Patch 8.2.3324
Problem:    MNV9: Cannot use :silent with :endwhile.
Solution:   Allow for using the :silent modifier. (closes #8737)
Files:      src/ex_eval.c, src/ex_docmd.c, src/proto/ex_docmd.pro,
            src/mnv9compile.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.3325
Problem:    Digraph test fails when LC_ALL is set to "C".
Solution:   When restoring 'encoding' set it to "utf-8". (closes #8742)
Files:      src/testdir/test_digraph.mnv

Patch 8.2.3326
Problem:    MNV9: no error passing an empty list of the wrong type.
Solution:   Use ISN_SETTYPE also for "list<any>". (closes #8732)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.3327
Problem:    No check for sysconf() failing.
Solution:   If sysconf() fails use SIGSTKSZ for the signal stack size.
            (Zdenek Dohnal, closes #8743)
Files:      src/os_unix.c

Patch 8.2.3328
Problem:    Coverity error for not checking return value.
Solution:   Check value is not negative.
Files:      src/spellfile.c

Patch 8.2.3329
Problem:    v_lock not set when getting value of environment variable.
Solution:   Set v_lock to zero.
Files:      src/typval.c

Patch 8.2.3330
Problem:    Coverity reports using uninitialized field.
Solution:   Initialize the field early.
Files:      src/tag.c

Patch 8.2.3331
Problem:    Coverity warns for using value without boundary check.
Solution:   Add a boundary check.
Files:      src/mnvinfo.c

Patch 8.2.3332
Problem:    MNV9: cannot assign to range in list.
Solution:   Implement overwriting a list range.
Files:      src/mnv9compile.c, src/mnv9execute.c, src/list.c,
            src/proto/list.pro, src/eval.c, src/proto/eval.pro,
            src/testdir/test_listdict.mnv, src/testdir/test_mnv9_assign.mnv

Patch 8.2.3333
Problem:    MNV9: not enough tests run with MNV9.
Solution:   Run a few more tests in MNV9 script and :def function.
Files:      src/testdir/test_listdict.mnv, src/testdir/mnv9.mnv

Patch 8.2.3334
Problem:    MNV9: not enough tests run with MNV9.
Solution:   Run a few more tests in MNV9 script and :def function. Fix
            islocked().  Fix error for locking local variable.
Files:      src/evalfunc.c, src/mnv9compile.c, src/testdir/test_listdict.mnv

Patch 8.2.3335
Problem:    MNV9: not enough tests run with MNV9.
Solution:   Run a few more tests in MNV9 script and :def function.  Fix that
            items(), keys() and values() return zero for a NULL dict.
            Make join() return an empty string for a NULL list.  Make sort()
            return an empty list for a NULL list.
Files:      src/dict.c, src/list.c, src/testdir/test_listdict.mnv,
            src/testdir/mnv9.mnv

Patch 8.2.3336
Problem:    Behavior of negative index in list change changed. (Naruhiko
            Nishino)
Solution:   Only change it for MNV9 script. (closes #8749)
Files:      src/list.c, src/testdir/test_listdict.mnv

Patch 8.2.3337
Problem:    Completing "call g:" returns entries with just "g:". (Naohiro Ono)
Solution:   Skip empty strings returned by get_user_func_name(). (closes #8753)
Files:      src/evalfunc.c, src/testdir/test_cmdline.mnv

Patch 8.2.3338
Problem:    MNV9: no type check when assigning a list range. (Naohiro Ono)
Solution:   Check the member type. (closes #8750)
Files:      src/list.c, src/testdir/test_listdict.mnv

Patch 8.2.3339
Problem:    MNV9: cannot lock a member in a local dict.
Solution:   Get the local dict from the stack and pass it to get_lval().
Files:      src/eval.c, src/mnv9execute.c, src/mnv9compile.c, src/mnv9.h,
            src/globals.h, src/testdir/test_mnv9_cmd.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.3340 (after 8.2.3339)
Problem:    Accessing uninitialized pointer.
Solution:   Set pointer to NULL.
Files:      src/eval.c

Patch 8.2.3341
Problem:    MNV9: function call aborted despite try/catch. (Naohiro Ono)
Solution:   Ignore error caught by try/catch. (closes #8755)
Files:      src/evalvars.c, src/mnv9execute.c, src/message.c, src/time.c,
            src/globals.h, src/testdir/mnv9.mnv, src/testdir/test_mnv9_func.mnv

Patch 8.2.3342 (after 8.2.3341)
Problem:    Test for :let errors fails.
Solution:   Adjust the test and how to avoid a second error message.
Files:      src/evalvars.c, src/testdir/test_let.mnv

Patch 8.2.3343 (after 8.2.3342)
Problem:    MNV9: autoload test fails.
Solution:   Adjust the way the second message is avoided
Files:      src/evalvars.c

Patch 8.2.3344 (after 8.2.3343)
Problem:    MNVscript test fails.
Solution:   Have test verify first error instead of second
Files:      src/testdir/test_mnvscript.mnv

Patch 8.2.3345
Problem:    Some code not covered by tests.
Solution:   Add a few more tests. (Dominique Pellé, closes #8757)
Files:      src/testdir/test_arglist.mnv, src/testdir/test_cmdline.mnv,
            src/testdir/test_spellfile.mnv, src/testdir/test_substitute.mnv

Patch 8.2.3346
Problem:    MNV9: no error for using "." for concatenation after ":mnv9cmd".
            (Naohiro Ono)
Solution:   Check for MNV9 script syntax. (closes #8756)
Files:      src/eval.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.3347
Problem:    Check for legacy script is incomplete. (Naohiro Ono)
Solution:   Also check the :legacy modifier.  Use for string concatenation
            with "." and others (issue #8756)
Files:      src/mnv9script.c, src/proto/mnv9script.pro, src/eval.c,
            src/typval.c, src/evalvars.c, src/errors.h, src/ex_docmd.c,
            src/testdir/test_mnv9_cmd.mnv

Patch 8.2.3348
Problem:    line2byte() returns wrong value after adding textprop. (Yuto
            Kimura)
Solution:   Reduce the length by the size of the text property. (closes #8759)
Files:      src/memline.c, src/testdir/test_textprop.mnv

Patch 8.2.3349 (after 8.2.3347)
Problem:    Eval test for scriptversion fails.
Solution:   Fix off-by-one error.
Files:      src/mnv9script.c

Patch 8.2.3350 (after 8.2.3348)
Problem:    Text properties test fails on MS-Windows.
Solution:   Set fileformat to unix.
Files:      src/testdir/test_textprop.mnv

Patch 8.2.3351
Problem:    MNV9: using a function by name may delete it. (Naohiro Ono)
Solution:   Increment the reference count when using a function by name.
            (closes #8760)
Files:      src/evalvars.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.3352
Problem:    MNV9: error for nested :enddef has wrong line number.
Solution:   Compute the line number.
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.3353
Problem:    MNV9: type of argument for negate not checked at compile time.
Solution:   Add a compile time check.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.3354
Problem:    Build failure with +byte_offset but without +textprop. (John
            Marriott)
Solution:   Adjust the #ifdef.
Files:      src/memline.c

Patch 8.2.3355
Problem:    MS-Windows: compiler warning for 64-32 bit conversion.
Solution:   Add type casts.
Files:      src/memline.c

Patch 8.2.3356
Problem:    Adding many text properties requires a lot of function calls.
Solution:   Add the prop_add_list() function. (Yegappan Lakshmanan,
            closes #8751)
Files:      runtime/doc/eval.txt, runtime/doc/textprop.txt,
            runtime/doc/usr_41.txt, src/evalfunc.c, src/proto/textprop.pro,
            src/testdir/test_textprop.mnv, src/testdir/test_mnv9_builtin.mnv,
            src/textprop.c

Patch 8.2.3357
Problem:    Crash when 'virtualedit' is set and window is narrow.
Solution:   Check that width is not zero. (closes #8767)
Files:      src/misc2.c, src/testdir/test_number.mnv

Patch 8.2.3358
Problem:    Structurizr files are not recognized.
Solution:   Recognize the file by contents. (Bastian Venthur, closes #8764)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3359
Problem:    MNV9: error for type when variable is not set.
Solution:   Give a specific error for a NULL function. (closes #8773)
Files:      src/mnv9type.c, src/errors.h, src/testdir/test_mnv9_func.mnv

Patch 8.2.3360
Problem:    User function completion fails with dict function.
Solution:   Do not stop sequencing through the list if user functions when
            encountering an empty name. (Naohiro Ono, closes #8765,
            closes #8774)
Files:      src/evalfunc.c, src/testdir/test_cmdline.mnv

Patch 8.2.3361
Problem:    MNV9: crash with nested :while.
Solution:   Handle skipping better. (Naruhiko Nishino, closes #8778)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.3362
Problem:    Buffer overflow when completing long tag name.
Solution:   Allocate the buffer dynamically. (Gregory Anders, closes #8769)
Files:      src/tag.c, src/testdir/test_tagjump.mnv

Patch 8.2.3363
Problem:    When :edit reuses the current buffer the alternate file is set to
            the same buffer.
Solution:   Only set the alternate file when not reusing the buffer.
            (closes #8783)
Files:      src/ex_cmds.c, src/testdir/test_undo.mnv,
            src/testdir/test_cmdline.mnv, src/testdir/test_mnv9_builtin.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.3364
Problem:    MNV9: crash when :for is skipped.
Solution:   Skip more code generation. (Naruhiko Nishino, closes #8777)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.3365
Problem:    MNV9: cannot use option for all operations.
Solution:   Recognize more operations. (closes #8779)
Files:      src/mnv9compile.c, src/proto/mnv9compile.pro, src/ex_docmd.c,
            src/testdir/test_mnv9_cmd.mnv

Patch 8.2.3366
Problem:    MNV9: debugging elseif does not stop before condition.
Solution:   Move debug statement to after the jump. (closes #8781)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.3367
Problem:    MNV9: :@r executing a register is inconsistent.
Solution:   Use "@r" as the start of an expression. (issue #8779)
Files:      src/ex_docmd.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.3368
Problem:    Not all Racket files are recognized.
Solution:   Also recognize .rktl and .rktd files. (Doug Kearns)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3369
Problem:    Auto formatting after "cw" leaves cursor in wrong spot.
Solution:   Do not auto-format after the delete. (closes #8789)
Files:      src/ops.c, src/testdir/test_textformat.mnv

Patch 8.2.3370
Problem:    MNV9: no check for white space before type in declaration.
            (Naohiro Ono)
Solution:   Check for white space like in a compiled function. (closes #8785)
Files:      src/eval.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.3371
Problem:    MNV9: :$ENV cannot be followed by ->func() in next line.
Solution:   Use "$ENV" as the start of an expression. (closes #8790)
Files:      src/ex_docmd.c, src/mnv9compile.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.3372
Problem:    line2byte() value wrong when adding a text property. (Yuto Kimura)
Solution:   Adjust length for text property. (closes #8772)  Also fix it for
            deleting a line.
Files:      src/memline.c, src/testdir/test_textprop.mnv

Patch 8.2.3373 (after 8.2.3372)
Problem:    text property test fails on MS-Windows.
Solution:   Set fileformat to "unix"
Files:      src/testdir/test_textprop.mnv

Patch 8.2.3374
Problem:    Pyret files are not recognized.
Solution:   Recognize .arr files as Pyret. (Doug Kearns)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3375
Problem:    Using uninitialized memory.
Solution:   Initialize textprop_save_len.
Files:      src/memline.c

Patch 8.2.3376
Problem:    MNV9: no warning that "@r" does not do anything.
Solution:   Give a "no effect" error. (closes #8779)
Files:      src/ex_eval.c, src/proto/ex_eval.pro, src/mnv9compile.c,
            src/testdir/test_mnv9_cmd.mnv

Patch 8.2.3377
Problem:    MNV9: :disass completion does not understand "s:".
Solution:   Expand "s:" to a pattern. (closes #8780)
Files:      src/cmdexpand.c, src/testdir/test_cmdline.mnv

Patch 8.2.3378
Problem:    MS-Windows: completing environment variables with % is wrong.
Solution:   Only complete environment variables with $. (Albert Liu,
            closes #8791)
Files:      src/cmdexpand.c, src/testdir/test_cmdline.mnv

Patch 8.2.3379
Problem:    Crash when using NULL job.
Solution:   Copy static string into buffer. (issue #8260)
Files:      src/job.c, src/testdir/test_channel.mnv

Patch 8.2.3380
Problem:    Crash when using NULL string for funcref().
Solution:   Check for NULL argument. (issue #8260)
Files:      src/evalfunc.c, src/testdir/test_expr.mnv

Patch 8.2.3381
Problem:    Crash when using NULL list with sign functions.
Solution:   Handle a NULL list like an empty list. (issue #8260)
Files:      src/globals.h, src/testdir/test_signs.mnv

Patch 8.2.3382
Problem:    Crash when getting the type of a NULL partial.
Solution:   Check for NULL. (closes #8260)
Files:      src/mnv9type.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3383
Problem:    MNV9: completion for :disassemble adds parenthesis.
Solution:   Don't add parenthesis. (Naohiro Ono, closes #8802)
Files:      src/userfunc.c, src/testdir/test_cmdline.mnv

Patch 8.2.3384
Problem:    Cannot disable modeline for an individual file.
Solution:   Recognize "nomodeline" in a modeline. (Hu Jialun, closes #8798)
Files:      runtime/doc/options.txt, src/buffer.c,
            src/testdir/test_modeline.mnv

Patch 8.2.3385
Problem:    Escaping for fish shell does not work properly.
Solution:   Insert a backslash before a backslash. (Jason Cox, closes #8810)
Files:      runtime/doc/eval.txt, src/strings.c, src/testdir/test_shell.mnv

Patch 8.2.3386
Problem:    Using uninitialized memory.
Solution:   Initialize the rm_ic field. (Dominique Pellé, closes #8800)
Files:      src/indent.c

Patch 8.2.3387
Problem:    Compiler warning for non-static function.
Solution:   Make the function static. (Dominique Pellé, closes #8816)
Files:      src/strings.c

Patch 8.2.3388
Problem:    fnamemodify('path/..', ':p') differs from using 'path/../'. (David
            Briscoe)
Solution:   Include the "/.." in the directory name. (closes #8808)
Files:      src/os_unix.c, src/testdir/test_fnamemodify.mnv

Patch 8.2.3389
Problem:    Cannot stop insert mode completion without side effects.
Solution:   Add CTRL-X CTRL-Z. (closes #8821)
Files:      runtime/doc/index.txt, runtime/doc/insert.txt, src/insexpand.c,
            src/testdir/test_ins_complete.mnv

Patch 8.2.3390
Problem:    Included xdiff code is outdated.
Solution:   Sync with xdiff in git 2.33. (Christian Brabandt, closes #8431)
Files:      src/diff.c, src/xdiff/README.txt, src/xdiff/xdiff.h,
            src/xdiff/xdiffi.c, src/xdiff/xdiffi.h, src/xdiff/xemit.c,
            src/xdiff/xemit.h, src/xdiff/xhistogram.c, src/xdiff/xinclude.h,
            src/xdiff/xmacros.h, src/xdiff/xpatience.c, src/xdiff/xprepare.h,
            src/xdiff/xtypes.h, src/xdiff/xutils.c, src/xdiff/xutils.h

Patch 8.2.3391
Problem:    Crash with combination of 'linebreak' and other options.
Solution:   Avoid n_extra to become negative. (Christian Brabandt,
            closes #8817)
Files:      src/drawline.c

Patch 8.2.3392
Problem:    augroup completion escapes regexp pattern characters.
Solution:   Do not escape the augroup name. (closes #8826)
Files:      src/cmdexpand.c, src/testdir/test_cmdline.mnv

Patch 8.2.3393
Problem:    Escaping for fish shell is skipping some characters.
Solution:   Escape character after backslash if needed. (Jason Cox,
            closes #8827)
Files:      src/strings.c, src/testdir/test_shell.mnv

Patch 8.2.3394
Problem:    Filler lines are wrong when changing text in diff mode.
Solution:   Don't change the filler lines on every change.  Check
            scrollbinding when updating the filler lines. (closes #8809)
Files:      src/move.c, src/diff.c, src/testdir/test_diffmode.mnv,
            src/testdir/dumps/Test_diff_scroll_change_01.dump,
            src/testdir/dumps/Test_diff_scroll_change_02.dump

Patch 8.2.3395
Problem:    MNV9: expression breakpoint not checked in :def function.
Solution:   Always compile a function for debugging if there is an expression
            breakpoint. (closes #8803)
Files:      src/mnv9execute.c, src/proto/mnv9execute.pro, src/debugger.c,
            src/proto/debugger.pro, src/mnv.h, src/mnv9.h,
            src/testdir/test_debugger.mnv

Patch 8.2.3396
Problem:    When libcall() fails invalid pointer may be used.
Solution:   Initialize the string to NULL. (Yasuhiro Matsumoto, closes #8829)
Files:      src/evalfunc.c

Patch 8.2.3397
Problem:    No test for what 8.2.3391 fixes.
Solution:   Add a test. (Yegappan Lakshmanan, closes #8828)
Files:      src/testdir/test_breakindent.mnv

Patch 8.2.3398
Problem:    Html text objects are not fully tested.
Solution:   Add tests for dbcs encoding and different number of backslashes.
            (Dominique Pellé, closes #8831)
Files:      src/testdir/test_textobjects.mnv

Patch 8.2.3399
Problem:    Octave files are not recognized.
Solution:   Detect Octave files. (Doug Kearns)
Files:      runtime/autoload/dist/ft.mnv, runtime/doc/filetype.txt,
            runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3400
Problem:    ":z!" is not supported.
Solution:   Make ":z!" work and add tests. (Dominique Pellé, closes #8836)
            Use display height instead of current window height.
Files:      runtime/doc/various.txt, src/ex_cmds.h, src/ex_cmds.c,
            src/testdir/test_ex_z.mnv

Patch 8.2.3401
Problem:    MNV9: cannot use a negative count with finddir() and findfile().
Solution:   Adjust the return type. (closes #8776)
Files:      src/evalfunc.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3402
Problem:    Invalid memory access when using :retab with large value.
Solution:   Check the number is positive.
Files:      src/indent.c, src/option.c, src/optionstr.c,
            src/testdir/test_retab.mnv

Patch 8.2.3403 (after 8.2.3402)
Problem:    Memory leak for :retab with invalid argument.
Solution:   Free the memory.  Make error messages consistent.
Files:      src/indent.c

Patch 8.2.3404
Problem:    MNV9: no error for white space before "(".
Solution:   Give an error, like in a compiled function.
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.3405
Problem:    Cannot have a comment line in a {} block of a user command.
Solution:   Continue after the line break. (closes #8837)
Files:      src/ex_docmd.c, src/testdir/test_usercommands.mnv

Patch 8.2.3406
Problem:    On some systems tests fail without _REENTRANT. (Elimar
            Riesebieter)
Solution:   Add -D_REENTRANT in configure. (closes #7402)
Files:      src/configure.ac, src/auto/configure

Patch 8.2.3407
Problem:    Using uninitialized memory with "let g:['bar'] = 2".
Solution:   Initialize v_type of a new dict item.
Files:      src/dict.c

Patch 8.2.3408
Problem:    Can delete a numbered function. (Naohiro Ono)
Solution:   Disallow deleting a numbered function. (closes #8760)
Files:      src/userfunc.c, src/testdir/test_user_func.mnv

Patch 8.2.3409
Problem:    Reading beyond end of line with invalid utf-8 character.
Solution:   Check for NUL when advancing.
Files:      src/regexp_nfa.c, src/testdir/test_regexp_utf8.mnv

Patch 8.2.3410
Problem:    Crash with linebreak, listchars and large tabstop.
Solution:   Account for different size listchars for a tab. (closes #8841)
Files:      src/drawline.c, src/testdir/test_listlbr_utf8.mnv

Patch 8.2.3411
Problem:    MNV9: crash when using base name of import. (Naohiro Ono)
Solution:   Check the import flags. (closes #8843)
Files:      src/evalvars.c, src/errors.h, src/testdir/test_mnv9_script.mnv

Patch 8.2.3412 (after 8.2.3411)
Problem:    MNV9: importing the wrong file.
Solution:   Correct the file name.  Delete the file afterwards.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.3413
Problem:    MNV9: too many characters are allowed in import name.
Solution:   Disallow ':' and '#', check for white space. (closes #8845)
Files:      src/mnv9script.c, src/errors.h, src/testdir/test_mnv9_script.mnv

Patch 8.2.3414
Problem:    fullcommand() gives the wrong name if there is a buffer-local user
            command. (Naohiro Ono)
Solution:   Use a separate function to get the user command name.
            (closes #8840)
Files:      src/usercmd.c, src/proto/usercmd.pro, src/ex_docmd.c,
            src/testdir/test_cmdline.mnv

Patch 8.2.3415
Problem:    MNV9: Not all function argument types are properly checked.
Solution:   Add and improve argument type checks. (Yegappan Lakshmanan,
            closes #8839)
Files:      src/channel.c, src/digraph.c, src/evalfunc.c, src/terminal.c,
            src/testdir/test_digraph.mnv, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3416
Problem:    Second error is reported while exception is being thrown.
Solution:   Do not check for trailing characters when already aborting.
            (closes #8842)
Files:      src/userfunc.c, src/testdir/test_trycatch.mnv

Patch 8.2.3417
Problem:    MNV9: a failing debug expression aborts script sourcing.
Solution:   Do not let expression failure abort script sourcing. (closes #8848)
Files:      src/debugger.c, src/testdir/test_debugger.mnv

Patch 8.2.3418
Problem:    Garbage collection while evaluating may cause trouble.
Solution:   Disable garbage collection while evaluating an expression.
            (Christian Brabandt, issue #8848)
Files:      src/eval.c

Patch 8.2.3419
Problem:    A failing debug expression may make MNV unusable.
Solution:   Suppress error messages. (closes #8848)
Files:      src/debugger.c, src/testdir/test_debugger.mnv

Patch 8.2.3420
Problem:    _REENTRANT defined more than once.
Solution:   Fix configure script. (Christian Brabandt, closes #8852)
Files:      src/configure.ac, src/auto/configure

Patch 8.2.3421
Problem:    A bit of code is not covered by tests.
Solution:   Add a few more test cases. (Dominique Pellé, closes #8857)
Files:      src/testdir/test_functions.mnv, src/testdir/test_history.mnv,
            src/testdir/test_startup.mnv

Patch 8.2.3422
Problem:    MNV9: no failure if return type differs from returned variable.
Solution:   Copy type when copying a list. (closes #8847)
Files:      src/list.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.3423
Problem:    MNV9: list += list creates a new list in :def function.
Solution:   Append to the existing list.
Files:      src/structs.h, src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_assign.mnv

Patch 8.2.3424
Problem:    A sequence of spaces is hard to see in list mode.
Solution:   Add the "multispace" option to 'listchars'. (closes #8834)
Files:      runtime/doc/options.txt, src/drawline.c, src/message.c,
            src/screen.c, src/structs.h, src/testdir/test_listchars.mnv

Patch 8.2.3425
Problem:    Warning for using uninitialized variable.
Solution:   Initialize it. (John Marriott)
Files:      src/screen.c

Patch 8.2.3426
Problem:    Crash when deleting a listener in a listener callback. (Naohiro
            Ono)
Solution:   Mark the listener and delete it later. (closes #8863)
Files:      src/change.c, src/testdir/test_listener.mnv

Patch 8.2.3427
Problem:    Double free when list is copied.
Solution:   Allocate the type when making a copy. (closes #8862)
            Clear the type for flattennew().  Avoid a memory leak when
            flattennew() fails.
Files:      src/list.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3428
Problem:    Using freed memory when replacing. (Dhiraj Mishra)
Solution:   Get the line pointer after calling ins_copychar().
Files:      src/normal.c, src/testdir/test_edit.mnv

Patch 8.2.3429
Problem:    Leaking memory when assigning to list or dict.
Solution:   Free the list or dict type before overwriting it.
Files:      src/mnv9type.c, src/evalvars.c

Patch 8.2.3430
Problem:    No generic way to trigger an autocommand on mode change.
Solution:   Add the ModeChanged autocommand event. (Magnus Gross, closes #8856)
Files:      runtime/doc/autocmd.txt, src/autocmd.c, src/edit.c,
            src/ex_docmd.c, src/ex_getln.c, src/globals.h, src/misc1.c,
            src/normal.c, src/proto/autocmd.pro, src/proto/misc1.pro,
            src/testdir/test_edit.mnv, src/mnv.h

Patch 8.2.3431
Problem:    Completion for :disas sorts local functions first.
Solution:   Sort local functions last, like with :delfunc. (Naohiro Ono,
            closes #8860)
Files:      src/cmdexpand.c, src/testdir/test_cmdline.mnv

Patch 8.2.3432
Problem:    Octave/Matlab filetype detection does not work properly.
Solution:   Update the patterns used for matching. (Doug Kearns)
Files:      runtime/autoload/dist/ft.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3433
Problem:    :delcommand does not take a -buffer option.
Solution:   Add the -buffer option.
Files:      runtime/doc/map.txt, src/usercmd.c, src/errors.h,
            src/testdir/test_usercommands.mnv

Patch 8.2.3434 (after 8.2.3430)
Problem:    Function prototype for trigger_modechanged() is incomplete.
Solution:   Add "void".
Files:      src/proto/misc1.pro

Patch 8.2.3435
Problem:    MNV9: dict is not passed to dict function.
Solution:   Keep the dict used until a function call.
Files:      src/mnv9compile.c, src/mnv9execute.c, src/mnv9.h,
            src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.3436
Problem:    Check for optional bool type has confusing return type.
Solution:   Explicitly return OK.
Files:      src/typval.c

Patch 8.2.3437
Problem:    Compiler warnings for 32/64 bit usage.
Solution:   Add type casts. (Mike Williams, closes #8870)
Files:      src/screen.c, src/xdiff/xemit.c, src/xdiff/xutils.c

Patch 8.2.3438
Problem:    Cannot manipulate blobs.
Solution:   Add blob2list() and list2blob(). (Yegappan Lakshmanan,
            closes #8868)
Files:      runtime/doc/eval.txt, runtime/doc/usr_41.txt, src/blob.c,
            src/errors.h, src/evalfunc.c, src/proto/blob.pro,
            src/proto/typval.pro, src/testdir/test_blob.mnv,
            src/testdir/test_mnv9_builtin.mnv, src/typval.c

Patch 8.2.3439
Problem:    Deleted lines go to wrong yank register.
Solution:   Reset y_append when not calling get_yank_register(). (Christian
            Brabandt, closes #8872)
Files:      src/ops.c, src/proto/register.pro, src/register.c,
            src/testdir/test_registers.mnv

Patch 8.2.3440
Problem:    Recover test fails if there is an old swap file.
Solution:   Delete old swap files.
Files:      src/testdir/test_recover.mnv

Patch 8.2.3441
Problem:    MS-Windows: mnvtutor can't handle path with spaces.
Solution:   Add double quotes. (Christian Brabandt, closes #8871)
Files:      mnvtutor.bat

Patch 8.2.3442
Problem:    MNV9: || and && are not handled at compile time when possible.
Solution:   When using constants generate fewer instructions.
Files:      src/mnv9.h, src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.3443
Problem:    MNV9: memory leak when and/or fails.
Solution:   Also clear the growarray when the length is zero.
Files:      src/mnv9compile.c

Patch 8.2.3444
Problem:    concealed text not revealed when leaving insert mode. (Michael
            Soyka)
Solution:   Check if concealing changed when leaving insert mode.
            (closes #8880)
Files:      src/edit.c, src/testdir/test_conceal.mnv,
            src/testdir/dumps/Test_conceal_two_windows_07in.dump

Patch 8.2.3445
Problem:    On Solaris longVersion may be declared twice. (Vladimir Marek)
Solution:   Always declare longVersion in version.c
Files:      src/globals.h, src/version.c

Patch 8.2.3446
Problem:    Not enough tests for empty string arguments.
Solution:   Add tests, fix type check. (Yegappan Lakshmanan, closes #8881)
Files:      runtime/doc/sign.txt, runtime/doc/textprop.txt, src/sign.c,
            src/testdir/test_blob.mnv, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3447
Problem:    A couple of declarations are not ANSI C.
Solution:   Put argument type inside (). (Yegappan Lakshmanan, closes #8890)
Files:      src/os_unix.h

Patch 8.2.3448
Problem:    :endtry after function call that throws not found.
Solution:   Do check for following :endtry if an exception is being thrown.
            (closes #8889)
Files:      src/userfunc.c, src/testdir/test_trycatch.mnv

Patch 8.2.3449
Problem:    Sort fails if the sort compare function returns 999.
Solution:   Adjust value to -1 / 0 / 1. (Yasuhiro Matsumoto, closes #8884)
Files:      src/list.c, src/testdir/test_sort.mnv

Patch 8.2.3450
Problem:    Coveralls action fails.
Solution:   Disable it for now.
Files:      .github/workflows/ci.yml

Patch 8.2.3451
Problem:    Not all apache files are recognized.
Solution:   Adjust the filetype pattern. (Zdenek Dohnal, closes #8882)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3452
Problem:    MPD files are not recognized.
Solution:   Recognize MPD files as XML. (Steven Penny, closes #8893)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3453
Problem:    Autocmd not executed when editing a directory ending in a path
            separator inside try block.
Solution:   Return NOTDONE instead of FAIL. (closes #8885)
Files:      src/fileio.c, src/testdir/test_autocmd.mnv

Patch 8.2.3454
Problem:    Using a count with "gp" leaves cursor in wrong position. (Naohiro
            Ono)
Solution:   Count the inserted lines. (closes #8899)
Files:      src/register.c, src/testdir/test_put.mnv

Patch 8.2.3455 (after 8.2.3454)
Problem:    Using a count with "gp" leaves '] in wrong position. (Naohiro Ono)
Solution:   Correct the mark position. (closes #8899)
Files:      src/register.c, src/testdir/test_put.mnv

Patch 8.2.3456
Problem:    MNV9: Not all functions are tested with an empty string argument.
Solution:   Add tests with empty strings. (Yegappan Lakshmanan, closes #8915)
Files:      src/evalfunc.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3457
Problem:    MS-Windows MNV9: test executed and fails.
Solution:   Add extra check for not being on MS-Windows.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.3458
Problem:    Not all dictdconf files are recognized.
Solution:   Adjust the pattern. (Doug Kearns)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3459
Problem:    MNV9: need more tests for empty string arguments.
Solution:   Add more tests.  Also use empty argument with menu_info() to get
            the top-level menu names. (Yegappan Lakshmanan, closes #8925)
Files:      runtime/doc/eval.txt, src/menu.c, src/testdir/test_menu.mnv,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3460
Problem:    Some type casts are not needed.
Solution:   Remove unnecessary type casts. (closes #8934)
Files:      src/autocmd.c, src/buffer.c, src/debugger.c, src/getchar.c,
            src/hardcopy.c, src/if_cscope.c, src/move.c, src/tag.c,
            src/version.c

Patch 8.2.3461
Problem:    Cannot distinguish Normal and Terminal-Normal mode.
Solution:   Make mode() return "nt" for Terminal-Normal mode. (issue #8856)
Files:      runtime/doc/eval.txt, src/misc1.c, src/testdir/test_functions.mnv

Patch 8.2.3462
Problem:    The ModeChanged event only uses one character for the new_mode and
            old_mode values.
Solution:   Pass one as first argument to mode(). (issue #8856)
Files:      src/misc1.c, src/testdir/test_edit.mnv

Patch 8.2.3463
Problem:    Pattern matching with ModeChanged not tested.
Solution:   Add a few more test lines. (issue #8856)
Files:      src/testdir/test_edit.mnv

Patch 8.2.3464
Problem:    nginx files are not recognized.
Solution:   Add several file patterns. (Chris Aumann, closes #8922)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3465
Problem:    Cannot detect insert scroll mode.
Solution:   Add "scroll" to complete_info(). (closes #8943)
Files:      runtime/doc/eval.txt, src/insexpand.c, src/testdir/test_popup.mnv

Patch 8.2.3466
Problem:    Completion submode not indicated for virtual replace.
Solution:   Add submode to "Rv". (closes #8945)
Files:      runtime/doc/eval.txt, src/misc1.c, src/testdir/test_functions.mnv

Patch 8.2.3467
Problem:    CursorHoldI event interferes with "CTRL-G U". (Naohiro Ono)
Solution:   Restore the flag for "CTRL-G U" after triggering CursorHoldI.
            (closes #8937)
Files:      src/edit.c, src/testdir/test_autocmd.mnv

Patch 8.2.3468
Problem:    Problem with :cd when editing file in non-existent directory. (Yee
            Cheng Chin)
Solution:   Prepend the current directory to get the full path. (closes #8903)
Files:      src/os_unix.c, src/testdir/test_cd.mnv

Patch 8.2.3469
Problem:    Some files with json syntax are not recognized.
Solution:   Add a few file patterns. (Emiliano Ruiz Carletti, closes #8947)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3470
Problem:    Crash with error in :catch and also in :finally.
Solution:   Only discard an exception if there is one. (closes #8954)
Files:      src/ex_eval.c, src/testdir/test_trycatch.mnv

Patch 8.2.3471
Problem:    Crash when using CTRL-T after an empty search pattern.
Solution:   Bail out when there is no previous search pattern. (closes #8953)
Files:      src/ex_getln.c, src/testdir/test_search.mnv

Patch 8.2.3472
Problem:    Other crashes with empty search pattern not tested.
Solution:   Add a few more test lines. (Dominique Pellé)
Files:      src/testdir/test_search.mnv

Patch 8.2.3473
Problem:    Some files with tcl syntax are not recognized.
Solution:   Add a few file patterns. (Doug Kearns)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3474
Problem:    Some places use "MNVscript" instead of "MNV script".
Solution:   Consistently use "MNV script". (Hirohito Higashi, closes #8910)
Files:      runtime/doc/if_lua.txt, src/getchar.c, src/if_lua.c

Patch 8.2.3475
Problem:    Expression register set by not executed put command.
Solution:   Do not set the register if the command is skipped. (closes #8909)
Files:      src/ex_docmd.c, src/testdir/test_excmd.mnv

Patch 8.2.3476
Problem:    Renaming a buffer on startup may cause using freed memory.
Solution:   Check if the buffer is used in a window. (closes #8955)
Files:      src/buffer.c, src/testdir/test_startup.mnv

Patch 8.2.3477 (after 8.2.3476)
Problem:    Startup test fails on MS-Windows.
Solution:   Skip the test if not on Unix.
Files:      src/testdir/test_startup.mnv

Patch 8.2.3478 (after 8.2.3470)
Problem:    Still crash with error in :catch and also in :finally.
Solution:   Only call finish_exception() once. (closes #8954)
Files:      src/ex_eval.c, src/structs.h

Patch 8.2.3479
Problem:    Crash when calling job_start with an invalid argument. (Virginia
            Senioria)
Solution:   Clear the first item in argv. (closes #8957)
Files:      src/misc2.c, src/testdir/test_channel.mnv

Patch 8.2.3480 (after 8.2.3478)
Problem:    Test does not fail without the fix for a crash.
Solution:   Write the bad code in a file and source it. (Dominique Pellé,
            closes #8961)
Files:      src/testdir/test_trycatch.mnv

Patch 8.2.3481
Problem:    Failures when char is unsigned.
Solution:   Use int8_T.  Make a CI run with unsigned char. (James McCoy,
            closes #8936)
Files:      src/structs.h, .github/workflows/ci.yml

Patch 8.2.3482
Problem:    Reading beyond end of line ending in quote and backslash.
Solution:   Check for non-NUL after backslash. (closes #8964)
Files:      src/cindent.c, src/testdir/test_cindent.mnv

Patch 8.2.3483
Problem:    #ifdef for using sysinfo() is incomplete.
Solution:   Also check for HAVE_SYSINFO. Make autoconf check use TRY_LINK.
            (closes #8952)
Files:      src/memline.c, src/configure.ac, src/auto/configure

Patch 8.2.3484
Problem:    Crash when going through spell suggestions.
Solution:   Limit the text length for finding suggestions to the original
            length.  Do not update buffers when exiting. (closes #8965)
Files:      src/spellsuggest.c, src/clipboard.c,
            src/testdir/test_spell_utf8.mnv

Patch 8.2.3485
Problem:    Python 3 test fails with Python 3.10.
Solution:   Adjust expected error message. (zdohnal Dohnal, closes #8969)
Files:      src/testdir/test_python3.mnv

Patch 8.2.3486
Problem:    Illegal memory access with invalid sequence of commands.
Solution:   Do not call leave_block() when not in a try block. (closes #8966)
            Reset did_emsg so that exception is shown as an error.
Files:      src/ex_eval.c, src/testdir/test_trycatch.mnv

Patch 8.2.3487
Problem:    Illegal memory access if buffer name is very long.
Solution:   Make sure not to go over the end of the buffer.
Files:      src/drawscreen.c, src/testdir/test_statusline.mnv

Patch 8.2.3488
Problem:    Issue template is not easy to use.
Solution:   Use a yaml template. (closes #8928)
Files:      .github/ISSUE_TEMPLATE/bug_report.md,
            .github/ISSUE_TEMPLATE/bug_report.yml

Patch 8.2.3489
Problem:    ml_get error after search with range.
Solution:   Limit the line number to the buffer line count.
Files:      src/ex_docmd.c, src/testdir/test_search.mnv

Patch 8.2.3490
Problem:    Superfluous return statements.
Solution:   Remove superfluous return statements from void functions.
            (closes #8977)
Files:      src/buffer.c, src/getchar.c, src/memline.c, src/move.c,
            src/option.c

Patch 8.2.3491
Problem:    xpm2 filetype detection is not so good.
Solution:   Adjust the check for xpm2. (closes #8914)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3492
Problem:    Crash when pasting too many times.
Solution:   Limit the size to what fits in an int. (closes #8962)
Files:      src/register.c, src/errors.h, src/testdir/test_put.mnv

Patch 8.2.3493 (after 8.2.3492)
Problem:    Large count test fails on MS-Windows.
Solution:   Skip the test on MS-Windows.
Files:      src/testdir/test_put.mnv

Patch 8.2.3494
Problem:    Illegal memory access in utf_head_off.
Solution:   Check cursor position when reselecting the Visual area.
            (closes #8963)
Files:      src/normal.c, src/testdir/test_visual.mnv

Patch 8.2.3495
Problem:    GUI geometry startup test fails on some systems. (Drew Vogel)
Solution:   Add tolerance to the size check. (closes #8815)
Files:      src/testdir/test_startup.mnv

Patch 8.2.3496
Problem:    Crypt test fails on MS-Windows if xxd was not installed yet.
Solution:   Use the just built xxd executable if it exists. (James McCoy,
            closes #8929)
Files:      src/testdir/test_crypt.mnv

Patch 8.2.3497
Problem:    Put test fails when run by itself.
Solution:   Source check.mnv. (Dominique Pellé, closes #8990)
Files:      src/testdir/test_put.mnv

Patch 8.2.3498
Problem:    Recover test may fail on some systems.
Solution:   Adjust the little endian and 64 bit detection. (James McCoy,
            closes #8941)
Files:      src/testdir/test_recover.mnv

Patch 8.2.3499
Problem:    GUI geometry startup test fails.
Solution:   Check string values instead of numbers
Files:      src/testdir/test_startup.mnv

Patch 8.2.3500
Problem:    Github CI fails to install clang.
Solution:   Install llvm-11 explicitly. (Christian Brabandt, closes #8993)
Files:      .github/workflows/ci.yml

Patch 8.2.3501
Problem:    tmux filetype detection is incomplete
Solution:   Also use tmux for files having text after .conf. (Eric Pruitt,
            closes #8971)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3502 (after 8.2.2919)
Problem:    Cannot enter password in shell command.
Solution:   Revert patch 8.2.2919.
Files:      src/os_unix.c

Patch 8.2.3503
Problem:    MNV9: using g:pat:cmd is confusing.
Solution:   Do not recognize g: as the :global command.  Also for s:pat:repl.
            (closes #8982)
Files:      runtime/doc/mnv9.txt, src/ex_docmd.c, src/ex_cmds.c, src/errors.h,
            src/mnv9compile.c, src/proto/mnv9compile.pro,
            src/testdir/test_mnv9_cmd.mnv

Patch 8.2.3504 (after 8.2.3503)
Problem:    MNV9: warning for signed vs unsigned.
Solution:   Add type cast.
Files:      src/mnv9compile.c

Patch 8.2.3505 (after 8.2.3503)
Problem:    MNV9: build failure without the +eval feature.
Solution:   Add #ifdef.
Files:      src/ex_cmds.c

Patch 8.2.3506 (after 8.2.3503)
Problem:    MNV9: special cases for "g" and "s" insufficiently tested.
Solution:   Add a few more test cases.
Files:      src/testdir/test_mnv9_cmd.mnv

Patch 8.2.3507
Problem:    Generating proto files may fail.
Solution:   Define __attribute().
Files:      src/Makefile

Patch 8.2.3508 (after 8.2.3503)
Problem:    MNV9: bad separators for "g" and "s" insufficiently tested.
Solution:   Add a few more test cases.
Files:      src/testdir/test_mnv9_cmd.mnv

Patch 8.2.3509
Problem:    Undo file is not synced. (Sami Farin)
Solution:   Sync the undo file if 'fsync' is set. (Christian Brabandt,
            closes #8879, closes #8920)
Files:      runtime/doc/options.txt, src/undo.c

Patch 8.2.3510
Problem:    Changes are only detected with one second accuracy.
Solution:   Use the nanosecond time if possible.  (Leah Neukirchen,
            closes #8873, closes #8875)
Files:      runtime/doc/eval.txt, src/auto/configure, src/bufwrite.c,
            src/config.h.in, src/configure.ac, src/fileio.c,
            src/proto/fileio.pro, src/memline.c, src/netbeans.c,
            src/structs.h, src/evalfunc.c, src/testdir/test_stat.mnv

Patch 8.2.3511
Problem:    MNV9: entry for loop variable is created every round.
Solution:   Only create the entry once. (closes #8996)
Files:      src/evalvars.c, src/mnv9script.c

Patch 8.2.3512
Problem:    Timestamp test fails on some systems.
Solution:   Sleep for a short while.
Files:      src/testdir/test_stat.mnv

Patch 8.2.3513
Problem:    Using freed memory when using a timer and searching. (Dominique
            Pellé)
Solution:   Allocated mr_pattern.
Files:      src/search.c

Patch 8.2.3514
Problem:    Autoread test with nanosecond time sometimes fails.
Solution:   Mark the test as being flaky.
Files:      src/testdir/test_stat.mnv

Patch 8.2.3515
Problem:    Nano time test fails on Mac and FreeBSD.
Solution:   Also check nano time when not on Linux. (Ozaki Kiichi,
            closes #9000)
Files:      src/fileio.c

Patch 8.2.3516
Problem:    Terminal window does not have transparent background when
            'termguicolors' is used.
Solution:   Fix the background color. (closes #2361, closes #9002)
Files:      runtime/doc/terminal.txt, src/highlight.c, src/proto/terminal.pro,
            src/terminal.c

Patch 8.2.3517
Problem:    TextChanged does not trigger after TextChangedI.
Solution:   Store the tick separately for TextChangedI. (Christian Brabandt,
            closes #8968, closes #8932)
Files:      src/buffer.c, src/bufwrite.c, src/edit.c, src/structs.h,
            src/testdir/test_autocmd.mnv

Patch 8.2.3518
Problem:    Test_xrestore sometimes fails.
Solution:   Mark the test as flaky.  Move marking test as flaky to the test
            instead of listing them in runtest.
Files:      src/testdir/test_paste.mnv, src/testdir/runtest.mnv,
            src/testdir/test_autocmd.mnv, src/testdir/test_channel.mnv,
            src/testdir/test_clientserver.mnv, src/testdir/test_diffmode.mnv,
            src/testdir/test_functions.mnv, src/testdir/test_gui.mnv,
            src/testdir/test_mapping.mnv, src/testdir/test_popup.mnv,
            src/testdir/test_quotestar.mnv, src/testdir/test_reltime.mnv,
            src/testdir/test_terminal.mnv, src/testdir/test_terminal2.mnv,
            src/testdir/test_timers.mnv

Patch 8.2.3519
Problem:    TOML files are not recognized.
Solution:   Add filetype patterns for TOML. (Aman Verma, closes #8984)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3520
Problem:    Cannot define a function for thesaurus completion.
Solution:   Add 'thesaurusfunc'. (Yegappan Lakshmanan, closes #8987,
            closes 8950)
Files:      runtime/doc/insert.txt, runtime/doc/options.txt,
            runtime/doc/quickref.txt, src/buffer.c, src/insexpand.c,
            src/option.c, src/option.h, src/optiondefs.h, src/optionstr.c,
            src/structs.h, src/testdir/test_edit.mnv

Patch 8.2.3521 (after 8.2.3520)
Problem:    Options completion test fails.
Solution:   Add 'thesaurusfunc' to the results.
Files:      src/testdir/test_options.mnv

Patch 8.2.3522
Problem:    Cannot use \x and \u when setting 'listchars'.
Solution:   Support hex and unicode in hex form. (closes #9006)
Files:      runtime/doc/options.txt, src/screen.c, src/charset.c,
            src/testdir/test_listchars.mnv

Patch 8.2.3523
Problem:    Duplicated code in xxd.
Solution:   Remove duplicated lines. (closes #8972)
Files:      src/xxd/xxd.c

Patch 8.2.3524
Problem:    GUI: ligatures are not used.
Solution:   Add the 'guiligatures' option. (Dusan Popovic, closes #8933)
Files:      runtime/doc/options.txt, src/gui.c, src/gui.h, src/gui_gtk_x11.c,
            src/option.h, src/optiondefs.h, src/optionstr.c, src/errors.h,
            src/proto/gui.pro, src/proto/gui_gtk_x11.pro,
            src/testdir/test_gui.mnv

Patch 8.2.3525
Problem:    Option variable name does not match option name. (Christ van
            Willegen)
Solution:   Rename the variable.
Files:      src/buffer.c, src/insexpand.c, src/option.c, src/optionstr.c,
            src/structs.h

Patch 8.2.3526
Problem:    Tests have clumsy check for X11 based GUI.
Solution:   Add CheckX11BasedGui.
Files:      src/testdir/check.mnv, src/testdir/test_gui.mnv,
            src/testdir/test_gui_init.mnv, src/testdir/setup_gui.mnv

Patch 8.2.3527
Problem:    Gcc complains about uninitialized variable. (Tony Mechelynck)
Solution:   Initialize it.
Files:      src/gui_gtk_x11.c

Patch 8.2.3528
Problem:    'thesaurus' and 'thesaurusfunc' do not have the same scope.
Solution:   Make 'thesaurusfunc' global-local.
Files:      runtime/doc/options.txt, runtime/doc/insert.txt,
            src/optiondefs.h, src/option.h, src/option.c, src/structs.h,
            src/insexpand.c, src/testdir/test_edit.mnv

Patch 8.2.3529
Problem:    Xxd usage output is incomplete.
Solution:   Add "bytes" to "-g" flag. (Atsushi Sugawara, closes #8944)
Files:      src/xxd/xxd.c

Patch 8.2.3530
Problem:    ":buf \{a}" fails while ":edit \{a}" works.
Solution:   Unescape "\{". (closes #8917)
Files:      src/mnv.h, src/cmdexpand.c, src/evalfunc.c, src/ex_getln.c,
            src/proto/ex_getln.pro, src/normal.c, src/session.c,
            src/terminal.c, src/mnv9execute.c, src/testdir/test_cmdline.mnv

Patch 8.2.3531 (after 8.2.3530)
Problem:    Command line completion test fails on MS-Windows.
Solution:   Do not test with "\{" on MS-Windows.
Files:      src/testdir/test_cmdline.mnv

Patch 8.2.3532
Problem:    The previous '' mark is restored after moving the cursor to the
            original jump position. (Tony Chen)
Solution:   Forget the previous position after checking. (closes #8985)
Files:      src/mark.c, src/testdir/test_marks.mnv

Patch 8.2.3533
Problem:    Inefficient code in xxd.
Solution:   Don't use "p" when "hextype" is non-zero. (closes #9013)
Files:      src/xxd/xxd.c

Patch 8.2.3534
Problem:    Autoread test is a bit flaky.
Solution:   Wait a brief moment before overwriting the file.
Files:      src/testdir/test_stat.mnv

Patch 8.2.3535
Problem:    If-else indenting is confusing.
Solution:   Add curly brackets and indent. (Dominique Pellé, closes #9010)
Files:      src/drawscreen.c

Patch 8.2.3536
Problem:    The do_highlight() function is way too long.
Solution:   Split it into several functions. (Yegappan Lakshmanan,
            closes #9011)
Files:      src/highlight.c

Patch 8.2.3537
Problem:    mode() does not return the right value in 'operatorfunc'.
Solution:   Reset finish_op while calling 'operatorfunc'.
Files:      src/ops.c, src/testdir/test_functions.mnv

Patch 8.2.3538
Problem:    Else-if indenting is confusing.
Solution:   Add curly brackets. (Yegappan Lakshmanan, closes #9017)
Files:      src/highlight.c

Patch 8.2.3539
Problem:    GTK3: with 'rightleft' set scrollbar may move unintentionally.
Solution:   Ignore events while moving the scrollbar thumb. (closes #8958)
Files:      src/gui_gtk.c

Patch 8.2.3540
Problem:    The mark '] is wrong after put with a count. (Naohiro Ono)
Solution:   Use the right line number. (closes #8956)
Files:      src/register.c, src/testdir/test_put.mnv

Patch 8.2.3541
Problem:    Compiler warning for unused variable in tiny version.
Solution:   Add #ifdef. (John Marriott)
Files:      src/highlight.c

Patch 8.2.3542
Problem:    Too many comments are old style.
Solution:   Change comments to // style. (closes #9021)
Files:      src/buffer.c

Patch 8.2.3543
Problem:    Swapname has double slash when 'directory' ends in double slash.
            (Shane Smith)
Solution:   Remove the superfluous slash. (closes #8876)
Files:      src/memline.c, src/testdir/test_swap.mnv

Patch 8.2.3544
Problem:    Unix: may leak file descriptor when using a non-existing
            directory.
Solution:   Always close the file. (closes #9023)
Files:      src/os_unix.c

Patch 8.2.3545
Problem:    setcellwidths() may make 'listchars' or 'fillchars' invalid.
Solution:   Check the value and give an error. (closes #9024)
Files:      runtime/doc/eval.txt, src/optionstr.c, src/errors.h, src/mbyte.c,
            src/testdir/test_utf8.mnv

Patch 8.2.3546 (after 8.2.3545)
Problem:    Build failure without the +eval feature.
Solution:   Add #ifdef. (closes #9025)
Files:      src/errors.h

Patch 8.2.3547
Problem:    Opening the quickfix window triggers BufWinEnter twice. (Yorick
            Peterse)
Solution:   Only trigger BufWinEnter with "quickfix". (closes #9022)
Files:      src/ex_cmds.c, src/mnv.h, src/quickfix.c, src/buffer.c,
            src/testdir/test_quickfix.mnv

Patch 8.2.3548
Problem:    GTK GUI crashes when reading from stdin.
Solution:   Do not overwrite the NUL after the string. (closes #9028)
Files:      src/gui_gtk_x11.c, src/testdir/test_gui.mnv

Patch 8.2.3549
Problem:    Mistakes in test comments.
Solution:   Fix the comments. (closes #9029)
Files:      src/testdir/test_autocmd.mnv

Patch 8.2.3550
Problem:    completion() does not work properly.
Solution:   Set xp_line and add WILD_HOME_REPLACE. (Shougo Matsushita,
            closes #9016)
Files:      src/cmdexpand.c, src/testdir/test_cmdline.mnv

Patch 8.2.3551
Problem:    Checking first character of url twice.
Solution:   Only check once. (closes #9026)
Files:      src/misc1.c

Patch 8.2.3552
Problem:    Xxd revert does not handle end of line correctly.
Solution:   Check for newline first. (closes #9034)
Files:      src/xxd/xxd.c, src/testdir/test_xxd.mnv

Patch 8.2.3553 (after 8.2.3552)
Problem:    Xxd test fails on MS-Windows.
Solution:   Split shell command in two.
Files:      src/testdir/test_xxd.mnv

Patch 8.2.3554
Problem:    Xxd has various way to exit.
Solution:   Add function to print error and exit. (closes #9035)
Files:      src/xxd/xxd.c

Patch 8.2.3555
Problem:    ModeChanged is not triggered on every mode change.
Solution:   Also trigger on minor mode changes. (Maguns Gross, closes #8999)
Files:      runtime/doc/autocmd.txt, src/autocmd.c, src/insexpand.c,
            src/misc1.c, src/normal.c, src/terminal.c,
            src/testdir/test_edit.mnv

Patch 8.2.3556
Problem:    Filler lines are incorrect for other window in diff mode after
            making a change.
Solution:   Copy filler lines from the current window. (closes #8809)
Files:      src/diff.c, src/testdir/test_diffmode.mnv,
            src/testdir/dumps/Test_diff_scroll_change_03.dump

Patch 8.2.3557
Problem:    MNV9: cannot call imported funcref at script level.
Solution:   Check for an imported function. (closes #9007)
Files:      src/userfunc.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.3558 (after 8.2.3557)
Problem:    MNV9: asserting the wrong variable.
Solution:   Don't use Foo, use Goo.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.3559
Problem:    Loop variable recreated every time.
Solution:   Keep the loop variable when looping.
Files:      src/ex_eval.c

Patch 8.2.3560
Problem:    Using freed memory with lambda.
Solution:   Do not free lines early, keep them until the expression is
            finished. (closes #9020)
Files:      src/eval.c, src/proto/eval.pro, src/userfunc.c, src/mnv9compile.c,
            src/structs.h, src/globals.h, src/testdir/test_mnv9_func.mnv

Patch 8.2.3561
Problem:    Cscope has a complicated way of giving an error message.
Solution:   Use semsg(). (James McCoy, closes #9038)
Files:      src/if_cscope.c

Patch 8.2.3562
Problem:    Cannot add color names.
Solution:   Add the v:colornames dictionary. (Drew Vogel, closes #8761)
Files:      Filelist, READMEdir/README_extra.txt, nsis/gmnv.nsi,
            runtime/colors/README.txt, runtime/colors/lists/csscolors.mnv,
            runtime/colors/lists/default.mnv, runtime/doc/eval.txt,
            runtime/doc/gui_w32.txt, runtime/doc/message.txt,
            runtime/doc/os_haiku.txt, runtime/doc/syntax.txt,
            runtime/doc/usr_06.txt, src/Makefile, src/evalvars.c,
            src/gui_haiku.cc, src/highlight.c, src/gui.c, src/job.c,
            src/proto/highlight.pro, src/proto/term.pro, src/term.c,
            src/mnv.h, src/globals.h, src/errors.h,
            src/testdir/test_highlight.mnv

Patch 8.2.3563 (after 8.2.3562)
Problem:    Build failure with +eval but without GUI or +termguicolors
Solution:   Adjust #ifdef. (John Marriott)
Files:      src/highlight.c

Patch 8.2.3564
Problem:    Invalid memory access when scrolling without a valid screen.
Solution:   Do not set VALID_BOTLINE in w_valid.
Files:      src/move.c, src/testdir/test_normal.mnv

Patch 8.2.3565
Problem:    Makefile dependencies are outdated. (Gary Johnson)
Solution:   Run "make depend" and add missing dependencies.
Files:      src/Makefile

Patch 8.2.3566
Problem:    Build failure on old systems when using nano timestamp.
Solution:   Define _BSD_SOURCE, _SVID_SOURCE and _DEFAULT_SOURCE. (Gary
            Johnson, closes #9054)
Files:      src/mnv.h

Patch 8.2.3567
Problem:    CTRL-I in Insert mode is not tested
Solution:   Add a test case. (Dominique Pellé, closes #8866)
Files:      src/testdir/test_edit.mnv

Patch 8.2.3568
Problem:    Ctrl-hat test fails with Athena and Motif. (Elimar Riesebieter)
Solution:   Run the test only with GTK. (Dominique Pellé, closes #9069)
Files:      src/testdir/test_edit.mnv

Patch 8.2.3569
Problem:    Error for :let when mnvrc is MNV 9 script.
Solution:   Prepend :legacy in the code for converting arguments. (Christian
            Brabandt, closes #9068, closes #9077)
Files:      src/os_win32.c

Patch 8.2.3570
Problem:    Test_very_large_count fails on 32bit systems.
Solution:   Bail out when using 32 bit numbers. (closes #9072)
Files:      src/testdir/test_put.mnv

Patch 8.2.3571
Problem:    Some unicode control characters are considered printable.
Solution:   Make 0x2060 - 0x2069 not printable.
Files:      src/mbyte.c

Patch 8.2.3572
Problem:    Memory leak when closing window and using "multispace" in
            'listchars'.
Solution:   Free the memory. (closes #9071)
Files:      src/window.c, src/testdir/test_listchars.mnv

Patch 8.2.3573
Problem:    Cannot decide whether to skip test that fails with 64 bit ints.
            (closes #9072)
Solution:   Add v:sizeofint, v:sizeoflong and v:sizeofpointer.  Improve the
            check for multiply overflow.
Files:      runtime/doc/eval.txt, src/mnv.h, src/evalvars.c, src/register.c,
            src/testdir/test_put.mnv

Patch 8.2.3574 (after 8.2.3573)
Problem:    Divide by zero.
Solution:   Don't check for overflow if multiplicand is zero.
Files:      src/register.c

Patch 8.2.3575 (after 8.2.3574)
Problem:    Overflow check still fails when sizeof(int) == sizeof(long).
Solution:   Use a float to check the result.
Files:      src/register.c

Patch 8.2.3576
Problem:    Some functions are not documented for use with a method.
Solution:   Add examples.  Fix that sign_unplacelist() only takes one
            argument. (Sean Dewar, closes #9081)
Files:      src/evalfunc.c, runtime/doc/eval.txt

Patch 8.2.3577 (after 8.2.3574)
Problem:    Overflow check fails with 32 bit ints.
Solution:   Only test with 64 bit ints.
Files:      src/testdir/test_put.mnv

Patch 8.2.3578
Problem:    Manipulating highlighting is complicated.
Solution:   Add the hlget() and hlset() functions. (Yegappan Lakshmanan,
            closes #9039)
Files:      runtime/doc/eval.txt, runtime/doc/syntax.txt,
            runtime/doc/usr_41.txt, runtime/doc/windows.txt, src/evalfunc.c,
            src/highlight.c, src/proto/highlight.pro,
            src/testdir/test_highlight.mnv, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3579
Problem:    CI sometimes fails for MinGW.
Solution:   Use backslashes in HandleSwapExists(). (Christian Brabandt,
            closes #9078)
Files:      src/testdir/runtest.mnv

Patch 8.2.3580
Problem:    gj does not move properly with a wide character.
Solution:   Move one to the right. (Christian Brabandt, closes #8702)
Files:      src/normal.c, src/testdir/test_normal.mnv

Patch 8.2.3581
Problem:    Reading character past end of line.
Solution:   Correct the cursor column.
Files:      src/ex_docmd.c, src/testdir/test_put.mnv

Patch 8.2.3582
Problem:    Reading uninitialized memory when giving spell suggestions.
Solution:   Check that preword is not empty.
Files:      src/spellsuggest.c, src/testdir/test_spell.mnv

Patch 8.2.3583
Problem:    The "gd" and "gD" commands do not update search stats. (Gary
            Johnson)
Solution:   Clear search stats.
Files:      src/normal.c, src/testdir/test_search_stat.mnv,
            src/testdir/dumps/Test_searchstatgd_1.dump,
            src/testdir/dumps/Test_searchstatgd_2.dump

Patch 8.2.3584
Problem:    "verbose set efm" reports the location of the :compiler command.
            (Gary Johnson)
Solution:   Add the "-keepscript" argument to :command and use it when
            defining CompilerSet.
Files:      runtime/doc/map.txt, src/ex_cmds2.c, src/usercmd.c, src/ex_cmds.h,
            src/testdir/test_compiler.mnv

Patch 8.2.3585
Problem:    Crash when passing float to "term_rows" in the options argument of
            term_start(). (Virginia Senioria)
Solution:   Bail out if the argument is not a number. (closes #9116)
Files:      src/job.c, src/terminal.c, src/testdir/test_terminal.mnv

Patch 8.2.3586 (after 8.2.3584)
Problem:    Command completion test fails.
Solution:   Add new argument to expected output
Files:      src/testdir/test_usercommands.mnv

Patch 8.2.3587 (after 8.2.3584)
Problem:    Compiler test fails with backslash file separator.
Solution:   Accept slash and backslash.
Files:      src/testdir/test_compiler.mnv

Patch 8.2.3588
Problem:    Break statement is never reached.
Solution:   Rely on return value of set_chars_option() not changing.
            (closes #9103)
Files:      src/optionstr.c

Patch 8.2.3589
Problem:    Failure when the "term_rows" argument of term_start() is an
            unusual value.
Solution:   Limit to range of zero to 1000. (closes #9116)
Files:      runtime/doc/terminal.txt, src/job.c, src/testdir/test_terminal.mnv

Patch 8.2.3590
Problem:    Test for v:colornames sometimes fails. (Dominique Pellé)
Solution:   Check features.  Clear v:colornames between tests. (Drew Vogel,
            closes #9105, closes #9073)
Files:      runtime/doc/eval.txt, src/highlight.c, src/proto/highlight.pro,
            src/testdir/test_highlight.mnv

Patch 8.2.3591
Problem:    No event is triggered when closing a window.
Solution:   Add the WinClosed event. (Naohiro Ono, closes #9110)
Files:      runtime/doc/autocmd.txt, src/autocmd.c,
            src/testdir/test_autocmd.mnv, src/mnv.h, src/window.c

Patch 8.2.3592
Problem:    Test_hlset fails when terminal has many columns.
Solution:   Set the number of columns to 80. (Dominique Pellé, closes #9101,
            closes #9100)
Files:      src/testdir/test_highlight.mnv

Patch 8.2.3593
Problem:    Directory is wrong after executing "lcd" with win_execute().
Solution:   Correct the directory when going back to the original window.
            (closes #9132)
Files:      src/evalwindow.c, src/window.c, src/proto/window.pro,
            src/testdir/test_execute_func.mnv

Patch 8.2.3594
Problem:    Xxd code is a bit difficult to understand.
Solution:   Move some lines to a separate function. (closes #9037)
Files:      src/xxd/xxd.c

Patch 8.2.3595
Problem:    Check for signed overflow might not work everywhere.
Solution:   Limit to 32 bit int. (closes #9043, closes #9067)
Files:      src/getchar.c

Patch 8.2.3596
Problem:    Crash when using :pedit in MNV9 script.
Solution:   Move check for arguments to after checking there are arguments.
            (Yegappan Lakshmanan, closes #9134, closes #9135)
Files:      src/popupwin.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.3597
Problem:    MNV seems to hang when writing a very long text to a terminal
            window.
Solution:   Limit the amount of text based on 'termwinscroll'. (issue #9080)
Files:      runtime/doc/options.txt, src/terminal.c

Patch 8.2.3598
Problem:    RouterOS filetype is not recognized.
Solution:   Add file and script patterns. (closes #9097)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3599
Problem:    Not all gdbinit files are recognized.
Solution:   Add "gdbinit". (Doug Kearns)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3600 (after 8.2.3598)
Problem:    Filetype test fails.
Solution:   Add missing change.
Files:      runtime/scripts.mnv

Patch 8.2.3601
Problem:    Check for overflow in put count does not work well.
Solution:   Improve the overflow check. (Ozaki Kiichi, closes #9102)
Files:      src/register.c, src/testdir/test_put.mnv

Patch 8.2.3602
Problem:    Python3 test fails with Python 3.10 on MS-Windows.
Solution:   Adjust the expected error. (Ken Takata, closes #9118)
Files:      src/testdir/test_python3.mnv

Patch 8.2.3603
Problem:    Fish filetype not recognized.
Solution:   Add a file pattern and match script line. (Doug Kearns)
Files:      runtime/filetype.mnv, runtime/scripts.mnv,
            src/testdir/test_filetype.mnv

Patch 8.2.3604
Problem:    Not all sudoers files are recognized.
Solution:   Add a file pattern. (Doug Kearns, closes #1192)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3605
Problem:    Cannot clear and unlink a highlight group with hlset() in a
            single call.
Solution:   Add the "force" option. (Yegappan Lakshmanan, closes #9117)
Files:      runtime/doc/eval.txt, src/highlight.c,
            src/testdir/test_highlight.mnv, src/testdir/test_mnv9_builtin.mnv,
            src/testdir/test_mnv9_cmd.mnv

Patch 8.2.3606
Problem:    File missing from list of distributed files.
Solution:   Add the file.
Files:      Filelist

Patch 8.2.3607
Problem:    GTK3 screen updating is slow.
Solution:   Remove some of the GTK3-specific code. (closes #9052)
Files:      src/gui.h, src/gui_gtk_x11.c

Patch 8.2.3608
Problem:    Users who type "q:" instead of ":q" are confused.
Solution:   Add an autocmd to give a message that explains this is the
            command-line window. (Egor Zvorykin, closes #9146)
Files:      runtime/defaults.mnv, src/testdir/test_autocmd.mnv,
            src/testdir/test_cmdline.mnv

Patch 8.2.3609
Problem:    Internal error when ModeChanged is triggered when v:event is
            already in use.
Solution:   Save and restore v:event if needed.
Files:      src/misc1.c, src/proto/misc1.pro, src/testdir/test_edit.mnv,
            src/insexpand.c, src/structs.h, src/register.c

Patch 8.2.3610
Problem:    Crash when ModeChanged triggered too early.
Solution:   Trigger ModeChanged after setting VIsual.
Files:      src/normal.c, src/testdir/test_edit.mnv

Patch 8.2.3611
Problem:    Crash when using CTRL-W f without finding a file name.
Solution:   Bail out when the file name length is zero.
Files:      src/findfile.c, src/normal.c, src/testdir/test_visual.mnv

Patch 8.2.3612
Problem:    Using freed memory with regexp using a mark.
Solution:   Get the line again after getting the mark position.
Files:      src/regexp.c, src/regexp_nfa.c, src/testdir/test_regexp_latin.mnv

Patch 8.2.3613
Problem:    :find test fails.
Solution:   Put length check inside if block.
Files:      src/findfile.c

Patch 8.2.3614
Problem:    zindex of popup windows not used when redrawing popup menu.
Solution:   Check the zindex when redrawing the popup menu.  (closes #9129,
            closes #9089)
Files:      src/popupmenu.c, src/popupwin.c, src/proto/popupmenu.pro,
            src/screen.c, src/testdir/test_popupwin.mnv,
            src/testdir/dumps/Test_popupwin_popupmenu_masking_1.dump,
            src/testdir/dumps/Test_popupwin_popupmenu_masking_2.dump

Patch 8.2.3615
Problem:    When re-formatting with an indent expression the first line of a
            paragraph may get the wrong indent. (Martin F. Krafft)
Solution:   Apply the correct indenting function for the first line.
            (Christian Brabandt, closes #9150, closes #9056)
Files:      src/textformat.c, src/testdir/test_indent.mnv

Patch 8.2.3616
Problem:    Arglist test does not clear the argument list consistently.
Solution:   Call Reset_arglist(). (Shougo Matsushita, closes #9154)
Files:      src/testdir/test_arglist.mnv

Patch 8.2.3617
Problem:    ":verbose pwd" does not mention 'autochdir' was applied.
Solution:   Remember the last chdir was done by 'autochdir'.  (issue #9142)
Files:      src/globals.h, src/buffer.c, src/ex_docmd.c, src/window.c,
            src/main.c, src/netbeans.c, src/os_win32.c,
            src/testdir/test_autochdir.mnv

Patch 8.2.3618
Problem:    getcwd() is unclear about how 'autochdir' is used.
Solution:   Update the help for getcwd().  Without any arguments always return
            the actual current directory. (closes #9142)
Files:      runtime/doc/eval.txt, src/filepath.c, src/testdir/test_cd.mnv

Patch 8.2.3619
Problem:    Cannot use a lambda for 'operatorfunc'.
Solution:   Support using a lambda or partial. (Yegappan Lakshmanan,
            closes #8775)
Files:      runtime/doc/map.txt, runtime/doc/options.txt, src/ops.c,
            src/option.c, src/optionstr.c, src/proto/ops.pro,
            src/proto/option.pro, src/quickfix.c, src/testdir/test_normal.mnv

Patch 8.2.3620
Problem:    Memory leak reported in libtlib.
Solution:   Call del_curterm() when cleaning up memory.  Rename term.h to
            termdefs.h to avoid a name clash.
Files:      src/term.c, src/proto/term.pro, src/alloc.c, src/configure.ac,
            src/auto/configure, src/config.h.in, src/Makefile,
            src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms,
            src/term.h, src/termdefs.h

Patch 8.2.3621 (after 8.2.3620)
Problem:    Build failure.
Solution:   Add missing change.
Files:      src/mnv.h

Patch 8.2.3622
Problem:    "verbose pwd" shows confusing info when :lcd does not change
            directory.
Solution:   Clear last_chdir_reason also when the directory does not change.
            (closes #9160)
Files:      src/ex_docmd.c, src/testdir/test_autochdir.mnv

Patch 8.2.3623
Problem:    "$*" is expanded to "nonomatch".
Solution:   Only add "set nonomatch" when using a csh-like shell. (Christian
            Brabandt, closes #9159, closes #9153)
Files:      src/os_unix.c, src/testdir/test_expand.mnv

Patch 8.2.3624
Problem:    When renaming a terminal buffer the status text is not updated.
Solution:   Clear the cached status text when renaming a terminal buffer.
            (closes #9162)
Files:      src/buffer.c, src/terminal.c, src/proto/terminal.pro,
            src/testdir/test_terminal.mnv

Patch 8.2.3625
Problem:    Illegal memory access when C-indenting.
Solution:   Also set the cursor column.
Files:      src/cindent.c, src/testdir/test_cindent.mnv

Patch 8.2.3626
Problem:    "au!" and "au! event" cannot be followed by another command as
            documented.
Solution:   When a bar is found set nextcmd.
Files:      src/autocmd.c, src/testdir/test_autocmd.mnv

Patch 8.2.3627
Problem:    difficult to know where the text starts in a window. (Sergey
            Vlasov)
Solution:   Add the "textoff" entry in the result of getwininfo().
            (closes #9163)
Files:      runtime/doc/eval.txt, src/evalwindow.c,
            src/testdir/test_bufwintabinfo.mnv

Patch 8.2.3628
Problem:    Looking up terminal colors is a bit slow.
Solution:   Cache the terminal colors. (closes #9130, closes #9058)
Files:      src/highlight.c, src/libvterm/include/vterm.h, src/option.c,
            src/optionstr.c, src/popupwin.c, src/proto/terminal.pro,
            src/structs.h, src/terminal.c, src/window.c,
            src/testdir/test_terminal3.mnv,
            src/testdir/dumps/Test_terminal_color_MyTermCol.dump,
            src/testdir/dumps/Test_terminal_color_MyTermCol_over_Terminal.dump,
            src/testdir/dumps/Test_terminal_color_MyWinCol.dump,
            src/testdir/dumps/Test_terminal_color_MyWinCol_over_group.dump,
            src/testdir/dumps/Test_terminal_color_Terminal.dump,
            src/testdir/dumps/Test_terminal_color_gui_MyTermCol.dump,
            src/testdir/dumps/Test_terminal_color_gui_MyWinCol.dump,
            src/testdir/dumps/Test_terminal_color_gui_Terminal.dump,
            src/testdir/dumps/Test_terminal_color_gui_transp_MyTermCol.dump,
            src/testdir/dumps/Test_terminal_color_gui_transp_MyWinCol.dump,
            src/testdir/dumps/Test_terminal_color_gui_transp_Terminal.dump,
            src/testdir/dumps/Test_terminal_color_transp_MyTermCol.dump,
            src/testdir/dumps/Test_terminal_color_transp_MyWinCol.dump,
            src/testdir/dumps/Test_terminal_color_transp_Terminal.dump,
            src/testdir/dumps/Test_terminal_popup_MyPopupHlCol.dump,
            src/testdir/dumps/Test_terminal_popup_MyTermCol_over_Terminal.dump,
            src/testdir/dumps/Test_terminal_popup_MyWinCol.dump,
            src/testdir/dumps/Test_terminal_popup_MyWinCol_over_group.dump,
            src/testdir/dumps/Test_terminal_popup_gui_MyPopupHlCol.dump,
            src/testdir/dumps/Test_terminal_popup_gui_MyTermCol.dump,
            src/testdir/dumps/Test_terminal_popup_gui_MyWinCol.dump,
            src/testdir/dumps/Test_terminal_popup_gui_Terminal.dump,
            src/testdir/dumps/Test_terminal_popup_gui_transp_MyPopupHlCol.dump,
            src/testdir/dumps/Test_terminal_popup_gui_transp_MyTermCol.dump,
            src/testdir/dumps/Test_terminal_popup_gui_transp_MyWinCol.dump,
            src/testdir/dumps/Test_terminal_popup_gui_transp_Terminal.dump,
            src/testdir/dumps/Test_terminal_popup_transp_MyPopupHlCol.dump,
            src/testdir/dumps/Test_terminal_popup_transp_MyTermCol.dump,
            src/testdir/dumps/Test_terminal_popup_transp_MyWinCol.dump,
            src/testdir/dumps/Test_terminal_popup_transp_Terminal.dump,
            src/testdir/dumps/Test_terminal_wincolor_split_MyWinCol.dump,
            src/testdir/dumps/Test_terminal_wincolor_split_MyWinCol2.dump

Patch 8.2.3629
Problem:    Command completion in cmdline window uses global user commands,
            not local commands for the window where it was opened from.
Solution:   Use local commands. (closes #9168)
Files:      src/ex_getln.c, src/proto/ex_getln.pro, src/evalvars.c,
            src/usercmd.c, src/testdir/test_ins_complete.mnv

Patch 8.2.3630
Problem:    Printf() with %S does not handle multi-byte correctly.
Solution:   Count cells instead of bytes. (closes #9169, closes #7486)
Files:      src/strings.c, src/testdir/test_expr.mnv

Patch 8.2.3631
Problem:    "syntax enable" does not work properly in MNV9 context.
Solution:   Also handle MNV9 context. (closes #9161)
Files:      src/syntax.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.3632
Problem:    GTK3: undercurl does not get removed properly.
Solution:   Set the cairo cursor first. (closes #9170)
Files:      src/gui_gtk_x11.c

Patch 8.2.3633
Problem:    MNV9: line number of lambda is off by one.
Solution:   Add one to the line number. (closes #9083)
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.3634
Problem:    Error for already defined function uses wrong line number.
Solution:   Set SOURCING_LNUM before giving the error message. (closes #9085)
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.3635
Problem:    GTK: composing underline does not show.
Solution:   Include composing character in pango call. A few more
            optimizations for ligatures.  (Dusan Popovic, closes #9171,
            closes #9147)
Files:      src/gui_gtk_x11.c

Patch 8.2.3636
Problem:    Coverity warns for unreachable code.
Solution:   Remove unreachable else block.
Files:      src/gui_gtk_x11.c

Patch 8.2.3637
Problem:    Typos in test files.
Solution:   Correct the typos. (Dominique Pellé, closes #9175)
Files:      src/testdir/runtest.mnv, src/testdir/test_debugger.mnv,
            src/testdir/test_diffmode.mnv, src/testdir/test_edit.mnv,
            src/testdir/test_excmd.mnv, src/testdir/test_flatten.mnv,
            src/testdir/test_ins_complete.mnv, src/testdir/test_normal.mnv,
            src/testdir/test_options.mnv, src/testdir/test_python2.mnv,
            src/testdir/test_python3.mnv, src/testdir/test_quickfix.mnv,
            src/testdir/test_recover.mnv, src/testdir/test_spellfile.mnv,
            src/testdir/test_syntax.mnv, src/testdir/test_termcodes.mnv,
            src/testdir/test_textobjects.mnv, src/testdir/test_trycatch.mnv,
            src/testdir/test_mnv9_script.mnv, src/testdir/test_mnvinfo.mnv

Patch 8.2.3638
Problem:    getcompletion() always passes zero as position to custom
            completion function.
Solution:   Pass the pattern length. (closes #9173)
Files:      src/cmdexpand.c, src/testdir/test_cmdline.mnv

Patch 8.2.3639 (after 8.2.2922)
Problem:    Line commented out accidentally.
Solution:   Uncomment. (Volodymyr Kot, closes #9172)
Files:      src/main.c

Patch 8.2.3640
Problem:    Freeze when calling term_wait() in a close callback.
Solution:   Set a "closing" flag to tell term_wait() to return. (closes #9152)
Files:      src/channel.c, src/terminal.c, src/proto/terminal.pro,
            src/testdir/test_terminal.mnv

Patch 8.2.3641
Problem:    Xxd code has duplicate expressions.
Solution:   Refactor to avoid duplication. (closes #9185)
Files:      src/xxd/xxd.c

Patch 8.2.3642
Problem:    List of distributed files is outdated.
Solution:   Rename term.h to termdefs.h.
Files:      Filelist

Patch 8.2.3643
Problem:    Header for source file is outdated.
Solution:   Make the header more accurate. (closes #9186)
Files:      src/map.c, src/getchar.c

Patch 8.2.3644
Problem:    Count for 'operatorfunc' in Visual mode is not redone.
Solution:   Add the count to the redo buffer. (closes #9174)
Files:      src/normal.c, src/proto/normal.pro, src/ops.c,
            src/testdir/test_normal.mnv

Patch 8.2.3645
Problem:    MNV9: The "no effect" error is not given for all registers.
Solution:   Include any character following '@'. (closes #8779)
Files:      src/ex_eval.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.3646
Problem:    Using <sfile> in a function gives an unexpected result.
Solution:   Give an error in a MNV9 function. (issue #9189)
Files:      src/scriptfile.c, src/errors.h, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3647
Problem:    GTK: when using ligatures the cursor is drawn wrong.
Solution:   Clear more characters when ligatures are used. (Dusan Popovic,
            closes #9190)
Files:      src/gui.c

Patch 8.2.3648
Problem:    "verbose pwd" is incorrect after dropping files on MNV.
Solution:   Set the chdir reason to "drop".
Files:      src/gui.c

Patch 8.2.3649
Problem:    MNV9: error for variable declared in while loop.
Solution:   Do not keep the first variable. (closes #9191)
Files:      src/ex_eval.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.3650
Problem:    MNV9: for loop variable can be a list member.
Solution:   Check for valid variable name. (closes #9179)
Files:      src/mnv9compile.c, src/dict.c, src/eval.c, src/evalvars.c,
            src/proto/evalvars.pro, src/testdir/test_mnv9_script.mnv

Patch 8.2.3651
Problem:    MNV9: no error for :lock or :unlock with unknown variable.
Solution:   Give an error. (closes #9188)
Files:      src/evalvars.c, src/errors.h, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.3652
Problem:    Can only get text properties one line at a time.
Solution:   Add options to prop_list() to use a range of lines and filter by
            types. (Yegappan Lakshmanan, closes #9138)
Files:      runtime/doc/textprop.txt, src/textprop.c,
            src/testdir/test_textprop.mnv

Patch 8.2.3653
Problem:    Terminal ANSI colors may be wrong.
Solution:   Initialize the color type. (closes #9198, closes #9197)
Files:      src/terminal.c

Patch 8.2.3654
Problem:    GTK: a touch-drag does not update the selection.
Solution:   Add GDK_BUTTON1_MASK to the state. (Chris Dalton, close #9196,
            closes #9194)
Files:      src/gui_gtk_x11.c

Patch 8.2.3655
Problem:    Compiler warning for using size_t for int.
Solution:   Add a type cast. (Mike Williams, closes #9199)
Files:      src/mnv9compile.c

Patch 8.2.3656
Problem:    MNV9: no error for an environment variable by itself.
Solution:   Give a "without effect" error. (closes #9166)
Files:      src/ex_eval.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.3657
Problem:    MNV9: debug text misses one line of return statement.
Solution:   Add a line when not at a debug instruction. (closes #9137)
Files:      src/mnv9execute.c, src/testdir/test_debugger.mnv

Patch 8.2.3658
Problem:    Duplicate code in xxd.
Solution:   Merge duplicated code. Add more tests. (closes #9192)
Files:      src/xxd/xxd.c, src/testdir/test_xxd.mnv

Patch 8.2.3659
Problem:    Integer overflow with large line number.
Solution:   Check for overflow. (closes #9202)
Files:      src/errors.h, src/ex_docmd.c, src/testdir/test_excmd.mnv
            src/normal.c, src/testdir/test_normal.mnv

Patch 8.2.3660 (after 8.2.3659)
Problem:    Overflow check uses wrong number.
Solution:   Divide by ten.
Files:      src/normal.c

Patch 8.2.3661 (after 8.2.3659)
Problem:    Test for put with large count fails.
Solution:   Adjust the counts in the test.
Files:      src/testdir/test_put.mnv

Patch 8.2.3662
Problem:    Illegal memory access if malloc() fails.
Solution:   Check 'foldmethod' is not empty. (closes #9207)
Files:      src/fold.c

Patch 8.2.3663
Problem:    Using %S in printf() does not work correctly.
Solution:   Fix the problem and add more tests. (closes #9208)
Files:      src/strings.c, src/testdir/test_expr.mnv

Patch 8.2.3664
Problem:    Cannot adjust sign highlighting for 'cursorline'.
Solution:   Add CursorLineSign and CursorLineFold highlight groups.
            (Gregory Anders, closes #9201)
Files:      runtime/doc/sign.txt, runtime/doc/syntax.txt, src/drawline.c,
            src/highlight.c, src/optiondefs.h, src/popupwin.c,
            src/proto/sign.pro, src/sign.c, src/structs.h, src/mnv.h,
            src/testdir/test_signs.mnv

Patch 8.2.3665
Problem:    Cannot use a lambda for 'tagfunc'.
Solution:   Use 'tagfunc' like 'opfunc'. (Yegappan Lakshmanan, closes #9204)
Files:      runtime/doc/options.txt, src/buffer.c, src/option.c,
            src/optionstr.c, src/proto/tag.pro, src/structs.h, src/tag.c,
            src/testdir/test_tagfunc.mnv

Patch 8.2.3666
Problem:    Libvterm is outdated.
Solution:   Include patches from revision 769 to revision 789.
Files:      Filelist, src/libvterm/Makefile, src/libvterm/doc/seqs.txt,
            src/libvterm/include/vterm.h, src/libvterm/src/mouse.c,
            src/libvterm/src/parser.c, src/libvterm/src/state.c,
            src/libvterm/src/vterm.c, src/libvterm/src/vterm_internal.h,
            src/libvterm/t/02parser.test, src/libvterm/t/17state_mouse.test,
            src/libvterm/t/29state_fallback.test,
            src/libvterm/t/40state_selection.test, src/libvterm/t/harness.c,
            src/libvterm/t/run-test.pl, src/libvterm/vterm.pc.in,
            src/terminal.c

Patch 8.2.3667
Problem:    Building libvterm fails with MSVC.
Solution:   Don't use C99 construct.
Files:      src/libvterm/src/state.c

Patch 8.2.3668
Problem:    Messages may be corrupted.
Solution:   Use another buffer instead of IObuff. (Yegappan Lakshmanan,
            closes #9195)
Files:      src/highlight.c, src/testdir/test_highlight.mnv

Patch 8.2.3669
Problem:    Buffer overflow with long help argument.
Solution:   Use snprintf().
Files:      src/help.c, src/testdir/test_help.mnv

Patch 8.2.3670
Problem:    Error checks repeated several times.
Solution:   Move the checks to functions. (closes #9213)
Files:      src/xxd/xxd.c

Patch 8.2.3671
Problem:    Restarting Insert mode in prompt buffer too often when a callback
            switches windows and comes back. (Sean Dewar)
Solution:   Do not set "restart_edit" when already in Insert mode.
            (closes #9212)
Files:      src/window.c, src/testdir/test_prompt_buffer.mnv

Patch 8.2.3672 (after 8.2.3670)
Problem:    Build failure with unsigned char.
Solution:   Use int instead of char.
Files:      src/xxd/xxd.c

Patch 8.2.3673
Problem:    Crash when allocating signal stack fails.
Solution:   Only using sourcing info when available. (closes #9215)
Files:      src/globals.h, src/message.c

Patch 8.2.3674
Problem:    When ml_get_buf() fails it messes up IObuff.
Solution:   Return a local pointer. (closes #9214)
Files:      src/memline.c

Patch 8.2.3675
Problem:    Using freed memory when mnv_strsave() fails.
Solution:   Clear "last_sourcing_name".  Check for msg_source() called
            recursively. (closes #8217)
Files:      src/message.c

Patch 8.2.3676
Problem:    Unused runtime file.
Solution:   Remove rgb.txt.
Files:      runtime/rgb.txt

Patch 8.2.3677
Problem:    After a put the '] mark is on the last byte of a multi-byte
            character.
Solution:   Move it to the first byte. (closes #9047)
Files:      src/register.c, src/testdir/test_put.mnv

Patch 8.2.3678 (after 8.2.3677)
Problem:    Illegal memory access.
Solution:   Ignore changed indent when computing byte offset.
Files:      src/register.c

Patch 8.2.3679
Problem:    objc file detected as Octave. (Antony Lee)
Solution:   Detect objc by preprocessor lines. (Doug Kearns, closes #9223,
            closes #9220)
Files:      runtime/autoload/dist/ft.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3680
Problem:    Repeated code in xxd.
Solution:   Change exit_on_ferror() to getc_or_die(). (closes #9226)
Files:      src/xxd/xxd.c

Patch 8.2.3681
Problem:    Cannot drag popup window after click on a status line. (Sergey
            Vlasov)
Solution:   Reset on_status_line. (closes #9221)
Files:      src/mouse.c, src/testdir/test_popupwin.mnv,
            src/testdir/dumps/Test_popupwin_drag_04.dump

Patch 8.2.3682
Problem:    MNV9: assigning to a script variable drops the required type.
Solution:   Lookup the type of the variable and use it. (closes #9219)
Files:      src/evalvars.c, src/mnv9script.c, src/proto/mnv9script.pro,
            src/testdir/test_mnv9_assign.mnv

Patch 8.2.3683
Problem:    MNV9: cannot use `=expr` in :...do commands.
Solution:   Add EX_EXPAND to the commands. (closes #9232)
Files:      src/ex_cmds.h, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.3684
Problem:    Blockwise insert does not handle autoindent properly.
Solution:   Adjust text column for indent. (closes #9229)
Files:      src/ops.c, src/testdir/test_blockedit.mnv

Patch 8.2.3685
Problem:    Visual Studio project files are not recognized.
Solution:   Use the xml file type. (Doug Kearns)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3686
Problem:    Filetype detection often mixes up Forth and F#.
Solution:   Add a function to inspect the file contents. (Doug Kearns)
Files:      runtime/autoload/dist/ft.mnv, runtime/doc/filetype.txt,
            runtime/doc/syntax.txt, runtime/filetype.mnv, runtime/scripts.mnv,
            src/testdir/test_filetype.mnv

Patch 8.2.3687
Problem:    Blockwise insert does not handle autoindent properly when tab is
            inserted.
Solution:   Adjust text column for indent before computing column.
            (closes #9229)
Files:      src/ops.c, src/testdir/test_blockedit.mnv

Patch 8.2.3688
Problem:    The window title is not updated when dragging the scrollbar.
Solution:   Call maketitle(). (Christian Brabandt, closes #9238, closes #5383)
Files:      src/gui.c

Patch 8.2.3689
Problem:    ex_let_one() is too long.
Solution:   Split into multiple functions.
Files:      src/evalvars.c

Patch 8.2.3690
Problem:    MNV9: "filter #pat# cmd" does not work.
Solution:   Do not see #pat# as a comment.
Files:      src/ex_docmd.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.3691
Problem:    Build failure with small features.
Solution:   Add #ifdef. (Dominique Pellé)
Files:      src/gui.c

Patch 8.2.3692
Problem:    MNV9: cannot use :func inside a :def function.
Solution:   Make it work.
Files:      src/mnv9compile.c, src/mnv9.h, src/mnv9execute.c, src/errors.h,
            src/structs.h, src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.3693
Problem:    Coverity warns for possibly using a NULL pointer.
Solution:   Check for NULL and give an error.
Files:      src/mnv9execute.c, src/errors.h

Patch 8.2.3694
Problem:    Cannot use quotes in the count of an Ex command.
Solution:   Add getdigits_quoted().  Give an error when misplacing a quote in
            a range. (closes #9240)
Files:      src/ex_docmd.c, src/charset.c, src/proto/charset.pro,
            src/testdir/test_usercommands.mnv

Patch 8.2.3695
Problem:    Confusing error for missing key.
Solution:   Use the actual key for the error. (closes #9241)
Files:      src/eval.c, src/testdir/test_listdict.mnv

Patch 8.2.3696
Problem:    MNV9: error for invalid assignment when skipping.
Solution:   Do not check white space when skipping. (closes #9243)
Files:      src/evalvars.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.3697
Problem:    Cannot drag a popup without a border.
Solution:   Add the "dragall" option. (closes #9218)
Files:      runtime/doc/popup.txt, src/mouse.c, src/popupwin.c, src/mnv.h,
            src/testdir/test_popupwin.mnv,
            src/testdir/dumps/Test_popupwin_drag_05.dump,
            src/testdir/dumps/Test_popupwin_drag_06.dump

Patch 8.2.3698
Problem:    Match highlighting continues over breakindent.
Solution:   Stop before the end column. (closes #9242)
Files:      src/match.c, src/proto/match.pro, src/drawline.c,
            src/testdir/test_match.mnv,
            src/testdir/dumps/Test_match_linebreak.dump

Patch 8.2.3699
Problem:    The +title feature adds a lot of #ifdef but little code.
Solution:   Graduate the +title feature.
Files:      src/feature.h, src/alloc.c, src/arglist.c, src/autocmd.c,
            src/buffer.c, src/bufwrite.c, src/change.c, src/drawscreen.c,
            src/evalfunc.c, src/ex_cmds.c, src/ex_docmd.c, src/gui.c,
            src/gui_gtk_x11.c, src/if_xcmdsrv.c, src/locale.c, src/main.c,
            src/misc2.c, src/netbeans.c, src/option.c, src/optionstr.c,
            src/os_amiga.c, src/os_mswin.c, src/os_unix.c, src/os_win32.c,
            src/regexp.c, src/term.c, src/ui.c, src/version.c, src/window.c,
            src/globals.h, src/option.h, src/optiondefs.h,
            runtime/doc/options.txt, runtime/doc/various.txt

Patch 8.2.3700
Problem:    Text property highlighting continues over breakindent.
Solution:   Stop before the end column. (closes #9242)
Files:      src/drawline.c, src/testdir/test_textprop.mnv,
            src/testdir/dumps/Test_prop_linebreak.dump

Patch 8.2.3701
Problem:    MNV9: invalid LHS is not possible.
Solution:   Remove unreachable error message.
Files:      src/mnv9compile.c

Patch 8.2.3702
Problem:    First key in dict is seen as curly expression and fails.
Solution:   Ignore failure of curly expression. (closes #9247)
Files:      src/typval.c, src/dict.c, src/testdir/test_listdict.mnv

Patch 8.2.3703 (after 8.2.3686)
Problem:    Most people call F# "fsharp" and not "fs".
Solution:   Rename filetype "fs" to "fsharp".
Files:      runtime/autoload/dist/ft.mnv, runtime/filetype.mnv,
            src/testdir/test_filetype.mnv

Patch 8.2.3704
Problem:    MNV9: cannot use a list declaration in a :def function.
Solution:   Make it work.
Files:      runtime/doc/mnv9.txt, src/mnv9compile.c, src/errors.h,
            src/testdir/test_mnv9_assign.mnv

Patch 8.2.3705
Problem:    Cannot pass a lambda name to function() or funcref(). (Yegappan
            Lakshmanan)
Solution:   Handle a lambda name differently.
Files:      src/userfunc.c, src/proto/userfunc.pro, src/evalfunc.c,
            src/testdir/test_expr.mnv

Patch 8.2.3706 (after 8.2.3700)
Problem:    Text property highlighting is used on Tab.
Solution:   Only set in_linebreak when not on a Tab. (closes #9242)
Files:      src/drawline.c, src/testdir/test_textprop.mnv,
            src/testdir/dumps/Test_prop_after_tab.dump

Patch 8.2.3707
Problem:    MNV9: constant expression of elseif not recognized.
Solution:   Set instruction count before generating the expression.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.3708 (after 8.2.3707)
Problem:    MNV9: test fails with different error.
Solution:   Correct the error number.
Files:      src/testdir/test_mnv9_cmd.mnv

Patch 8.2.3709
Problem:    MNV9: backtick expression expanded when not desired.
Solution:   Only expand a backtick expression for commands that expand their
            argument.  Remove a few outdated TODO comments.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.3710
Problem:    MNV9: backtick expression expanded for :global.
Solution:   Check the following command.
Files:      runtime/doc/mnv9.txt, src/mnv9compile.c,
            src/testdir/test_mnv9_cmd.mnv

Patch 8.2.3711
Problem:    MNV9: memory leak when compiling :elseif fails.
Solution:   Cleanup ppconst.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.3712
Problem:    Cannot use MNV9 lambda for 'tagfunc'.
Solution:   Make it work, add more tests. (Yegappan Lakshmanan, closes #9250)
Files:      runtime/doc/options.txt, src/insexpand.c, src/option.c,
            src/testdir/test_tagfunc.mnv

Patch 8.2.3713
Problem:    MS-Windows: No error message if mnvgrep pattern is not matching.
Solution:   Give an error message. (Christian Brabandt, closes #9245,
            closes #8762)
Files:      src/quickfix.c, src/testdir/test_quickfix.mnv

Patch 8.2.3714
Problem:    Some unused assignments and ugly code in xxd.
Solution:   Leave out assignments.  Use marcro for fprintf(). (closes #9246)
Files:      src/xxd/xxd.c

Patch 8.2.3715
Problem:    MNV9: valgrind reports spurious problems for a test.
Solution:   Move the test to the set that is known to fail.
Files:      src/testdir/test_mnv9_builtin.mnv, src/testdir/test_mnv9_fails.mnv

Patch 8.2.3716
Problem:    MNV9: range without a command is not compiled.
Solution:   Add the ISN_EXECRANGE byte code.
Files:      src/ex_docmd.c, src/proto/ex_docmd.pro, src/mnv9compile.c,
            src/mnv9execute.c, src/mnv9.h,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.3717
Problem:    MNV9: error for constant list size is only given at runtime.
Solution:   Give the error at compile time if possible.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.3718
Problem:    Compiler warns for unused variable without the +textprop feature.
            (John Marriott)
Solution:   Adjust #ifdefs.
Files:      src/drawline.c

Patch 8.2.3719
Problem:    MS-Windows: test sometimes runs into existing swap file.
Solution:   Use a different file name.
Files:      src/testdir/test_buffer.mnv

Patch 8.2.3720
Problem:    MNV9: Internal error when invoking closure in legacy context.
Solution:   Give a more appropriate error message. (closes #9251)
Files:      src/errors.h, src/mnv9execute.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.3721
Problem:    Using memory freed by losing the clipboard selection. (Dominique
            Pellé)
Solution:   Check y_array is still valid after calling changed_lines().
            (closes #9253)
Files:      src/errors.h, src/register.c

Patch 8.2.3722
Problem:    Amiga: superfluous messages for freeing lots of yanked text.
Solution:   Assume that the machine isn't that slow these days.
Files:      src/register.c

Patch 8.2.3723
Problem:    When using 'linebreak' a text property starts too early.
Solution:   Decrement "bcol" when looking for property start. (closes #9242)
Files:      src/drawline.c, src/testdir/test_textprop.mnv,
            src/testdir/dumps/Test_prop_after_linebreak.dump

Patch 8.2.3724
Problem:    Build error for missing error message in small build.
Solution:   Correct #ifdef.
Files:      src/errors.h

Patch 8.2.3725
Problem:    Cannot use a lambda for 'completefunc' and 'omnifunc'.
Solution:   Implement lambda support. (Yegappan Lakshmanan, closes #9257)
Files:      runtime/doc/options.txt, src/buffer.c, src/insexpand.c,
            src/option.c, src/optionstr.c, src/proto/insexpand.pro,
            src/proto/tag.pro, src/proto/userfunc.pro, src/structs.h,
            src/tag.c, src/userfunc.c, src/testdir/test_ins_complete.mnv,
            src/testdir/test_tagfunc.mnv

Patch 8.2.3726
Problem:    README file in a config directory gets wrong filetype.
Solution:   Match README before patterns that match everything in a directory.
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3727
Problem:    In a gnome terminal keys are recognized as mouse events.
Solution:   Only recognize DEC mouse events when four numbers are following.
            (closes #9256)
Files:      src/term.c, src/testdir/test_termcodes.mnv

Patch 8.2.3728
Problem:    Internal error when passing range() to list2blob().
Solution:   Materialize the list first. (closes #9262)
Files:      src/blob.c, src/testdir/test_blob.mnv

Patch 8.2.3729
Problem:    No support for squirrels.
Solution:   Recognize nuts. (closes #9259)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3730
Problem:    "/etc/Muttrc.d/README" gets filetype muttrc.
Solution:   Move the Muttrc.d pattern down, add exception for *.rc files.
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3731
Problem:    "set! termcap" shows codes in one column, but not keys.
Solution:   Also use one column for keys. (closes #9258)
Files:      src/option.c, src/term.c, src/proto/term.pro,
            src/testdir/test_set.mnv

Patch 8.2.3732 (after 8.2.3731)
Problem:    "set! termcap" test fails.
Solution:   Account for keys without a t_xx entry.
Files:      src/testdir/test_set.mnv

Patch 8.2.3733
Problem:    MNV9: using "legacy" before range does not work.
Solution:   Skip over range before parsing command. (closes #9270)
Files:      src/mnv9compile.c, src/usercmd.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.3734
Problem:    MNV9: crash when no pattern match found.
Solution:   Check for error.
Files:      src/mnv9execute.c

Patch 8.2.3735
Problem:    Cannot use a lambda for 'imactivatefunc'.
Solution:   Add lambda support for 'imactivatefunc' and 'imstatusfunc'.
            (Yegappan Lakshmanan, closes #9275)
Files:      runtime/doc/options.txt, src/alloc.c, src/gui_xim.c,
            src/optionstr.c, src/proto/gui_xim.pro,
            src/testdir/test_iminsert.mnv, src/testdir/test_ins_complete.mnv

Patch 8.2.3736
Problem:    Test fails without the channel feature. (Dominique Pellé)
Solution:   Source the check.mnv script. (closes #9277)
Files:      src/testdir/test_mnv9_fails.mnv

Patch 8.2.3737
Problem:    Test fails without the 'autochdir' option.
Solution:   Check that the option is available. (Dominique Pellé, closes #9272)
Files:      src/testdir/test_cd.mnv

Patch 8.2.3738
Problem:    Screen is cleared when a FocusLost autocommand triggers.
Solution:   Do not redraw when at the hit-enter or more prompt. (closes #9274)
Files:      src/misc1.c

Patch 8.2.3739
Problem:    In wrong directory when using win_execute() with 'acd' set.
Solution:   Restore the directory when returning to the window. (closes #9276)
Files:      src/window.c, src/testdir/test_autochdir.mnv

Patch 8.2.3740
Problem:    Memory left allocated on exit when using Tcl.
Solution:   Call Tcl_Finalize().
Files:      src/if_tcl.c, src/proto/if_tcl.pro, src/alloc.c

Patch 8.2.3741
Problem:    Using freed memory in open command.
Solution:   Make a copy of the current line.
Files:      src/ex_docmd.c, src/testdir/test_ex_mode.mnv

Patch 8.2.3742
Problem:    Dec mouse test fails without gnome terminfo entry.
Solution:   Check if there is a gnome entry. Also fix 'acd' test on
            MS-Windows. (Ozaki Kiichi, closes #9282)
Files:      src/testdir/test_termcodes.mnv, src/testdir/test_autochdir.mnv

Patch 8.2.3743
Problem:    ":sign" can add a highlight group without a name.
Solution:   Give an error if the group name is missing. (closes #9280)
Files:      src/sign.c, src/errors.h, src/testdir/test_signs.mnv

Patch 8.2.3744
Problem:    E854 is not tested; some spelling suggestions are not tested.
Solution:   Add a couple of tests. (Dominique Pellé, closes #9279)
Files:      src/testdir/test_options.mnv, src/testdir/test_spell.mnv

Patch 8.2.3745
Problem:    Autochdir test fails without the +channel feature.
Solution:   Remove the ch_logfile() call. (Dominique Pellé, closes #9281)
Files:      src/testdir/test_autochdir.mnv

Patch 8.2.3746
Problem:    Cannot disassemble function starting with "debug" or "profile".
Solution:   Check for white space following. (closes #9273)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.3747 (after 8.2.3743)
Problem:    Cannot remove highlight from an existing sign. (James McCoy)
Solution:   Only reject empty argument for a new sign.
Files:      src/sign.c, src/testdir/test_signs.mnv

Patch 8.2.3748 (after 8.2.3747)
Problem:    Giving an error for an empty sign argument breaks a plugin.
Solution:   Do not give an error.
Files:      src/sign.c, src/errors.h, src/testdir/test_signs.mnv

Patch 8.2.3749
Problem:    Error messages are everywhere.
Solution:   Move more error messages to errors.h and adjust the names.
Files:      src/errors.h, src/regexp_bt.c, src/regexp.c, src/regexp_nfa.c,
            src/globals.h, src/memfile.c, src/tag.c, src/getchar.c,
            src/bufwrite.c, src/cmdexpand.c

Patch 8.2.3750
Problem:    Error messages are everywhere.
Solution:   Move more error messages to errors.h and adjust the names.
Files:      src/globals.h, src/errors.h, src/blob.c, src/buffer.c,
            src/channel.c, src/ex_docmd.c, src/job.c, src/list.c, src/mark.c,
            src/misc1.c, src/os_unix.c, src/popupwin.c, src/register.c,
            src/session.c, src/spellfile.c, src/term.c, src/userfunc.c

Patch 8.2.3751
Problem:    Cannot assign a lambda to an option that takes a function.
Solution:   Automatically convert the lambda to a string. (Yegappan
            Lakshmanan, closes #9286)
Files:      runtime/doc/options.txt, src/eval.c, src/proto/eval.pro,
            src/evalvars.c, src/if_mzsch.c, src/if_ruby.c, src/if_tcl.c,
            src/option.c, src/option.h, src/optiondefs.h,
            src/proto/option.pro, src/spell.c, src/typval.c,
            src/mnv9compile.c, src/testdir/test_iminsert.mnv,
            src/testdir/test_ins_complete.mnv, src/testdir/test_tagfunc.mnv

Patch 8.2.3752
Problem:    Build error when using Photon GUI.
Solution:   Adjust #ifdef. (closes #9288)
Files:      src/beval.c

Patch 8.2.3753
Problem:    MNV9: function unreferenced while called is never deleted.
Solution:   Delete a function when no longer referenced.
Files:      src/mnv9execute.c, src/userfunc.c, src/proto/userfunc.pro

Patch 8.2.3754 (after 8.2.3615)
Problem:    Undesired changing of the indent of the first formatted line.
Solution:   Do not indent the first formatted line.
Files:      src/textformat.c, src/testdir/test_indent.mnv

Patch 8.2.3755
Problem:    Coverity warns for using a buffer in another scope.
Solution:   Declare the buffer in a common scope.
Files:      src/evalvars.c

Patch 8.2.3756
Problem:    might crash when callback is not valid.
Solution:   Check for valid callback. (Yegappan Lakshmanan, closes #9293)
Files:      src/insexpand.c, src/option.c, src/tag.c, src/job.c,
            src/userfunc.c, src/testdir/test_iminsert.mnv,
            src/testdir/test_ins_complete.mnv, src/testdir/test_tagfunc.mnv

Patch 8.2.3757
Problem:    An overlong highlight group name is silently truncated.
Solution:   Give an error if the name is too long. (closes #9289)
Files:      src/errors.h, src/highlight.c, src/testdir/test_highlight.mnv

Patch 8.2.3758
Problem:    Options that take a function insufficiently tested.
Solution:   Add additional tests and enhance existing tests. (Yegappan
            Lakshmanan, closes #9298)
Files:      src/testdir/test_ins_complete.mnv, src/testdir/test_normal.mnv,
            src/testdir/test_tagfunc.mnv

Patch 8.2.3759
Problem:    Quickfix buffer becomes hidden while still in a window.
Solution:   Check if the closed window is the last window showing the quickfix
            buffer. (Yegappan Lakshmanan, closes #9303, closes #9300)
Files:      src/quickfix.c, src/testdir/test_quickfix.mnv, src/window.c

Patch 8.2.3760
Problem:    Not automatically handling gnome terminal mouse like xterm.
Solution:   Default 'ttymouse' to "xterm" and recognize Focus events.
            (issue #9296)
Files:      src/os_unix.c

Patch 8.2.3761
Problem:    Focus change is not passed on to a terminal window.
Solution:   If the current window is a terminal and focus events are enabled
            send a focus event escape sequence to the terminal.
Files:      src/ui.c, src/terminal.c, src/proto/terminal.pro,
            src/testdir/test_terminal.mnv,
            src/testdir/dumps/Test_terminal_focus_1.dump,
            src/testdir/dumps/Test_terminal_focus_2.dump

Patch 8.2.3762
Problem:    If the quickfix buffer is wiped out getqflist() still returns its
            number.
Solution:   Use zero if the buffer is no longer present. (Yegappan Lakshmanan,
            closes #9306)
Files:      src/quickfix.c, src/testdir/test_quickfix.mnv

Patch 8.2.3763
Problem:    When editing the command line a FocusLost callback may cause the
            screen to scroll up.
Solution:   Do not redraw at the last line but at the same place where the
            command line was before. (closes #9295)
Files:      src/ex_getln.c, src/ui.c, src/beval.c, src/channel.c,
            src/drawscreen.c, src/proto/drawscreen.pro, src/job.c,
            src/popupwin.c, src/sound.c, src/terminal.c, src/time.c,
            src/testdir/test_terminal.mnv,
            src/testdir/dumps/Test_terminal_focus_1.dump,
            src/testdir/dumps/Test_terminal_focus_2.dump,
            src/testdir/dumps/Test_terminal_focus_3.dump

Patch 8.2.3764
Problem:    Cannot see any text when window was made zero lines or zero
            columns.
Solution:   Ensure there is at least one line and column. (fixes #9307)
Files:      src/window.c, src/proto/window.pro, src/normal.c, src/edit.c,
            src/testdir/test_window_cmd.mnv

Patch 8.2.3765
Problem:    MNV9: cannot use a lambda for 'opfunc' and others.
Solution:   Convert the lambda to a string.
Files:      src/mnv9compile.c, src/mnv9.h, src/mnv9execute.c,
            src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.3766
Problem:    Converting a funcref to a string leaves out "g:", causing the
            meaning of the name depending on the context.
Solution:   Prepend "g:" for a global function.
Files:      src/eval.c, src/testdir/test_functions.mnv

Patch 8.2.3767 (after 8.2.3766)
Problem:    Crash when using NULL partial.
Solution:   Check for NULL.
Files:      src/eval.c

Patch 8.2.3768
Problem:    timer_info() has the wrong repeat value in a timer callback.
            (Sergey Vlasov)
Solution:   Do not add one to the repeat value when in the callback.
            (closes #9294)
Files:      src/time.c, src/testdir/test_timers.mnv

Patch 8.2.3769
Problem:    Zig files are not recognized.
Solution:   Add *.zig. (Gregory Anders, closes #9313)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3770
Problem:    New compiler warnings from clang-12 and clang-13.
Solution:   Adjust CI and suppress some warnings. (Ozaki Kiichi, closes #9314)
Files:      .github/workflows/ci.yml, ci/config.mk.clang-12.sed,
            src/os_unix.c, src/spellfile.c

Patch 8.2.3771
Problem:    MNV9: accessing freed memory when checking type.
Solution:   Make a copy of a function type.
Files:      src/structs.h, src/evalvars.c, src/mnv9script.c,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.3772
Problem:    Timer info test fails on slow machine.
Solution:   Use WaitForAssert().
Files:      src/testdir/test_timers.mnv

Patch 8.2.3773
Problem:    Wrong window size when a modeline changes 'columns' and there is
            more than one tabpage. (Michael Soyka)
Solution:   Adjust the frames of all tabpages. (closes #9315)
Files:      src/window.c

Patch 8.2.3774 (after 8.2.3773)
Problem:    Test for command line height fails.
Solution:   Use another way to handle window size change.
Files:      src/structs.h, src/window.c

Patch 8.2.3775
Problem:    MNV9: lambda compiled without outer context when debugging.
Solution:   When compiling a lambda for debugging also compile it without.
            (closes #9302)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.3776
Problem:    When a tags file line is long a tag may not be found.
Solution:   When increasing the buffer size read the same line again.
Files:      src/tag.c, src/testdir/test_taglist.mnv

Patch 8.2.3777
Problem:    Spell file write error not checked.
Solution:   Check writing the prefix conditions. (Bjorn Linse, closes #9323)
Files:      src/spellfile.c

Patch 8.2.3778
Problem:    Lambda debug test fails in some configurations.
Solution:   Check feature in a legacy function.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.3779
Problem:    Using freed memory when defining a user command from a user
            command.
Solution:   Do not use the command pointer after executing the command.
            (closes #9318)
Files:      src/usercmd.c, src/testdir/test_usercommands.mnv

Patch 8.2.3780
Problem:    ":cd" works differently on MS-Windows.
Solution:   Add the 'cdhome' option. (closes #9324)
Files:      runtime/doc/editing.txt, runtime/doc/options.txt,
            runtime/doc/quickref.txt, runtime/optwin.mnv, src/ex_docmd.c,
            src/option.h, src/optiondefs.h, src/testdir/runtest.mnv,
            src/testdir/test_options.mnv

Patch 8.2.3781
Problem:    The option window script is outdated.
Solution:   Add several changes.
Files:      runtime/optwin.mnv

Patch 8.2.3782
Problem:    MNV9: no error if a function shadows a script variable.
Solution:   Check the function doesn't shadow a variable. (closes #9310)
Files:      src/userfunc.c, src/evalvars.c, src/mnv.h,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.3783
Problem:    Confusing error for using a variable as a function.
Solution:   If a function is not found but there is a variable, give a more
            useful error. (issue #9310)
Files:      src/eval.c, src/userfunc.c, src/proto/userfunc.pro,
            src/structs.h, src/mnv9execute.c, src/testdir/test_functions.mnv,
            src/testdir/test_mnv9_script.mnv, src/testdir/test_mnv9_func.mnv

Patch 8.2.3784
Problem:    The help for options is outdated.
Solution:   Include all the recent changes.
Files:      runtime/doc/options.txt

Patch 8.2.3785
Problem:    Running CI on macOS with gcc is not useful.
Solution:   Only use clang. (Ozaki Kiichi, closes #9326)  Also build with
            normal features.
Files:      .github/workflows/ci.yml

Patch 8.2.3786
Problem:    Test fails because of using MNV9 syntax in legacy function.
Solution:   Add "call".
Files:      src/testdir/test_functions.mnv

Patch 8.2.3787
Problem:    No proper formatting of a C line comment after a statement.
Solution:   Find the start of the line comment, insert the comment leader and
            indent the comment properly.
Files:      src/change.c, src/proto/change.pro, src/search.c,
            src/proto/search.pro, src/cindent.c, src/edit.c, src/normal.c,
            src/textformat.c, src/testdir/test_textformat.mnv,
            src/testdir/test_cindent.mnv

Patch 8.2.3788
Problem:    Lambda for option that is a function may be garbage collected.
Solution:   Set a reference in the funcref. (Yegappan Lakshmanan,
            closes #9330)
Files:      src/eval.c, src/evalbuffer.c, src/evalvars.c, src/gui_xim.c,
            src/insexpand.c, src/ops.c, src/proto/eval.pro,
            src/proto/gui_xim.pro, src/proto/insexpand.pro, src/proto/ops.pro,
            src/proto/tag.pro, src/quickfix.c, src/tag.c,
            src/testdir/test_iminsert.mnv, src/testdir/test_ins_complete.mnv,
            src/testdir/test_normal.mnv, src/testdir/test_quickfix.mnv,
            src/testdir/test_tagfunc.mnv

Patch 8.2.3789
Problem:    Test_window_minimal_size can fail on a slow machine.
Solution:   Do not rely on timers firing at the expected time. (Ozaki Kiichi,
            closes #9335)
Files:      src/testdir/test_window_cmd.mnv

Patch 8.2.3790
Problem:    Test for term_gettitle() fails in some environments.
Solution:   Make the digits after "MNV" optional. (Kenta Sato, closes #9334)
Files:      src/testdir/test_terminal2.mnv

Patch 8.2.3791
Problem:    Build error with +cindent but without +smartindent.
Solution:   Move declaration of "do_cindent". (John Marriott)
Files:      src/change.c

Patch 8.2.3792
Problem:    Setting *func options insufficiently tested.
Solution:   Improve tests. (Yegappan Lakshmanan, closes #9337)
Files:      src/testdir/test_iminsert.mnv, src/testdir/test_ins_complete.mnv,
            src/testdir/test_normal.mnv, src/testdir/test_quickfix.mnv,
            src/testdir/test_tagfunc.mnv

Patch 8.2.3793
Problem:    Using "g:Func" as a funcref does not work in script context
            because "g:" is dropped.
Solution:   Keep "g:" in the name.  Also add parenthesis to avoid confusing
            operator precedence. (closes #9336)
Files:      src/evalvars.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.3794
Problem:    MNV9: cannot find script-local func using "s:". (Yegappan
            Lakshmanan)
Solution:   Skip the "s:".
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.3795
Problem:    Too many #ifdefs.
Solution:   Graduate the jumplist feature.
Files:      runtime/doc/various.txt, runtime/doc/motion.txt, src/feature.h,
            src/buffer.c, src/change.c, src/evalfunc.c, src/ex_docmd.c,
            src/mark.c, src/normal.c, src/undo.c, src/version.c,
            src/mnvinfo.c, src/window.c, src/structs.h,
            src/testdir/test_changelist.mnv, src/testdir/test_jumplist.mnv,
            src/testdir/test_normal.mnv

Patch 8.2.3796
Problem:    The funcexe_T struct members are not named consistently.
Solution:   Prefix "fe_" to all the members.
Files:      src/structs.h, src/eval.c, src/list.c, src/regexp.c,
            src/terminal.c, src/userfunc.c, src/mnv9execute.c

Patch 8.2.3797
Problem:    No good reason to limit the message history in the tiny version.
Solution:   Always use 200.
Files:      runtime/doc/message.txt, src/feature.h

Patch 8.2.3798
Problem:    A :def callback function postpones an error message.
Solution:   Display the error after calling the function. (closes #9340)
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv,
            src/testdir/dumps/Test_opfunc_error.dump

Patch 8.2.3799 (after 8.2.3798)
Problem:    Edit test hangs or fails.
Solution:   Do not rethrow an exception when inside try/catch.
Files:      src/userfunc.c

Patch 8.2.3800
Problem:    When cross compiling the output of "uname" cannot be set. (Ben
            Reeves)
Solution:   Use cache variables. (closes #9338)
Files:      src/configure.ac, src/auto/configure

Patch 8.2.3801
Problem:    If a terminal shows in two windows, only one is redrawn.
Solution:   Reset the dirty row range only after redrawing all windows.
            (closes #9341)
Files:      src/terminal.c, src/proto/terminal.pro, src/drawscreen.c,
            src/testdir/test_terminal.mnv

Patch 8.2.3802
Problem:    Terminal in two windows test fails on some systems.
Solution:   Wait a bit between commands.
Files:      src/testdir/test_terminal.mnv

Patch 8.2.3803
Problem:    Crash when 'writedelay' is set and using a terminal window to
            execute a shell command.
Solution:   Check that "tl_vterm" isn't NULL. (closes #9346)
Files:      src/terminal.c

Patch 8.2.3804
Problem:    Script context not set when copying 'swf' and 'ts'.
Solution:   Use COPY_OPT_SCTX with the right argument. (closes #9347)
Files:      src/option.c

Patch 8.2.3805
Problem:    i3config files are not recognized.
Solution:   Add patterns to match i3config files. (Quentin Hibon,
            closes #7969)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3806
Problem:    Terminal focus test fails sometimes.
Solution:   Run the test function before others.
Files:      src/testdir/test_terminal.mnv

Patch 8.2.3807
Problem:    MNV9: can call import with star directly.
Solution:   Check that the import used star.
Files:      src/userfunc.c, src/eval.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.3808
Problem:    MNV9: obsolete TODO items
Solution:   Remove the comments.
Files:      src/mnv9execute.c

Patch 8.2.3809
Problem:    MNV9: crash when garbage collecting a nested partial. (Virginia
            Senioria)
Solution:   Set references in all the funcstacks. (closes #9348)
Files:      src/mnv9execute.c, src/proto/mnv9execute.pro, src/structs.h,
            src/eval.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.3810
Problem:    MNV9: expr4 test fails on MS-Windows.
Solution:   Do not give an error for a missing function name when skipping.
Files:      src/eval.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.3811
Problem:    The opfunc error test fails on a slow machine.
Solution:   Use WaitForAssert().
Files:      src/testdir/test_mnv9_func.mnv

Patch 8.2.3812
Problem:    MNV9: leaking memory in numbered function test.
Solution:   Skip "g:" when checking for numbered function.  Clean up after
            errors properly.
Files:      src/userfunc.c

Patch 8.2.3813
Problem:    confusing error when using :cc without error list. (Gary Johnson)
Solution:   Give the "no errors" error.
Files:      src/ex_docmd.c, src/testdir/test_quickfix.mnv

Patch 8.2.3814
Problem:    .csx files and .sln files are not recognized.
Solution:   Add filetype patterns. (Doug Kearns)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3815
Problem:    MNV9: cannot have a multi-line dict inside a block.
Solution:   Do not split the command at a line break, handle NL characters
            as white space.
Files:      src/ex_docmd.c, src/charset.c, src/proto/charset.pro,
            src/eval.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.3816
Problem:    Compiler warning for possible loss of data on MS-Windows.
Solution:   Add type cast. (Mike Williams, closes #9349)
Files:      src/userfunc.c

Patch 8.2.3817 (after 8.2.3815)
Problem:    MNV9: Not using NL as command end does not work for :autocmd.
Solution:   Only ignore NL for commands with an expression argument.
Files:      src/ex_cmds.h, src/ex_docmd.c, src/testdir/test_usercommands.mnv

Patch 8.2.3818
Problem:    Cannot filter or map characters in a string.
Solution:   Make filter() and map() work on a string. (Naruhiko Nishino,
            closes #9327)
Files:      runtime/doc/eval.txt, src/errors.h, src/list.c,
            src/testdir/test_filter_map.mnv

Patch 8.2.3819 (after 8.2.3818)
Problem:    Test fails because error message changed.
Solution:   Update screendumps.
Files:      src/testdir/dumps/Test_popupwin_three_errors_1.dump,
            src/testdir/dumps/Test_popupwin_three_errors_2.dump

Patch 8.2.3820
Problem:    "vrc" does not replace composing characters, while "rc" does.
Solution:   Check the byte length including composing characters.
            (closes #9351)
Files:      src/ops.c, src/testdir/test_visual.mnv

Patch 8.2.3821
Problem:    ASAN test run fails.
Solution:   Use asan_symbolize-13 instead of asan_symbolize-11.
Files:      .github/workflows/ci.yml

Patch 8.2.3822
Problem:    Leaking memory in map() and filter(), cannot use a string argument
            in MNV9 script.
Solution:   Fix the leak, adjust the argument check, also run the tests as
            MNV9 script. (Yegappan Lakshmanan, closes #9354)
Files:      src/errors.h, src/evalfunc.c, src/list.c, src/proto/typval.pro,
            src/testdir/test_filter_map.mnv,
            src/testdir/test_mnv9_builtin.mnv, src/typval.c

Patch 8.2.3823
Problem:    Test for visual replace is in wrong function.
Solution:   Move it to another function.
Files:      src/testdir/test_visual.mnv

Patch 8.2.3824
Problem:    No ASAN support for MSVC.
Solution:   Add ASAN support and fix a couple of uncovered problems. (Yegappan
            Lakshmanan, closes #9357)
Files:      src/Make_mvc.mak, src/findfile.c, src/os_mswin.c,
            src/testdir/test_fnamemodify.mnv

Patch 8.2.3825
Problem:    Various comments could be improved.
Solution:   Improve the comments.
Files:      src/getchar.c, src/mbyte.c, src/regexp_nfa.c,
            src/testdir/test_edit.mnv, src/gui_motif.c

Patch 8.2.3826
Problem:    MNV9: using "g:Func" as a funcref does not work in a :def
            function.
Solution:   Include "g:" in the function name. (closes #9336)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.3827
Problem:    Huntr badge does not really fit in the list.
Solution:   Move the link to Huntr to the issue template.
Files:      Filelist, .github/ISSUE_TEMPLATE/bug_report.yml, README.md

Patch 8.2.3828
Problem:    when opening a terminal from a timer the first typed character
            is lost. (Virginia Senioria)
Solution:   When opening a terminal while waiting for a character put K_IGNORE
            in the input buffer.
Files:      src/terminal.c, src/edit.c, src/testdir/test_terminal.mnv

Patch 8.2.3829
Problem:    No error when setting a func option to a script-local function.
Solution:   Give an error if the name starts with "s:". (closes #9358)
Files:      src/option.c, src/testdir/test_tagfunc.mnv,
            src/testdir/dumps/Test_set_tagfunc_on_cmdline.dump

Patch 8.2.3830
Problem:    Error messages are spread out.
Solution:   Move more error messages to errors.h.
Files:      src/globals.h, src/errors.h, src/buffer.c, src/dict.c, src/diff.c,
            src/digraph.c, src/eval.c, src/evalfunc.c, src/evalvars.c,
            src/misc2.c, src/quickfix.c, src/typval.c, src/ui.c,
            src/userfunc.c, src/mnv9compile.c, src/mnv9execute.c,
            src/mnv9type.c, src/window.c

Patch 8.2.3831
Problem:    Opfunc test fails when missing feature changes function name.
            (Dominique Pellé)
Solution:   Check the relevant screen line instead of using a screendump.
            (closes #9360)
Files:      src/testdir/test_mnv9_func.mnv,
            src/testdir/dumps/Test_opfunc_error.dump

Patch 8.2.3832 (after 8.2.3830)
Problem:    Test fails because of changed error message.
Solution:   Adjust the expected error message.
Files:      src/testdir/test_mnvscript.mnv

Patch 8.2.3833
Problem:    Error from term_start() not caught by try/catch.
Solution:   save and restore did_emsg when applying autocommands. (Ozaki
            Kiichi, closes #9361)
Files:      src/autocmd.c, src/testdir/test_terminal3.mnv

Patch 8.2.3834
Problem:    Test_out_cb often fails on Mac.
Solution:   Increase the timeout with every retry.
Files:      src/testdir/test_channel.mnv

Patch 8.2.3835
Problem:    The inline-function example does not work.
Solution:   Drop ":let".  Add EX_EXPR_ARG to CMD_var. (issue #9352)
Files:      runtime/doc/mnv9.txt, src/ex_cmds.h,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.3836
Problem:    MNV9: comment after expression not skipped to find NL.
Solution:   After evaluating an expression look for a newline after a #
            comment.
Files:      src/eval.c

Patch 8.2.3837
Problem:    QNX: crash when compiled with GUI but using terminal.
Solution:   Check gui.in_use is set. (Hirohito Higashi, closes #9363)
Files:      src/autocmd.c

Patch 8.2.3838
Problem:    Cannot use script-local function for setting *func options.
Solution:   Use the script context. (Yegappan Lakshmanan, closes #9362)
Files:      src/option.c, src/testdir/dumps/Test_set_tagfunc_on_cmdline.dump,
            src/testdir/test_ins_complete.mnv, src/testdir/test_normal.mnv,
            src/testdir/test_quickfix.mnv, src/testdir/test_tagfunc.mnv

Patch 8.2.3839
Problem:    Using \z() with \z1 not tested for syntax highlighting.
Solution:   Add a test. (Dominique Pellé, closes #9365)
Files:      src/testdir/test_syntax.mnv

Patch 8.2.3840
Problem:    Useless test for negative index in check functions.
Solution:   Remove the test for negative index. (Naruhiko Nishino,
            closes #9364)
Files:      src/typval.c

Patch 8.2.3841
Problem:    MNV9: outdated TODO items, disabled tests that work.
Solution:   Remove TODO items, run tests that work now.  Check that a dict
            item isn't locked.
Files:      src/mnv9execute.c, src/evalvars.c, src/errors.h, src/globals.h,
            src/testdir/test_listdict.mnv, src/testdir/test_mnv9_assign.mnv

Patch 8.2.3842
Problem:    MNV9: can change locked list and list items.
Solution:   Check that a list and list item isn't locked.
Files:      src/mnv9execute.c, src/testdir/test_listdict.mnv

Patch 8.2.3843
Problem:    Dep3patch files are not recognized.
Solution:   Recognize dep3patch files by their location and content. (James
            McCoy, closes #9367)
Files:      runtime/autoload/dist/ft.mnv, runtime/filetype.mnv,
            src/testdir/test_filetype.mnv

Patch 8.2.3844
Problem:    MNV9: no type error if assigning a value with type func(number) to
            a variable of type func(string).
Solution:   Use check_type_maybe(): return MAYBE if a runtime type check is
            useful.  (issue #8492)
Files:      src/mnv9type.c, src/proto/mnv9type.pro, src/mnv9compile.c,
            src/testdir/test_mnv9_assign.mnv

Patch 8.2.3845
Problem:    MNV9: test fails when the channel feature is missing.
Solution:   Check for the channel feature. (Dominique Pellé, closes #9368)
Files:      src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3846
Problem:    No error when using control character for 'lcs' or 'fcs'.
Solution:   Use char2cells() to check the width. (closes #9369)
Files:      src/screen.c, src/testdir/test_display.mnv,
            src/testdir/test_listchars.mnv

Patch 8.2.3847
Problem:    Illegal memory access when using a lambda with an error.
Solution:   Avoid skipping over the NUL after a string.
Files:      src/eval.c, src/testdir/test_lambda.mnv

Patch 8.2.3848
Problem:    Cannot use reduce() for a string.
Solution:   Make reduce() work with a string. (Naruhiko Nishino, closes #9366)
Files:      runtime/doc/eval.txt, src/errors.h, src/evalfunc.c, src/list.c,
            src/typval.c, src/proto/typval.pro, src/testdir/test_listdict.mnv,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3849
Problem:    Functions implementing reduce and map are too long.
Solution:   Use a function for each type of value.  Add a few more test cases
            and add to the help. (Yegappan Lakshmanan, closes #9370)
Files:      runtime/doc/eval.txt, src/list.c, src/testdir/test_listdict.mnv

Patch 8.2.3850
Problem:    Illegal memory access when displaying a partial.
Solution:   Terminate the string with a NUL. (closes #9371)
Files:      src/eval.c, src/testdir/test_messages.mnv

Patch 8.2.3851
Problem:    MNV9: overhead when comparing string, dict or function.
Solution:   Call the intended compare function directly.  Refactor to avoid
            duplicated code.
Files:      src/mnv9execute.c, src/typval.c, src/proto/typval.pro

Patch 8.2.3852
Problem:    MNV9: not enough tests.
Solution:   Also run existing tests for MNV9 script.  Make errors more
            consistent.
Files:      src/testdir/test_listdict.mnv, src/eval.c, src/mnv9compile.c,
            src/errors.h

Patch 8.2.3853
Problem:    MNV9: not enough tests.
Solution:   Run more existing tests for MNV9 script.
Files:      src/testdir/test_listdict.mnv

Patch 8.2.3854
Problem:    MNV9: inconsistent arguments for test functions.
Solution:   When :def function and script have different arguments use a list
            with two items instead of a separate function.
Files:      src/testdir/mnv9.mnv, src/testdir/test_execute_func.mnv,
            src/testdir/test_float_func.mnv, src/testdir/test_functions.mnv,
            src/testdir/test_glob2regpat.mnv, src/testdir/test_listdict.mnv,
            src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_builtin.mnv, src/testdir/test_mnv9_cmd.mnv,
            src/testdir/test_mnv9_expr.mnv, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.3855
Problem:    Illegal memory access when displaying a blob.
Solution:   Append a NUL at the end. (Yegappan Lakshmanan, closes #9372)
Files:      src/blob.c, src/regexp_nfa.c, src/testdir/test_blob.mnv,
            src/testdir/test_messages.mnv

Patch 8.2.3856
Problem:    MNV9: not enough tests.
Solution:   Run more expression tests also with MNV9. Fix an uncovered
            problem.
Files:      src/mnv9compile.c, src/testdir/test_expr.mnv, src/testdir/mnv9.mnv

Patch 8.2.3857
Problem:    MNV9: inconsistent error for using function().
Solution:   Use a runtime type check for the result of function().
            (closes #8492)
Files:      src/evalfunc.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3858
Problem:    MNV9: not enough tests.
Solution:   Add tests for :try/:catch and :redir. Add missing type check.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_cmd.mnv

Patch 8.2.3859
Problem:    MNV9: some code lines not tested.
Solution:   Add a few specific tests.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_cmd.mnv, src/errors.h,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.3860
Problem:    MNV9: codecov struggles with the file size.
Solution:   Split mnv9compile.c into four files.
Files:      src/mnv9compile.c, src/proto/mnv9compile.pro, src/mnv9instr.c,
            src/proto/mnv9instr.pro, src/mnv9expr.c, src/proto/mnv9expr.pro,
            src/mnv9cmds.c, src/proto/mnv9cmds.pro, src/mnv9.h,
            src/mnv9execute.c, src/mnv9script.c, src/proto.h,
            src/Makefile, src/Make_ami.mak, src/Make_cyg_ming.mak,
            src/Make_mvc.mak, src/Make_vms.mms

Patch 8.2.3861
Problem:    List of distributed files is outdated.
Solution:   Add new files.
Files:      Filelist

Patch 8.2.3862
Problem:    Crash on exit with EXITFREE and using win_execute().
Solution:   Also save and restore tp_topframe. (issue #9374)
Files:      src/evalwindow.c, src/testdir/test_execute_func.mnv

Patch 8.2.3863 (after 8.2.3860)
Problem:    Various build flags accidentally enabled.
Solution:   Revert several lines in Makefile.
Files:      src/Makefile

Patch 8.2.3864
Problem:    Cannot disable requesting key codes from xterm.
Solution:   Add the 'xtermcodes' option, default on.
Files:      runtime/doc/options.txt, runtime/doc/term.txt, src/option.h,
            src/optiondefs.h, src/term.c, runtime/optwin.mnv

Patch 8.2.3865
Problem:    MNV9: compiler complains about using "try" as a struct member.
Solution:   Rename "try" to "tryref".
Files:      src/mnv9.h, src/mnv9cmds.c, src/mnv9execute.c, src/mnv9instr.c

Patch 8.2.3866
Problem:    MNV9: type checking global variables is inconsistent.
Solution:   Use the "unknown" type in more places.
Files:      src/globals.h, src/mnv9expr.c, src/mnv9instr.c, src/mnv9cmds.c,
            src/evalfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.3867
Problem:    Implementation of some list functions too complicated.
Solution:   Refactor do_sort_uniq(), f_count() and extend() (Yegappan
            Lakshmanan, closes #9378)
Files:      src/list.c

Patch 8.2.3868 (after 8.2.3866)
Problem:    MNV9: function test fails.
Solution:   Add missing changes.  Add test for earlier patch.
Files:      src/mnv9type.c, src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.3869
Problem:    MNV9: type checking for "any" is inconsistent.
Solution:   Always use a runtime type check for using "any" for a more
            specific type.
Files:      src/mnv9type.c, src/mnv9compile.c, src/mnv9expr.c,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.3870
Problem:    MS-Windows: wrong working directory when opening two files with
            right-click context menu. (Gabriel Dupras)
Solution:   Use the working directory and pass it on to the process creation.
            (Nir Lichtman, closes #9382, closes #8874)
Files:      src/GmnvExt/gmnvext.cpp, src/GmnvExt/gmnvext.h

Patch 8.2.3871
Problem:    List.c contains code for dict and blob.
Solution:   Refactor to put code where it belongs. (Yegappan Lakshmanan,
            closes #9386)
Files:      src/blob.c, src/dict.c, src/list.c, src/proto/blob.pro,
            src/proto/dict.pro, src/proto/list.pro, src/proto/strings.pro,
            src/strings.c, src/structs.h, src/testdir/test_filter_map.mnv,
            src/testdir/test_listdict.mnv, src/testdir/test_sort.mnv

Patch 8.2.3872
Problem:    MNV9: finddir() and uniq() return types can be more specific.
Solution:   Adjust the return type.
Files:      src/evalfunc.c, src/testdir/mnv9.mnv,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3873
Problem:    go.mod files are not recognized.
Solution:   Check for the file name. (closes #9380)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3874
Problem:    Cannot highlight the number column for a sign.
Solution:   Add the "numhl" argument. (James McCoy, closes #9381)
Files:      runtime/doc/options.txt, runtime/doc/sign.txt, src/drawline.c,
            src/popupwin.c, src/proto/sign.pro, src/sign.c, src/structs.h,
            src/testdir/test_signs.mnv

Patch 8.2.3875
Problem:    gcc complains about buffer overrun.
Solution:   Use mch_memmove() instead of STRCPY(). (John Marriott)
Files:      src/dict.c

Patch 8.2.3876
Problem:    'cindent' does not recognize inline namespace.
Solution:   Skip over "inline" to find "namespace". (closes #9383)
Files:      src/cindent.c, src/testdir/test_cindent.mnv

Patch 8.2.3877
Problem:    Function does not abort after a type error in compare
Solution:   Check getting number fails. (closes #9384)
Files:      src/typval.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.3878
Problem:    MNV9: debugger tries to read more lines than there are.
Solution:   Check the number of lines. (closes #9394)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.3879
Problem:    getreg() and getregtype() contain dead code.
Solution:   Remove the needless check. (closes #9392)  Also refactor to put
            common code in a shared function.
Files:      src/evalfunc.c

Patch 8.2.3880
Problem:    Solution filter files are not recognized.
Solution:   Add pattern *.slnf and use json. (Doug Kearns)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3881
Problem:    QNX: crash when compiled with GUI but using terminal.
Solution:   Check the gui.in_use flag. (Hirohito Higashi, closes #9391)
Files:      src/main.c

Patch 8.2.3882 (after 8.2.3879)
Problem:    More duplicated code in f_getreginfo().
Solution:   Also use getreg_get_regname(). (closes #9398)
Files:      src/evalfunc.c

Patch 8.2.3883
Problem:    Crash when switching to other regexp engine fails.
Solution:   Check for regprog being NULL.
Files:      src/ex_cmds.c

Patch 8.2.3884
Problem:    Crash when clearing the argument list while using it.
Solution:   Lock the argument list for ":all".
Files:      src/arglist.c, src/testdir/test_arglist.mnv

Patch 8.2.3885
Problem:    Arglist test fails.
Solution:   Adjust for locking the arglist for ":all".
Files:      src/testdir/test_arglist.mnv

Patch 8.2.3886
Problem:    Can define autocmd for every event by using "au!".
Solution:   Check if a command is present also for "au!".
Files:      src/autocmd.c, src/testdir/test_autocmd.mnv,
            src/testdir/test_arglist.mnv

Patch 8.2.3887
Problem:    E1135 is used for two different errors.
Solution:   Renumber one error.
Files:      src/errors.h, src/testdir/test_mapping.mnv

Patch 8.2.3888
Problem:    The argument list may contain duplicates.
Solution:   Add the :argdedeupe command. (Nir Lichtman, closes #6235)
Files:      runtime/doc/editing.txt, runtime/doc/index.txt, src/arglist.c,
            src/ex_cmdidxs.h, src/ex_cmds.h, src/proto/arglist.pro,
            src/testdir/test_arglist.mnv

Patch 8.2.3889
Problem:    Duplicate code for translating script-local function name.
Solution:   Move the code to get_scriptlocal_funcname(). (Yegappan Lakshmanan,
            closes #9393)
Files:      src/evalfunc.c, src/evalvars.c, src/option.c, src/userfunc.c,
            src/proto/userfunc.pro, src/testdir/test_expr.mnv,
            src/testdir/test_normal.mnv

Patch 8.2.3890
Problem:    MNV9: type check for using v: variables is basic.
Solution:   Specify a more precise type.
Files:      src/evalvars.c, src/proto/evalvars.pro, src/mnv9instr.c,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.3891
Problem:    Github CI: workflows may overlap.
Solution:   Cancel previous workflows when starting a new one. (Yegappan
            Lakshmanan, closes #9400)
Files:      .github/workflows/ci.yml, .github/workflows/codeql-analysis.yml

Patch 8.2.3892
Problem:    When modifyOtherKeys is used CTRL-C is not recognized.
Solution:   Check for uppercase C as well, fix minimum length.
Files:      src/ui.c

Patch 8.2.3893
Problem:    MNV9: many local variables are initialized with an instruction.
Solution:   Initialize local variables to zero to avoid the instructions.
Files:      src/mnv9execute.c, src/mnv9compile.c, src/mnv9instr.c,
            src/proto/mnv9instr.pro, src/mnv9cmds.c,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.3894
Problem:    MNV9: no proper type check for first argument of call().
Solution:   Add specific type check.
Files:      src/evalfunc.c, src/typval.c, src/proto/typval.pro,
            src/errors.h, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3895
Problem:    MNV9: confusing error when using function() with a number.
Solution:   Check for a function or string argument.
Files:      src/evalfunc.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3896
Problem:    MNV9: no test for nested function not available later.
Solution:   Add a test.
Files:      src/testdir/test_mnv9_func.mnv

Patch 8.2.3897
Problem:    MNV9: the second argument of map() and filter() is not checked at
            compile time.
Solution:   Add more specific type check for the second argument.
Files:      src/evalfunc.c, src/globals.h, src/list.c,
            src/testdir/test_mnv9_builtin.mnv, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.3898
Problem:    MNV9: not sufficient testing for variable initialization.
Solution:   Add another test case.
Files:      src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.3899 (after 8.2.3897)
Problem:    MNV9: test for map() on string fails.
Solution:   Expect string return type.
Files:      src/evalfunc.c

Patch 8.2.3900
Problem:    It is not easy to use a script-local function for an option.
Solution:   recognize s: and <SID> at the start of the expression. (Yegappan
            Lakshmanan, closes #9401)
Files:      runtime/doc/diff.txt, runtime/doc/fold.txt,
            runtime/doc/options.txt, runtime/doc/print.txt, src/optionstr.c,
            src/testdir/test_diffmode.mnv, src/testdir/test_edit.mnv,
            src/testdir/test_fold.mnv, src/testdir/test_gf.mnv,
            src/testdir/test_gui.mnv, src/testdir/test_hardcopy.mnv,
            src/testdir/test_normal.mnv

Patch 8.2.3901
Problem:    MNV9: Cannot set 'cpo' in main .mnvrc if using MNV9 script.
Solution:   Do not restore 'cpo' at the end of the main .mnvrc.
Files:      runtime/doc/mnv9.txt, runtime/doc/options.txt, src/scriptfile.c,
            src/structs.h, src/testdir/test_mnv9_script.mnv

Patch 8.2.3902
Problem:    MNV9: double free with nested :def function.
Solution:   Pass "line_to_free" from compile_def_function() and make sure
            cmdlinep is valid.
Files:      src/mnv9compile.c, src/userfunc.c, src/proto/userfunc.pro,
            src/mnv9execute.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.3903
Problem:    "gM" does not count tabs as expected.
Solution:   Use linetabsize() instead of mb_string2cells(). (closes #9409)
Files:      src/normal.c, src/testdir/test_normal.mnv

Patch 8.2.3904
Problem:    MNV9: skip expression type is not checked at compile time.
Solution:   Add argument type checks.
Files:      src/evalfunc.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3905
Problem:    Dockerfile using prefix name not recognized.
Solution:   Recognize Dockerfile.*. (closes #9410)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3906
Problem:    MNV9 help still contains "under development" warnings.
Solution:   Remove the explicit warning.
Files:      runtime/doc/mnv9.txt

Patch 8.2.3907
Problem:    Error messages are spread out.
Solution:   Move error messages to errors.h.  Avoid duplicates.
Files:      src/userfunc.c, src/ex_cmds.c, src/mnvinfo.c, src/errors.h,
            src/testdir/test_user_func.mnv

Patch 8.2.3908
Problem:    Cannot use a script-local function for 'foldtext'.
Solution:   Expand "s:" and "<SID>". (Yegappan Lakshmanan, closes #9411)
Files:      runtime/doc/fold.txt, src/optionstr.c, src/strings.c,
            src/testdir/test_blob.mnv, src/testdir/test_expr.mnv,
            src/testdir/test_filter_map.mnv, src/testdir/test_fold.mnv,
            src/testdir/test_listdict.mnv

Patch 8.2.3909
Problem:    Containerfile using prefix name not recognized.
Solution:   Recognize Containerfile.*.
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3910
Problem:    When the compare function of sort() produces and error then sort()
            does not abort.
Solution:   Check if did_emsg was incremented.
Files:      src/list.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3911
Problem:    MNV9: type check for filter() does not accept unknown.
Solution:   Also accept unknown for the return type. (closes #9413)
Files:      src/evalfunc.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3912
Problem:    The ins_complete() function is much too long.
Solution:   Split it up into multiple functions. (Yegappan Lakshmanan,
            closes #9414)
Files:      src/insexpand.c

Patch 8.2.3913
Problem:    Help for expressions does not mention MNV9 syntax.
Solution:   Add the rules for MNV9 to the expression help.  Rename functions
            to match the help.
Files:      runtime/doc/mnv9.txt, runtime/doc/eval.txt, src/mnv9expr.c

Patch 8.2.3914
Problem:    Various spelling mistakes in comments.
Solution:   Fix the mistakes. (Dominique Pellé, closes #9416)
Files:      src/alloc.c, src/blowfish.c, src/buffer.c, src/cindent.c,
            src/clipboard.c, src/diff.c, src/drawline.c, src/edit.c,
            src/ex_cmds.c, src/ex_docmd.c, src/findfile.c, src/fold.c,
            src/getchar.c, src/gui.c, src/gui_athena.c, src/gui_gtk.c,
            src/gui_motif.c, src/gui_photon.c, src/gui_w32.c, src/gui_xmebw.c,
            src/if_python.c, src/if_python3.c, src/if_xcmdsrv.c, src/main.c,
            src/memline.c, src/menu.c, src/message.c, src/misc1.c, src/move.c,
            src/option.c, src/os_amiga.c, src/os_mac.h, src/os_mac_conv.c,
            src/os_mswin.c, src/os_unix.c, src/os_win32.c, src/os_win32.h,
            src/quickfix.c, src/regexp_nfa.c, src/screen.c, src/scriptfile.c,
            src/spell.c, src/spellfile.c, src/spellsuggest.c, src/strings.c,
            src/term.c, src/terminal.c, src/testdir/test_debugger.mnv,
            src/testdir/test_source.mnv, src/textformat.c, src/userfunc.c,
            src/mnv.h, src/mnv9.h, src/mnv9cmds.c, src/mnv9execute.c,
            src/winclip.c, src/window.c

Patch 8.2.3915
Problem:    illegal memory access when completing with invalid bytes.
Solution:   Avoid going over the end of the completion text.
Files:      src/insexpand.c, src/testdir/test_ins_complete.mnv

Patch 8.2.3916
Problem:    No error for passing an invalid line number to append().
Solution:   In MNV9 script check for a non-negative number. (closes #9417)
Files:      src/evalbuffer.c, src/textprop.c, src/errors.h, src/indent.c,
            src/eval.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3917
Problem:    The eval.txt help file is way too big.
Solution:   Move the builtin function details to a separate file.
Files:      runtime/doc/eval.txt, runtime/doc/builtin.txt,
            runtime/doc/Makefile, runtime/doc/help.txt, runtime/doc/remote.txt

Patch 8.2.3918 (after 8.2.3916)
Problem:    Function list test fails.
Solution:   Adjust the test for the new location of the function list.
Files:      src/testdir/test_function_lists.mnv

Patch 8.2.3919
Problem:    MNV9: wrong argument for append() results in two errors.
Solution:   Check did_emsg.  Also for setline().  Adjust the help for
            appendbufline().
Files:      runtime/doc/builtin.txt, src/evalbuffer.c, src/typval.c,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3920
Problem:    Restoring directory after using another window is inefficient.
Solution:   Only restore the directory for win_execute().  Apply 'autochdir'
            only when needed.
Files:      src/evalwindow.c, src/testdir/test_autochdir.mnv

Patch 8.2.3921
Problem:    The way xdiff is used is inefficient.
Solution:   Use hunk_func instead of the out_line callback. (Lewis Russell,
            closes #9344)
Files:      src/diff.c

Patch 8.2.3922
Problem:    Cannot build with dynamic Ruby 3.1.
Solution:   Add "_EXTRA" variables for CI.  Add missing functions. (Ozaki
            Kiichi, closes #9420)
Files:      ci/config.mk.clang-12.sed, ci/config.mk.clang.sed,
            ci/config.mk.sed, src/Makefile, src/auto/configure,
            src/config.mk.in, src/configure.ac, src/if_ruby.c, src/mnv.h

Patch 8.2.3923
Problem:    MNV9: double free if a nested function has a line break in the
            argument list.
Solution:   Set cmdlinep when freeing the previous line.
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.3924
Problem:    MNV9: no error if something follows :enddef in a nested function.
Solution:   Give an error.  Move common code to a function.
Files:      src/userfunc.c, src/mnv9compile.c, src/errors.h,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.3925
Problem:    Diff mode confused by NUL bytes.
Solution:   Handle NUL bytes differently. (Christian Brabandt, closes #9421,
            closes #9418)
Files:      src/diff.c, src/testdir/test_diffmode.mnv,
            src/testdir/dumps/Test_diff_bin_01.dump,
            src/testdir/dumps/Test_diff_bin_02.dump,
            src/testdir/dumps/Test_diff_bin_03.dump,
            src/testdir/dumps/Test_diff_bin_04.dump

Patch 8.2.3926 (after 8.2.3920)
Problem:    Build failure without the 'autochdir' option. (John Marriott)
Solution:   Add #ifdefs.
Files:      src/evalwindow.c

Patch 8.2.3927
Problem:    MNV9: double free when using lambda.
Solution:   Don't free both cmdline and line_to_free.
Files:      src/userfunc.c

Patch 8.2.3928
Problem:    Heredoc test fails.
Solution:   Correct order of function arguments.
Files:      src/userfunc.c

Patch 8.2.3929
Problem:    Using uninitialized variable.
Solution:   Set the option flags to zero for a terminal option.
Files:      src/option.c

Patch 8.2.3930
Problem:    getcmdline() argument has a misleading type.
Solution:   Use the correct type, even though the value is not used.
Files:      src/ex_getln.c, src/proto/ex_getln.pro, src/ex_docmd.c,
            src/normal.c, src/register.c, src/userfunc.c

Patch 8.2.3931
Problem:    Coverity reports a memory leak.
Solution:   Free memory in case of failure.
Files:      src/diff.c

Patch 8.2.3932
Problem:    C line comment not formatted properly.
Solution:   If a line comment follows after "#if" the next line is not the end
            of a paragraph.
Files:      src/textformat.c, src/testdir/test_textformat.mnv

Patch 8.2.3933
Problem:    After ":cd" fails ":cd -" is incorrect.
Solution:   Set the previous directory only after successfully changing
            directory. (Richard Doty, closes #9419, closes #8983)
Files:      src/ex_docmd.c, src/testdir/test_cd.mnv

Patch 8.2.3934
Problem:    Repeating line comment is undesired for "O" command.
Solution:   Do not copy line comment leader for "O". (closes #9426)
Files:      src/change.c, src/testdir/test_textformat.mnv

Patch 8.2.3935
Problem:    CTRL-U in Insert mode does not fix the indent.
Solution:   Fix the indent when 'cindent' is set.
Files:      src/edit.c, src/testdir/test_textformat.mnv

Patch 8.2.3936
Problem:    No proper test for maintaining change mark in diff mode.
Solution:   Run the test with internal and external diff. (Sean Dewar,
            closes #9424)
Files:      src/testdir/test_diffmode.mnv

Patch 8.2.3937
Problem:    Insert mode completion function is too long.
Solution:   Refactor into multiple functions. (Yegappan Lakshmanan,
            closes #9423)
Files:      src/insexpand.c, src/testdir/test_ins_complete.mnv

Patch 8.2.3938
Problem:    Line comment start is also found in a string.
Solution:   Skip line comments in a string.
Files:      src/cindent.c, src/proto/cindent.pro, src/search.c,
            src/testdir/test_textformat.mnv

Patch 8.2.3939
Problem:    MS-Windows: fnamemodify('', ':p') does not work.
Solution:   Do not consider an empty string a full path. (Yegappan Lakshmanan,
            closes #9428, closes #9427)
Files:      src/os_mswin.c, src/testdir/test_fnamemodify.mnv

Patch 8.2.3940
Problem:    Match highlight disappears when doing incsearch for ":s/pat".
Solution:   Only use line limit for incsearch highlighting. (closes #9425)
Files:      src/match.c, src/testdir/test_match.mnv,
            src/testdir/dumps/Test_match_with_incsearch_1.dump,
            src/testdir/dumps/Test_match_with_incsearch_2.dump

Patch 8.2.3941
Problem:    SIGTSTP is not handled.
Solution:   Handle SIGTSTP like pressing CTRL-Z. (closes #9422)
Files:      runtime/doc/autocmd.txt, src/ex_docmd.c, src/os_unix.c,
            src/proto/ex_docmd.pro, src/testdir/test_signals.mnv

Patch 8.2.3942
Problem:    Coverity reports a possible memory leak.
Solution:   Free the array if allocation fails.
Files:      src/insexpand.c

Patch 8.2.3943
Problem:    Compiler warning from gcc for uninitialized variable.
Solution:   Initialize variable. (closes #9429)
Files:      src/diff.c

Patch 8.2.3944
Problem:    Insert mode completion functions are too long.
Solution:   Split up into multiple functions. (Yegappan Lakshmanan,
            closes #9431)
Files:      src/insexpand.c, src/testdir/test_ins_complete.mnv

Patch 8.2.3945
Problem:    MNV9: partial variable argument types are wrong, leading to a
            crash.
Solution:   When adjusting the argument count also adjust the argument types.
            (closes #9433)
Files:      src/mnv9type.c, src/userfunc.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.3946
Problem:    When an internal error makes MNV exit the error is not seen.
Solution:   Add the error to the test output.
Files:      src/message.c, src/testdir/runtest.mnv

Patch 8.2.3947
Problem:    Unnecessary check for NULL pointer.
Solution:   Remove the check. (closes #9434)
Files:      src/ex_docmd.c

Patch 8.2.3948
Problem:    MNV9: failure with partial with unknown argument count.
Solution:   Do not copy argument types if there aren't any.
Files:      src/mnv9type.c

Patch 8.2.3949
Problem:    Using freed memory with /\%V.
Solution:   Get the line again after getvvcol().
Files:      src/regexp.c, src/testdir/test_regexp_latin.mnv

Patch 8.2.3950
Problem:    Going beyond the end of the line with /\%V.
Solution:   Check for valid column in getvcol().
Files:      src/charset.c, src/testdir/test_regexp_latin.mnv

Patch 8.2.3951
Problem:    MNV9: memory leak when text after a nested function.
Solution:   Free the function if text is found after "enddef".
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.3952
Problem:    First line not redrawn when adding lines to an empty buffer.
Solution:   Adjust the argument to appended_lines(). (closes #9439,
            closes #9438)
Files:      src/ex_cmds.c, src/testdir/test_excmd.mnv

Patch 8.2.3953
Problem:    Insert completion code is too complicated.
Solution:   More refactoring.  Move function arguments into a struct.
            (Yegappan Lakshmanan, closes #9437)
Files:      src/insexpand.c

Patch 8.2.3954
Problem:    MNV9: no error for shadowing if script var is declared later.
Solution:   Check argument names when compiling a function.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_assign.mnv

Patch 8.2.3955
Problem:    Error messages are spread out.
Solution:   Move more errors to errors.h.
Files:      src/errors.h, src/globals.h, src/debugger.c, src/ex_cmds.c,
            src/help.c, src/sign.c, src/spellfile.c

Patch 8.2.3956
Problem:    Duplicate assignment.
Solution:   Remove the second assignment. (closes #9442)
Files:      src/evalfunc.c

Patch 8.2.3957
Problem:    Error messages are spread out.
Solution:   Move more errors to errors.h.
Files:      src/errors.h, src/globals.h, src/arglist.c, src/bufwrite.c,
            src/evalvars.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_eval.c,
            src/help.c, src/scriptfile.c, src/usercmd.c, src/userfunc.c,
            src/mnv9cmds.c, src/mnv9compile.c

Patch 8.2.3958
Problem:    Build failure compiling xxd with "-std=c2x".
Solution:   define _XOPEN_SOURCE. (Yegappan Lakshmanan, closes #9444)
Files:      src/xxd/xxd.c

Patch 8.2.3959
Problem:    Error messages are spread out.
Solution:   Move more errors to errors.h.
Files:      src/errors.h, src/autocmd.c, src/bufwrite.c, src/evalvars.c,
            src/ex_docmd.c, src/ex_eval.c, src/ex_getln.c, src/fileio.c,
            src/getchar.c, src/gui.c, src/locale.c, src/map.c

Patch 8.2.3960
Problem:    Error messages are spread out.
Solution:   Move more errors to errors.h.
Files:      src/errors.h, src/alloc.c, src/arglist.c, src/autocmd.c,
            src/blob.c, src/blowfish.c, src/buffer.c, src/bufwrite.c

Patch 8.2.3961
Problem:    Error messages are spread out.
Solution:   Move more errors to errors.h.
Files:      src/errors.h, src/globals.h, src/arglist.c, src/autocmd.c,
            src/blob.c, src/bufwrite.c, src/channel.c, src/clipboard.c,
            src/cmdexpand.c, src/debugger.c, src/dict.c, src/eval.c,
            src/evalfunc.c, src/evalvars.c, src/evalwindow.c, src/ex_cmds.c,
            src/ex_docmd.c, src/ex_eval.c, src/ex_getln.c, src/fileio.c,
            src/filepath.c, src/gui_gtk_x11.c, src/gui_haiku.cc,
            src/gui_photon.c, src/gui_w32.c, src/gui_x11.c, src/highlight.c,
            src/indent.c, src/insexpand.c, src/job.c, src/json.c, src/list.c,
            src/map.c, src/mark.c, src/match.c, src/mbyte.c, src/menu.c,
            src/message.c, src/misc2.c, src/ops.c, src/option.c,
            src/optionstr.c, src/popupwin.c, src/quickfix.c, src/screen.c,
            src/scriptfile.c, src/search.c, src/sign.c, src/spell.c,
            src/spellfile.c, src/strings.c, src/syntax.c, src/terminal.c,
            src/testing.c, src/textprop.c, src/time.c, src/userfunc.c,
            src/mnv9cmds.c, src/mnv9execute.c, src/mnv9script.c, src/window.c

Patch 8.2.3962 (after 8.2.3961)
Problem:    Build fails for missing error message.
Solution:   Add changes in missed file.
Files:      src/regexp_bt.c

Patch 8.2.3963
Problem:    Build failure with tiny and small features. (Tony Mechelynck)
Solution:   Adjust #ifdefs.
Files:      src/errors.h, src/message.c

Patch 8.2.3964
Problem:    Some common lisp and scheme files not recognized.
Solution:   Recognize *.asd as lisp and *.sld as scheme. (Alex Vear,
            closes #9447)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3965
Problem:    MNV9: no easy way to check if MNV9 script is supported.
Solution:   Add has('mnv9script').
Files:      runtime/doc/mnv9.txt, src/evalfunc.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.3966
Problem:    When using feedkeys() abbreviations may be blocked.
Solution:   Reset tb_no_abbr_cnt when running out of characters.
            (closes #9448)
Files:      src/getchar.c, src/testdir/test_feedkeys.mnv

Patch 8.2.3967
Problem:    Error messages are spread out.
Solution:   Move more errors to errors.h.
Files:      src/errors.h, src/globals.h, src/feature.h, src/arglist.c,
            src/autocmd.c, src/blob.c, src/bufwrite.c, src/channel.c,
            src/cmdexpand.c, src/dict.c, src/diff.c, src/eval.c,
            src/evalfunc.c, src/evalvars.c, src/ex_cmds.c, src/ex_docmd.c,
            src/fileio.c, src/filepath.c, src/getchar.c, src/gui_gtk_x11.c,
            src/gui_x11.c, src/hardcopy.c, src/help.c, src/highlight.c,
            src/if_cscope.c, src/if_lua.c, src/if_mzsch.c, src/if_perl.xs,
            src/if_python.c, src/if_python3.c, src/if_ruby.c, src/if_tcl.c,
            src/if_xcmdsrv.c, src/indent.c, src/insexpand.c, src/job.c,
            src/list.c, src/main.c, src/map.c, src/match.c, src/mbyte.c,
            src/message.c, src/misc1.c, src/option.c, src/optionstr.c,
            src/os_mswin.c, src/os_unix.c, src/os_win32.c, src/popupwin.c,
            src/profiler.c, src/quickfix.c, src/scriptfile.c, src/search.c,
            src/session.c, src/sign.c, src/spell.c, src/spellfile.c,
            src/spellsuggest.c, src/syntax.c, src/tag.c, src/terminal.c,
            src/testing.c, src/textprop.c, src/typval.c, src/userfunc.c,
            src/mnv9execute.c, src/mnv9expr.c, src/mnv9instr.c,
            src/mnv9script.c

Patch 8.2.3968
Problem:    Build failure.
Solution:   Add missing changes.
Files:      src/strings.c, src/mnv9compile.c

Patch 8.2.3969
Problem:    Value of MAXCOL not available in MNV script.
Solution:   Add v:maxcol. (Naohiro Ono, closes #9451)
Files:      runtime/doc/builtin.txt, runtime/doc/eval.txt, src/evalvars.c,
            src/testdir/test_cursor_func.mnv, src/testdir/test_normal.mnv,
            src/testdir/test_put.mnv, src/mnv.h

Patch 8.2.3970
Problem:    Error messages are spread out.
Solution:   Move more errors to errors.h.
Files:      src/errors.h, src/globals.h, src/buffer.c, src/bufwrite.c,
            src/clientserver.c, src/cmdhist.c, src/dict.c, src/edit.c,
            src/eval.c, src/evalfunc.c, src/evalvars.c, src/ex_cmds.c,
            src/ex_docmd.c, src/ex_eval.c, src/ex_getln.c, src/gui_w32.c,
            src/gui_x11.c, src/if_xcmdsrv.c, src/insexpand.c, src/json.c,
            src/match.c, src/menu.c, src/option.c, src/optionstr.c,
            src/os_mswin.c, src/quickfix.c, src/regexp_bt.c, src/regexp_nfa.c,
            src/scriptfile.c, src/sign.c, src/spellfile.c, src/undo.c,
            src/userfunc.c, src/mnv9cmds.c, src/mnv9compile.c,
            src/mnv9execute.c, src/mnv9expr.c, src/window.c

Patch 8.2.3971
Problem:    Build fails.
Solution:   Use the right error message name.
Files:      src/typval.c

Patch 8.2.3972
Problem:    Error messages are spread out.
Solution:   Move the last errors from globals.h to errors.h.
Files:      src/errors.h, src/globals.h, src/eval.c, src/evalfunc.c,
            src/evalvars.c, src/evalwindow.c, src/ex_eval.c, src/list.c,
            src/match.c, src/menu.c, src/popupmenu.c, src/search.c,
            src/mnv9cmds.c, src/mnv9expr.c

Patch 8.2.3973
Problem:    Tiny build fails.
Solution:   Adjust #ifdefs
Files:      src/errors.h

Patch 8.2.3974
Problem:    MNV9: LISTAPPEND instruction does not check for a locked list.
Solution:   Check whether the list is locked. (closes #9452)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3975
Problem:    Error messages are spread out.
Solution:   Move more error messages to errors.h.
Files:      src/errors.h, src/clientserver.c, src/fileio.c, src/gui.c,
            src/gui_beval.c, src/gui_w32.c, src/gui_x11.c, src/if_cscope.c,
            src/if_xcmdsrv.c, src/os_mswin.c, src/sign.c, src/mnvinfo.c,
            src/window.c

Patch 8.2.3976
Problem:    FEARG_LAST is never used. (Dominique Pellé)
Solution:   Remove FEARG_LAST and the related code.
Files:      src/evalfunc.c

Patch 8.2.3977
Problem:    Error messages are spread out.
Solution:   Move more error messages to errors.h.
Files:      src/errors.h, src/change.c, src/clientserver.c, src/eval.c,
            src/gui_xim.c, src/if_cscope.c, src/if_py_both.h, src/if_python.c,
            src/if_python3.c, src/if_ruby.c, src/if_tcl.c, src/main.c,
            src/mark.c, src/match.c, src/memfile.c, src/memline.c,
            src/terminal.c, src/textprop.c, src/userfunc.c

Patch 8.2.3978
Problem:    Build error when using dynamically loaded Python 3.
Solution:   Adjust #ifdef.
Files:      src/errors.h

Patch 8.2.3979
Problem:    MNV9: the feature is not mentioned in the right places.
Solution:   Add +mnv9script to the help and :version output.
Files:      runtime/doc/builtin.txt, runtime/doc/various.txt, src/version.c

Patch 8.2.3980
Problem:    If 'operatorfunc' invokes an operator the remembered Visual mode
            may be changed. (Naohiro Ono)
Solution:   Save and restore the information for redoing the Visual area.
            (closes #9455)
Files:      src/ops.c, src/testdir/test_normal.mnv

Patch 8.2.3981
Problem:    MNV9: debugging a for loop doesn't stop before it starts.
Solution:   Keep the DEBUG instruction before the expression is evaluated.
            (closes #9456)
Files:      src/mnv9cmds.c, src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.3982
Problem:    Some lines of code not covered by tests.
Solution:   Add a few more test cases. (Dominique Pellé, closes #9453)
Files:      src/testdir/test_filter_map.mnv, src/testdir/test_highlight.mnv,
            src/testdir/test_regexp_latin.mnv, src/testdir/test_search.mnv,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3983
Problem:    Error messages are spread out.
Solution:   Move more error messages to errors.h.
Files:      src/errors.h, src/ex_docmd.c, src/fileio.c, src/filepath.c,
            src/findfile.c, src/hardcopy.c, src/memfile.c, src/memline.c,
            src/menu.c, src/normal.c, src/regexp_bt.c

Patch 8.2.3984 (after 8.2.3981)
Problem:    Debugger test fails.
Solution:   Adjust the test for modified debugging of a for loop.
Files:      src/testdir/test_debugger.mnv

Patch 8.2.3985
Problem:    Error messages are spread out.
Solution:   Move more error messages to errors.h.
Files:      src/errors.h, src/findfile.c, src/fold.c, src/hardcopy.c,
            src/highlight.c, src/map.c, src/message.c, src/normal.c,
            src/option.c, src/os_amiga.c, src/os_unix.c, src/os_win32.c,
            src/quickfix.c, src/regexp.c, src/register.c, src/search.c,
            src/syntax.c, src/tag.c, src/term.c, src/typval.c, src/undo.c,
            src/window.c

Patch 8.2.3986
Problem:    Error messages are spread out.
Solution:   Move more error messages to errors.h.
Files:      src/errors.h, src/evalvars.c, src/ex_cmds.c, src/ex_docmd.c,
            src/fileio.c, src/fold.c, src/gui_x11.c, src/hardcopy.c,
            src/help.c, src/highlight.c, src/if_cscope.c, src/json.c,
            src/map.c, src/netbeans.c, src/popupwin.c, src/usercmd.c,
            src/userfunc.c

Patch 8.2.3987
Problem:    Error messages are spread out.
Solution:   Move more error messages to errors.h.
Files:      src/errors.h, src/digraph.c, src/ex_eval.c, src/gui.c,
            src/hardcopy.c, src/if_cscope.c, src/if_tcl.c, src/if_xcmdsrv.c,
            src/mbyte.c, src/misc2.c, src/netbeans.c, src/option.c,
            src/optionstr.c, src/quickfix.c, src/regexp.c, src/tag.c,
            src/term.c, src/mnvinfo.c

Patch 8.2.3988 (after 8.2.3987)
Problem:    Tiny build fails.
Solution:   Fix misplaced #ifdef.
Files:      src/errors.h

Patch 8.2.3989
Problem:    Some insert completion code is not tested.
Solution:   Add a few tests.  Refactor thesaurus completion. (Yegappan
            Lakshmanan, closes #9460)
Files:      src/insexpand.c, src/testdir/test_edit.mnv,
            src/testdir/test_ins_complete.mnv

Patch 8.2.3990
Problem:    Testing wrong operator.
Solution:   Test "g@" instead of "r_". (Naohiro Ono, closes #9463)
Files:      src/testdir/test_normal.mnv

Patch 8.2.3991
Problem:    MNV9: error when extending dict<any> with another type that it was
            initialized with.
Solution:   Also set the type for dict<any> if the initializer has a more
            specific type. (closes #9461)
Files:      src/mnv9compile.c, src/mnv9type.c, src/mnv9.h, src/eval.c,
            src/list.c, src/mnv9script.c, src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_builtin.mnv, src/testdir/test_mnv9_func.mnv

Patch 8.2.3992
Problem:    Wrong local-additions in the help with language mix.
Solution:   Adjust how the local additions list is generated. (Hirohito
            Higashi, closes #9464)
Files:      src/help.c, src/testdir/test_help.mnv

Patch 8.2.3993
Problem:    When recording a change in Select mode the first typed character
            appears twice.
Solution:   When putting the character back into typeahead remove it from
            recorded characters. (closes #9462)
Files:      src/getchar.c, src/proto/getchar.pro, src/normal.c,
            src/testdir/test_registers.mnv

Patch 8.2.3994
Problem:    MNV9: extend() complains about the type even when it was not
            declared.
Solution:   Only check the list or dict type when it was declared.
Files:      src/list.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3995
Problem:    Not all sshconfig files are detected as such.
Solution:   Adjust the patterns used for sshconfig detection. (David Auer,
            closes #9322)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.3996
Problem:    MNV9: type checking for list and dict lacks information about
            declared type.
Solution:   Add dv_decl_type and lv_decl_type.  Refactor the type stack to
            store two types in each entry.
Files:      src/structs.h, src/dict.c, src/list.c, src/mnv9type.c,
            src/proto/mnv9type.pro, src/mnv9instr.c, src/proto/mnv9instr.pro,
            src/mnv9compile.c, src/evalfunc.c, src/proto/evalfunc.pro,
            src/evalbuffer.c, src/proto/evalbuffer.pro, src/mnv9expr.c,
            src/mnv9cmds.c, src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.3997
Problem:    MNV9: not enough testing for extend() and map().
Solution:   Add more test cases.  Fix uncovered problems.  Remove unused type
            fields.
Files:      src/structs.h, src/dict.c, src/list.c, src/mnv9compile.c,
            src/testdir/test_mnv9_builtin.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.3998
Problem:    Asan error for adding zero to NULL.
Solution:   Do not compute pointer if there are no entries.
Files:      src/mnv9type.c

Patch 8.2.3999
Problem:    Redundant check for NUL byte.
Solution:   Remove the check for a NUL byte. (closes #9471)
Files:      src/ex_docmd.c

Patch 8.2.4000
Problem:    Coverity warns for checking for NULL pointer after using it.
Solution:   Remove check for NULL.
Files:      src/help.c

Patch 8.2.4001
Problem:    Insert complete code uses global variables.
Solution:   Make variables local to the file and use accessor functions.
            (Yegappan Lakshmanan, closes #9470)
Files:      src/edit.c, src/getchar.c, src/globals.h, src/insexpand.c,
            src/proto/insexpand.pro, src/search.c

Patch 8.2.4002
Problem:    First char typed in Select mode can be wrong.
Solution:   Escape special bytes in the input buffer. (closes #9469)
Files:      src/getchar.c, src/testdir/test_utf8.mnv

Patch 8.2.4003
Problem:    Error messages are spread out.
Solution:   Move more error messages to errors.h.
Files:      src/errors.h, src/channel.c, src/ex_docmd.c, src/ex_eval.c,
            src/gui_at_fs.c, src/hardcopy.c, src/if_cscope.c, src/menu.c,
            src/netbeans.c, src/optionstr.c, src/os_mswin.c, src/sign.c,
            src/typval.c

Patch 8.2.4004
Problem:    Old compiler complains about struct init with variable.
Solution:   Set the struct member later. (John Marriott)
Files:      src/evalfunc.c

Patch 8.2.4005
Problem:    Error messages are spread out.
Solution:   Move more error messages to errors.h.
Files:      src/errors.h, src/dict.c, src/eval.c, src/evalfunc.c,
            src/evalvars.c, src/ex_cmds2.c, src/ex_docmd.c, src/ex_eval.c,
            src/filepath.c, src/gui.c, src/gui_w32.c, src/hardcopy.c,
            src/help.c, src/highlight.c, src/if_python.c, src/list.c,
            src/misc1.c, src/normal.c, src/quickfix.c, src/regexp.c,
            src/regexp_bt.c, src/regexp_nfa.c, src/typval.c, src/userfunc.c

Patch 8.2.4006
Problem:    MNV9: crash when declaring variable on the command line.
Solution:   Use a temporary type list. (closes #9474)
Files:      src/eval.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.4007
Problem:    Session does not restore help buffer properly when "options' is
            missing from 'sessionoptions'.
Solution:   Use a ":help" command to create the help window. (closes #9475,
            closes #9458, closes #9472)
Files:      src/session.c, src/testdir/test_mksession.mnv

Patch 8.2.4008
Problem:    Error messages are spread out.
Solution:   Move more error messages to errors.h.
Files:      src/errors.h, src/diff.c, src/digraph.c, src/evalfunc.c,
            src/evalvars.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c,
            src/insexpand.c, src/match.c, src/memline.c, src/menu.c,
            src/ops.c, src/profiler.c, src/quickfix.c, src/regexp.c,
            src/regexp_bt.c, src/regexp_nfa.c, src/register.c, src/spell.c,
            src/spell.h, src/spellfile.c, src/strings.c, src/syntax.c,
            src/typval.c, src/undo.c, src/userfunc.c

Patch 8.2.4009
Problem:    Reading one byte beyond the end of the line.
Solution:   Check for NUL byte first.
Files:      src/mnv9compile.c, src/ex_docmd.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.4010
Problem:    Error messages are spread out.
Solution:   Move more error messages to errors.h.
Files:      src/errors.h, src/crypt.c, src/diff.c, src/ex_docmd.c,
            src/ex_getln.c, src/fileio.c, src/findfile.c, src/float.c,
            src/gui.c, src/highlight.c, src/if_mzsch.c, src/if_py_both.h,
            src/if_python.c, src/if_python3.c, src/insexpand.c, src/match.c,
            src/memline.c, src/option.c, src/popupwin.c, src/regexp.c,
            src/regexp_nfa.c, src/spellfile.c, src/strings.c, src/syntax.c,
            src/textprop.c, src/typval.c, src/undo.c, src/usercmd.c,
            src/userfunc.c, src/window.c

Patch 8.2.4011
Problem:    Test fails because of changed error number.
Solution:   Restore old duplicate error message.
Files:      src/errors.h, src/match.c

Patch 8.2.4012
Problem:    Error messages are spread out.
Solution:   Move the last error messages to errors.h.
Files:      src/errors.h, src/channel.c, src/clientserver.c, src/diff.c,
            src/evalfunc.c, src/evalvars.c, src/ex_cmds2.c, src/ex_docmd.c,
            src/gui_w32.c, src/help.c, src/if_mzsch.c, src/if_py_both.h,
            src/if_python.c, src/job.c, src/json.c, src/list.c, src/option.c,
            src/optionstr.c, src/quickfix.c, src/regexp.c, src/regexp_nfa.c,
            src/register.c, src/scriptfile.c, src/sign.c, src/syntax.c,
            src/tag.c, src/terminal.c, src/textprop.c, src/typval.c,
            src/undo.c, src/userfunc.c, src/mnv9compile.c, src/mnvinfo.c

Patch 8.2.4013
Problem:    Build failure without the spell feature.
Solution:   Adjust #ifdefs.
Files:      src/errors.h

Patch 8.2.4014
Problem:    Git and gitcommit file types not properly recognized.
Solution:   Adjust filetype detection. (Tim Pope, closes #9477)
Files:      runtime/filetype.mnv, runtime/scripts.mnv,
            src/testdir/test_filetype.mnv

Patch 8.2.4015
Problem:    Build failure with tiny features. (Tony Mechelynck)
Solution:   Adjust #ifdefs.
Files:      src/errors.h

Patch 8.2.4016
Problem:    MNV9: incorrect error for argument that is shadowing var.
Solution:   Ignore variable that is not in block where the function was
            defined.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.4017
Problem:    Gcc warns for misleading indent in Athena menu code.
Solution:   Add curlies around the two statements. (Dominique Pellé,
            closes #9480)
Files:      src/gui_athena.c

Patch 8.2.4018
Problem:    ml_get error when win_execute redraws with Visual selection.
Solution:   Disable Visual area temporarily. (closes #9479)
Files:      src/evalwindow.c, src/proto/evalwindow.pro, src/structs.h,
            src/evalbuffer.c, src/proto/evalbuffer.pro, src/evalvars.c,
            src/if_py_both.h, src/evalfunc.c,
            src/testdir/test_execute_func.mnv

Patch 8.2.4019
Problem:    MNV9: import mechanism is too complicated.
Solution:   Do not use the Javascript mechanism but a much simpler one.
Files:      runtime/doc/mnv9.txt, src/mnv9script.c, src/proto/mnv9script.pro,
            src/errors.h, src/structs.h, src/eval.c, src/proto/eval.pro,
            src/evalvars.c, src/proto/evalvars.pro, src/userfunc.c,
            src/mnv9expr.c, src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_assign.mnv, src/testdir/test_mnv9_script.mnv

Patch 8.2.4020 (after 8.2.4019)
Problem:    Debugger test fails.
Solution:   Fix import statement.
Files:      src/testdir/test_debugger.mnv

Patch 8.2.4021 (after 8.2.4019)
Problem:    Missing part of the :import changes.
Solution:   Add changes in mnv9cmds.c.
Files:      src/mnv9cmds.c

Patch 8.2.4022
Problem:    Two error messages in the wrong file.
Solution:   Use the error message from errors.h.
Files:      src/popupwin.c, src/usercmd.c

Patch 8.2.4023
Problem:    Using uninitialized variable.
Solution:   Initialize "ufunc" also when an item is not exported.
Files:      src/mnv9script.c

Patch 8.2.4024
Problem:    Confusing error message if imported name is used directly.
Solution:   Give a better error message.
Files:      src/eval.c, src/proto/eval.pro, src/evalvars.c, src/userfunc.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.4025
Problem:    Error for import not ending in .mnv does not work for .mnvrc.
Solution:   Check that .mnv is the end. (closes #9484)
Files:      src/mnv9script.c, src/errors.h, src/testdir/test_mnv9_script.mnv

Patch 8.2.4026
Problem:    ml_get error with specific win_execute() command. (Sean Dewar)
Solution:   Check cursor and Visual area are OK.
Files:      src/evalwindow.c, src/testdir/test_execute_func.mnv

Patch 8.2.4027
Problem:    Import test fails on MS-Windows.
Solution:   Use a different directory name.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.4028
Problem:    ml_get error with :doautoall and Visual area. (Sean Dewar)
Solution:   Disable Visual mode while executing autocommands.
Files:      src/structs.h, src/autocmd.c, src/testdir/test_autocmd.mnv

Patch 8.2.4029
Problem:    Debugging NFA regexp my crash, cached indent may be wrong.
Solution:   Fix some debug warnings in the NFA regexp code.  Make sure log_fd
            is set when used.  Fix breakindent and indent caching. (Christian
            Brabandt, closes #9482)
Files:      src/indent.c, src/optionstr.c, src/regexp_nfa.c

Patch 8.2.4030
Problem:    A script local funcref is not found from a mapping.
Solution:   When looking for a function, also find a script-local funcref.
            (closes #9485)
Files:      src/evalvars.c, src/proto/evalvars.pro, src/userfunc.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.4031
Problem:    Crash in xterm with only two lines. (Dominique Pellé)
Solution:   Only perform xterm compatibility test if possible. (closes #9488)
Files:      src/term.c, src/testdir/test_startup.mnv

Patch 8.2.4032
Problem:    ATTRIBUTE_NORETURN is not needed.
Solution:   Use NORETURN(). (Ozaki Kiichi, closes #9487)
Files:      src/if_ruby.c, src/mnv.h

Patch 8.2.4033
Problem:    Running filetype tests leaves directory behind.
Solution:   Delete the top directory. (closes #9483)
Files:      src/testdir/test_filetype.mnv

Patch 8.2.4034
Problem:    Coverity warns for possibly using a NULL pointer.
Solution:   Check v_partial is not NULL.
Files:      src/mnv9type.c

Patch 8.2.4035
Problem:    Timer triggered at the debug prompt may cause trouble.
Solution:   Do not trigger any timer at the debug prompt. (closes #9481)
Files:      src/time.c

Patch 8.2.4036
Problem:    MNV9: script test file is getting too long.
Solution:   Split the import/export functionality to a separate file.
Files:      src/testdir/test_mnv9_script.mnv, src/testdir/test_mnv9_import.mnv,
            src/testdir/Make_all.mak

Patch 8.2.4037
Problem:    Insert mode completion is insufficiently tested.
Solution:   Add more tests.  Fix uncovered memory leak. (Yegappan Lakshmanan,
            closes #9489)
Files:      src/insexpand.c, src/testdir/test_ins_complete.mnv

Patch 8.2.4038
Problem:    Various code not used when features are disabled.
Solution:   Add #ifdefs. (Dominique Pellé, closes #9491)
Files:      src/alloc.c, src/buffer.c, src/charset.c, src/clipboard.c,
            src/cmdhist.c, src/crypt.c, src/edit.c, src/eval.c,
            src/evalbuffer.c, src/evalfunc.c, src/ex_docmd.c, src/globals.h,
            src/gui_xim.c, src/hashtab.c, src/highlight.c, src/insexpand.c,
            src/main.c, src/mark.c, src/message.c, src/misc1.c, src/misc2.c,
            src/ops.c, src/option.c, src/option.h, src/optionstr.c,
            src/register.c, src/scriptfile.c, src/tag.c, src/term.c,
            src/typval.c, src/usercmd.c, src/userfunc.c, src/mnv9script.c,
            src/mnv9type.c

Patch 8.2.4039
Problem:    The xdiff library is linked in even when not used.
Solution:   Use configure to decide whether xdiff object files are included.
Files:      src/Makefile, src/config.mk.in, src/configure.ac,
            src/auto/configure, src/feature.h

Patch 8.2.4040
Problem:    Keeping track of allocated lines in user functions is too
            complicated.
Solution:   Instead of freeing individual lines keep them all until the end.
Files:      src/alloc.c, src/proto/alloc.pro, src/mnv9compile.c,
            src/userfunc.c, src/proto/userfunc.pro, src/message.c,
            src/usercmd.c, src/mnvinfo.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.4041
Problem:    Using uninitialized pointer.
Solution:   Store "ht" when variable is in another script.
Files:      src/evalvars.c

Patch 8.2.4042
Problem:    MNV9: build error.
Solution:   Use grow array instead of character pointer.
Files:      src/mnv9execute.c

Patch 8.2.4043
Problem:    Using int for second argument of ga_init2().
Solution:   Remove unnecessary type cast (int) when using sizeof().
Files:      src/arglist.c, src/channel.c, src/cmdexpand.c, src/dict.c,
            src/digraph.c, src/eval.c, src/evalfunc.c, src/evalvars.c,
            src/evalwindow.c, src/ex_docmd.c, src/fileio.c, src/filepath.c,
            src/findfile.c, src/fold.c, src/hardcopy.c, src/help.c,
            src/job.c, src/list.c, src/menu.c, src/os_win32.c, src/register.c,
            src/scriptfile.c, src/spellfile.c, src/spellsuggest.c,
            src/strings.c, src/syntax.c, src/tag.c, src/terminal.c,
            src/undo.c, src/usercmd.c, src/userfunc.c, src/mnv9execute.c,
            src/mnvinfo.c, src/window.c, src/if_py_both.h

Patch 8.2.4044
Problem:    MNV9: no error when importing the same script twice.
Solution:   Give an error, unless it is a reload.
Files:      src/mnv9script.c, src/errors.h, src/testdir/test_mnv9_import.mnv

Patch 8.2.4045
Problem:    Some global functions are only used in one file.
Solution:   Make the functions static. (Yegappan Lakshmanan, closes #9492)
Files:      src/ex_getln.c, src/highlight.c, src/proto/ex_getln.pro,
            src/proto/highlight.pro, src/proto/mnv9compile.pro,
            src/proto/mnv9instr.pro, src/proto/window.pro, src/mnv9compile.c,
            src/mnv9instr.c, src/window.c

Patch 8.2.4046
Problem:    Some error messages not in the right place.
Solution:   Adjust the errors file.  Fix typo.
Files:      src/errors.h, src/regexp_bt.c, src/typval.c,

Patch 8.2.4047
Problem:    Depending on the build features error messages are unused.
Solution:   Add #ifdefs. (Dominique Pellé, closes #9493)
Files:      src/errors.h

Patch 8.2.4048
Problem:    gcc complains about use of "%p" in printf.
Solution:   Add (void *) typecast. (Dominique Pellé, closes #9494)
Files:      src/if_py_both.h

Patch 8.2.4049
Problem:    MNV9: reading before the start of the line with "$" by itself.
Solution:   Do not subtract one when reporting the error.
Files:      src/mnv9expr.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.4050
Problem:    MNV9: need to prefix every item in an autoload script.
Solution:   First step in supporting "mnv9script autoload" and "import
            autoload".
Files:      runtime/doc/repeat.txt, runtime/doc/mnv9.txt, src/structs.h,
            src/errors.h, src/mnv9script.c, src/scriptfile.c,
            src/proto/scriptfile.pro, src/userfunc.c, src/eval.c,
            src/evalvars.c, src/mnv9compile.c, src/proto/mnv9compile.pro,
            src/mnv9expr.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.4051
Problem:    Compiler complains about possibly uninitialized variable.
Solution:   Add code to avoid a compiler warning. (John Marriott)
Files:      src/scriptfile.c

Patch 8.2.4052
Problem:    Not easy to resize a window from a plugin.
Solution:   Add win_move_separator() and win_move_statusline() functions.
            (Daniel Steinberg, closes #9486)
Files:      runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
            src/evalwindow.c, src/proto/evalwindow.pro,
            src/testdir/test_window_cmd.mnv

Patch 8.2.4053
Problem:    MNV9: autoload mechanism doesn't fully work yet.
Solution:   Define functions and variables with their autoload name, add the
            prefix when calling a function, find the variable in the table of
            script variables.
Files:      src/structs.h, src/scriptfile.c, src/proto/scriptfile.pro,
            src/mnv9script.c, src/proto/mnv9script.pro, src/userfunc.c,
            src/evalvars.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.4054 (after 8.2.4053)
Problem:    MNV9 script test fails.
Solution:   Add missing change.
Files:      src/mnv9compile.c

Patch 8.2.4055
Problem:    MNV9: line break in expression causes v:errmsg to be filled.
            (Yegappan Lakshmanan)
Solution:   Do not give an error when skipping over an expression.
Files:      src/userfunc.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.4056
Problem:    MNV9: memory leak when exporting function in autoload script.
Solution:   Free the name if replacing it.
Files:      src/scriptfile.c

Patch 8.2.4057
Problem:    MNV9: not fully implementing the autoload mechanism.
Solution:   Allow for exporting a legacy function.  Improve test coverage.
Files:      src/mnv9script.c, src/testdir/test_mnv9_import.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.4058
Problem:    MNV9: import test failure in wrong line.
Solution:   Adjust line number.
Files:      src/testdir/test_mnv9_import.mnv

Patch 8.2.4059
Problem:    MNV9: an expression of a map cannot access script-local items.
            (Maxim Kim)
Solution:   Use the script ID of where the map was defined.
Files:      src/getchar.c, src/map.c, src/proto/map.pro,
            src/testdir/test_mnv9_import.mnv

Patch 8.2.4060
Problem:    win_execute() is slow on systems where getcwd() or chdir() is
            slow. (Rick Howe)
Solution:   Avoid using getcwd() and chdir() if no local directory is used and
            'acd' is not set. (closes #9504)
Files:      src/evalwindow.c

Patch 8.2.4061
Problem:    Codecov bash script is deprecated.
Solution:   Use the codecov action. (Ozaki Kiichi, closes #9505)
Files:      .github/workflows/ci.yml

Patch 8.2.4062
Problem:    Match highlighting of tab too short.
Solution:   Do not stop match highlighting if on a Tab. (Christian Brabandt,
            closes #9507, closes #9500)
Files:      src/drawline.c, src/testdir/test_match.mnv,
            src/testdir/dumps/Test_match_tab_linebreak.dump

Patch 8.2.4063
Problem:    MNV9: exported function in autoload script not found. (Yegappan
            Lakshmanan)
Solution:   Use the autoload prefix to search for the function.
Files:      src/userfunc.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4064
Problem:    Foam files are not detected.
Solution:   Detect the foam filetype by the path and file contents. (Mohammed
            Elwardi Fadeli, closes #9501)
Files:      runtime/filetype.mnv, runtime/autoload/dist/ft.mnv,
            src/testdir/test_filetype.mnv

Patch 8.2.4065
Problem:    Computation overflow with large count for :yank.
Solution:   Avoid an overflow.
Files:      src/ex_docmd.c, src/testdir/test_excmd.mnv

Patch 8.2.4066
Problem:    MNV9: imported autoload script loaded again.
Solution:   Do not create a new imported_T every time.
Files:      src/mnv9script.c, src/mnv9compile.c,
            src/testdir/test_mnv9_import.mnv

Patch 8.2.4067
Problem:    MNV9: cannot call imported function with :call. (Drew Vogel)
Solution:   Translate the function name. (closes #9510)
Files:      src/userfunc.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4068 (after 8.2.4066)
Problem:    MNV9: import test fails.
Solution:   Add missing change.
Files:      src/scriptfile.c

Patch 8.2.4069
Problem:    MNV9: import test fails on MS-Windows.
Solution:   Ignore case.  Adjust test to avoid name that only differs in case.
Files:      src/eval.c, src/scriptfile.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4070
Problem:    Using uninitialized memory when reading empty file.
Solution:   Check for empty file before checking for NL. (Dominique Pellé,
            closes #9511)
Files:      src/filepath.c, src/testdir/test_eval_stuff.mnv

Patch 8.2.4071
Problem:    MNV9: no detection of return in try/endtry. (Dominique Pellé)
Solution:   Check if any of the blocks inside try/endtry did not end in
            return.
Files:      src/mnv9.h, src/mnv9compile.c, src/mnv9cmds.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.4072
Problem:    MNV9: compiling function fails when autoload script is not loaded
            yet.
Solution:   Depend on runtime loading.
Files:      src/mnv9expr.c, src/mnv9script.c, src/mnv9instr.c,
            src/mnv9execute.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4073
Problem:    Coverity warns for using NULL pointer.
Solution:   Bail out when running out of memory. Check for running over end of
            a string.
Files:      src/userfunc.c,

Patch 8.2.4074
Problem:    Going over the end of NameBuff.
Solution:   Check length when appending a space.
Files:      src/drawscreen.c, src/testdir/test_edit.mnv

Patch 8.2.4075 (after 8.2.4073)
Problem:    Test failures.
Solution:   Change check for NULL pointer.
Files:      src/userfunc.c

Patch 8.2.4076
Problem:    Memory leak in autoload import.
Solution:   Do not overwrite the autoload prefix.
Files:      src/mnv9script.c

Patch 8.2.4077
Problem:    Not all Libsensors files are recognized.
Solution:   Add "sensors.d/*" pattern. (Doug Kearns)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.4078
Problem:    Terminal test for current directory not used on FreeBSD.
Solution:   Make it work on FreeBSD. (Ozaki Kiichi, closes #9516) Add
            TermWait() inside Run_shell_in_terminal() as a generic solution.
Files:      src/testdir/test_terminal3.mnv, src/testdir/term_util.mnv,
            src/testdir/test_terminal.mnv, src/testdir/test_terminal2.mnv,
            src/testdir/test_mapping.mnv

Patch 8.2.4079
Problem:    MS-Windows: "gmnv --version" didn't work when build with MNVDLL.
Solution:   Adjust #ifdef. (Ken Takata, closes #9517)
Files:      src/main.c

Patch 8.2.4080
Problem:    Not sufficient test coverage for xxd.
Solution:   Add a few more test cases. (Erki Auerswald, closes #9515)
Files:      src/testdir/test_xxd.mnv

Patch 8.2.4081
Problem:    CodeQL reports problem in if_cscope causing it to fail.
Solution:   Use execvp() instead of execl().  Merge the header file into the
            source file. (Ozaki Kiichi, closes #9519)
Files:      Filelist, src/Make_cyg_ming.mak, src/Make_mvc.mak,
            src/Make_vms.mms, src/Makefile, src/if_cscope.c, src/if_cscope.h,
            src/testdir/test_cscope.mnv

Patch 8.2.4082
Problem:    Check for autoload file name and prefix fails. (Christian J.
            Robinson)
Solution:   Only lower case the prefix on systems where the file name is not
            case sensitive.
Files:      src/scriptfile.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4083
Problem:    MNV9: no test for "mnv9script autoload" and using script variable
            in the same script.
Solution:   Add a simple test.  Fix uncovered problem.
Files:      src/evalvars.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4084
Problem:    Memory leak when looking for autoload prefixed variable.
Solution:   Free the concatenated string.
Files:      src/evalvars.c

Patch 8.2.4085
Problem:    MNV9: no test for using import in legacy script.
Solution:   Add a test.
Files:      src/testdir/test_mnv9_import.mnv

Patch 8.2.4086
Problem:    "cctx" argument of find_func_even_dead() is unused.
Solution:   Remove the argument.
Files:      src/userfunc.c, src/proto/userfunc.pro, src/mnv9compile.c,
            src/mnv9instr.c, src/evalfunc.c, src/evalvars.c, src/testing.c,
            src/mnv9execute.c, src/mnv9expr.c, src/mnv9script.c,
            src/mnv9type.c

Patch 8.2.4087
Problem:    Cannot test items from an autoload script easily.
Solution:   Add the "autoload" value for test_override().
Files:      runtime/doc/testing.txt, src/testing.c, src/globals.h,
            src/mnv9script.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4088
Problem:    Xxd cannot output everything in one line.
Solution:   Make zero columns mean infinite columns. (Erik Auerswald,
            closes #9524)
Files:      runtime/doc/xxd.1, runtime/doc/xxd.man, src/testdir/test_xxd.mnv,
            src/xxd/xxd.c

Patch 8.2.4089 (after 8.2.4078)
Problem:    Terminal test for current directory fails on FreeBSD.
Solution:   Skip the test.
Files:      src/testdir/test_terminal3.mnv

Patch 8.2.4090
Problem:    After restoring a session buffer order can be quite different.
Solution:   Create buffers first. (Evgeni Chasnovski, closes #9520)
Files:      src/session.c, src/testdir/test_mksession.mnv

Patch 8.2.4091
Problem:    Virtcol is recomputed for statusline unnecessarily.
Solution:   Just use "w_virtcol". (closes #9523)
Files:      src/buffer.c, src/testdir/test_statusline.mnv

Patch 8.2.4092
Problem:    macOS CI: unnecessarily doing "Install packages".
Solution:   Only do "Install packages" for huge build.  (Ozaki Kiichi,
            closes #9521)
Files:      .github/workflows/ci.yml

Patch 8.2.4093
Problem:    Cached breakindent values not initialized properly.
Solution:   Initialize and cache formatlistpat. (Christian Brabandt,
            closes #9526, closes #9512)
Files:      runtime/doc/options.txt, src/indent.c, src/option.c,
            src/proto/option.pro, src/testdir/test_breakindent.mnv

Patch 8.2.4094
Problem:    'virtualedit' is window-local but using buffer-local enum.
Solution:   Use window-local enum. (closes #9529)
Files:      src/option.h, src/optiondefs.h

Patch 8.2.4095
Problem:    Sed script not recognized by the first line.
Solution:   Recognize a sed script starting with "#n". (Doug Kearns)
Files:      runtime/scripts.mnv, src/testdir/test_filetype.mnv

Patch 8.2.4096
Problem:    Linux CI: unnecessarily installing packages
Solution:   Only install packages for huge build.  (Ozaki Kiichi,
            closes #9530)
Files:      .github/workflows/ci.yml

Patch 8.2.4097
Problem:    Wrong number in error message on 32 bit system. (John Paul Adrian
            Glaubitz)
Solution:   Add type cast. (closes #9527)
Files:      src/mnv9compile.c

Patch 8.2.4098
Problem:    Typing "interrupt" at debug prompt may keep exception around,
            causing function calls to fail.
Solution:   Discard any exception at the toplevel. (closes #9532)
Files:      src/main.c

Patch 8.2.4099
Problem:    MNV9: cannot use MNV9 syntax in mapping.
Solution:   Add <ScriptCmd> to use the script context for a command.
Files:      runtime/doc/map.txt, src/normal.c, src/getchar.c,
            src/proto/getchar.pro, src/ex_getln.c, src/edit.c, src/terminal.c,
            src/keymap.h, src/insexpand.c, src/misc2.c, src/ops.c,
            src/testdir/test_mnv9_import.mnv

Patch 8.2.4100
Problem:    Early return when getting the 'formatlistpat' value.
Solution:   Remove the first line. (Christian Brabandt)
Files:      src/option.c, src/testdir/test_breakindent.mnv

Patch 8.2.4101
Problem:    Warning for unused argument in tiny version.
Solution:   Add "UNUSED".
Files:      src/getchar.c

Patch 8.2.4102
Problem:    MNV9: import cannot be used after method.
Solution:   Recognize an imported function name. (closes #9496)
Files:      src/eval.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4103
Problem:    MNV9: variable declared in for loop not initialized.
Solution:   Always initialize the variable. (closes #9535)
Files:      src/mnv9instr.c, src/proto/mnv9instr.pro, src/mnv9compile.c,
            src/testdir/test_mnv9_assign.mnv

Patch 8.2.4104
Problem:    MNV9: lower casing the autoload prefix causes problems.
Solution:   Always store the prefix with case preserved.
Files:      src/scriptfile.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4105
Problem:    Translation related comment in the wrong place.
Solution:   Move it back with the text. (Ken Takata, closes #9537)
Files:      src/errors.h, src/ex_docmd.c

Patch 8.2.4106
Problem:    Going over the end of the w_lines array.
Solution:   Break out of the loop when "idx" is too big. (issue #9540)
Files:      src/drawscreen.c

Patch 8.2.4107
Problem:    Script context not restored after using <ScriptCmd>.
Solution:   Also restore context when not in a script. (closes #9536)
            Add the 'c' flag to feedkeys() to be able to test this.
Files:      runtime/doc/builtin.txt, src/getchar.c, src/evalfunc.c,
            src/testdir/test_mapping.mnv

Patch 8.2.4108
Problem:    Going over the end of the w_lines array.
Solution:   Check not going over the end and limit to Rows. (issue #9540)
Files:      src/drawscreen.c

Patch 8.2.4109
Problem:    MS-Windows: high dpi support is outdated.
Solution:   Improve High DPI support by using PerMonitorV2. (Ken Takata
            closes #9525, closes #3102)
Files:      src/gui.c, src/gui.h, src/gui_w32.c, src/mnv.manifest

Patch 8.2.4110
Problem:    Coverity warns for using NULL pointer.
Solution:   Check "evalarg" is not NULL.  Skip errors when "verbose" is false.
Files:      src/eval.c

Patch 8.2.4111
Problem:    Potential problem when map is deleted while executing.
Solution:   Reset last used map pointer when deleting a mapping.
Files:      src/map.c

Patch 8.2.4112
Problem:    Function not deleted at end of test.
Solution:   Delete the function.
Files:      src/testdir/test_diffmode.mnv

Patch 8.2.4113
Problem:    Typo on DOCMD_RANGEOK results in not recognizing command.
Solution:   Correct the typo. (closes #9539)
Files:      src/mnv.h, src/testdir/test_mapping.mnv

Patch 8.2.4114
Problem:    MNV9: type checking for a funcref does not work for when it is
            used in a method.
Solution:   Pass the base to where the type is checked.
Files:      src/mnv9type.c, src/proto/mnv9type.pro, src/userfunc.c,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.4115
Problem:    Cannot use a method with a complex expression.
Solution:   Evaluate the expression after "->" and use the result.
Files:      src/eval.c, src/errors.h, src/testdir/test_mnv9_expr.mnv

Patch 8.2.4116
Problem:    MNV9: cannot use a method with a complex expression in a :def
            function.
Solution:   Implement compiling the expression.
Files:      src/mnv9expr.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.4117
Problem:    MNV9: wrong white space error after using imported item.
Solution:   Don't skip over white space. (closes #9544)
Files:      src/eval.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4118
Problem:    Using UNUSED for argument that is used.
Solution:   Remove UNUSED.
Files:      src/usercmd.c

Patch 8.2.4119
Problem:    Build failure when disabling the channel feature.
Solution:   Adjust #ifdef. (Dominique Pellé, closes #9545)
Files:      src/misc2.c

Patch 8.2.4120
Problem:    Block insert goes over the end of the line.
Solution:   Handle invalid byte better.  Fix inserting the wrong text.
Files:      src/ops.c, src/testdir/test_visual.mnv

Patch 8.2.4121
Problem:    Visual test fails on MS-Windows.
Solution:   Set 'isprint' so that the character used is not printable.
Files:      src/testdir/test_visual.mnv

Patch 8.2.4122
Problem:    ":command Cmd" does not show custom completion argument.
Solution:   Show the completion argument when using ":verbose".
Files:      src/usercmd.c, src/testdir/test_usercommands.mnv

Patch 8.2.4123
Problem:    Complete function cannot be import.Name.
Solution:   Dereference the function name if needed.  Also: do not see
            "import.Name" as a builtin function. (closes #9541)
Files:      src/userfunc.c, src/eval.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4124
Problem:    MNV9: method in compiled function may not see script item.
Solution:   Make sure not to skip to the next line. (closes #9496)
Files:      src/mnv9expr.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.4125
Problem:    Completion tests fail.
Solution:   Disable error messages while dereferencing the function name.
Files:      src/eval.c

Patch 8.2.4126
Problem:    Crash on exit when built with dynamic Tcl and EXITFREE is defined.
            (Dominique Pellé)
Solution:   Only call Tcl_Finalize() when initialized. (closes #9546)
Files:      src/if_tcl.c

Patch 8.2.4127
Problem:    Build failure without the +eval feature.
Solution:   Add #ifdef.
Files:      src/usercmd.c

Patch 8.2.4128
Problem:    Crash when method cannot be found. (Christian J. Robinson)
Solution:   Don't mix up pointer names.
Files:      src/eval.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.4129
Problem:    Building with +sound but without +eval fails. (Dominique Pellé)
Solution:   Disable canberra in tiny and small build. (closes #9548)
Files:      src/configure.ac, src/auto/configure

Patch 8.2.4130
Problem:    MS-Windows: MSVC build may have libraries duplicated.
Solution:   Improve the MSVC Makefile. (Ken Takata, closes #9547)
Files:      src/Make_mvc.mak

Patch 8.2.4131
Problem:    MNV9: calling function in autoload import does not work in a :def
            function.
Solution:   When a variable is not found and a PCALL follows use a funcref.
            (closes #9550)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4132
Problem:    MNV9: wrong error message when autoload script can't be found.
Solution:   Correct check for using autoload with wrong name.
Files:      src/mnv9script.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4133
Problem:    output of ":scriptnames" goes into the message history, while this
            does not happen for other commands, such as ":ls".
Solution:   Use msg_outtrans() instead of smsg(). (closes #9551)
Files:      src/scriptfile.c, src/testdir/test_scriptnames.mnv

Patch 8.2.4134
Problem:    MS-Windows: test for import with absolute path fails.
Solution:   Handle path starting with slash as an absolute path.
Files:      src/mnv9script.c

Patch 8.2.4135
Problem:    MNV9: ":scriptnames" shows unloaded imported autoload script.
Solution:   Mark the unloaded script with "A". (closes #9552)
Files:      runtime/doc/repeat.txt, src/scriptfile.c,
            src/testdir/test_mnv9_import.mnv

Patch 8.2.4136
Problem:    MNV9: the "autoload" argument of ":mnv9script" is not useful.
Solution:   Remove the argument. (closes #9555)
Files:      runtime/doc/mnv9.txt, runtime/doc/repeat.txt, src/mnv9script.c,
            src/errors.h, src/testdir/test_mnv9_import.mnv

Patch 8.2.4137
Problem:    MNV9: calling import with and without method is inconsistent.
Solution:   Set a flag that a parenthesis follows to compile_load_scriptvar().
            Add some more tests.  Improve error message.
Files:      src/mnv9expr.c, src/mnv9execute.c, src/mnv9script.c,
            src/testdir/test_mnv9_import.mnv

Patch 8.2.4138
Problem:    MNV9: no error for return with argument when the function does not
            return anything.
Solution:   Give an error for the invalid argument. (issue #9497)
Files:      src/mnv9cmds.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.4139
Problem:    Using freed memory if an expression abbreviation deletes the
            abbreviation.
Solution:   Do not access the pointer after evaluating the expression.
Files:      src/map.c, src/testdir/test_mapping.mnv

Patch 8.2.4140
Problem:    maparg() does not indicate the type of script where it was defined.
Solution:   Add "scriptversion".
Files:      runtime/doc/builtin.txt, src/map.c, src/testdir/test_maparg.mnv

Patch 8.2.4141 (after 8.2.4140)
Problem:    MNV9 builtin functions test fails.
Solution:   Add "scriptversion" item to maparg() result.
Files:      src/testdir/test_mnv9_builtin.mnv

Patch 8.2.4142
Problem:    Build failure with normal features without persistent undo.
Solution:   Adjust #ifdef. (closes #9557)
Files:      src/fileio.c

Patch 8.2.4143
Problem:    MS-Windows: IME support for Win9x is obsolete.
Solution:   Remove the Win9x code. (Ken Takata, closes #9559)
Files:      src/gui_w32.c

Patch 8.2.4144
Problem:    Cannot load libsodium dynamically.
Solution:   Support dynamic loading on MS-Windows. (Ken Takata, closes #9554)
Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak, src/buffer.c,
            src/crypt.c, src/memline.c, src/proto/crypt.pro

Patch 8.2.4145
Problem:    Confusing error when using name of import for a function.
Solution:   Pass a flag to trans_function_name().
Files:      src/mnv.h, src/userfunc.c, src/proto/userfunc.pro, src/eval.c,
            src/testdir/test_mnv9_import.mnv

Patch 8.2.4146
Problem:    MNV9: shadowed function can be used in compiled function but not
            at script level.
Solution:   Also give an error in a compiled function. (closes #9563)
Files:      src/mnv9expr.c

Patch 8.2.4147
Problem:    E464 does not always include the offending command.
Solution:   Add another error message with "%s". (closes #9564)
Files:      src/errors.h, src/mnv9compile.c, src/ex_docmd.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.4148
Problem:    Deleting any mapping may cause <ScriptCmd> to not set the script
            context.
Solution:   Only reset last_used_map if it is the deleted mapping.
            (closes #9568)
Files:      src/map.c, src/getchar.c, src/proto/getchar.pro,
            src/testdir/test_mapping.mnv

Patch 8.2.4149
Problem:    Test override not restored, autocommand left behind.
Solution:   Correct restoring test override.  Delete autocommand afterwards.
Files:      src/testdir/test_autocmd.mnv, src/testdir/test_mapping.mnv

Patch 8.2.4150
Problem:    Coverity warns for using pointer after free.
Solution:   Swap statements, even though using the pointer is no problem.
Files:      src/map.c

Patch 8.2.4151
Problem:    Reading beyond the end of a line.
Solution:   For block insert only use the offset for correcting the length.
Files:      src/ops.c, src/testdir/test_visual.mnv

Patch 8.2.4152
Problem:    Block insert with double wide character fails.
Solution:   Adjust the expected output.
Files:      src/testdir/test_utf8.mnv

Patch 8.2.4153
Problem:    MS-Windows: Global IME is no longer supported.
Solution:   Remove the Global IME implementation. (Ken Takata, closes #9562)
Files:      Filelist, runtime/doc/mbyte.txt, src/Make_mvc.mak, src/dimm.idl,
            src/glbl_ime.cpp, src/glbl_ime.h, src/gui_w32.c, src/mnv.h

Patch 8.2.4154
Problem:    ml_get error when exchanging windows in Visual mode.
Solution:   Correct end of Visual area when entering another buffer.
Files:      src/window.c, src/testdir/test_visual.mnv

Patch 8.2.4155
Problem:    Translating strftime() argument results in check error.
Solution:   Add gettext comment.
Files:      src/time.c

Patch 8.2.4156
Problem:    Fileinfo message overwrites echo'ed message.
Solution:   Reset need_fileinfo when displaying a message. (Rob Pilling,
            closes #9569)
Files:      src/message.c, src/testdir/test_messages.mnv,
            src/testdir/dumps/Test_fileinfo_after_echo.dump

Patch 8.2.4157
Problem:    Terminal test fails because Windows sets the title.
Solution:   Add the "vterm_title" testing override and use it in the test.
            (Ozaki Kiichi, closes #9556)
Files:      runtime/doc/testing.txt, src/globals.h, src/terminal.c,
            src/testing.c, src/testdir/test_terminal.mnv

Patch 8.2.4158
Problem:    MS-Windows: memory leak in :browse.
Solution:   Free stuff before returning. (Ken Takata, closes #9574)
Files:      src/gui_w32.c

Patch 8.2.4159
Problem:    MS-Windows: _WndProc() is very long.
Solution:   Move code to separate functions. (Ken Takata, closes #9573)
Files:      src/gui_w32.c

Patch 8.2.4160
Problem:    Cannot change the register used for Select mode delete.
Solution:   Make CTRL-R set the register to be used when deleting text for
            Select mode. (Shougo Matsushita, closes #9531)
Files:      runtime/doc/visual.txt, src/globals.h, src/normal.c, src/ops.c,
            src/testdir/test_selectmode.mnv

Patch 8.2.4161
Problem:    MNV9: warning for missing white space after imported variable.
Solution:   Do not skip white space. (closes #9567)
Files:      src/mnv9expr.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4162
Problem:    MNV9: no error for redefining function with export.
Solution:   Check for existing function with/without prefix. (closes #9577)
Files:      src/userfunc.c, src/scriptfile.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4163
Problem:    No error for omitting function name after autoload prefix.
Solution:   Check for missing function name. (issue #9577)
Files:      src/userfunc.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4164 (after 8.2.4162)
Problem:    Error in legacy code for function shadowing variable.
Solution:   Only give the error in MNV9 script.
Files:      src/userfunc.c

Patch 8.2.4165
Problem:    The nv_g_cmd() function is too long.
Solution:   Move code to separate functions. (Yegappan Lakshmanan,
            closes #9576)
Files:      src/normal.c

Patch 8.2.4166
Problem:    Undo synced when switching buffer in another window.
Solution:   Do not sync undo when not needed. (closes #9575)
Files:      src/buffer.c, src/testdir/test_timers.mnv

Patch 8.2.4167
Problem:    MNV9: error message for old style import.
Solution:   Use another error message.  Add a test.
Files:      src/evalvars.c, src/errors.h, src/testdir/test_mnv9_import.mnv

Patch 8.2.4168 (after 8.2.4163)
Problem:    Disallowing empty function name breaks existing plugins.
Solution:   Allow empty function name in legacy script.
Files:      src/userfunc.c, src/testdir/test_autoload.mnv,
            src/testdir/sautest/autoload/foo.mnv

Patch 8.2.4169
Problem:    MS-Windows: unnecessary casts and other minor things.
Solution:   Clean up the MS-Windows code. (Ken Takata, closes #9583)
Files:      src/gui_w32.c

Patch 8.2.4170
Problem:    MS-Windows: still using old message API calls.
Solution:   Call the "W" functions directly. (Ken Takata, closes #9582)
Files:      src/gui_w32.c, src/os_mswin.c, src/os_win32.c, src/os_win32.h

Patch 8.2.4171
Problem:    Cannot invoke option function using autoload import.
Solution:   Expand the import to an autoload function name. (closes #9578)
Files:      src/userfunc.c, src/evalvars.c, src/proto/evalvars.pro,
            src/option.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4172
Problem:    Filetype detection for BASIC is not optimal.
Solution:   Improve BASIC filetype detection. (Doug Kearns)
Files:      runtime/autoload/dist/ft.mnv, runtime/filetype.mnv,
            src/testdir/test_filetype.mnv

Patch 8.2.4173
Problem:    Cannot use an import in 'foldexpr'.
Solution:   Set the script context to where 'foldexpr' was set. (closes #9584)
            Fix that the script context was not set for all buffers.
Files:      src/eval.c, src/proto/eval.pro, src/fold.c, src/structs.h,
            src/option.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4174
Problem:    MNV9: can use an autoload name in normal script.
Solution:   Disallow using an autoload name.
Files:      src/userfunc.c, src/errors.h, src/testdir/test_mnv9_import.mnv

Patch 8.2.4175
Problem:    MS-Windows: runtime check for multi-line balloon is obsolete.
Solution:   Remove the obsolete code. (Ken Takata, closes #9592)
Files:      src/evalfunc.c, src/gui_w32.c, src/proto/gui_w32.pro

Patch 8.2.4176
Problem:    MNV9: cannot use imported function with call().
Solution:   Translate the function name. (closes #9590)
Files:      src/evalfunc.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4177
Problem:    MNV9: autoload script not loaded after "mnv9script noclear".
Solution:   Check IMP_FLAGS_AUTOLOAD properly. (closes #9593)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4178
Problem:    MNV9: invalid error for return type of lambda when debugging.
Solution:   Do not check the return type of a lambda. (closes #9589)
Files:      src/mnv9cmds.c

Patch 8.2.4179
Problem:    'foldtext' is evaluated in the current script context.
Solution:   Use the script context where the option was set.
Files:      src/fold.c, src/buffer.c, src/eval.c, src/proto/eval.pro,
            src/findfile.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4180
Problem:    'balloonexpr' is evaluated in the current script context.
Solution:   Use the script context where the option was set.
Files:      src/beval.c, src/option.c, src/proto/option.pro,
            src/testdir/test_balloon.mnv,
            src/testdir/dumps/Test_balloon_eval_term_01.dump,
            src/testdir/dumps/Test_balloon_eval_term_01a.dump,
            src/testdir/dumps/Test_balloon_eval_term_02.dump

Patch 8.2.4181
Problem:    MNV9: cannot use an import in 'diffexpr'.
Solution:   Set the script context when evaluating 'diffexpr'.  Do not require
            'diffexpr' to return a bool, it was ignored anyway.
Files:      src/evalvars.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4182 (after 8.2.4182)
Problem:    Memory leak when evaluating 'diffexpr'.
Solution:   Use free_tv() instead of clear_tv().
Files:      src/evalvars.c

Patch 8.2.4183
Problem:    Cannot use an import in 'formatexpr'.
Solution:   Set the script context when evaluating 'formatexpr'.
Files:      src/textformat.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4184
Problem:    Cannot use an import in 'includeexpr'.
Solution:   Set the script context when evaluating 'includeexpr'
Files:      src/findfile.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4185
Problem:    Cannot use an import in 'indentexpr'.
Solution:   Set the script context when evaluating 'indentexpr'
Files:      src/indent.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4186
Problem:    Cannot use an import in 'patchexpr'.
Solution:   Set the script context when evaluating 'patchexpr'.  Do not
            require 'patchexpr' to return a bool, it was ignored anyway.
Files:      src/evalvars.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4187
Problem:    Gnuplot file not recognized.
Solution:   Recognize ".gnuplot". (closes #9588)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.4188
Problem:    Not all gitconfig files are recognized.
Solution:   Add a few more patterns. (Tim Pope, closes #9597)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.4189
Problem:    MS-Windows: code for "old look" is obsolete.
Solution:   Delete obsolete code.  Use "MS Shell Dlg" font. (Ken Takata,
            closes #9596)
Files:      src/gui_w32.c

Patch 8.2.4190
Problem:    All conceal tests are skipped without the screendumps feature.
Solution:   Only skip the tests that use screendumps. (closes #9599)
Files:      src/testdir/test_conceal.mnv

Patch 8.2.4191
Problem:    json5 files are not recognized.
Solution:   Add a pattern for json5 files. (closes #9601)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.4192
Problem:    Cannot use an import in 'printexpr'.
Solution:   Set the script context when evaluating 'printexpr'.
Files:      src/evalvars.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4193
Problem:    Cannot use an import in 'charconvert'.
Solution:   Set the script context when evaluating 'charconvert'.  Also expand
            script-local functions in 'charconvert'.
Files:      src/evalvars.c, src/optionstr.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4194
Problem:    MS-Windows: code for calculating font size is duplicated.
Solution:   Move the code to a function. (Ken Takata, closes #9603)
Files:      src/gui_w32.c

Patch 8.2.4195
Problem:    Resizing terminal may cause to behave like CTRL-Z.
Solution:   Set "got_tstp" only when in_mch_suspend is set. (Dorian Bivolaru,
            closes #9602, closes #9586)
Files:      src/os_unix.c

Patch 8.2.4196
Problem:    Various file types not recognized.
Solution:   Add patterns to recognize more file types (closes #9607)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.4197
Problem:    Cannot use an import in the "expr" part of 'spellsuggest'.
Solution:   Set the script context when evaluating "expr" of 'spellsuggest'.
Files:      src/evalvars.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4198
Problem:    MNV9: the switch for executing instructions is too long.
Solution:   Move some code to separate functions.
Files:      src/mnv9execute.c

Patch 8.2.4199
Problem:    MS-Windows: Support for MSVC before 2003 is not useful.
Solution:   Remove the exceptions for MSVC 6.0. (Ken Takata, closes #9616)
Files:      src/GmnvExt/gmnvext.h, src/ex_docmd.c, src/feature.h,
            src/gui_w32.c, src/if_cscope.c, src/if_ole.cpp, src/if_ruby.c,
            src/macros.h, src/os_mswin.c, src/os_win32.c, src/os_win32.h,
            src/proto/os_win32.pro, src/time.c, src/mnv.h

Patch 8.2.4200
Problem:    Some tests do not clean up properly.
Solution:   Delete created files. (Yegappan Lakshmanan, closes #9611)
Files:      src/testdir/test_filetype.mnv, src/testdir/test_messages.mnv,
            src/testdir/test_mnv9_import.mnv

Patch 8.2.4201
Problem:    When using the GUI CTRL-Z does not stop gmnv.
Solution:   When using the GUI set SIGTSTP to SIG_DFL. (Andrew Maltsev,
            closes #9570)
Files:      src/os_unix.c

Patch 8.2.4202
Problem:    MNV9: cannot export function that exists globally.
Solution:   When checking if a function already exists only check for
            script-local functions. (closes #9615)
Files:      src/userfunc.c, src/proto/userfunc.pro, src/mnv.h,
            src/mnv9compile.c, src/mnv9instr.c,
            src/testdir/test_mnv9_import.mnv

Patch 8.2.4203
Problem:    Entering a character with CTRL-V may include modifiers.
Solution:   Reset "mod_mask" when entering a character with digits after
            CTRL-V. (closes #9610)
Files:      src/edit.c, src/testdir/test_edit.mnv

Patch 8.2.4204
Problem:    screenpos() has non-zero row for invisible text.
Solution:   Only add the window row when the text is visible. (closes #9618)
Files:      src/move.c, src/testdir/test_cursor_func.mnv

Patch 8.2.4205
Problem:    The normal_cmd() function is too long.
Solution:   Move parts to separate functions. (Yegappan Lakshmanan,
            closes #9608)
Files:      src/normal.c

Patch 8.2.4206
Problem:    Condition with many "(" causes a crash.
Solution:   Limit recursion to 1000.
Files:      src/errors.h, src/eval.c, src/testdir/test_eval_stuff.mnv

Patch 8.2.4207 (after 8.2.4206)
Problem:    Recursion test fails with MSVC.
Solution:   Use a smaller limit for MSVC.
Files:      src/eval.c

Patch 8.2.4208
Problem:    Using setbufvar() may change the window title.
Solution:   Do not redraw when creating the autocommand window. (closes #9613)
Files:      src/autocmd.c, src/testdir/test_functions.mnv

Patch 8.2.4209
Problem:    partial in 'opfunc' cannot use an imported function.
Solution:   Also expand the function name in a partial. (closes #9614)
Files:      src/evalvars.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4210 (after 8.2.4208)
Problem:    Window title test fails in some configurations.
Solution:   Only run the test if the title can be obtained.
Files:      src/testdir/test_functions.mnv

Patch 8.2.4211 (after 8.2.4208)
Problem:    Window title test still fails in some configurations.
Solution:   Use WaitForAssert().
Files:      src/testdir/test_functions.mnv

Patch 8.2.4212 (after 8.2.4208)
Problem:    Window title test still fails in some configurations.
Solution:   Explicitly set the 'title' option.
Files:      src/testdir/test_functions.mnv

Patch 8.2.4213
Problem:    Too much code for supporting old MSVC versions.
Solution:   Remove MSVC 2003 support. (Ken Takata, closes #9623)
Files:      Filelist, src/INSTALLpc.txt, src/Make_mvc.mak, src/gui_w32.c,
            src/msvcsetup.bat, src/os_win32.c

Patch 8.2.4214
Problem:    Illegal memory access with large 'tabstop' in Ex mode.
Solution:   Allocate enough memory.
Files:      src/ex_getln.c, src/testdir/test_ex_mode.mnv

Patch 8.2.4215
Problem:    Illegal memory access when copying lines in Visual mode.
Solution:   Adjust the Visual position after copying lines.
Files:      src/ex_cmds.c, src/testdir/test_visual.mnv

Patch 8.2.4216
Problem:    MNV9: cannot use a function from an autoload import directly.
Solution:   Add the AUTOLOAD instruction to figure out at runtime.
            (closes #9620)
Files:      src/mnv9expr.c, src/mnv9.h, src/mnv9execute.c, src/mnv9instr.c,
            src/proto/mnv9instr.pro, src/testdir/test_mnv9_import.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.4217
Problem:    Illegal memory access when undo makes Visual area invalid.
Solution:   Correct the Visual area after undo.
Files:      src/undo.c, src/testdir/test_visual.mnv

Patch 8.2.4218
Problem:    Illegal memory access with bracketed paste in Ex mode.
Solution:   Reserve space for the trailing NUL.
Files:      src/edit.c, src/testdir/test_paste.mnv

Patch 8.2.4219
Problem:    Reading before the start of the line.
Solution:   Check boundary before trying to read the character.
Files:      src/register.c, src/testdir/test_visual.mnv

Patch 8.2.4220
Problem:    MS-Windows: some old compiler support remains.
Solution:   Remove obsolete compiler support. (Ken Takata, closes #9627)
Files:      src/Make_mvc.mak, src/mnv.h

Patch 8.2.4221
Problem:    Some functions in normal.c are very long.
Solution:   Move code to separate functions. (Yegappan Lakshmanan,
            closes #9628)
Files:      src/normal.c

Patch 8.2.4222
Problem:    MS-Windows: clumsy way to suppress progress on CI.
Solution:   Check for "$CI" in the Makefile itself. (Ken Takata, closes #9631)
Files:      .github/workflows/ci.yml, ci/appveyor.bat, src/Make_mvc.mak

Patch 8.2.4223
Problem:    Long/int compiler warnings; function arguments swapped.
Solution:   Add type casts.  Swap arguments. (Ken Takata, closes #9632)
Files:      src/alloc.c, src/eval.c, src/mnv9script.c

Patch 8.2.4224
Problem:    MNV9: no error when using a number for map() second argument
Solution:   Disallow number to string conversion. (closes #9630)
Files:      src/eval.c, src/evalfunc.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.4225
Problem:    MNV9: depth argument of :lockvar not parsed in :def function.
Solution:   Parse the optional depth argument. (closes #9629)
            Fix that locking doesn't work for a non-materialize list.
Files:      src/mnv9cmds.c, src/evalvars.c, src/structs.h, src/evalfunc.c,
            src/errors.h, src/mnv9execute.c, src/testdir/test_mnv9_cmd.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.4226 (after 8.2.4224)
Problem:    Filter-map test fails.
Solution:   Only reject number argument in MNV9 script.
Files:      src/eval.c

Patch 8.2.4227
Problem:    MNV9: using "lockvar!" in :def function does not work.
Solution:   Add "!" instead of "-1". (closes #9634)
Files:      src/mnv9cmds.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.4228
Problem:    No tests for clicking in the GUI tabline.
Solution:   Add test functions to generate the events.  Add tests using the
            functions. (Yegappan Lakshmanan, closes #9638)
Files:      runtime/doc/builtin.txt, runtime/doc/testing.txt,
            runtime/doc/usr_41.txt, src/evalfunc.c, src/normal.c,
            src/proto/testing.pro, src/testdir/test_diffmode.mnv,
            src/testdir/test_gui.mnv, src/testdir/test_normal.mnv,
            src/testing.c

Patch 8.2.4229
Problem:    Possible crash when invoking timer callback fails.
Solution:   Initialize the typval.  Give an error for an empty callback.
            (closes #9636)
Files:      src/time.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.4230
Problem:    MS-Windows: set_guifontwide() is included but won't work.
Solution:   Include set_guifontwide() only for X11. (Ken Takata, closes #9640)
Files:      src/gui.c

Patch 8.2.4231
Problem:    MNV9: map() gives type error when type was not declared.
Solution:   Only check the type when it was declared, like extend() does.
            (closes #9635)
Files:      src/list.c, src/evalfunc.c, src/mnv9instr.c,
            src/testdir/test_mnv9_builtin.mnv,
            src/testdir/test_mnv9_assign.mnv

Patch 8.2.4232 (after 8.2.4231)
Problem:    Some compilers don't like a goto label without statement.
Solution:   Return instead of using a goto.
Files:      src/list.c

Patch 8.2.4233
Problem:    Crash when recording and using Select mode.
Solution:   When deleting the last recorded character check there is something
            to delete.
Files:      src/getchar.c, src/testdir/test_registers.mnv

Patch 8.2.4234
Problem:    test_garbagecollect_now() does not check v:testing as documented.
Solution:   Give an error if v:testing is not set.
Files:      src/testing.c, src/errors.h, src/testdir/test_functions.mnv

Patch 8.2.4235
Problem:    Invalid check for NULL pointer.
Solution:   Remove the check.
Files:      src/getchar.c

Patch 8.2.4236
Problem:    Accessing freed memory.
Solution:   Set the bh_curr pointer to NULL.
Files:      src/getchar.c

Patch 8.2.4237
Problem:    Record buffer wrong if character in Select mode was not typed.
Solution:   Only delete the tail from the record buffer if the character was
            typed. (closes #9650)
Files:      src/normal.c, src/testdir/test_registers.mnv

Patch 8.2.4238
Problem:    *.tf file could be filetype "tf" or "terraform".
Solution:   Detect the type from the file contents. (closes #9642)
Files:      runtime/filetype.mnv, runtime/autoload/dist/ft.mnv,
            src/testdir/test_filetype.mnv

Patch 8.2.4239
Problem:    Build fails with unusual configuration.
Solution:   Adjust #ifdef. (closes #9651)
Files:      src/testing.c

Patch 8.2.4240
Problem:    Error for using flatten() in MNV9 script is unclear.
Solution:   Add a remark to use flattennew().
Files:      src/errors.h

Patch 8.2.4241
Problem:    Some type casts are redundant.
Solution:   Remove the type casts. (closes #9643)
Files:      src/blob.c, src/buffer.c, src/channel.c, src/clientserver.c,
            src/clipboard.c, src/drawline.c, src/drawscreen.c, src/edit.c,
            src/evalfunc.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_eval.c,
            src/fold.c, src/if_cscope.c, src/json.c, src/match.c,
            src/memline.c, src/message.c, src/misc1.c, src/normal.c,
            src/ops.c, src/option.c, src/optionstr.c, src/os_unix.c,
            src/register.c, src/sign.c, src/spellfile.c, src/tag.c, src/ui.c,
            src/undo.c, src/window.c

Patch 8.2.4242
Problem:    Put in Visual mode cannot be repeated.
Solution:   Use "P" to put without yanking the deleted text into the unnamed
            register. (Shougo Matsushita, closes #9591)
Files:      runtime/doc/visual.txt, src/normal.c, src/register.c,
            src/testdir/test_visual.mnv

Patch 8.2.4243
Problem:    Lua tests fail with Lua 5.4.4.
Solution:   Check messages like before Lua 5.4.3. (Jakub Kulík, closes #9652)
Files:      src/testdir/test_lua.mnv

Patch 8.2.4244
Problem:    MS-Windows: warning from MSVC on debug build.
Solution:   Adjust "/opt" options.  Remove unused variables.  Make variables
            uppercase for consistency. (Ken Takata, closes #9647)
Files:      src/Make_mvc.mak

Patch 8.2.4245
Problem:    ":retab 0" may cause illegal memory access.
Solution:   Limit the value of 'tabstop' to 10000.
Files:      src/option.c, src/mnv.h, src/indent.c,
            src/testdir/test_options.mnv

Patch 8.2.4246
Problem:    One error message not in errors.h. (Antonio Colombo)
Solution:   Move the message and rename.
Files:      src/errors.h, src/if_perl.xs

Patch 8.2.4247
Problem:    Stack corruption when looking for spell suggestions.
Solution:   Prevent the depth increased too much.  Add a five second time
            limit to finding suggestions.
Files:      src/spellsuggest.c, src/testdir/test_spell.mnv

Patch 8.2.4248
Problem:    No proper test for moving the window separator.
Solution:   Add a test.  Add comment in code. (closes #9656)
Files:      src/window.c, src/testdir/test_window_cmd.mnv

Patch 8.2.4249
Problem:    The timeout limit for spell suggestions is always 5000 milli
            seconds.
Solution:   Add the "timeout" entry to 'spellsuggest'.
Files:      runtime/doc/options.txt, src/spellsuggest.c,
            src/testdir/test_spell.mnv

Patch 8.2.4250
Problem:    Channel out callback test is flaky on Mac.
Solution:   Assign high priority to the test process. (Ozaki Kiichi,
            closes #9653)
Files:      src/testdir/test_channel_pipe.py, src/testdir/thread_util.py

Patch 8.2.4251
Problem:    Vala files are not recognized.
Solution:   Add the *.vala pattern. (closes #9654)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.4252
Problem:    Generating the normal command table at runtime is inefficient.
Solution:   Generate the table with a MNV script and put it in a header file.
            (Yegappan Lakshmanan, closes #9648)
Files:      Filelist, runtime/doc/builtin.txt, runtime/doc/usr_41.txt,
            src/Make_cyg_ming.mak, src/Make_mvc.mak, src/Make_vms.mms,
            src/Makefile, src/create_nvcmdidxs.mnv, src/evalfunc.c,
            src/main.c, src/normal.c, src/nv_cmdidxs.h, src/proto/normal.pro

Patch 8.2.4253
Problem:    Using freed memory when substitute uses a recursive function call.
Solution:   Make a copy of the substitute text.
Files:      src/ex_cmds.c, src/testdir/test_substitute.mnv

Patch 8.2.4254
Problem:    Using short instead of int.
Solution:   Use int. (closes #9658)
Files:      src/if_cscope.c

Patch 8.2.4255
Problem:    Theoretical computation overflow.
Solution:   Perform multiplication in a wider type. (closes #9657)
Files:      src/alloc.c, src/drawline.c, src/eval.c, src/evalfunc.c,
            src/ex_docmd.c, src/hardcopy.c, src/list.c, src/memfile.c,
            src/memline.c, src/popupwin.c

Patch 8.2.4256
Problem:    MS-Windows: compiler warnings when compiled with /W4.
Solution:   Small adjustments to the code. (Ken Takata, closes #9659)
Files:      src/gui_w32.c, src/os_win32.c

Patch 8.2.4257
Problem:    MNV9: finding global function without g: prefix but not finding
            global variable is inconsistent.
Solution:   Require using g: for a global function.  Change the mnv9.mnv
            script into a MNV9 script with exports.  Fix that import in legacy
            script does not work.
Files:      src/mnv9expr.c, src/evalfunc.c, src/eval.c, src/userfunc.c,
            src/testdir/mnv9.mnv, src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_builtin.mnv, src/testdir/test_mnv9_cmd.mnv,
            src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_expr.mnv, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_import.mnv,
            src/testdir/test_mnv9_script.mnv, src/testdir/test_blob.mnv,
            src/testdir/test_execute_func.mnv, src/testdir/test_debugger.mnv,
            src/testdir/test_expr.mnv, src/testdir/test_filter_map.mnv,
            src/testdir/test_float_func.mnv, src/testdir/test_functions.mnv,
            src/testdir/test_glob2regpat.mnv, src/testdir/test_highlight.mnv,
            src/testdir/test_iminsert.mnv, src/testdir/test_ins_complete.mnv,
            src/testdir/test_listdict.mnv, src/testdir/test_mapping.mnv,
            src/testdir/test_normal.mnv, src/testdir/test_popupwin.mnv,
            src/testdir/test_profile.mnv, src/testdir/test_quickfix.mnv,
            src/testdir/test_tagfunc.mnv, src/testdir/test_textprop.mnv,
            src/testdir/test_usercommands.mnv

Patch 8.2.4258
Problem:    Coverity warns for array overrun.
Solution:   Restrict depth to MAXWLEN - 1.
Files:      src/spellsuggest.c

Patch 8.2.4259
Problem:    Number of test functions for GUI events is growing.
Solution:   Use one function with a dictionary. (Yegappan Lakshmanan,
            closes #9660)
Files:      runtime/doc/builtin.txt, runtime/doc/testing.txt,
            runtime/doc/usr_41.txt, src/evalfunc.c, src/proto/testing.pro,
            src/testdir/test_gui.mnv, src/testdir/test_mnv9_builtin.mnv,
            src/testing.c

Patch 8.2.4260
Problem:    MNV9: can still use a global function without g: at the script
            level.
Solution:   Also check for g: at the script level. (issue #9637)
Files:      src/userfunc.c, src/proto/userfunc.pro, src/evalvars.c,
            src/mnv9expr.c, src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_builtin.mnv, src/testdir/test_mnv9_cmd.mnv,
            src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_expr.mnv, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_import.mnv,
            src/testdir/test_ins_complete.mnv, src/testdir/test_popupwin.mnv,
            src/testdir/dumps/Test_popupwin_scroll_11.dump,
            src/testdir/dumps/Test_popupwin_scroll_12.dump

Patch 8.2.4261
Problem:    Accessing invalid memory when a regular expression checks the
            Visual area while matching in a string.
Solution:   Do not try matching the Visual area in a string.
Files:      src/regexp.c, src/testdir/test_help.mnv

Patch 8.2.4262 (after 8.2.4261)
Problem:    Some search tests fail.
Solution:   Use a better way to reject searching for the Visual area.
Files:      src/regexp.c

Patch 8.2.4263
Problem:    No test for the GUI find/replace dialog.
Solution:   Add a test function and a test. (Yegappan Lakshmanan,
            closes #9662)
Files:      runtime/doc/testing.txt, src/testdir/test_gui.mnv, src/testing.c

Patch 8.2.4264
Problem:    MNV9: can use old style autoload function name.
Solution:   Give an error for old style autoload function name.
Files:      src/errors.h, src/userfunc.c, src/testdir/test_mnv9_import.mnv,
            src/testdir/test_mnv9_func.mnv, src/testdir/test_mnv9_script.mnv

Patch 8.2.4265 (after 8.2.4264)
Problem:    Autoload tests fails.
Solution:   Use export instead of name with #.
Files:      src/testdir/sautest/autoload/auto9.mnv,
            src/testdir/test_autoload.mnv, src/testdir/test_ins_complete.mnv

Patch 8.2.4266
Problem:    Compiler warning for uninitialized variable.
Solution:   Initialize saved_did_emsg.
Files:      src/userfunc.c

Patch 8.2.4267
Problem:    Unused entry in keymap enum.
Solution:   Remove the entry.
Files:      src/keymap.h

Patch 8.2.4268
Problem:    CI log output is long.
Solution:   Group output in sections. (Ozaki Kiichi, closes #9670)
Files:      .github/workflows/ci.yml

Patch 8.2.4269
Problem:    Coverity warns for using a NULL pointer.
Solution:   Check for "name" to not be NULL.
Files:      src/userfunc.c

Patch 8.2.4270
Problem:    Generating nv_cmdidxs.h requires building MNV twice.
Solution:   Move the table into a separate file and use a separate executable
            to extract the command characters. (Ozaki Kiichi, closes #9669)
Files:      src/normal.c, src/nv_cmds.h, Filelist, runtime/doc/builtin.txt,
            runtime/doc/usr_41.txt, src/Make_cyg_ming.mak, src/Make_mvc.mak,
            src/Make_vms.mms, src/Makefile, src/create_nvcmdidxs.c,
            src/create_nvcmdidxs.mnv, src/evalfunc.c, src/proto/normal.pro

Patch 8.2.4271
Problem:    MS-Windows: cannot build with Ruby 3.1.0.
Solution:   Adjust the DLL name and include directory. (Ken Takata,
            closes #9666)
Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak

Patch 8.2.4272
Problem:    MNV9 expr test fails without the channel feature. (Dominique
            Pellé)
Solution:   Remove "g:" before "CheckFeature". (closes #9671)
Files:      src/testdir/test_mnv9_expr.mnv

Patch 8.2.4273
Problem:    The EBCDIC support is outdated.
Solution:   Remove the EBCDIC support.
Files:      src/ascii.h, src/charset.c, src/cindent.c, src/digraph.c,
            src/edit.c, src/eval.c, src/evalfunc.c, src/ex_cmds.c,
            src/feature.h, src/filepath.c, src/findfile.c, src/getchar.c,
            src/gui.c, src/gui_motif.c, src/hardcopy.c, src/help.c,
            src/macros.h, src/map.c, src/mark.c, src/misc2.c, src/normal.c,
            src/ops.c, src/option.c, src/option.h, src/optiondefs.h,
            src/os_unix.c, src/proto/evalfunc.pro, src/regexp.c,
            src/regexp_bt.c, src/regexp_nfa.c, src/register.c, src/screen.c,
            src/spell.c, src/strings.c, src/structs.h, src/term.c,
            src/version.c, src/mnvinfo.c, src/testdir/test_edit.mnv,
            src/testdir/test_exec_while_if.mnv, src/testdir/test_expr.mnv,
            src/testdir/test_gf.mnv, src/testdir/test_regexp_utf8.mnv

Patch 8.2.4274
Problem:    Basic and form filetype detection is incomplete.
Solution:   Add a separate function for .frm files. (Doug Kearns, closes #9675)
Files:      runtime/autoload/dist/ft.mnv, runtime/filetype.mnv,
            src/testdir/test_filetype.mnv

Patch 8.2.4275
Problem:    Cannot use an autoload function from a package under start.
Solution:   Also look in the "start" package directory. (Bjorn Linse,
            closes #7193)
Files:      src/scriptfile.c, src/testdir/test_packadd.mnv

Patch 8.2.4276
Problem:    Separate test function for the GUI scrollbar.
Solution:   Use test_gui_event(). (Yegappan Lakshmanan, closes #9674)
Files:      runtime/doc/builtin.txt, runtime/doc/testing.txt,
            runtime/doc/usr_41.txt, src/evalfunc.c, src/testing.c,
            src/proto/testing.pro, src/testdir/test_gui.mnv,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.4277
Problem:    MNV9: an import does not shadow a command modifier.
Solution:   Do not accept a command modifier followed by a dot.
Files:      src/ex_docmd.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4278
Problem:    Build with Athena GUI fails. (Elimar Riesebieter)
Solution:   Add #ifdef.
Files:      src/testing.c

Patch 8.2.4279
Problem:    MNV9: cannot change item type with map() after range().
Solution:   Split the return type in current type and declared type.
            (closes #9665)
Files:      src/evalfunc.c, src/proto/evalfunc.pro, src/mnv9instr.c,
            src/mnv9type.c, src/proto/mnv9type.pro,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.4280 (after 8.2.4279)
Problem:    list-dict test crashes.
Solution:   Check declared type for add().
Files:      src/mnv9expr.mnv

Patch 8.2.4281
Problem:    Using freed memory with :lopen and :bwipe.
Solution:   Do not use a wiped out buffer.
Files:      src/buffer.c, src/testdir/test_quickfix.mnv

Patch 8.2.4282
Problem:    Restricted mode requires the -Z command line option.
Solution:   Use restricted mode when $SHELL ends in "nologin" or "false".
            (closes #9681)
Files:      runtime/doc/starting.txt, src/option.c,
            src/testdir/test_restricted.mnv

Patch 8.2.4283
Problem:    Using a variable for the return value is not needed.
Solution:   Return the value directly. (closes #9687)
Files:      src/ex_docmd.c, src/misc2.c

Patch 8.2.4284
Problem:    Old mac resources files are no longer used.
Solution:   Delete the unused files. (Ozaki Kiichi, closes #9688)
Files:      Filelist, src/Makefile, src/dehqx.py, src/infplist.xml,
            src/os_mac.rsr.hqx, src/os_mac_rsrc/app.icns,
            src/os_mac_rsrc/doc-txt.icns, src/os_mac_rsrc/doc.icns

Patch 8.2.4285
Problem:    MNV9: type of item in for loop not checked properly.
Solution:   Adjust the type checking. (closes #9683)
Files:      src/mnv9compile.c, src/proto/mnv9compile.pro, src/mnv9cmds.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.4286
Problem:    MNV9: strict type checking after copy() and deepcopy().
Solution:   Allow type to change after making a copy. (closes #9644)
Files:      src/eval.c, src/proto/eval.pro, src/dict.c, src/proto/dict.pro,
            src/list.c, src/proto/list.pro, src/evalfunc.c, src/mnv9execute.c,
            src/mnv9type.c, src/proto/mnv9type.pro, src/evalvars.c,
            src/testdir/test_mnv9_builtin.mnv,
            src/testdir/test_mnv9_assign.mnv

Patch 8.2.4287
Problem:    Cannot assign empty list with any list type to variable with
            specific list type.
Solution:   Use unknown list type for empty list if the specified type is any.
Files:      src/mnv9type.c, src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.4288
Problem:    Preprocessor indents are inconsistent.
Solution:   Fix preprocessor indents. (Ken Takata, closes #9691)
Files:      src/arglist.c, src/change.c, src/ex_cmds.c, src/gui.c,
            src/hashtab.c, src/indent.c, src/ops.c, src/os_win32.c

Patch 8.2.4289
Problem:    Warnings reported by MSVC.
Solution:   Rename variables and other fixes. (Ken Takata, closes #9689)
Files:      src/cmdexpand.c, src/drawscreen.c, src/filepath.c, src/getchar.c,
            src/menu.c, src/os_win32.c, src/version.c

Patch 8.2.4290
Problem:    MS-Windows: using type casts for timer IDs.
Solution:   Remove type casts and use the right type. (Ken Takata,
            closes #9690)  Remove old debug comments.  Rename variables and
            functions.
Files:      src/gui_w32.c

Patch 8.2.4291
Problem:    Error number used twice.
Solution:   Renumber the errors.
Files:      src/errors.h

Patch 8.2.4292 (after 8.2.4291)
Problem:    Test fails.
Solution:   Adjust the expected error number.
Files:      src/testdir/test_mnv9_cmd.mnv

Patch 8.2.4293
Problem:    MNV9: when copying a list it gets type list<any> even when the
            original list did not have a type.
Solution:   Only set the type when the original list has a type. (closes #9692)
Files:      src/list.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.4294
Problem:    MS-Windows: #ifdefs for Cygwin are too complicated.
Solution:   Simplify the conditions. (Ken Takata, closes #9693)
Files:      src/evalfunc.c, src/main.c, src/os_unix.c, src/os_win32.c,
            src/os_win32.h

Patch 8.2.4295
Problem:    MNV9: concatenating two lists may result in wrong type.
Solution:   Remove the type instead of using list<any>. (closes #9692)
Files:      src/list.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.4296
Problem:    MNV9: not all code covered by tests.
Solution:   Add a few more tests for corner cases.  Fix hang when single quote
            is missing.
Files:      src/mnv9expr.c, src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_cmd.mnv, src/testdir/test_mnv9_expr.mnv

Patch 8.2.4297
Problem:    MNV9: not all code covered by tests.
Solution:   Add a couple more tests.
Files:      src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.4298
Problem:    Divide by zero with huge tabstop value.
Solution:   Reject tabstop value that overflows to zero.
Files:      src/indent.c, src/testdir/test_vartabs.mnv

Patch 8.2.4299
Problem:    SafeState autocommand interferes with debugging.
Solution:   Do not trigger SafeState while debugging. (closes #9697)
Files:      src/main.c

Patch 8.2.4300 (after 8.2.4299)
Problem:    Cannot build tiny version. (Tony Mechelynck)
Solution:   Add #ifdef.
Files:      src/main.c

Patch 8.2.4301
Problem:    MNV9: type error for copy of dict.
Solution:   Do not use dict<any> but no type. (closes #9696)
Files:      src/dict.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.4302
Problem:    MNV9: return type of getline() is too strict.
Solution:   Make the declared type list<any>.  Also do this for other
            functions returning a list of a specific type.
Files:      src/evalfunc.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.4303
Problem:    A few messages should not be translated.
Solution:   Remove _(). (Dominique Pellé, closes #9702)
Files:      src/syntax.c

Patch 8.2.4304
Problem:    MNV9: slice() makes a copy but doesn't change the type.
Solution:   Change the declared type like copy(). (closes #9696)
Files:      src/evalfunc.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.4305
Problem:    Tex filetype detection fails.
Solution:   Check value to be positive. (closes #9704)
Files:      runtime/autoload/dist/ft.mnv, src/testdir/test_filetype.mnv

Patch 8.2.4306
Problem:    No test for fixed perl filetype check.
Solution:   Add a test. Sort test functions.
Files:      src/testdir/test_filetype.mnv

Patch 8.2.4307
Problem:    A few more messages should not be translated.
Solution:   Remove _().
Files:      src/syntax.c

Patch 8.2.4308
Problem:    MNV9: cannot list autoload function.
Solution:   Don't give an error for using # when listing a function.
            (closes #9703)
Files:      src/userfunc.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4309
Problem:    MNV9: crash when using a partial in the wrong context.
Solution:   Don't use an NULL outer pointer. (closes #9706)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.4310
Problem:    MNV9: constant list and dict get a declaration type other than
            "any".
Solution:   A constant list and dict have a declared member type "any".
            (closes #9701)
Files:      src/mnv9instr.c, src/mnv9type.c, src/proto/mnv9type.pro,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.4311
Problem:    MNV9: changing script variable type not caught at compile time.
Solution:   Set the declared type.
Files:      src/mnv9instr.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.4312
Problem:    No error for using :mnv9script in a :def function.
Solution:   Give an error when compiling.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.4313
Problem:    MNV9: cannot change type of list after making a slice.
Solution:   Adjust the declared member type. (closes #9696)
Files:      src/mnv9expr.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.4314 (after 8.2.4312)
Problem:    Test fails where lines are skipped.
Solution:   Only give an error when not skipping commands.
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.4315
Problem:    Put in Visual mode not fully tested.
Solution:   Add a few more test cases. (closes #9708)
Files:      src/testdir/test_visual.mnv

Patch 8.2.4316
Problem:    __CYGWIN32__ is not defined on 64 bit systems.
Solution:   Update #ifdefs. (Ken Takata, closes #9709)
Files:      src/main.c, src/os_unix.c, src/pty.c, src/mnv.h

Patch 8.2.4317
Problem:    MS-Windows: MNV exits when Python 3 initialisation fails.
Solution:   Hook into the exit() function to recover from the failure.
            (Ken Takata, closes #9710)
Files:      runtime/doc/if_pyth.txt, src/if_python3.c, src/os_win32.c,
            src/errors.h, src/proto/os_win32.pro

Patch 8.2.4318
Problem:    Various comment and indent mistakes, returning wrong zero.
Solution:   Fix the mistakes.  Return NULL instead of FAIL.
Files:      src/clientserver.c, src/eval.c, src/evalvars.c, src/mnv9cmds.c,
            src/window.c

Patch 8.2.4319
Problem:    :put does not work properly in compiled function. (John Beckett)
Solution:   Adjust the direction when using line zero.
Files:      src/mnv9execute.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.4320
Problem:    Athena and Motif: when maximized scrollbar position is wrong.
Solution:   Implement the scrollbar padding functions. (closes #9712)
Files:      src/gui_athena.c, src/gui_motif.c

Patch 8.2.4321
Problem:    MNV9: crash when using a funcref to a closure.
Solution:   Copy pt_outer to the new partial. (closes #9714)
Files:      src/evalfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.4322
Problem:    MNV9: crash when using funcref with closure.
Solution:   Keep a reference to the funcref that has the outer context.
            (closes #9716)
Files:      src/evalfunc.c, src/structs.h, src/eval.c, src/mnv9execute.c,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.4323
Problem:    MNV9: nested function name can start with "_".
Solution:   Use same rule for function name for nested functions.
            (closes #9713)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.4324
Problem:    MNV9: script-local function name can start with "_".
Solution:   Check for leading capital after "s:".  Correct error message.
Files:      src/userfunc.c, src/errors.h, src/mnv9compile.c,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.4325
Problem:    'wildmenu' only shows few matches.
Solution:   Add the "pum" option: use a popup menu to show the matches.
            (Yegappan Lakshmanan et al., closes #9707)
Files:      runtime/doc/options.txt, src/mnv.h, src/cmdexpand.c,
            src/drawscreen.c, src/evalfunc.c, src/ex_getln.c, src/option.h,
            src/optionstr.c, src/popupmenu.c, src/proto/cmdexpand.pro,
            src/testdir/test_cmdline.mnv,
            src/testdir/dumps/Test_wildmenu_pum_01.dump,
            src/testdir/dumps/Test_wildmenu_pum_02.dump,
            src/testdir/dumps/Test_wildmenu_pum_03.dump,
            src/testdir/dumps/Test_wildmenu_pum_04.dump,
            src/testdir/dumps/Test_wildmenu_pum_05.dump,
            src/testdir/dumps/Test_wildmenu_pum_06.dump,
            src/testdir/dumps/Test_wildmenu_pum_07.dump,
            src/testdir/dumps/Test_wildmenu_pum_08.dump,
            src/testdir/dumps/Test_wildmenu_pum_09.dump,
            src/testdir/dumps/Test_wildmenu_pum_10.dump,
            src/testdir/dumps/Test_wildmenu_pum_11.dump,
            src/testdir/dumps/Test_wildmenu_pum_12.dump,
            src/testdir/dumps/Test_wildmenu_pum_13.dump,
            src/testdir/dumps/Test_wildmenu_pum_14.dump,
            src/testdir/dumps/Test_wildmenu_pum_15.dump,
            src/testdir/dumps/Test_wildmenu_pum_16.dump,
            src/testdir/dumps/Test_wildmenu_pum_17.dump,
            src/testdir/dumps/Test_wildmenu_pum_18.dump,
            src/testdir/dumps/Test_wildmenu_pum_19.dump,
            src/testdir/dumps/Test_wildmenu_pum_20.dump,
            src/testdir/dumps/Test_wildmenu_pum_21.dump,
            src/testdir/dumps/Test_wildmenu_pum_22.dump,
            src/testdir/dumps/Test_wildmenu_pum_23.dump,
            src/testdir/dumps/Test_wildmenu_pum_24.dump,
            src/testdir/dumps/Test_wildmenu_pum_25.dump,
            src/testdir/dumps/Test_wildmenu_pum_26.dump,
            src/testdir/dumps/Test_wildmenu_pum_27.dump,
            src/testdir/dumps/Test_wildmenu_pum_28.dump,
            src/testdir/dumps/Test_wildmenu_pum_29.dump

Patch 8.2.4326
Problem:    "o" and "O" copying comment not sufficiently tested.
Solution:   Add a test case. (closes #9718)
Files:      src/testdir/test_textformat.mnv

Patch 8.2.4327
Problem:    May end up with no current buffer.
Solution:   When deleting the current buffer to not pick a quickfix buffer as
            the new current buffer.
Files:      src/buffer.c, src/testdir/test_quickfix.mnv

Patch 8.2.4328
Problem:    Command line complete matches cleared when typing character.
            (Dominique Pellé)
Solution:   Only remove a popup menu if there is one.
Files:      src/ex_getln.c, src/testdir/test_cmdline.mnv,
            src/testdir/dumps/Test_wildmenu_pum_30.dump,
            src/testdir/dumps/Test_wildmenu_pum_31.dump

Patch 8.2.4329
Problem:    No support for end line number and column in 'errorformat'.
Solution:   Add %e and %k. (closes #9624)
Files:      runtime/doc/quickfix.txt, src/quickfix.c,
            src/testdir/test_quickfix.mnv

Patch 8.2.4330
Problem:    MNV9: no error if script imports itself.
Solution:   Give an error when a script imports itself.
Files:      src/mnv9script.c, src/errors.h, src/testdir/test_mnv9_import.mnv

Patch 8.2.4331
Problem:    MNV9: no test for existing script variable in block.
Solution:   Add a test.
Files:      src/testdir/test_mnv9_func.mnv

Patch 8.2.4332
Problem:    MNV9: incomplete test for existing script variable in block.
Solution:   Add a couple more tests.  Fix uncovered problem.
Files:      src/userfunc.c, src/mnv9compile.c, src/proto/mnv9compile.pro,
            src/mnv9script.c, src/mnv9expr.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.4333
Problem:    cstack not always passed to where it is needed.
Solution:   Pass cstack through functions.
Files:      src/eval.c, src/mnv9expr.c, src/mnv9script.c,
            src/proto/mnv9script.pro, src/mnv9compile.c,
            src/proto/mnv9compile.pro

Patch 8.2.4334
Problem:    Command line popup menu not positioned correctly.
Solution:   Also use mnv_strsize() on the existing text. (Naruhiko Nishino,
            closes #9727)
Files:      src/cmdexpand.c, src/testdir/test_cmdline.mnv,
            src/testdir/dumps/Test_wildmenu_pum_32.dump

Patch 8.2.4335
Problem:    No autocommand event triggered before changing directory. (Ronnie
            Magatti)
Solution:   Add DirChangedPre. (closes #9721)
Files:      runtime/doc/autocmd.txt, src/ex_docmd.c, src/proto/ex_docmd.pro,
            src/mnv.h, src/autocmd.c, src/misc2.c,
            src/testdir/test_autocmd.mnv

Patch 8.2.4336
Problem:    Using :filter for :scriptnames does not work. (Ben Jackson)
Solution:   Call message_filtered(). (closes #9720)
Files:      src/scriptfile.c, src/testdir/test_filter_cmd.mnv

Patch 8.2.4337
Problem:    Part of condition is always true.
Solution:   Remove that part of the condition. (closes #9729)
Files:      src/filepath.c

Patch 8.2.4338
Problem:    An error from an expression mapping messes up the display.
Solution:   When the expression results in an empty string return K_IGNORE.
            In cmdline mode redraw the command line. (closes #9726)
Files:      src/getchar.c, src/testdir/test_mapping.mnv,
            src/testdir/dumps/Test_map_expr_2.dump,
            src/testdir/dumps/Test_map_expr_3.dump,
            src/testdir/dumps/Test_map_expr_4.dump

Patch 8.2.4339
Problem:    CTRL-A does not work properly with the cmdline popup menu.
Solution:   Fix issues with CTRL-A.  Add more tests for the cmdline popup
            menu.  Remove TermWait() before VeriryScreenDump().  Refactor the
            cmdline popup code. (Yegappan Lakshmanan, closes #9735)
Files:      src/cmdexpand.c, src/ex_getln.c, src/popupmenu.c,
            src/testdir/screendump.mnv, src/testdir/test_bufline.mnv,
            src/testdir/test_cmdline.mnv, src/testdir/test_conceal.mnv,
            src/testdir/test_cursorline.mnv, src/testdir/test_diffmode.mnv,
            src/testdir/test_display.mnv, src/testdir/test_highlight.mnv,
            src/testdir/test_match.mnv, src/testdir/test_popup.mnv,
            src/testdir/test_search_stat.mnv, src/testdir/test_terminal.mnv,
            src/testdir/test_textprop.mnv,
            src/testdir/dumps/Test_wildmenu_pum_33.dump,
            src/testdir/dumps/Test_wildmenu_pum_34.dump,
            src/testdir/dumps/Test_wildmenu_pum_35.dump,
            src/testdir/dumps/Test_wildmenu_pum_36.dump,
            src/testdir/dumps/Test_wildmenu_pum_37.dump

Patch 8.2.4340
Problem:    Amiga: mch_can_exe() is not implemented.
Solution:   Implement mch_can_exe() for Amiga OS 4. (Ola Söder, closes #9731)
Files:      src/os_amiga.c

Patch 8.2.4341
Problem:    Command line not redrawn when finishing popup menu and the screen
            has scrolled up.
Solution:   Redraw the command line after updating the screen. (closes #9722)
Files:      src/cmdexpand.c, src/testdir/test_cmdline.mnv,
            src/testdir/dumps/Test_wildmenu_pum_38.dump

Patch 8.2.4342
Problem:    CI will soon switch to other windows version.
Solution:   Use "windows-2019" instead of "windows-latest". (Ozaki Kiichi,
            closes #9740)
Files:      .github/workflows/ci.yml

Patch 8.2.4343
Problem:    When reloading not all properties are detected.
Solution:   Add the "edit" value to v:fcs_choice. (Rob Pilling, closes #9579)
Files:      runtime/doc/editing.txt, runtime/doc/eval.txt, src/fileio.c,
            src/proto/fileio.pro, src/message.c, src/spellfile.c,
            src/testdir/test_filechanged.mnv

Patch 8.2.4344
Problem:    Amiga: header file included twice.
Solution:   Remove #include. (Ola Söder, closes #9733)
Files:      src/memfile.c

Patch 8.2.4345
Problem:    <amatch> is expanded like a file name for DirChangedPre.
Solution:   Do not expand <amatch>. (closes #9742)  Also for the User event.
Files:      src/autocmd.c, src/testdir/test_autocmd.mnv

Patch 8.2.4346
Problem:    A custom statusline may cause Esc to work like Enter on the
            command line when the popup menu is displayed.
Solution:   Save and restore KeyTyped. (closes #9749)
Files:      src/drawscreen.c, src/testdir/test_cmdline.mnv,
            src/testdir/dumps/Test_wildmenu_pum_39.dump

Patch 8.2.4347
Problem:    In some build setups UNUSED is not defined.
Solution:   Change the logic of how UNUSED is defined. (Ola Söder,
            closes #9734)
Files:      src/mnv.h

Patch 8.2.4348
Problem:    "legacy exe cmd" does not do what one would expect.
Solution:   Apply the "legacy" and "mnv9script" command modifiers to the
            argument of ":execute".
Files:      runtime/doc/mnv9.txt, src/globals.h, src/eval.c, src/ex_docmd.c,
            src/testdir/test_mnv9_cmd.mnv

Patch 8.2.4349
Problem:    FileChangedShell test fails on MS-Windows.
Solution:   Skip the test on MS-Windows.
Files:      src/testdir/test_filechanged.mnv

Patch 8.2.4350
Problem:    FEAT_GUI_ENABLED defined but never used.
Solution:   Remove the #define. (Ola Söder, closes #9732)
Files:      src/mnv.h

Patch 8.2.4351
Problem:    No coverage is measured on MS-Windows CI.
Solution:   Enable coverage on MS-Windows. (Ozaki Kiichi, closes #9750)
Files:      .github/workflows/ci.yml

Patch 8.2.4352
Problem:    ReScript files are not recognized.
Solution:   Add the *.res and *.resi patterns. (Ananda Umamil, closes #9752)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.4353
Problem:    CI does not use the latest Lua and Python.
Solution:   Use Lua 5.4.2 and Python 3.10. (closes #9744)
Files:      .github/workflows/ci.yml

Patch 8.2.4354
Problem:    Dynamic loading of libsodium not handled properly.
Solution:   Fix has() and :version. Show an error message when loading fails.
            Fix memory leaks. (Ken Takata, closes #9754)
Files:      src/crypt.c, src/evalfunc.c, src/gui_dwrite.cpp, src/if_cscope.c,
            src/os_win32.c, src/proto/crypt.pro, src/proto/os_win32.pro,
            src/version.c

Patch 8.2.4355
Problem:    Unnecessary call to check_colorcolumn().
Solution:   Remove the call. (Sean Dewar, closes #9748)
Files:      src/option.c, src/window.c

Patch 8.2.4356
Problem:    Command line completion functions are very long.
Solution:   Refactor into multiple functions. (Yegappan Lakshmanan,
            closes #9753)
Files:      src/cmdexpand.c

Patch 8.2.4357 (after 8.2.4348)
Problem:    sticky command modifiers are too sticky.
Solution:   Do not apply command modifiers to a sourced script. (closes #9751)
Files:      src/scriptfile.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.4358
Problem:    MNV9: line number of exception is not set.
Solution:   Set the line number before throwing an exception. (closes #9755)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.4359
Problem:    crash when repeatedly using :retab.
Solution:   Bail out when the line is getting too long.
Files:      src/indent.c, src/testdir/test_retab.mnv

Patch 8.2.4360
Problem:    MNV9: allowing use of "s:" leads to inconsistencies.
Solution:   Disallow using "s:" in MNV9 script at the script level.
Files:      src/userfunc.c, src/proto/userfunc.pro, src/errors.h,
            src/mnv9compile.c, src/eval.c, src/testdir/mnv9.mnv,
            src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_builtin.mnv, src/testdir/test_mnv9_cmd.mnv,
            src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_expr.mnv, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_import.mnv, src/testdir/test_mnv9_script.mnv

Patch 8.2.4361 (after 8.2.4360)
Problem:    MNV9: some tests fail.
Solution:   Fix the tests, mostly by removing "s:".
Files:      src/testdir/test_expr.mnv, src/testdir/test_functions.mnv,
            src/testdir/test_ins_complete.mnv, src/testdir/test_normal.mnv,
            src/testdir/test_tagfunc.mnv

Patch 8.2.4362
Problem:    :retab may allocate too much memory.
Solution:   Bail out when allocating more than MAXCOL bytes.
Files:      src/indent.c

Patch 8.2.4363
Problem:    MS-Windows: running out of memory for a very long line.
Solution:   Use a 32 bit value for MAXCOL also when ints are 64 bits.
Files:      src/mnv.h

Patch 8.2.4364
Problem:    MS-Windows: still running out of memory for a very long line.
Solution:   Check for negative length.
Files:      src/indent.c

Patch 8.2.4365 (after 8.2.4348)
Problem:    sticky command modifiers are too sticky.
Solution:   Do not apply command modifiers to a called function. (closes #9751)
Files:      src/userfunc.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.4366
Problem:    Not enough tests for command line completion.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #9760)
Files:      src/cmdexpand.c, src/testdir/test_cmdline.mnv,
            src/testdir/test_usercommands.mnv

Patch 8.2.4367
Problem:    Calling in_mnv9script() multiple times.
Solution:   Call it once and keep the result.
Files:      src/userfunc.c, src/eval.c

Patch 8.2.4368
Problem:    Amiga: a few compiler warnings.
Solution:   Adjust #ifdefs. Add "UNUSED". (Ola Söder, closes #9756,
            closes #9757)
Files:      src/term.c, src/os_amiga.c

Patch 8.2.4369
Problem:    Redundant #ifdef argument.
Solution:   Remove unused MSWIN. (Ola Söder, closes #9758)
Files:      src/feature.h

Patch 8.2.4370
Problem:    MS-Windows: libsodium.dll not included with the installer.
Solution:   Add the file to the installer if it exists. (Christian Brabandt,
            closes #9762)
Files:      nsis/gmnv.nsi

Patch 8.2.4371
Problem:    MNV9: can create a script variable from a legacy function.
Solution:   Disallow creating a script variable from a function.
Files:      src/evalvars.c, src/errors.h, src/testdir/test_mnv9_script.mnv

Patch 8.2.4372
Problem:    Filetype detection from file contents is in legacy script.
Solution:   Use a compiled function for filetype detection.
Files:      runtime/scripts.mnv, runtime/autoload/dist/script.mnv

Patch 8.2.4373
Problem:    Expression test fails.
Solution:   Make the test work with latest MNV9 syntax.
Files:      src/testdir/test_expr.mnv

Patch 8.2.4374
Problem:    Unreachable code.
Solution:   Remove outdated code lines.
Files:      src/mnv9compile.c

Patch 8.2.4375
Problem:    ctx_imports is not used.
Solution:   Delete ctx_imports.  Add missing dependency.
Files:      src/mnv9.h, src/mnv9compile.c, src/proto/mnv9compile.pro,
            src/eval.c, src/evalfunc.c, src/evalvars.c, src/userfunc.c,
            src/mnv9expr.c, src/mnv9script.c, src/Makefile

Patch 8.2.4376
Problem:    Not enough tests for command line completion.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #9771)
Files:      src/testdir/test_cmdline.mnv, src/testdir/test_usercommands.mnv

Patch 8.2.4377
Problem:    CI steps for Windows are a bit unorganized.
Solution:   Organize CI test steps on Windows. (Ozaki Kiichi, closes #9764)
Files:      .github/workflows/ci.yml

Patch 8.2.4378
Problem:    Incsearch highlight broken when calling searchcount() in 'tabLine'
            function. (Mirko Palmer)
Solution:   Save and restore the incsearch state. (Christian Brabandt,
            closes #9763, closes #9633)
Files:      src/search.c, src/testdir/test_search_stat.mnv,
            src/testdir/dumps/Test_searchstat_inc_1.dump,
            src/testdir/dumps/Test_searchstat_inc_2.dump,
            src/testdir/dumps/Test_searchstat_inc_3.dump

Patch 8.2.4379
Problem:    An empty change is reported to a listener.
Solution:   Do not report an empty change. (closes #9768)  Remove unused
            return value.
Files:      src/undo.c, src/change.c, src/testdir/test_listener.mnv

Patch 8.2.4380
Problem:    Small differences between Chinese translation files.
Solution:   Add rule for converting UTF-8 to gb2312. (closes #9773)
Files:      src/po/Makefile, src/po/Make_all.mak

Patch 8.2.4381 (after 8.2.4380)
Problem:    Translation file listed twice.
Solution:   Remove one entry.
Files:      src/po/Make_all.mak

Patch 8.2.4382 (after 8.2.4346)
Problem:    A custom 'tabline' may cause Esc to work like Enter on the
            command line when the popup menu is displayed.
Solution:   Save and restore KeyTyped. (closes #9776)
Files:      src/drawscreen.c, src/screen.c, src/testdir/test_cmdline.mnv,
            src/testdir/dumps/Test_wildmenu_pum_40.dump

Patch 8.2.4383
Problem:    MNV9: unused code lines.
Solution:   Rely on either "cctx" or "cstack" to not be NULL.
Files:      src/mnv9compile.c

Patch 8.2.4384
Problem:    MNV9: error message not tested, some code not tested.
Solution:   Add a couple of test cases.  Give an error for a command modifier
            without a command.
Files:      src/errors.h, src/mnv9compile.c, src/ex_docmd.c,
            src/testdir/test_mnv9_assign.mnv, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.4385 (after 8.2.4384)
Problem:    Cannot build tiny version.
Solution:   Adjust #ifdefs.
Files:      src/errors.h

Patch 8.2.4386 (after 8.2.4384)
Problem:    Still cannot build tiny version.
Solution:   Adjust #ifdefs.
Files:      src/ex_docmd.c

Patch 8.2.4387
Problem:    Command line completion doesn't always work properly.
Solution:   Adjust triggering after a "|".  Add more tests. (Yegappan
            Lakshmanan, closes #9779)
Files:      src/cmdexpand.c, src/testdir/test_cmdline.mnv

Patch 8.2.4388
Problem:    Dead code in op_insert().
Solution:   Remove condition and else block. (closes #9782)
Files:      src/ops.c

Patch 8.2.4389
Problem:    screenpos() does not handle a position in a closed fold.
Solution:   Check if the position is inside a closed fold. (closes #9778)
Files:      src/move.c, src/testdir/test_cursor_func.mnv

Patch 8.2.4390
Problem:    MNV9: list from declaration with inferred type does not set the
            type on the value.
Solution:   When inferring the type in a variable declaration also set the
            type of the list or dictionary. (closes #9705)  Do not set the
            type when the member is "any".
Files:      src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_builtin.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.4391
Problem:    Command line executed when typing Esc in the GUI.
Solution:   Move saving/restoring KeyTyped to build_stl_str_hl().
            (closes #9783)
Files:      src/buffer.c, src/screen.c

Patch 8.2.4392 (after 8.2.4002)
Problem:    MS-Windows with MNVDLL: Escaping CSI is wrong.
Solution:   Put back #ifdef. (Ken Takata, closes #9769)
Files:      src/getchar.c

Patch 8.2.4393
Problem:    Possible number overflow with nested folds.
Solution:   Avoid a negative line number.
Files:      src/fold.c

Patch 8.2.4394 (after 8.2.4392)
Problem:    UTF8 select mode test fails on MS-Windows.
Solution:   Revert the #ifdef change.
Files:      src/getchar.c

Patch 8.2.4395
Problem:    Some code lines not covered by tests.
Solution:   Add a few more test cases.  Fix getting more than one error for
            invalid assignment.
Files:      src/evalvars.c, src/errors.h, src/mnv9compile.c,
            src/testdir/test_mnv9_assign.mnv, src/testdir/test_mnv9_cmd.mnv,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.4396 (after 8.2.4395)
Problem:    Python3 test fails.
Solution:   Remove "let".
Files:      src/testdir/test_mnv9_func.mnv

Patch 8.2.4397
Problem:    Crash when using many composing characters in error message.
Solution:   Use mb_cptr2char_adv() instead of mb_ptr2char_adv().
Files:      src/testing.c, src/testdir/test_assert.mnv

Patch 8.2.4398
Problem:    Some command completion functions are too long.
Solution:   Refactor code into separate functions.  Add a few more tests.
            (Yegappan Lakshmanan, closes #9785)
Files:      src/cmdexpand.c, src/ex_getln.c, src/usercmd.c,
            src/proto/usercmd.pro, src/testdir/test_cmdline.mnv

Patch 8.2.4399
Problem:    Crash after ml_get error.
Solution:   When returning "???" flush the line and set ml_line_lnum.
Files:      src/memline.c

Patch 8.2.4400 (after 8.2.4394)
Problem:    MS-Windows: cannot use the mouse in the console with MNVDLL.
Solution:   use add_char2buf() instead of fix_input_buffer(). (closes #9784,
            closes #9769)
Files:      src/getchar.c

Patch 8.2.4401
Problem:    Map listing does not clear the rest of the command line.
Solution:   Call msg_clear_eos(). (closes #5623, closes #5962)
Files:      src/map.c, src/testdir/test_mapping.mnv,
            src/testdir/dumps/Test_map_list_1.dump

Patch 8.2.4402
Problem:    Missing parenthesis may cause unexpected problems.
Solution:   Add more parenthesis is macros. (closes #9788)
Files:      src/autocmd.c, src/charset.c, src/drawline.c, src/drawscreen.c,
            src/evalfunc.c, src/fileio.c, src/fold.c, src/getchar.c,
            src/highlight.c, src/memline.c, src/normal.c, src/quickfix.c,
            src/regexp.c, src/search.c, src/sha256.c, src/spell.c,
            src/spellfile.c, src/spellsuggest.c, src/syntax.c, src/window.c

Patch 8.2.4403
Problem:    ml_get error with nested folds and deleting lines.
Solution:   Correct the last line number before calling hasFoldingWin().
Files:      src/change.c

Patch 8.2.4404
Problem:    MNV9: some code not covered by tests.
Solution:   Add a few specific test cases.
Files:      src/mnv9execute.c, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_import.mnv

Patch 8.2.4405
Problem:    Compiler warning for unused variable without the +folding feature.
            (Tony Mechelynck)
Solution:   Add #ifdef.
Files:      src/change.c

Patch 8.2.4406
Problem:    Expand functions use confusing argument names.
Solution:   Rename "file" to "match".  Refactor some completion code.  Add a
            few more tests. (Yegappan Lakshmanan, closes #9790)
Files:      src/cmdexpand.c, src/testdir/test_usercommands.mnv

Patch 8.2.4407
Problem:    MNV9: some code not covered by tests.
Solution:   Add more tests.  Avoid giving two errors.  Remove dead code.
Files:      src/mnv9execute.c, src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_cmd.mnv, src/testdir/test_mnv9_func.mnv

Patch 8.2.4408
Problem:    MNV9: some code not covered by tests.
Solution:   Add a few more tests.  Correct error message.  Allow unlet on dict
            with a number key.
Files:      src/mnv9execute.c, src/errors.h, src/testdir/test_mnv9_assign.mnv

Patch 8.2.4409
Problem:    MNV9: some code not covered by tests.
Solution:   Add a few more tests.  Fix reported line number.
Files:      src/mnv9execute.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.4410
Problem:    MNV9: some code not covered by tests.
Solution:   Add a few more tests. Remove dead code.
Files:      src/mnv9execute.c, src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_cmd.mnv, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.4411
Problem:    Bicep files are not recognized.
Solution:   Match *.bicep files. (Dundar Goc, closes #9791)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.4412
Problem:    Translation cleanup script does not remove empty lines at end.
Solution:   Remove empty lines at the end. (Ken Takata, closes #9794)
Files:      src/po/cleanup.mnv

Patch 8.2.4413
Problem:    MNV9: Coverity warns for using NULL pointer.
Solution:   Give an internal error when funcref function can't be found.
Files:      src/mnv9execute.c

Patch 8.2.4414
Problem:    Solidity files are not recognized.
Solution:   Add the *.sol pattern. (Dundar Goc, closes #9792)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.4415
Problem:    Function argument name conflicts with C++ keyword.
Solution:   Rename the argument.
Files:      src/usercmd.c, src/proto/usercmd.pro

Patch 8.2.4416
Problem:    MNV9: using a script-local function requires using "s:" when
            setting 'completefunc'.
Solution:   Do not require "s:" in MNV9 script. (closes #9796)
Files:      runtime/doc/options.txt, src/userfunc.c,
            src/testdir/test_ins_complete.mnv

Patch 8.2.4417 (after 8.2.4416)
Problem:    Using NULL pointer.
Solution:   Set offset after checking for NULL pointer.
Files:      src/userfunc.c

Patch 8.2.4418
Problem:    Crash when using special multi-byte character.
Solution:   Don't use isalpha() for an arbitrary character.
Files:      src/charset.c, src/proto/charset.pro, src/filepath.c,
            src/testdir/test_autochdir.mnv

Patch 8.2.4419
Problem:    Illegal memory access when using exactly 20 highlights.
Solution:   Add one more item in the array. (Brandon Richardson,
            closes #9800)
Files:      src/buffer.c, src/testdir/test_tabline.mnv

Patch 8.2.4420
Problem:    Menu translations are inconsistent.
Solution:   Add a Makefile to convert between encodings. (Ada (Haowen) Yu,
            closes #9801)
Files:      runtime/lang/Makefile, runtime/lang/menu_af_af.latin1.mnv,
            runtime/lang/menu_ca_es.latin1.mnv,
            runtime/lang/menu_chinese_gb.936.mnv,
            runtime/lang/menu_chinese_taiwan.950.mnv,
            runtime/lang/menu_cs_cz.iso_8859-2.mnv,
            runtime/lang/menu_cs_cz.utf-8.mnv,
            runtime/lang/menu_czech_czech_republic.1250.mnv,
            runtime/lang/menu_czech_czech_republic.ascii.mnv,
            runtime/lang/menu_da.utf-8.mnv,
            runtime/lang/menu_de_de.latin1.mnv,
            runtime/lang/menu_eo.utf-8.mnv,
            runtime/lang/menu_es_es.latin1.mnv,
            runtime/lang/menu_fi_fi.latin1.mnv,
            runtime/lang/menu_fr_fr.latin1.mnv,
            runtime/lang/menu_hu_hu.iso_8859-2.mnv,
            runtime/lang/menu_hu_hu.utf-8.mnv,
            runtime/lang/menu_is_is.latin1.mnv,
            runtime/lang/menu_it_it.latin1.mnv,
            runtime/lang/menu_ja_jp.euc-jp.mnv,
            runtime/lang/menu_ja_jp.utf-8.mnv,
            runtime/lang/menu_japanese_japan.932.mnv,
            runtime/lang/menu_ko_kr.euckr.mnv,
            runtime/lang/menu_ko_kr.utf-8.mnv,
            runtime/lang/menu_nl_nl.latin1.mnv,
            runtime/lang/menu_no_no.latin1.mnv,
            runtime/lang/menu_pl_pl.iso_8859-2.mnv,
            runtime/lang/menu_pl_pl.utf-8.mnv,
            runtime/lang/menu_polish_poland.1250.mnv,
            runtime/lang/menu_pt_br.mnv, runtime/lang/menu_pt_pt.mnv,
            runtime/lang/menu_ru.utf-8.mnv,
            runtime/lang/menu_ru_ru.koi8-r.mnv,
            runtime/lang/menu_ru_ru.utf-8.mnv, runtime/lang/menu_ru_ru.mnv,
            runtime/lang/menu_sk_sk.iso_8859-2.mnv,
            runtime/lang/menu_sl_si.cp1250.mnv,
            runtime/lang/menu_sl_si.latin2.mnv,
            runtime/lang/menu_sl_si.utf-8.mnv,
            runtime/lang/menu_slovak_slovak_republic.1250.mnv,
            runtime/lang/menu_sr_rs.ascii.mnv,
            runtime/lang/menu_sr_rs.iso_8859-2.mnv,
            runtime/lang/menu_sr_rs.iso_8859-5.mnv,
            runtime/lang/menu_sr_rs.utf-8.mnv,
            runtime/lang/menu_sv_se.latin1.mnv,
            runtime/lang/menu_tr_tr.cp1254.mnv,
            runtime/lang/menu_tr_tr.iso_8859-9.mnv,
            runtime/lang/menu_tr_tr.utf-8.mnv,
            runtime/lang/menu_uk_ua.cp1251.mnv,
            runtime/lang/menu_uk_ua.koi8-u.mnv,
            runtime/lang/menu_uk_ua.utf-8.mnv, runtime/lang/menu_vi_vn.mnv,
            runtime/lang/menu_zh_cn.utf-8.mnv,
            runtime/lang/menu_zh_tw.utf-8.mnv

Patch 8.2.4421
Problem:    Some installed files and directories have wrong permissions.
Solution:   Adjust the Makefile and shell to set permissions. (closes #9793)
Files:      src/Makefile, src/installman.sh

Patch 8.2.4422
Problem:    Autochdir test fails on MS-Windows.
Solution:   Expect another error on MS-Windows.
Files:      src/testdir/test_autochdir.mnv

Patch 8.2.4423
Problem:    "make nvcmdidxs" fails.
Solution:   Use "-S" instead of "-u" to source the script.
Files:      src/Makefile

Patch 8.2.4424
Problem:    ".gts" and ".gjs" files are not recognized.
Solution:   Recognize Glimmer flavored typescript and javascript.
            (closes #9799)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.4425
Problem:    map() function does not check function arguments at compile time.
Solution:   Give an error if the arguments of a map() function are wrong.
Files:      src/evalfunc.c, src/testdir/test_mnv9_builtin.mnv,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.4426
Problem:    map() function on string and blob does not check argument types at
            compile time.
Solution:   Check string and blob argument types.  Support "0z1234->func()".
Files:      src/mnv9compile.c, src/evalfunc.c, src/ex_docmd.c,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.4427
Problem:    getchar() may return modifiers if no character is available.
Solution:   Do not process modifiers when there is no character. (closes #9806)
Files:      src/getchar.c, src/testdir/test_functions.mnv

Patch 8.2.4428
Problem:    Crash when switching tabpage while in the cmdline window.
Solution:   Disallow switching tabpage when in the cmdline window.
Files:      src/window.c, src/proto/window.pro, src/evalvars.c,
            src/evalvars.c, src/usercmd.c

Patch 8.2.4429
Problem:    Using script-local function from the wrong script when using a
            partial. (Yegappan Lakshmanan)
Solution:   Include the script ID in the partial name.
Files:      src/userfunc.c, src/proto/userfunc.pro, src/evalfunc.c,
            src/mnv9type.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4430
Problem:    GTK: crash when using 'guiligatures' and reading from stdin.
Solution:   Make a copy of the message. (Amon Sha, closes #9719, closes #9814)
Files:      src/fileio.c

Patch 8.2.4431
Problem:    Unnecessary condition when assigning to a variable.
Solution:   Remove the condition.
Files:      src/evalvars.c

Patch 8.2.4432 (after 8.2.4428)
Problem:    Cannot use settabvar() while the cmdline window is open.
Solution:   Only give an error when actually switching tabpage.
            (closes #9813)
Files:      src/window.c

Patch 8.2.4433
Problem:    CI: cannot see interface versions for MS-Windows.
Solution:   List the interface versions. (Ken Takata, closes #9811)
Files:      .github/workflows/ci.yml

Patch 8.2.4434
Problem:    Duplicate check for cmdline window.
Solution:   Remove the second check. (Sean Dewar, closes #9816)
Files:      src/window.c

Patch 8.2.4435
Problem:    Dead code in checking map() arguments. (Dominique Pellé)
Solution:   Remove the first return statement. (closes #9815)
Files:      src/evalfunc.c

Patch 8.2.4436
Problem:    Crash with weird 'vartabstop' value.
Solution:   Check for running into the end of the line.
Files:      src/indent.c, src/testdir/test_vartabs.mnv

Patch 8.2.4437
Problem:    Vartabs test fails on MS-Windows.
Solution:   Use iso8859-1 'encoding'. (Ken Takata, closes #9818)
Files:      src/testdir/test_vartabs.mnv

Patch 8.2.4438
Problem:    Crash on exit when using cmdline window.
Solution:   Reset "cmdwin_type" before exiting. (closes #9817)
Files:      src/ui.c, src/testdir/test_exit.mnv

Patch 8.2.4439
Problem:    Accepting "iso8859" 'encoding' as "iso-8859-".
Solution:   use "iso8859" as "iso-8859-1".
Files:      src/mbyte.c, src/testdir/test_options.mnv

Patch 8.2.4440
Problem:    Crash with specific regexp pattern and string.
Solution:   Stop at the start of the string.
Files:      src/regexp_bt.c, src/testdir/test_regexp_utf8.mnv

Patch 8.2.4441
Problem:    MNV9: function argument of filter() not checked like map().
Solution:   Also check the function argument of filter().
Files:      src/evalfunc.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.4442 (after 8.2.4438)
Problem:    Test for error reading input fails on MS-Windows.
Solution:   Don't run the test on MS-Windows.
Files:      src/testdir/test_exit.mnv

Patch 8.2.4443 (after 8.2.4440)
Problem:    Regexp pattern test fails on Mac.
Solution:   Do not use a swapfile for the buffer.
Files:      src/testdir/test_regexp_utf8.mnv

Patch 8.2.4444
Problem:    Beep caused by test.  ASAN reports leaks.
Solution:   Do not put a NL at the end of the script.  Make the text work on
            MS-Windows.  Do not run the test with ASAN.
Files:      src/testdir/test_exit.mnv

Patch 8.2.4445
Problem:    Exit test fails on MS-Windows anyway.
Solution:   Skip the test on MS-Windows.
Files:      src/testdir/test_exit.mnv

Patch 8.2.4446
Problem:    MNV9: cannot refer to a global function like a local one.
Solution:   When g:name is not a variable but a function, use a function
            reference. (closes #9826)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.4447
Problem:    MNV9: can still use s:var in a compiled function.
Solution:   Disallow using s:var for MNV9 script. (closes #9824)
Files:      runtime/doc/mnv9.txt, src/mnv9expr.c, src/mnv9compile.c,
            src/testdir/test_mnv9_assign.mnv

Patch 8.2.4448 (after 8.2.4447)
Problem:    Filetype detection is failing.
Solution:   Do not use "s:" where it is no longer allowed.
Files:      runtime/autoload/dist/ft.mnv,

Patch 8.2.4449
Problem:    mnv9: function argument of sort() not checked at compile time.
Solution:   Add a compile time check.
Files:      src/evalfunc.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.4450 (after 8.2.4449)
Problem:    List sort test fails.
Solution:   Pass a valid "how" argument.
Files:      src/testdir/test_listdict.mnv

Patch 8.2.4451 (after 8.2.4450)
Problem:    sort() fails when ignoring case.
Solution:   Accept a number one argument in sort().
Files:      src/evalfunc.c, src/testdir/test_listdict.mnv

Patch 8.2.4452
Problem:    Test for what 8.2.4436 fixes does not check for regression.
Solution:   Set several options. (Ken Takata, closes #9830)
Files:      src/testdir/test_vartabs.mnv

Patch 8.2.4453
Problem:    :helpgrep may free an option that was not allocated. (Yegappan
            Lakshmanan)
Solution:   Check if the value was allocated.
Files:      src/option.c, src/proto/option.pro, src/quickfix.c,
            src/testdir/test_quickfix.mnv

Patch 8.2.4454
Problem:    Resetting cmdwin_type only for one situation.
Solution:   Reset cmdwin_type before closing windows. (closes #9822)
Files:      src/ui.c, src/window.c, src/testdir/test_exit.mnv

Patch 8.2.4455
Problem:    Accepting one and zero for the second sort() argument is strange.
Solution:   Disallow using one and zero in MNV9 script.
Files:      runtime/doc/builtin.txt, src/evalfunc.c, src/list.c,
            src/testdir/test_listdict.mnv

Patch 8.2.4456
Problem:    Terminal test may fail on some machines.
Solution:   Increase wait time. (Zdenek Dohnal, closes #9834)
Files:      src/testdir/test_terminal.mnv

Patch 8.2.4457
Problem:    The GPM library can only be linked statically.
Solution:   Make it possible to load the GPM library dynamically. (Damien)
Files:      runtime/doc/various.txt, src/config.h.in, src/configure.ac,
            src/Makefile, src/evalfunc.c, src/feature.h, src/os_unix.c,
            src/proto/os_unix.pro, src/version.c

Patch 8.2.4458
Problem:    MNV9: compiling filter() call fails with funcref that has unknown
            arguments.
Solution:   Do not check the arguments if they are unknown at compile time.
            (closes #9835)
Files:      src/evalfunc.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.4459
Problem:    MNV9: compiling sort() call fails with a funcref that has unknown
            arguments.
Solution:   Do not check the arguments if they are unknown at compile time.
            (closes #9835)
Files:      src/evalfunc.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.4460
Problem:    MNV9: wrong error for defining dict function.
Solution:   Explicitly check for trying to define a dict function.
            (closes #9827)
Files:      src/errors.h, src/userfunc.c, src/mnv9compile.c,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.4461
Problem:    MS-Windows: garbage characters on stdout with MNVDLL.
Solution:   Don't call gui_focus_change() when about to quit. (Ken Takata,
            closes #9840)
Files:      src/gui_w32.c

Patch 8.2.4462
Problem:    Not enough testing for quickfix code.
Solution:   Add more tests. Fix uncovered problem. (Yegappan Lakshmanan,
            closes #9839)
Files:      src/quickfix.c, src/window.c, src/testdir/test_makeencoding.mnv,
            src/testdir/test_quickfix.mnv

Patch 8.2.4463
Problem:    Completion only uses strict matching.
Solution:   Add the "fuzzy" item for 'wildoptions'. (Yegappan Lakshmanan,
            closes #9803)
Files:      runtime/doc/options.txt, src/buffer.c, src/cmdexpand.c,
            src/option.c, src/option.h, src/optionstr.c,
            src/proto/cmdexpand.pro, src/proto/option.pro,
            src/proto/search.pro, src/search.c, src/structs.h,
            src/testdir/gen_opt_test.mnv, src/testdir/test_cmdline.mnv

Patch 8.2.4464
Problem:    Dtrace files are recognized as filetype D.
Solution:   Add a pattern for Dtrace files. (Teubel György, closes #9841)
            Add some more testing.
Files:      runtime/autoload/dist/ft.mnv, runtime/filetype.mnv,
            src/testdir/test_filetype.mnv

Patch 8.2.4465
Problem:    Fuzzy completion does not order matches properly.
Solution:   Do not use regular expression match. (Yegappan Lakshmanan,
            closes #9843)
Files:      src/cmdexpand.c, src/search.c, src/testdir/test_cmdline.mnv

Patch 8.2.4466
Problem:    MS-Windows: illegal memory access in installer when using
            "create-directories" as the final argument.
Solution:   Check the argument count. (Cam Sinclair, closes #9844)
Files:      src/dosinst.c

Patch 8.2.4467
Problem:    Running filetype test leaves file behind.
Solution:   Delete the file.
Files:      src/testdir/test_filetype.mnv

Patch 8.2.4468
Problem:    Coverity warns for uninitialized struct member.
Solution:   Set color.index to zero.
Files:      src/terminal.c

Patch 8.2.4469
Problem:    Coverity warns for uninitialized variable.
Solution:   Set the value to zero.
Files:      src/ex_getln.c

Patch 8.2.4470
Problem:    Coverity warns for uninitialized variable.
Solution:   Set can_spell to zero.
Files:      src/drawline.c

Patch 8.2.4471
Problem:    Coverity warns for uninitialized variable.
Solution:   Set flags to zero.
Files:      src/mnv9cmds.c

Patch 8.2.4472
Problem:    Coverity warns for use of a freed function name.
Solution:   Only check an autoload name when is prefixed.
Files:      src/userfunc.c

Patch 8.2.4473
Problem:    Coverity warns for not checking return value of ftell().
Solution:   Bail out if ftell() returns a negative value.
Files:      src/spellfile.c

Patch 8.2.4474
Problem:    Memory allocation failures not tested in quickfix code.
Solution:   Add alloc IDs and tests. (Yegappan Lakshmanan, closes #9848)
Files:      src/alloc.h, src/quickfix.c, src/mnv.h,
            src/testdir/test_quickfix.mnv

Patch 8.2.4475
Problem:    Fuzzy cmdline completion does not work for lower case.
Solution:   Also use fuzzy completion for lower case input. (Yegappan
            Lakshmanan, closes #9849)
Files:      src/cmdexpand.c, src/testdir/test_cmdline.mnv

Patch 8.2.4476
Problem:    Operator name spelled wrong.
Solution:   Change trinary to ternary. (Goc Dundar, closes #9850)
Files:      src/testdir/test_expr.mnv, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnvscript.mnv

Patch 8.2.4477
Problem:    Crash when using fuzzy completion.
Solution:   Temporary fix: put back regexp. (closes #9851)
Files:      src/cmdexpand.c

Patch 8.2.4478
Problem:    Crash when using fuzzy completion.
Solution:   Temporary fix: put back regexp. (closes #9852, closes #9851)
Files:      src/cmdexpand.c, src/testdir/test_cmdline.mnv

Patch 8.2.4479
Problem:    No fuzzy completion for maps and abbreviations.
Solution:   Fuzzy complete maps and abbreviations. (Yegappan Lakshmanan,
            closes #9856)
Files:      src/cmdexpand.c, src/map.c, src/proto/map.pro, src/search.c,
            src/testdir/test_cmdline.mnv

Patch 8.2.4480
Problem:    Suspending with CTRL-Z does not work on Android.
Solution:   Do not handle SIGTSTP. (closes #9854)
Files:      src/os_unix.c

Patch 8.2.4481
Problem:    Cmdline popup menu not removed when 'lazyredraw' is set.
Solution:   Temporarily reset 'lazyredraw' when removing the popup menu.
            (closes #9857)
Files:      src/cmdexpand.c, src/testdir/test_cmdline.mnv,
            src/testdir/dumps/Test_wildmenu_pum_41.dump

Patch 8.2.4482
Problem:    No fuzzy cmdline completion for user defined completion.
Solution:   Add fuzzy completion for user defined completion. (Yegappan
            Lakshmanan, closes #9858)
Files:      src/cmdexpand.c, src/testdir/test_cmdline.mnv

Patch 8.2.4483
Problem:    Command completion makes two rounds to collect matches.
Solution:   Use a growarray to collect matches. (Yegappan Lakshmanan,
            closes #9860)
Files:      src/buffer.c, src/cmdexpand.c, src/map.c,
            src/testdir/test_cmdline.mnv

Patch 8.2.4484
Problem:    MNV9: some error messages are not tested.
Solution:   Add a few more test cases.  Delete dead code.
Files:      src/mnv9execute.c, src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_expr.mnv, src/testdir/test_mnv9_func.mnv

Patch 8.2.4485
Problem:    Compiler warning for uninitialized variable.
Solution:   Initialize the variable. (John Marriott)
Files:      src/cmdexpand.c

Patch 8.2.4486
Problem:    MS-Windows GUI: slow scrolling with maximized window.
Solution:   Use a better way to check the window is on screen. (Ken Takata,
            closes #9865)
Files:      src/gui_w32.c

Patch 8.2.4487
Problem:    MNV9: cannot compare with v:null.
Solution:   Allow comparing anything with v:null. (closes #9866)
Files:      src/mnv9instr.c, src/typval.c, src/proto/typval.pro,
            src/mnv9.h, src/mnv9execute.c, src/evalvars.c,
            src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.4488 (after 8.2.4487)
Problem:    Build error with +eval but without +channel or +job.
Solution:   Add #ifdef. (John Marriott)
Files:      src/typval.c

Patch 8.2.4489 (after 8.2.4487)
Problem:    Failing test for comparing v:null with number.
Solution:   Allow comparing v:null with number in legacy script.
            (Ken Takata, closes #9873)  Also do this for float.
Files:      src/typval.c, src/testdir/test_mnvscript.mnv

Patch 8.2.4490
Problem:    Terminal focus reporting only works for xterm-like terminals.
            (Jonathan Rascher)
Solution:   Remove the "focus_mode" flag. (closes #9859)
Files:      src/term.c

Patch 8.2.4491
Problem:    MS-Windows makefile dependencies are outdated.
Solution:   Update dependencies. (Ken Takata, closes #9876)
Files:      src/Make_cyg_ming.mak, src/Make_mvc.mak

Patch 8.2.4492
Problem:    No error if an option is given an invalid value with
            ":let &opt = val".
Solution:   Give the error. (closes #9864)
Files:      src/evalvars.c, src/testdir/test_options.mnv

Patch 8.2.4493 (after 8.2.4492)
Problem:    Options test fails in the GUI.
Solution:   Do not save and restore 'term'.
Files:      src/testdir/gen_opt_test.mnv

Patch 8.2.4494
Problem:    The find_tags() function is much too long.
Solution:   Refactor the function. (Yegappan Lakshmanan, closes #9869)
Files:      src/quickfix.c, src/tag.c, src/testdir/test_tagjump.mnv

Patch 8.2.4495
Problem:    Help test fails in 24 line terminal.
Solution:   Use up to 23 lines for text.
Files:      src/testdir/test_help.mnv

Patch 8.2.4496 (after 8.2.4494)
Problem:    Coverity gives warnings after tags code refactoring.
Solution:   Avoid the warnings. (Yegappan Lakshmanan, closes #9882)
Files:      src/tag.c

Patch 8.2.4497
Problem:    Wrong color for half of wide character next to pum scrollbar.
Solution:   Redraw the screen cell with the right color. (closes #9874)
Files:      src/screen.c, src/testdir/test_ins_complete.mnv,
            src/testdir/dumps/Test_scrollbar_on_wide_char.dump

Patch 8.2.4498
Problem:    Using <Plug> with "noremap" does not work.
Solution:   Always remap <Plug>. (closes #9879, closes #9789)
Files:      runtime/doc/map.txt, src/getchar.c, src/testdir/test_mapping.mnv

Patch 8.2.4499
Problem:    MNV9: at the script level declarations leak from try block to
            catch and finally block.
Solution:   End the block and start a new one. (closes #9883)
Files:      src/ex_eval.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.4500
Problem:    MNV9: can declare a global variable on the command line.
Solution:   Disallow declaring a variable on the command line. (closes #9881)
Files:      src/errors.h, src/evalvars.c, src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_script.mnv,
            src/testdir/dumps/Test_mnv9_reject_declaration.dump

Patch 8.2.4501
Problem:    With 'showbreak' set and after the end of the line the cursor
            may be displayed in the wrong position.
Solution:   Do not apply 'showbreak' after the end of the line. (closes #9884)
Files:      src/charset.c, src/testdir/test_breakindent.mnv,
            src/testdir/dumps/Test_cursor_position_with_showbreak.dump

Patch 8.2.4502
Problem:    In the GUI a modifier is not recognized for the key typed after
            CTRL-X, which may result in a mapping to be used. (Daniel
            Steinberg)
Solution:   Recognize a modifier starting with CSI. (closes #9889)
Files:      src/getchar.c, src/testdir/test_ins_complete.mnv

Patch 8.2.4503
Problem:    MNV9: there is no point in supporting :Print and :mode.
Solution:   Do not recognize :Print and :mode as commands. (closes #9870)
Files:      src/ex_docmd.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.4504
Problem:    When there is a partially matching map and modifyOtherKeys is
            active a full map may not work.
Solution:   Only simplify modifiers when there is no matching mapping.
            (closes #8792)
Files:      src/getchar.c, src/testdir/test_termcodes.mnv

Patch 8.2.4505
Problem:    MNV9: outdated "autocmd nested" still works.
Solution:   Do not accept the :autocmd argument "nested" without "++" in MNV9
            script.
Files:      src/autocmd.c, src/errors.h, src/testdir/test_autocmd.mnv

Patch 8.2.4506
Problem:    "pattern not found" for :global is not an error message.
Solution:   In MNV9 script make this an actual error, so that try/catch can be
            used as expected.
Files:      src/ex_cmds.c, src/errors.h, src/testdir/test_global.mnv

Patch 8.2.4507 (after 8.2.4506)
Problem:    Test fails because of new error message.
Solution:   Avoid the test fails.
Files:      src/testdir/test_mnv9_cmd.mnv

Patch 8.2.4508
Problem:    MNV9: cannot assign to a global variable on the command line.
Solution:   Allow using :mnv9cmd for assignment on the command line.
Files:      src/evalvars.c, src/testdir/test_mnv9_script.mnv,
            src/testdir/dumps/Test_mnv9_reject_declaration.dump,
            src/testdir/dumps/Test_mnv9_reject_declaration_1.dump,
            src/testdir/dumps/Test_mnv9_reject_declaration_2.dump

Patch 8.2.4509
Problem:    MNV9: can declare a variable with ":va".
Solution:   Disallow using ":va", require using ":var".
Files:      src/evalvars.c, src/errors.h, src/mnv9compile.c,
            src/testdir/test_mnv9_assign.mnv

Patch 8.2.4510
Problem:    MNV9: shortening commands leads to confusing script.
Solution:   In MNV9 script require at least ":cont" for ":continue", "const"
            instead of "cons", "break" instead of "brea", "catch" instead of
            "cat", "else" instead of "el" "elseif" instead of "elsei" "endfor"
            instead of "endfo" "endif" instead of "en" "endtry" instead of
            "endt", "finally" instead of "fina", "throw" instead of "th",
            "while" instead of "wh".
Files:      src/ex_cmds.h, src/ex_docmd.c, src/errors.h, src/evalvars.c,
            src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.4511
Problem:    Filetype test fails.
Solution:   Change "endw" to "endwhile".
Files:      runtime/autoload/dist/ft.mnv

Patch 8.2.4512
Problem:    The find_tags_in_file() function is much too long.
Solution:   Refactor into multiple smaller functions. (Yegappan Lakshmanan,
            closes #9892)
Files:      Filelist, src/Makefile, src/quickfix.c, src/tag.c,
            src/testdir/test83-tags2, src/testdir/test83-tags3,
            src/testdir/test_tagjump.mnv

Patch 8.2.4513
Problem:    Window-local directory is not applied if 'acd' fails.
Solution:   Don't call do_autochdir(). (closes #9891)
Files:      src/window.c, src/testdir/test_autochdir.mnv

Patch 8.2.4514
Problem:    MNV9: some flow commands can be shortened.
Solution:   Also require using the full name for ":return", ":enddef",
            ":continue", ":export" and ":import".
Files:      src/ex_cmds.h, src/ex_docmd.c, src/errors.h, src/userfunc.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.4515
Problem:    Old substitute syntax is still supported.
Solution:   Disallow using backslash after ":s" in MNV9 script.
Files:      src/ex_cmds.c, src/errors.h, src/testdir/test_substitute.mnv

Patch 8.2.4516 (after 8.2.4515)
Problem:    Build failure without the +eval feature.
Solution:   Move error message outside of #ifdef.
Files:      src/errors.h

Patch 8.2.4517
Problem:    MS-Windows: cannot specify location of sodium library.
Solution:   Allow for using a path for SODIUM. (Ken Takata, closes #9896)
Files:      src/Make_cyg_ming.mak

Patch 8.2.4518
Problem:    The binary tag search feature is always enabled.
Solution:   Remove the #ifdefs.  Add a few more tests. (Yegappan Lakshmanan,
            closes #9893)
Files:      src/evalfunc.c, src/feature.h, src/tag.c, src/version.c,
            src/testdir/test_tagjump.mnv, src/testdir/test_taglist.mnv

Patch 8.2.4519
Problem:    MNV9: Can still use ":fini" and ":finis" for ":finish".
Solution:   Require using ":finish".
Files:      src/ex_cmds.h, src/testdir/test_mnv9_script.mnv

Patch 8.2.4520
Problem:    Using wrong highlight for cursor line number.
Solution:   Take filler lines into account when using CursorLineNr.
            (closes #9897)
Files:      src/drawline.c, src/testdir/test_diffmode.mnv,
            src/testdir/dumps/Test_diff_with_cursorline_number_01.dump,
            src/testdir/dumps/Test_diff_with_cursorline_number_02.dump

Patch 8.2.4521 (after 8.2.4520)
Problem:    Build failure without the +diff feature. (John Marriott)
Solution:   Define filler+lines if not declaring it.
Files:      src/drawline.c

Patch 8.2.4522 (after 8.2.4492)
Problem:    GUI test fails with Motif. (Dominique Pellé)
Solution:   Remove using an invalid value for 'guifontset'.
Files:      src/testdir/test_gui.mnv

Patch 8.2.4523
Problem:    When gmnv is started maximized the 'window' option isn't set
            properly. (Christian J. Robinson)
Solution:   Check if 'windows' was already set or not. (Ken Takata,
            closes #9904)
Files:      src/term.c

Patch 8.2.4524
Problem:    MS-Windows: cannot build with some sodium libraries.
Solution:   Make the DLL name configurable.  Add build instructions.
            (Ken Takata, closes #9905)
Files:      src/INSTALLpc.txt, src/Make_cyg_ming.mak, src/Make_mvc.mak,
            src/crypt.c

Patch 8.2.4525
Problem:    Some GUI tests don't work on Athena.
Solution:   Skip tests that won't work. (Yegappan Lakshmanan, closes #9902)
Files:      src/testdir/test_gui.mnv

Patch 8.2.4526
Problem:    MNV9: cannot set variables to a null value.
Solution:   Add null_list, null_job, etc.
Files:      runtime/doc/mnv9.txt, src/eval.c, src/proto/eval.pro,
            src/mnv9expr.c, src/mnv9script.c, src/mnv9instr.c,
            src/mnv9compile.c, src/mnv9execute.c, src/mnv9.h, src/mnv9type.c,
            src/evalvars.c, src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_func.mnv, src/testdir/test_expr.mnv

Patch 8.2.4527
Problem:    The Athena GUI is old and does not work well.
Solution:   Remove the Athena GUI from configure to find out who still wants
            support for this GUI.
Files:      src/configure.ac, src/auto/configure, src/Makefile

Patch 8.2.4528
Problem:    Crash when using null_function for a partial.
Solution:   Don't call fname_trans_sid() with NULL. (closes #9908)
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.4529
Problem:    MNV9: comparing partial with function fails.
Solution:   Support this comparison.  Avoid a crash. (closes #9909)
            Add more test cases.
Files:      src/mnv9instr.c, src/userfunc.c, src/mnv9type.c,
            src/testdir/test_mnv9_builtin.mnv, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_func.mnv, src/testdir/test_mnvscript.mnv

Patch 8.2.4530
Problem:    Making comparison with null work changes legacy behavior.
Solution:   Only use the better comparison in MNV9 script. (closes #9910)
Files:      src/typval.c, src/testdir/test_expr.mnv

Patch 8.2.4531
Problem:    LGTM warnings for condition always true and buffer size too small.
Solution:   Remove the useless condition.  Make the buffer larger. (Goc
            Dundar, closes #9914)
Files:      src/charset.c, src/term.c

Patch 8.2.4532
Problem:    Suspending with CTRL-Z does not work on OpenBSD.
Solution:   Adjust #ifdef for SIGTSTP. (Stuart Henderson, closes #9912)
Files:      src/os_unix.c

Patch 8.2.4533
Problem:    MNV9: no test that after assigning null the type is still checked.
Solution:   Add a test.
Files:      src/testdir/test_mnv9_assign.mnv

Patch 8.2.4534
Problem:    MNV9: "is" operator with empty string and null returns true.
Solution:   Consider empty string and null to be different for "is".
Files:      src/typval.c, src/mnv9execute.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.4535
Problem:    Filename modifier ":8" removes the filename.
Solution:   Use strncpy() instead of mnv_strncpy(). (Christian Brabandt,
            closes #9918, closes #8600)
Files:      src/filepath.c, src/testdir/test_shortpathname.mnv

Patch 8.2.4536 (after 8.2.4534)
Problem:    Debugger test fails when breaking on expression.
Solution:   Compare strings with "==" instead of "is".
Files:      src/debugger.c

Patch 8.2.4537
Problem:    Output from linter and language server shows up in git.
Solution:   Add patterns to .gitignore. (Goc Dundar, closes #9925)
Files:      .gitignore

Patch 8.2.4538
Problem:    The find_tags_in_file() function is too long.
Solution:   Refactor into smaller functions. (Yegappan Lakshmanan,
            closes #9920)
Files:      src/tag.c, src/testdir/test_tagjump.mnv

Patch 8.2.4539
Problem:    When comparing special v:none and v:null are handled the same when
            compiling.
Solution:   Pass more information so that v:none can be handled differently at
            compile time.  (issue #9923)
Files:      src/mnv9instr.c, src/mnv9compile.c, src/globals.h,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.4540
Problem:    Line number for error is off by one.
Solution:   Remember the line number of the comparison. (closes #9923)
Files:      src/eval.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.4541
Problem:    Crash in debugger when a variable is not available in the current
            block.
Solution:   Check for a NULL name. (closes #9926)
Files:      src/mnv9execute.c, src/testdir/test_debugger.mnv

Patch 8.2.4542
Problem:    MNV9: "break" inside try/catch not handled correctly.
Solution:   First jump to :endtry. (closes #9927)
Files:      src/mnv9cmds.c, src/mnv9.h, src/testdir/test_mnv9_script.mnv

Patch 8.2.4543
Problem:    Coverity warning for refactored tag search code.
Solution:   Avoid the warnings.  Update comments.  Add one more test case.
            (Yegappan Lakshmanan, closes #9928)
Files:      src/tag.c, src/testdir/test_tagjump.mnv

Patch 8.2.4544
Problem:    Coverity warnings for not using returned value.
Solution:   Assign to mnv_ignored.
Files:      src/tag.c

Patch 8.2.4545
Problem:    MS-Windows: the installed icon is low resolution.
Solution:   Use a better icon.  Install mnv.ico. (Christian Brabandt,
            closes #9931, closes #9930)
Files:      Filelist, nsis/gmnv.nsi, src/mnv.ico, runtime/bitmaps/mnv.ico

Patch 8.2.4546
Problem:    Duplicate #undef.
Solution:   Remove one #undef. (closes #9932)
Files:      src/regexp_nfa.c

Patch 8.2.4547
Problem:    The neXTaw GUI is old and does not work well.
Solution:   Remove the neXTaw GUI from configure to find out who still wants
            support for this GUI.
Files:      src/configure.ac, src/auto/configure, src/Makefile

Patch 8.2.4548
Problem:    Script-local function is deleted when used in a funcref.
Solution:   Do not consider a function starting with "<SNR>" reference
            counted. (closes #9916, closes #9820)
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.4549
Problem:    Cannot build with Motif and editres. (Tony Mechelynck)
Solution:   Fix configure mistake.
Files:      src/configure.ac, src/auto/configure

Patch 8.2.4550
Problem:    Motif: cannot set the color of the scrollbar thumb.
Solution:   Remove #ifdef.
Files:      src/gui_motif.c

Patch 8.2.4551
Problem:    When mapping <Esc> terminal codes are not recognized.
Solution:   Specifically recognize a mapping with just <Esc> and check for
            terminal codes even though there is no partial mapping.
            (closes #9903)
Files:      src/getchar.c, src/testdir/test_termcodes.mnv

Patch 8.2.4552
Problem:    In a :def function "put = expr" does not work.
Solution:   Skip over white space. (closes #9936)
Files:      src/mnv9cmds.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.4553
Problem:    Linear tag search is a bit slow.
Solution:   Remove a mnv_ftell() call. (Yegappan Lakshmanan, closes #9937)
Files:      src/tag.c, src/testdir/test_taglist.mnv

Patch 8.2.4554
Problem:    MNV9: using null values not sufficiently tested.
Solution:   Add more tests.  Fix uncovered problem.
Files:      src/mnv9type.c, src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.4555
Problem:    getmousepos() returns the wrong column. (Ernie Rael)
Solution:   Limit to the text size, not the number of bytes.
Files:      src/mouse.c, src/testdir/test_functions.mnv

Patch 8.2.4556
Problem:    Test fails without the +job or +channel feature. (Dominique Pellé)
Solution:   Adjust #ifdefs.  Pass on skip flag. (closes #9942)
Files:      src/eval.c, src/mnv9compile.c

Patch 8.2.4557
Problem:    Confusing comment about 'cursorlineopt'.
Solution:   Adjust comment.  (closes #9939)  Add parenthesis around logical
            OR.
Files:      src/drawline.c

Patch 8.2.4558
Problem:    Motif: using default colors does not work as expected.
Solution:   Do not try to store the default colors, use the resources.
            (closes #9933)
Files:      src/gui_motif.c, src/gui.h

Patch 8.2.4559 (after 8.24555)
Problem:    getmousepos() returns the screen column. (Ernie Rael)
Solution:   Return the text column, as documented.
Files:      src/mouse.c, src/testdir/test_functions.mnv

Patch 8.2.4560
Problem:    Suspending with CTRL-Z does not work on DragonFlyBSD.
Solution:   Adjust #ifdef. (Ozaki Kiichi, closes #9943)
Files:      src/os_unix.c

Patch 8.2.4561
Problem:    Build failure with some combination of features. (John Marriott)
Solution:   Adjust #ifdef.
Files:      src/mouse.c

Patch 8.2.4562
Problem:    Linear tag search is not optimal.
Solution:   Improve linear tag search performance. (Yegappan Lakshmanan,
            closes #9944)
Files:      src/tag.c

Patch 8.2.4563
Problem:    "z=" in Visual mode may go beyond the end of the line.
Solution:   Adjust "badlen".
Files:      src/spellsuggest.c, src/testdir/test_spell.mnv

Patch 8.2.4564
Problem:    Running test leaves file behind.  (Dominique Pellé)
Solution:   Run the profiling in a separate MNV instance. (closes #9952)
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.4565
Problem:    No command line completion for :breakadd and :breakdel.
Solution:   Add completion for :breakadd and :breakdel. (Yegappan Lakshmanan,
            closes #9950)
Files:      runtime/doc/builtin.txt, src/cmdexpand.c, src/spellsuggest.c,
            src/usercmd.c, src/mnv.h, src/testdir/test_cmdline.mnv,
            src/testdir/test_writefile.mnv

Patch 8.2.4566
Problem:    Check for existing buffer in session file does not work for files
            in the home directory.
Solution:   Use fnamemodify(). (James Cherti, closes #9945)  Add a test.
Files:      src/session.c, src/testdir/test_mksession.mnv

Patch 8.2.4567
Problem:    Bracketed paste doesn't work well in Visual linewise mode.
Solution:   Handle linewise Visual mode differently. (closes #9947)
Files:      src/normal.c, src/testdir/test_paste.mnv

Patch 8.2.4568
Problem:    getmousepos() does not compute the column below the last line.
Solution:   Also compute the column when the mouse is below the last line.
            (Sean Dewar, closes #9946)
Files:      src/mouse.c, src/testdir/test_functions.mnv

Patch 8.2.4569
Problem:    Coverity warning for not using a return value.
Solution:   Add "(void)".
Files:      src/popupwin.c

Patch 8.2.4570
Problem:    No command line completion for :profile and :profdel.
Solution:   Implement completion. (Yegappan Lakshmanan, closes #9955)
Files:      src/cmdexpand.c, src/profiler.c, src/testdir/test_cmdline.mnv,
            src/testdir/test_profile.mnv

Patch 8.2.4571
Problem:    Not all gdb files are recognized.
Solution:   Add a few more patterns for gdb. (Jade Lovelace, closes #9956)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.4572
Problem:    MNV9: return type "any" is sometimes changed to first returned
            type.  (Virginia Senioria)
Solution:   Do not change the return type if declared as "any". (closes #9949)
Files:      src/mnv9cmds.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.4573
Problem:    A nested function (closure) is compiled for debugging without
            context.
Solution:   Check if a nested function is marked for debugging before
            compiling it.  Give an error when trying to compile a closure
            without its context. (closes #9951)
Files:      src/mnv9compile.c, src/mnv9execute.c, src/proto/mnv9execute.pro,
            src/mnv9expr.c, src/errors.h

Patch 8.2.4574
Problem:    MNV9: test for profiling fails.
Solution:   Mark function for profiling earlier to avoid E1271.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.4575
Problem:    MNV9: test for profiling still fails.
Solution:   Update flags for profiling and breakpoints when obtaining the
            compile type.  Do not set the FC_CLOSURE flag for a toplevel
            function.
Files:      src/mnv.h, src/mnv9compile.c, src/proto/mnv9compile.pro,
            src/eval.c, src/mnv9execute.c, src/mnv9expr.c, src/mnv9instr.c,
            src/mnv9.h

Patch 8.2.4576
Problem:    MNV9: error for comparing with null can be annoying.
Solution:   Allow comparing anything with null. (closes #9948)
Files:      src/mnv9instr.c, src/typval.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.4577
Problem:    Message test is flaky. (Elimar Riesebieter)
Solution:   Trigger the autocommand event only after startup is finished.
Files:      src/testdir/test_messages.mnv

Patch 8.2.4578
Problem:    No warning when an autoload script for completion function has an
            error.
Solution:   Do not ignore errors when a function name is given with a dot or
            '#' character. (closes #9958)
Files:      src/eval.c, src/testdir/test_cmdline.mnv

Patch 8.2.4579
Problem:    Cannot use page-up and page-down in the command line completion
            popup menu.
Solution:   Check for to page-up and page-down keys. (Yegappan Lakshmanan,
            closes #9960)
Files:      src/cmdexpand.c, src/ex_getln.c, src/spellsuggest.c, src/mnv.h,
            src/testdir/test_cmdline.mnv,
            src/testdir/dumps/Test_wildmenu_pum_42.dump,
            src/testdir/dumps/Test_wildmenu_pum_43.dump,
            src/testdir/dumps/Test_wildmenu_pum_44.dump,
            src/testdir/dumps/Test_wildmenu_pum_45.dump,
            src/testdir/dumps/Test_wildmenu_pum_46.dump,
            src/testdir/dumps/Test_wildmenu_pum_47.dump,
            src/testdir/dumps/Test_wildmenu_pum_48.dump,
            src/testdir/dumps/Test_wildmenu_pum_49.dump,
            src/testdir/dumps/Test_wildmenu_pum_50.dump

Patch 8.2.4580
Problem:    MNV9: incorrect error for shadowing variable.
Solution:   Do not pass the context when compiling a referenced function.
Files:      src/mnv9expr.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.4581
Problem:    Null types not fully tested.
Solution:   Add some more tests using null types.
Files:      src/testdir/test_mnv9_expr.mnv

Patch 8.2.4582
Problem:    Useless code handling a type declaration.
Solution:   Remove the code and give an error.
Files:      src/eval.c, src/errors.h, src/testdir/test_mnv9_script.mnv,
            src/testdir/dumps/Test_misplaced_type.dump

Patch 8.2.4583 (after 8.2.4582)
Problem:    Screendump test fails.
Solution:   Check that making a screendump is possible.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.4584 (after 8.2.4578)
Problem:    Error for using autoload function in custom completion.
Solution:   Do not check for errors when using an autoload function.
            (closes #9962)
Files:      src/eval.c, src/testdir/test_cmdline.mnv

Patch 8.2.4585
Problem:    Cannot use keypad page-up/down for completion menu.
Solution:   Recognize the keypad keys. (Yegappan Lakshmanan, closes #9963)
Files:      src/ex_getln.c, src/testdir/test_cmdline.mnv

Patch 8.2.4586
Problem:    MNV9: no error for using lower case name for "func" argument.
            (Ernie Rael)
Solution:   Check the name as soon as the type is known.
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.4587
Problem:    MNV9: double free after unpacking a list.
Solution:   Make a copy of the value instead of moving it. (closes #9968)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.4588
Problem:    Mapping with key code after other matching mapping does not work.
Solution:   Change ">" to ">=". (closes #9903)
Files:      src/getchar.c, src/testdir/test_termcodes.mnv

Patch 8.2.4589
Problem:    Cannot index the g: dictionary.
Solution:   Recognize using "g:[key]". (closes #9969)
Files:      src/ex_docmd.c, src/eval.c, src/mnv9compile.c,
            src/testdir/test_mnv9_assign.mnv

Patch 8.2.4590
Problem:    MNV9: range type check has wrong offset.
Solution:   Adjust offset for CHECKTYPE.  Remove other type check.
Files:      src/mnv9compile.c, src/mnv9execute.c,
            src/testdir/test_mnv9_assign.mnv

Patch 8.2.4591
Problem:    Cursor line not updated when a callback moves the cursor.
Solution:   Check if the cursor moved. (closes #9970)
Files:      src/main.c, src/drawscreen.c, src/proto/drawscreen.pro,
            src/testdir/test_cursorline.mnv,
            src/testdir/dumps/Test_cursorline_callback_1.dump

Patch 8.2.4592
Problem:    Search continues after giving E1204.
Solution:   Return failure after giving E1204. (closes #9972)
Files:      src/regexp_nfa.c

Patch 8.2.4593
Problem:    Unnecessary call to redraw_later().
Solution:   Remove the call to redraw_later() in op_yank(). (closes #9971)
Files:      src/register.c

Patch 8.2.4594
Problem:    Need to write script to a file to be able to source them.
Solution:   Make ":source" use lines from the current buffer. (Yegappan
            Lakshmanan et al., closes #9967)
Files:      runtime/doc/repeat.txt, runtime/doc/todo.txt, src/alloc.c,
            src/digraph.c, src/eval.c, src/ex_cmds.h, src/scriptfile.c,
            src/proto/scriptfile.pro, src/mnv9script.c,
            src/testdir/test_source.mnv

Patch 8.2.4595
Problem:    X11: using --remote-wait may keep the CPU busy.
Solution:   Set the timeout for select() on every call. (Jacopo Secchiero,
            closes #9973)
Files:      src/if_xcmdsrv.c

Patch 8.2.4596
Problem:    Installing tutor binary may fail.
Solution:   Fix the dependency. (Sergei Trofimovich, closes #9978)
Files:      src/Makefile

Patch 8.2.4597
Problem:    LuaV_debug() not covered by tests.
Solution:   Add a test. (Dominique Pellé, closes #9980)
Files:      src/testdir/test_lua.mnv

Patch 8.2.4598
Problem:    Profile completion test sometimes fails.
Solution:   Delete the .res file before running tests.
Files:      src/testdir/runtest.mnv

Patch 8.2.4599
Problem:    GTK: get assertion errors when scrolling a split window.
Solution:   Use GDK_IS_DRAWABLE() on the scrollbar window. (closes #9982)
Files:      src/gui_gtk.c

Patch 8.2.4600
Problem:    MNV9: not enough test coverage for executing :def function.
Solution:   Add a few more tests.  Fix inconsistencies.
Files:      src/mnv9execute.c, src/evalvars.c, src/proto/evalvars.pro,
            src/testdir/test_listdict.mnv, src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_cmd.mnv

Patch 8.2.4601
Problem:    MNV9: not enough test coverage for executing :def function.
Solution:   Add a few more tests.
Files:      src/testdir/test_mnv9_script.mnv, src/testdir/test_mnv9_func.mnv,
            src/testdir/test_mnv9_cmd.mnv

Patch 8.2.4602
Problem:    MNV9: not enough test coverage for executing :def function.
Solution:   Add a few more tests.  Fix uncovered problem.  Remove dead code.
Files:      src/mnv9execute.c, src/mnv9.h, src/mnv9instr.c,
            src/proto/mnv9instr.pro, src/mnv9compile.c,
            src/testdir/test_mnv9_script.mnv, src/testdir/test_mnv9_expr.mnv

Patch 8.2.4603
Problem:    Sourcing buffer lines is too complicated.
Solution:   Simplify the code. Make it possible to source MNV9 script lines.
            (Yegappan Lakshmanan, closes #9974)
Files:      runtime/doc/repeat.txt, src/ex_docmd.c, src/proto/scriptfile.pro,
            src/scriptfile.c, src/structs.h, src/testdir/test_source.mnv

Patch 8.2.4604
Problem:    Error for redefining a script item may be confusing.
Solution:   Put quotes around the name.
Files:      src/errors.h

Patch 8.2.4605
Problem:    Error for arguments of remote_expr() even when the +clientserver
            feature is not included.
Solution:   Move #ifdef.
Files:      src/clientserver.c

Patch 8.2.4606 (after 8.2.4605)
Problem:    Test fails because of changed error message.
Solution:   Update the expected error message
Files:      src/testdir/test_mnv9_import.mnv

Patch 8.2.4607
Problem:    Sourcing buffer lines may lead to errors for conflicts.
Solution:   Add the ++clear argument. (Yegappan Lakshmanan, closes #9991)
Files:      runtime/doc/repeat.txt, src/scriptfile.c, src/mnv9script.c,
            src/proto/mnv9script.pro, src/testdir/test_source.mnv

Patch 8.2.4608
Problem:    getcompletion() does not work properly when 'wildoptions'
            contains "fuzzy".
Solution:   Do not use addstar(). (Yegappan Lakshmanan, closes #9992,
            closes #9986)
Files:      runtime/doc/builtin.txt, src/cmdexpand.c,
            src/testdir/test_cmdline.mnv

Patch 8.2.4609
Problem:    :unhide does not check for failing to close a window.
Solution:   When closing a window fails continue with the next one.  Do not
            try closing the autocmd window. (closes #9984)
Files:      src/buffer.c, src/window.c, src/proto/window.pro,
            src/testdir/test_autocmd.mnv

Patch 8.2.4610
Problem:    Some conditions are always true.
Solution:   Remove the useless conditions. (closes #9993)
Files:      src/clientserver.c, src/drawline.c, src/drawscreen.c,
            src/ex_cmds.c, src/fileio.c, src/message.c, src/misc2.c,
            src/ops.c, src/sign.c, src/spell.c, src/mnv9cmds.c, src/window.c

Patch 8.2.4611
Problem:    Typos in tests; one lua line not covered by test.
Solution:   Fix typos. Add test case. (Dominique Pellé, closes #9994)
Files:      src/testdir/test_breakindent.mnv, src/testdir/test_crypt.mnv,
            src/testdir/test_cursorline.mnv, src/testdir/test_digraph.mnv,
            src/testdir/test_gui.mnv, src/testdir/test_lua.mnv,
            src/testdir/test_regexp_latin.mnv, src/testdir/test_signals.mnv,
            src/testdir/test_spell.mnv, src/testdir/test_statusline.mnv,
            src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_expr.mnv, src/testdir/test_mnvscript.mnv

Patch 8.2.4612
Problem:    MNV9: cannot use a recursive call in a nested function. (Sergey
            Vlasov)
Solution:   Define the funcref before compiling the function. (closes #9989)
Files:      src/mnv9compile.c, src/mnv9instr.c, src/proto/mnv9instr.pro,
            src/mnv9expr.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.4613
Problem:    Return type of swapfile_unchanged() is wrong.
Solution:   Use "int". (closes #10000  Yeah!)
Files:      src/memline.c

Patch 8.2.4614
Problem:    Redrawing too much when 'cursorline' is set and jumping around.
Solution:   Rely on win_update() to redraw the current and previous cursor
            line, do not mark lines as modified. (closes #9996)
Files:      src/drawline.c, src/drawscreen.c, src/move.c, src/proto/move.pro,
            src/option.c

Patch 8.2.4615
Problem:    Mapping with escaped bar does not work in :def function. (Sergey
            Vlasov)
Solution:   Do not remove the backslash. (closes #10002)
Files:      src/ex_docmd.c, src/proto/ex_docmd.pro, src/syntax.c,
            src/mnv9cmds.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.4616
Problem:    MNV9: Declarations in a {} block of a user command do not use MNV9
            rules if defined in a legacy script. (Yegappan Lakshmanan)
Solution:   Pretend the script is MNV9 script.
Files:      src/usercmd.c, src/testdir/test_usercommands.mnv

Patch 8.2.4617
Problem:    No completion for :scriptnames.
Solution:   Implement :scriptnames completion. (Yegappan Lakshmanan,
            closes #10005)
Files:      runtime/doc/builtin.txt, src/cmdexpand.c, src/ex_cmds.h,
            src/scriptfile.c, src/usercmd.c, src/mnv.h,
            src/testdir/test_cmdline.mnv, src/testdir/test_quickfix.mnv

Patch 8.2.4618
Problem:    Command line completion does not recognize single letter commands.
Solution:   Use the condition from find_ex_command().
Files:      src/ex_docmd.c

Patch 8.2.4619
Problem:    Mapping is cancelled when mouse moves and popup is visible.
Solution:   Only generate mouse moved events when a popup may use them.
            (closes #10004)
Files:      src/gui.c, src/globals.h, src/popupwin.c

Patch 8.2.4620 (after 8.2.4618)
Problem:    Two letter substitute commands don't work. (Yegappan Lakshmanan)
Solution:   Invert condition.
Files:      src/ex_docmd.c

Patch 8.2.4621
Problem:    Crash when using the tabline right-click menu.
Solution:   Use XtPointer for XmNuserData. (closes #10009)
Files:      src/gui_motif.c

Patch 8.2.4622
Problem:    MNV9: Crash with :execute and :finish. (Sergey Vlasov)
Solution:   Check for NULL. (closes #10011)
Files:      src/eval.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.4623
Problem:    Coverity warns for using uninitialized field.
Solution:   Initialize the field to zero.
Files:      src/ex_docmd.c

Patch 8.2.4624
Problem:    Old Coverity warning for resource leak.
Solution:   Close the file if memory allocation fails.
Files:      src/diff.c

Patch 8.2.4625
Problem:    Old Coverity warning for resource leak.
Solution:   Call FreeWild() if expanding matches did not fail.
Files:      src/help.c

Patch 8.2.4626
Problem:    Visual area not fully updated when removing sign in Visual mode
            while scrolling.
Solution:   Adjust check for topline. (closes #10017)
Files:      src/drawscreen.c, src/testdir/test_display.mnv,
            src/testdir/dumps/Test_display_scroll_update_visual.dump

Patch 8.2.4627
Problem:    flatten() does not use maxdepth correctly.
Solution:   Use a recursive implementation. (closes #10020)
Files:      src/list.c, src/testdir/test_flatten.mnv

Patch 8.2.4628
Problem:    Not enough testing for 2/3 letter substitute commands.
Solution:   Add more tests. (Yegappan Lakshmanan, closes #10019)
Files:      src/testdir/test_cmdline.mnv, src/testdir/test_substitute.mnv

Patch 8.2.4629
Problem:    flattennew() makes a deep copy unnecessarily.
Solution:   Use a shallow copy. (issue #10012)
Files:      src/list.c

Patch 8.2.4630
Problem:    'cursorline' not always updated with 'cursorlineopt' is
            "screenline".
Solution:   Call check_redraw_cursorline() more often. (closes #10013)
Files:      src/normal.c, src/edit.c, src/testdir/test_cursorline.mnv,
            src/testdir/dumps/Test_cursorline_screenline_1.dump,
            src/testdir/dumps/Test_cursorline_screenline_2.dump

Patch 8.2.4631
Problem:    Crash when switching window in BufWipeout autocommand.
Solution:   Put any buffer in the window to avoid it being NULL.
            (closes #10024)
Files:      src/window.c, src/buffer.c, src/testdir/test_autocmd.mnv

Patch 8.2.4632
Problem:    Using freed memory in flatten().
Solution:   Clear typval after recursing into list.
Files:      src/list.c

Patch 8.2.4633
Problem:    Visual range does not work before command modifiers.
Solution:   Move Visual range to after command modifiers.
Files:      src/ex_docmd.c, src/testdir/test_source.mnv

Patch 8.2.4634
Problem:    MNV9: cannot initialize a variable to null_list.
Solution:   Give negative count to NEWLIST. (closes #10027)
            Also fix inconsistencies in comparing with null values.
Files:      src/mnv9instr.c, src/proto/mnv9instr.pro, src/mnv9.h,
            src/mnv9compile.c, src/mnv9expr.c, src/mnv9execute.c,
            src/evalvars.c, src/typval.c, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_builtin.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.4635 (after 8.2.4634)
Problem:    Tests using null list or dict fail.
Solution:   Only use the new rules for MNV9 script.
Files:      src/evalvars.c

Patch 8.2.4636 (after 8.2.4633)
Problem:    Not using Visual range.
Solution:   Put the command pointer back to the range.
Files:      src/ex_docmd.c

Patch 8.2.4637
Problem:    Warning for using uninitialized variable. (Tony Mechelynck)
Solution:   Initialize it.
Files:      src/ex_docmd.c

Patch 8.2.4638
Problem:    Superfluous check if a redraw is needed for 'cursorline'.
Solution:   Remove check_redraw_cursorline(). (closes #10030, closes #10029)
Files:      src/drawscreen.c, src/proto/drawscreen.pro, src/edit.c,
            src/main.c, src/normal.c, src/move.c,
            src/testdir/dumps/Test_cursorcolumn_callback_1.dump,
            src/testdir/dumps/Test_relativenumber_callback_1.dump,
            src/testdir/test_highlight.mnv, src/testdir/test_number.mnv

Patch 8.2.4639
Problem:    Not sufficient parenthesis in preprocessor macros.
Solution:   Add more parenthesis. (closes #10031)
Files:      src/globals.h, src/gui.h, src/if_py_both.h, src/macros.h,
            src/option.h, src/regexp.h, src/spell.h, src/structs.h, src/mnv.h,
            src/mnv9.h

Patch 8.2.4640
Problem:    Some boolean options use "long" instead of "int".
Solution:   Adjust the type. (James McCoy, closes #10033)
Files:      src/option.h

Patch 8.2.4641
Problem:    May mark the wrong window for redrawing.
Solution:   Use redraw_win_later(). (closes #10032)
Files:      src/move.c

Patch 8.2.4642
Problem:    MNV9: in :def function script var cannot be null.
Solution:   Only initialize a script variable when not set to a null value.
            (closes #10034)
Files:      src/mnv9execute.c, src/mnv9type.c, src/globals.h, src/evalvars.c,
            src/mnv.h, src/mnv9script.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.4643
Problem:    MNV9: variable may be locked unintentionally.
Solution:   Clear "v_lock". (closes #10036)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.4644
Problem:    Redrawing too often when 'relativenumber' is set.
Solution:   Only redraw when the cursor line changed. (Lewis Russell,
            closes #10040)
Files:      src/change.c, src/drawscreen.c, src/structs.h

Patch 8.2.4645
Problem:    'shortmess' changed when session does not store options.
Solution:   Save and restore 'shortmess' if needed. (James Cherti,
            closes #10037)
Files:      src/session.c, src/testdir/test_mksession.mnv

Patch 8.2.4646
Problem:    Using buffer line after it has been freed in old regexp engine.
Solution:   After getting mark get the line again.
Files:      src/regexp_bt.c, src/testdir/test_regexp_latin.mnv

Patch 8.2.4647
Problem:    "source" can read past end of copied line.
Solution:   Add a terminating NUL.
Files:      src/scriptfile.c, src/testdir/test_source.mnv

Patch 8.2.4648
Problem:    Handling LSP messages is a bit slow.
Solution:   Included support for LSP messages. (Yegappan Lakshmanan,
            closes #10025)
Files:      runtime/doc/channel.txt, src/channel.c, src/job.c, src/json.c,
            src/proto/json.pro, src/structs.h, src/testdir/test_channel.mnv,
            src/testdir/test_channel_lsp.py

Patch 8.2.4649
Problem:    Various formatting problems.
Solution:   Improve the code formatting.
Files:      src/mark.c, src/quickfix.c, src/regexp_nfa.c, src/register.c,
            src/testdir/test_filechanged.mnv, src/gui_athena.c,
            src/gui_motif.c, src/os_unix.c

Patch 8.2.4650
Problem:    "import autoload" only works with using 'runtimepath'.
Solution:   Also support a relative and absolute file name.
Files:      runtime/doc/mnv9.txt, src/structs.h, src/scriptfile.c,
            src/proto/scriptfile.pro, src/mnv9script.c, src/mnv9expr.c,
            src/mnv9.h, src/mnv9execute.c, src/mnv9instr.c,
            src/proto/mnv9instr.pro, src/mnv.h, src/userfunc.c,
            src/proto/userfunc.pro, src/testdir/test_mnv9_import.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.4651 (after 8.2.4650)
Problem:    Test fails because path differs.
Solution:   Only compare the tail of the path.
Files:      src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.4652 (after 8.2.4650)
Problem:    Leaking memory if assignment fails.
Solution:   Clear assigned value on failure.
Files:      src/mnv9execute.c

Patch 8.2.4653
Problem:    "import autoload" does not check the file name.
Solution:   Give an error if the file is not readable. (closes #10049)
Files:      src/filepath.c, src/proto/filepath.pro, src/errors.h,
            src/ex_cmds.c, src/ex_docmd.c, src/spellfile.c,
            src/testdir/test_mnv9_import.mnv

Patch 8.2.4654 (after 8.2.4653)
Problem:    Missing changes for import check.
Solution:   Add missing changes.
Files:      src/mnv9script.c

Patch 8.2.4655
Problem:    Command line completion popup menu positioned wrong when using a
            terminal window.
Solution:   Position the popup menu differently when editing the command line.
            (Yegappan Lakshmanan, closes #10050, closes #10035)
Files:      src/popupmenu.c, src/testdir/test_cmdline.mnv,
            src/testdir/test_terminal.mnv,
            src/testdir/dumps/Test_wildmenu_pum_term_01.dump

Patch 8.2.4656
Problem:    MNV9: can't use items from "import autoload" with autoload
            directory name.
Solution:   Let sn_autoload_prefix overrule sn_import_autoload.
            (closes #10054)
Files:      src/structs.h, src/mnv9instr.c, src/mnv9expr.c, src/mnv9script.c,
            src/testdir/test_mnv9_import.mnv

Patch 8.2.4657
Problem:    Errors for functions are sometimes hard to read.
Solution:   Use printable_func_name() in more places.
Files:      src/mnv9execute.c, src/userfunc.c, src/proto/userfunc.pro,
            src/mnv9expr.c, src/eval.c, src/mnv9instr.c, src/mnv9type.c,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.4658
Problem:    Org-mode files are not recognized.
Solution:   Add patterns to recognize "org" files. (closes #10046)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.4659
Problem:    Invalid memory access when using printable function name.
Solution:   Adjust copied name length.
Files:      src/userfunc.c

Patch 8.2.4660
Problem:    Cursorcolumn is sometimes not correct.
Solution:   Recompute the cursor column when entering Insert mode and the
            cursor is on a character wider than a screen cell. (closes #10057)
Files:      src/edit.c, src/testdir/test_highlight.mnv,
            src/testdir/dumps/Test_cursorcolumn_insert_on_tab_1.dump,
            src/testdir/dumps/Test_cursorcolumn_insert_on_tab_2.dump

Patch 8.2.4661
Problem:    Coverity warning for using uninitialized variable.
Solution:   Initialize variable to NULL.
Files:      src/mnv9expr.c

Patch 8.2.4662
Problem:    No error for using out of range list index.
Solution:   Check list index at script level like in compiled function.
            (closes #10051)
Files:      src/mnv.h, src/evalvars.c, src/list.c, src/proto/list.pro,
            src/eval.c, src/mnv9execute.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.4663
Problem:    Occasional crash when running the GUI tests.
Solution:   Check that the line index is not too high. (closes #8681)
Files:      src/screen.c

Patch 8.2.4664
Problem:    Elvish files are not recognized.
Solution:   Recognize .elv files. (Bruno Roque, closes #10058)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.4665
Problem:    Popup with "minwidth" and scrollbar not updated properly.
Solution:   Adjust the computation if the window width. (closes #10061)
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv,
            src/testdir/dumps/Test_popupwin_previewpopup_4.dump,
            src/testdir/dumps/Test_popupwin_previewpopup_5.dump,
            src/testdir/dumps/Test_popupwin_previewpopup_7.dump,
            src/testdir/dumps/Test_popupwin_previewpopup_8.dump,
            src/testdir/dumps/Test_popupwin_previewpopup_9.dump,
            src/testdir/dumps/Test_popupwin_previewpopup_10.dump,
            src/testdir/dumps/Test_popupwin_drag_minwidth_1.dump,
            src/testdir/dumps/Test_popupwin_drag_minwidth_2.dump,
            src/testdir/dumps/Test_popupwin_drag_minwidth_3.dump

Patch 8.2.4666
Problem:    MNV9: assignment not recognized in skipped block.
Solution:   When skipping assume identifier exists. (closes #10059)
Files:      src/mnv9compile.c, src/proto/mnv9compile.pro, src/mnv9cmds.c,
            src/testdir/test_mnv9_cmd.mnv, src/testdir/test_mnv9_script.mnv

Patch 8.2.4667
Problem:    expandcmd() fails on an error.
Solution:   On failure return the command unmodified. (Yegappan Lakshmanan,
            closes #10063)
Files:      runtime/doc/builtin.txt, src/evalfunc.c,
            src/testdir/test_expand.mnv

Patch 8.2.4668
Problem:    Buffer allocation failures insufficiently tested.
Solution:   Add tests for memory allocation failures. (Yegappan Lakshmanan,
            closes #10064)
Files:      src/alloc.h, src/buffer.c, src/popupwin.c, src/window.c,
            src/testdir/test_buffer.mnv, src/testdir/test_swap.mnv

Patch 8.2.4669
Problem:    In compiled code len('string') is not inlined.
Solution:   Compute the length at compile time if possible. (closes #10065)
Files:      src/evalfunc.c, src/proto/evalfunc.pro, src/mnv9expr.c,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.4670
Problem:    Memory allocation failures for new tab page not tested.
Solution:   Add tests with failing memory allocation. (Yegappan Lakshmanan,
            closes #10067)
Files:      src/alloc.h, src/blob.c, src/buffer.c, src/window.c,
            src/testdir/test_blob.mnv, src/testdir/test_buffer.mnv,
            src/testdir/test_tabpage.mnv, src/testdir/test_window_cmd.mnv

Patch 8.2.4671
Problem:    'wildignorecase' is sometimes not used for glob().
Solution:   Also use 'wildignorecase' when there are no wildcards.
            (closes #10066, closes #8350)
Files:      src/filepath.c, src/testdir/test_functions.mnv

Patch 8.2.4672
Problem:    Using :normal with Ex mode may make :substitute hang.
Solution:   When getting an empty line behave like 'q' was typed.
            (closes #10070)
Files:      src/ex_cmds.c, src/testdir/test_normal.mnv

Patch 8.2.4673
Problem:    Redrawing a vertically split window is slow when using CTRL-F and
            CTRL-B.
Solution:   When deciding on USE_REDRAW bail out if scrolling more than three
            lines. (issue #8002)
Files:      src/screen.c

Patch 8.2.4674
Problem:    Cannot force getting MouseMove events.
Solution:   Add the 'mousemoveevent' option with implementation for the GUI.
            (Ernie Rael, closes #10044)
Files:      runtime/doc/gui.txt, runtime/doc/options.txt,
            runtime/doc/testing.txt, src/gui.c, src/option.h,
            src/optiondefs.h, src/testing.c, src/testdir/test_gui.mnv

Patch 8.2.4675
Problem:    No error for missing expression after :elseif. (Ernie Rael)
Solution:   Check for missing expression. (closes #10068)
Files:      src/ex_eval.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.4676 (after 8.2.4675)
Problem:    Test fails with different error.
Solution:   Add argument to :elseif.
Files:      src/testdir/test_mnvscript.mnv

Patch 8.2.4677
Problem:    The Athena GUI support is outdated.
Solution:   Remove the Athena GUI code.
Files:      Filelist, src/Makefile, src/proto.h, src/clipboard.c,
            src/gui_athena.c, src/proto/gui_athena.pro, src/gui_at_sb.c,
            src/gui_at_sb.h, src/gui_at_fs.c, src/gui_motif.c, src/evalfunc.c,
            src/gui.c, src/gui_beval.c, src/gui_x11.c, src/if_mzsch.c,
            src/main.c, src/menu.c, src/mouse.c, src/version.c, src/feature.h,
            src/gui.h, src/structs.h, src/mnv.h, src/testdir/gui_init.mnv,
            src/testdir/setup_gui.mnv, src/testdir/test_clientserver.mnv,
            src/testdir/test_edit.mnv, src/testdir/test_gui.mnv,
            src/testdir/test_highlight.mnv, src/testdir/test_quotestar.mnv,
            src/testdir/test_startup.mnv, runtime/doc/gui.txt,
            runtime/doc/gui_x11.txt

Patch 8.2.4678
Problem:    MNV9: not all code is tested.
Solution:   Add a few more tests.
Files:      src/mnv9execute.c, src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_import.mnv, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.4679
Problem:    Cannot have expandcmd() give an error message for mistakes.
Solution:   Add an optional argument to give errors. Fix memory leak when
            expanding files fails. (Yegappan Lakshmanan, closes #10071)
Files:      runtime/doc/builtin.txt, src/evalfunc.c, src/filepath.c,
            src/testdir/test_expand.mnv, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.4680
Problem:    Build failure without +postscript.
Solution:   Use another error message.
Files:      src/mnv9execute.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4681
Problem:    Build fails with a combination of features.
Solution:   Remove #ifdef for alloc_clear_id(). (John Marriott)
Files:      src/alloc.c

Patch 8.2.4682
Problem:    MNV9: can use :unlockvar for const variable. (Ernie Rael)
Solution:   Check whether the variable is a const.
Files:      src/ex_docmd.c, src/evalvars.c, src/mnv9script.c,
            src/proto/mnv9script.pro, src/eval.c, src/userfunc.c,
            src/testdir/test_mnv9_cmd.mnv

Patch 8.2.4683
Problem:    Verbose check with dict_find() to see if a key is present.
Solution:   Add dict_has_key(). (Yegappan Lakshmanan, closes #10074)
Files:      src/channel.c, src/dict.c, src/evalwindow.c, src/filepath.c,
            src/highlight.c, src/json.c, src/match.c, src/popupwin.c,
            src/proto/dict.pro, src/quickfix.c, src/search.c, src/sign.c,
            src/tag.c, src/terminal.c, src/testing.c, src/textprop.c,
            src/time.c

Patch 8.2.4684
Problem:    Cannot open a channel on a Unix domain socket.
Solution:   Add Unix domain socket support. (closes #10062)
Files:      runtime/doc/channel.txt, src/channel.c, src/testdir/check.mnv,
            src/testdir/shared.mnv, src/testdir/test_channel.py,
            src/testdir/test_channel.mnv, src/testdir/test_channel_unix.py,
            src/testdir/test_cmdline.mnv

Patch 8.2.4685
Problem:    When a swap file is found for a popup there is no dialog and the
            buffer is loaded anyway.
Solution:   Silently load the buffer read-only. (closes #10073)
Files:      runtime/doc/popup.txt, src/memline.c, src/popupwin.c, src/mnv.h,
            src/buffer.c, src/testdir/test_popupwin.mnv

Patch 8.2.4686
Problem:    Configure doesn't find the Motif library with Cygwin.
Solution:   Check for libXm.dll.a. (Kelvin Lee, closes #10077)
Files:      src/configure.ac, src/auto/configure

Patch 8.2.4687
Problem:    "mnvgrep /\%v/ *" may cause a crash.
Solution:   When compiling the pattern with the old engine fails, restore the
            regprog of the new engine instead of leaving it NULL.
            (closes #10079)
Files:      src/regexp.c

Patch 8.2.4688
Problem:    New regexp engine does not give an error for "\%v".
Solution:   Check for a value argument. (issue #10079)
Files:      src/regexp_nfa.c, src/errors.h, src/regexp_bt.c,
            src/testdir/test_regexp_latin.mnv

Patch 8.2.4689
Problem:    Using <Cmd> in a mapping does not work for mouse keys in Insert
            mode. (Sergey Vlasov)
Solution:   When reading the <Cmd> argument do not use the stuff buffer.
            (closes #10080)
Files:      src/getchar.c

Patch 8.2.4690
Problem:    Channel tests fail on MS-Windows.
Solution:   Check if the AF_UNIX attribute exists. (closes #10083)
Files:      src/testdir/test_channel.py, src/testdir/test_channel_unix.py

Patch 8.2.4691 (after 8.2.4689)
Problem:    Solution for <Cmd> in a mapping causes trouble.
Solution:   Use another solution: put back CTRL-O after reading the <Cmd>
            sequence.
Files:      src/getchar.c

Patch 8.2.4692
Problem:    No test for what 8.2.4691 fixes.
Solution:   Add a test.  Use a more generic solution. (closes #10090)
Files:      src/getchar.c, src/mouse.c, src/testdir/test_mapping.mnv

Patch 8.2.4693 (after 8.2.4688)
Problem:    new regexp does not accept pattern "\%>0v".
Solution:   Do accept digit zero.
Files:      src/regexp_bt.c, src/regexp_nfa.c,
            src/testdir/test_regexp_latin.mnv

Patch 8.2.4694
Problem:    Avoidance of #elif causes more preproc nesting.
Solution:   Use #elif where it is useful. (Ozaki Kiichi, closes #10081)
Files:      src/option.c, src/optiondefs.h, src/optionstr.c, src/version.c

Patch 8.2.4695
Problem:    JSON encoding could be faster.
Solution:   Optimize encoding JSON strings. (closes #10086)
Files:      src/json.c, src/testdir/test_json.mnv

Patch 8.2.4696
Problem:    delete() with "rf" argument does not report a failure.
Solution:   Return -1 if the directory could not be removed. (closes #10078)
Files:      src/fileio.c, src/testdir/test_functions.mnv

Patch 8.2.4697
Problem:    MNV9: crash when adding a duplicate key to a dictionary.
Solution:   Clear the stack item when it has been moved into the dictionary.
            (closes #10087)
Files:      src/mnv9execute.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.4698
Problem:    MNV9: script variable has no flag that it was set.
Solution:   Add a flag that it was set, to avoid giving it a value when used.
            (closes #10088)
Files:      src/structs.h, src/mnv9script.c, src/mnv9execute.c,
            src/evalvars.c, src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.4699
Problem:    Hard to reproduce hang when reading from a channel.
Solution:   Check for readahead before starting to wait. (closes #10093,
            closes #7781, closes #6364)
Files:      src/channel.c

Patch 8.2.4700
Problem:    Buffer remains active if a WinClosed event throws an exception.
Solution:   Ignore aborting() when closing the buffer. (closes #10097)
Files:      src/window.c, src/testdir/test_autocmd.mnv

Patch 8.2.4701
Problem:    Kuka Robot Language files not recognized.
Solution:   Recognize *.src and *.dat files. (Patrick Meiser-Knosowski,
            closes #10096)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv,
            runtime/autoload/dist/ft.mnv

Patch 8.2.4702
Problem:    C++ scope labels are hard-coded.
Solution:   Add 'cinscopedecls' to define the labels. (Rom Praschan,
            closes #10109)
Files:      runtime/doc/indent.txt, runtime/doc/options.txt,
            runtime/doc/quickref.txt, runtime/optwin.mnv, src/buffer.c,
            src/cindent.c, src/option.c, src/option.h, src/optiondefs.h,
            src/optionstr.c, src/structs.h, src/testdir/test_cindent.mnv

Patch 8.2.4703 (after 8.2.4702)
Problem:    Memory leak in handling 'cinscopedecls'.
Solution:   Free the memory before returning.
Files:      src/cindent.c

Patch 8.2.4704
Problem:    Using "else" after return or break increases indent.
Solution:   Remove "else" and reduce indent. (Goc Dundar, closes #10099)
Files:      src/fileio.c, src/memline.c, src/option.c, src/syntax.c

Patch 8.2.4705
Problem:    reg_executing may not be cleared.
Solution:   Reset reg_executing later. (closes #10111, closes #10110)
Files:      src/ex_docmd.c, src/getchar.c, src/globals.h, src/structs.h,
            src/testdir/test_registers.mnv

Patch 8.2.4706
Problem:    Buffer remains active if a WinClosed event throws an exception
            when there are multiple tabpages.
Solution:   Ignore aborting() when closing the buffer. (closes #10101)
Files:      src/window.c, src/testdir/test_autocmd.mnv

Patch 8.2.4707
Problem:    Redrawing could be a bit more efficient.
Solution:   Optimize redrawing. (closes #10105)
Files:      src/change.c, src/edit.c, src/testdir/test_highlight.mnv,
            src/testdir/dumps/Test_cursorcolumn_insert_on_tab_3.dump

Patch 8.2.4708
Problem:    PHP test files are not recognized.
Solution:   Add the *.phpt pattern. (Julien Voisin, closes #10112)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.4709
Problem:    After :redraw the statusline highlight might be used.
Solution:   Clear the screen attribute after redrawing the screen.
            (closes #10108)
Files:      src/ex_docmd.c

Patch 8.2.4710
Problem:    Smart indenting does not work after completion.
Solution:   Set "can_si". (Christian Brabandt, closes #10113, closes #558)
Files:      src/edit.c, src/testdir/test_ins_complete.mnv

Patch 8.2.4711
Problem:    When 'insermode' is set :edit from <Cmd> mapping misbehaves.
Solution:   Don't set "need_start_insertmode" when already in Insert mode.
            (closes #10116)
Files:      src/ex_cmds.c, src/testdir/test_edit.mnv

Patch 8.2.4712
Problem:    Only get profiling information after exiting.
Solution:   Add "profile dump" and "profile stop". (Marco Hinz, Yegappan
            Lakshmanan, closes #10107)
Files:      runtime/doc/repeat.txt, src/profiler.c,
            src/testdir/test_profile.mnv

Patch 8.2.4713
Problem:    Plugins cannot track text scrolling.
Solution:   Add the WinScrolled event. (closes #10102)
Files:      runtime/doc/autocmd.txt, src/autocmd.c, src/proto/autocmd.pro,
            src/edit.c, src/gui.c, src/main.c, src/structs.h, src/mnv.h,
            src/window.c, src/proto/window.pro, src/testdir/test_autocmd.mnv

Patch 8.2.4714
Problem:    Using g:filetype_dat and g:filetype_src not tested.
Solution:   Add a test. (Patrick Meiser-Knosowski, closes #10117)
Files:      src/testdir/test_filetype.mnv

Patch 8.2.4715
Problem:    Vagrantfile not recognized.
Solution:   Recognize Vagrantfile as ruby. (Julien Voisin, closes #10119)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.4716
Problem:    Memory allocation failure not tested when defining a function.
Solution:   Add a test. (Yegappan Lakshmanan, closes #10127)
Files:      src/alloc.c, src/alloc.h, src/proto/alloc.pro, src/userfunc.c,
            src/testdir/test_user_func.mnv, src/testdir/test_mnv9_func.mnv

Patch 8.2.4717
Problem:    For TextYankPost v:event does not contain information about the
            operation being inclusive or not.
Solution:   Add "inclusive" to v:event. (Justin M. Keyes, Yegappan Lakshmanan,
            closes #10125)
Files:      runtime/doc/autocmd.txt, src/register.c,
            src/testdir/test_autocmd.mnv

Patch 8.2.4718
Problem:    @@@ in the last line sometimes drawn in the wrong place.
Solution:   Make sure the column is valid. (closes #10130)
Files:      src/drawscreen.c, src/screen.c, src/testdir/test_display.mnv
            src/testdir/dumps/Test_display_lastline_1.dump,
            src/testdir/dumps/Test_display_lastline_2.dump,
            src/testdir/dumps/Test_display_lastline_3.dump,
            src/testdir/dumps/Test_display_lastline_4.dump

Patch 8.2.4719
Problem:    ">" marker sometimes not displayed in the jumplist.
Solution:   If the buffer no longer exists show "-invalid-". (Christian
            Brabandt, closes #10131, closes #10100)
Files:      runtime/doc/motion.txt, src/mark.c, src/testdir/Make_all.mak,
            src/testdir/test_alot.mnv, src/testdir/test_jumplist.mnv,
            src/testdir/test_jumps.mnv

Patch 8.2.4720
Problem:    ABB Rapid files are not recognized properly.
Solution:   Add checks for ABB Rapid files. (Patrick Meiser-Knosowski,
            closes #10104)
Files:      runtime/autoload/dist/ft.mnv, runtime/doc/filetype.txt,
            runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.4721
Problem:    Cooklang files are not recognized.
Solution:   recognize *.cook files. (Goc Dundar, closes #10120)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.4722
Problem:    When a recording is ended with a mapped key that key is also
            recorded.
Solution:   Remember the previous last_recorded_len. (closes #10122)
Files:      src/getchar.c, src/testdir/test_registers.mnv

Patch 8.2.4723
Problem:    The ModeChanged autocmd event is inefficient.
Solution:   Avoid allocating memory. (closes #10134)  Rename
            trigger_modechanged() to may_trigger_modechanged().
Files:      src/misc1.c, src/proto/misc1.pro, src/edit.c, src/ex_docmd.c,
            src/ex_getln.c, src/insexpand.c, src/normal.c, src/terminal.c,
            src/autocmd.c

Patch 8.2.4724
Problem:    Current instance of last search pattern not easily spotted.
Solution:   Add CurSearch highlighting. (closes #10133)
Files:      runtime/doc/options.txt, runtime/doc/syntax.txt, src/highlight.c,
            src/match.c, src/normal.c, src/optiondefs.h, src/structs.h,
            src/mnv.h, src/normal.c, src/testdir/test_search.mnv,
            src/testdir/dumps/Test_hlsearch_cursearch_multiple_line.dump,
            src/testdir/dumps/Test_hlsearch_cursearch_single_line_1.dump,
            src/testdir/dumps/Test_hlsearch_cursearch_single_line_2.dump,
            src/testdir/dumps/Test_hlsearch_cursearch_single_line_3.dump

Patch 8.2.4725 (after 8.2.4724)
Problem:    Unused variable in tiny build.
Solution:   Add #ifdef.
Files:      src/normal.c

Patch 8.2.4726
Problem:    Cannot use expand() to get the script name.
Solution:   Support expand('<script>'). (closes #10121)
Files:      runtime/doc/cmdline.txt, src/errors.h, src/ex_docmd.c,
            src/scriptfile.c, src/mnv.h, src/testdir/test_expand.mnv

Patch 8.2.4727
Problem:    Unused code.
Solution:   Remove code and add #ifdefs. (Dominique Pellé, closes #10136)
Files:      runtime/doc/editing.txt, runtime/doc/eval.txt,
            runtime/doc/mnv9.txt, src/errors.h, src/option.c, src/search.c,
            src/proto/search.pro

Patch 8.2.4728
Problem:    No test that v:event cannot be modified.
Solution:   Add a test. (closes #10139)
Files:      src/testdir/test_autocmd.mnv

Patch 8.2.4729
Problem:    HEEx and Surface templates do not need a separate filetype.
Solution:   Use Elixir for the similar filetypes. (Aaron Tinio, closes #10124)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.4730
Problem:    MS-Windows GUI: cannot use CTRL-/.
Solution:   Handle the WM_KEYUP event. (Yasuhiro Matsumoto, closes #10141)
Files:      src/gui_w32.c

Patch 8.2.4731
Problem:    The changelist index is not remembered per buffer.
Solution:   Keep the changelist index per window and buffer. (closes #10135,
            closes #2173)
Files:      src/buffer.c, src/evalfunc.c, src/structs.h,
            src/testdir/test_changelist.mnv

Patch 8.2.4732
Problem:    Duplicate code to free fuzzy matches.
Solution:   Bring back fuzmatch_str_free().
Files:      src/search.c, src/proto/search.pro, src/cmdexpand.c

Patch 8.2.4733 (after 8.2.4729)
Problem:    HEEx and Surface do need a separate filetype.
Solution:   Revert 8.2.4729. (closes #10147)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.4734
Problem:    getcharpos() may change a mark position.
Solution:   Copy the mark position. (closes #10148)
Files:      src/eval.c, src/testdir/test_cursor_func.mnv

Patch 8.2.4735
Problem:    Quickfix tests can be a bit hard to read.
Solution:   Use heredoc instead of strings and line continuation. (Yegappan
            Lakshmanan, closes #10145)
Files:      src/testdir/test_quickfix.mnv

Patch 8.2.4736
Problem:    Build problem for Cygwin with Motif.
Solution:   Undefine ControlMask. (Kelvin Lee, closes #10152)
Files:      src/mbyte.c

Patch 8.2.4737
Problem:    // in JavaScript string recognized as comment.
Solution:   Only check for linecomment if 'cindent' is set. (closes #10151)
Files:      src/change.c, src/testdir/test_textformat.mnv

Patch 8.2.4738
Problem:    Esc on commandline executes command instead of abandoning it.
Solution:   Save and restore KeyTyped when removing the popup menu.
            (closes #10154)
Files:      src/cmdexpand.c, src/testdir/test_cmdline.mnv,
            src/testdir/dumps/Test_wildmenu_with_pum_foldexpr_1.dump,
            src/testdir/dumps/Test_wildmenu_with_pum_foldexpr_2.dump

Patch 8.2.4739
Problem:    Accessing freed memory after WinScrolled autocmd event.
Solution:   Check the window pointer is still valid. (closes #10156)
            Remove the argument from may_trigger_winscrolled().
Files:      src/window.c, src/proto/window.pro, src/edit.c, src/gui.c,
            src/main.c, src/testdir/test_autocmd.mnv

Patch 8.2.4740
Problem:    When expand() fails there is no error message.
Solution:   When 'verbose' is set give an error message.
Files:      runtime/doc/builtin.txt, src/evalfunc.c,
            src/testdir/test_expand.mnv

Patch 8.2.4741 (after 8.2.4740)
Problem:    Startup test fails.
Solution:   Avoid an error for verbose expansion.  Fix that the "0verbose"
            command modifier doesn't work.
Files:      runtime/syntax/syntax.mnv, runtime/syntax/synload.mnv,
            src/structs.h, src/ex_docmd.c, src/testdir/test_excmd.mnv

Patch 8.2.4742
Problem:    There is no way to start logging very early in startup.
Solution:   Add the --log argument.  Include the date in the start message in
            the log file.  Avoid a duplicate message when forking.  Log an
            executed shell command.
Files:      runtime/doc/starting.txt, runtime/doc/channel.txt,
            src/main.c, src/channel.c, src/os_unix.c, src/os_win32.c,
            src/testdir/test_startup.mnv

Patch 8.2.4743
Problem:    Clang 14 is available on CI.
Solution:   Switch from clang 13 to 14. (closes #10157)
Files:      .github/workflows/ci.yml

Patch 8.2.4744
Problem:    A terminal window can't use the bell.
Solution:   Add bell support for the terminal window. (closes #10178)
Files:      runtime/doc/options.txt, src/gui_w32.c, src/option.h,
            src/optionstr.c, src/terminal.c

Patch 8.2.4745 (after 8.2.4744)
Problem:    Using wrong flag for using bell in the terminal.
Solution:   Change to use BO_TERM.
Files:      src/terminal.c, src/misc1.c

Patch 8.2.4746
Problem:    Supercollider filetype not recognized.
Solution:   Match file extensions and check file contents to detect
            supercollider. (closes #10142)
Files:      runtime/filetype.mnv, runtime/autoload/dist/ft.mnv,
            src/testdir/test_filetype.mnv

Patch 8.2.4747
Problem:    No filetype override for .sys files.
Solution:   Add g:filetype_sys. (Patrick Meiser-Knosowski, closes #10181)
Files:      runtime/doc/filetype.txt, runtime/autoload/dist/ft.mnv,
            src/testdir/test_filetype.mnv

Patch 8.2.4748
Problem:    Cannot use an imported function in a mapping.
Solution:   Recognize <SID>name.Func.
Files:      runtime/doc/mnv9.txt, src/term.c, src/mnv9execute.c,
            src/proto/mnv9execute.pro, src/scriptfile.c,
            src/testdir/test_mnv9_import.mnv

Patch 8.2.4749
Problem:    <script> is not expanded in autocmd context.
Solution:   Add the context to the pattern struct. (closes #10144)
            Rename AutoPatCmd to AutoPatCmd_T.
Files:      src/autocmd.c, src/proto/autocmd.pro, src/scriptfile.c,
            src/structs.h, src/testdir/test_expand.mnv

Patch 8.2.4750
Problem:    Small pieces of dead code.
Solution:   Remove the dead code. (Goc Dundar, closes #10190) Rename the
            qftf_cb struct member to avoid confusion.
Files:      src/ex_cmds.c, src/misc1.c, src/optionstr.c, src/quickfix.c

Patch 8.2.4751 (after 8.2.4748)
Problem:    Mapping <SID>name.Func does not work for script in autoload
            directory.
Solution:   Use the # form for a script in the autoload directory.
            (closes #10186)
Files:      src/term.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4752
Problem:    Wrong 'statusline' value can cause illegal memory access.
Solution:   Properly check the value. (closes #10192)
Files:      src/optionstr.c, src/testdir/test_options.mnv

Patch 8.2.4753
Problem:    Error from setting an option is silently ignored.
Solution:   Handle option value errors better.  Fix uses of N_().
Files:      src/option.c, src/proto/option.pro, src/optionstr.c,
            src/channel.c, src/crypt.c, src/diff.c, src/edit.c,
            src/eval.c, src/evalfunc.c, src/evalvars.c, src/ex_cmds2.c,
            src/ex_docmd.c, src/ex_getln.c, src/getchar.c, src/gui.c,
            src/gui_gtk_x11.c, src/help.c, src/highlight.c, src/if_tcl.c,
            src/main.c, src/memline.c, src/message_test.c,
            src/popupmenu.c, src/quickfix.c, src/scriptfile.c, src/spell.c,
            src/spellfile.c, src/term.c, src/undo.c, src/mnv9script.c

Patch 8.2.4754
Problem:    Still using cached values after unsetting some known environment
            variables.
Solution:   Take care of the side effects. (closes #10194)
Files:      src/evalfunc.c, src/evalvars.c, src/misc1.c, src/proto/misc1.pro,
            src/mnv9execute.c, src/optionstr.c, src/testdir/test_environ.mnv

Patch 8.2.4755
Problem:    Cannot use <SID>FuncRef in completion spec.
Solution:   Dereference a function name in another way. (closes #10197)
Files:      src/eval.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4756 (after 8.2.4754)
Problem:    Build error without the +eval feature.
Solution:   Adjust #ifdefs.
Files:      src/misc1.c

Patch 8.2.4757
Problem:    List of libraries to suppress lsan errors is outdated.
Solution:   Add another library. (closes #10201)
Files:      src/testdir/lsan-suppress.txt

Patch 8.2.4758
Problem:    When using an LSP channel want to get the message ID.
Solution:   Have ch_sendexpr() return the ID. (Yegappan Lakshmanan,
            closes #10202)
Files:      runtime/doc/channel.txt, src/channel.c, src/evalfunc.c,
            src/testdir/test_channel.mnv

Patch 8.2.4759
Problem:    CurSearch highlight does not work for multi-line match.
Solution:   Check cursor position before adjusting columns. (closes #10133)
Files:      src/structs.h, src/match.c, src/testdir/test_search.mnv,
            src/testdir/dumps/Test_hlsearch_cursearch_multiple_line.dump,
            src/testdir/dumps/Test_hlsearch_cursearch_multiple_line_1.dump,
            src/testdir/dumps/Test_hlsearch_cursearch_multiple_line_2.dump,
            src/testdir/dumps/Test_hlsearch_cursearch_multiple_line_3.dump,
            src/testdir/dumps/Test_hlsearch_cursearch_multiple_line_4.dump,
            src/testdir/dumps/Test_hlsearch_cursearch_multiple_line_5.dump

Patch 8.2.4760
Problem:    Using matchfuzzy() on a long list can take a while.
Solution:   Add a limit to the number of matches. (Yasuhiro Matsumoto,
            closes #10189)
Files:      runtime/doc/builtin.txt, src/search.c,
            src/testdir/test_matchfuzzy.mnv

Patch 8.2.4761
Problem:    Documentation for using LSP messages is incomplete.
Solution:   Update the documentation. (Yegappan Lakshmanan, closes #10206)
Files:      runtime/doc/channel.txt

Patch 8.2.4762
Problem:    Using freed memory when using synstack() and synID() in WinEnter.
Solution:   Check using the syntax window. (closes #10204)
Files:      src/syntax.c, src/testdir/test_syntax.mnv

Patch 8.2.4763
Problem:    Using invalid pointer with "V:" in Ex mode.
Solution:   Correctly handle the command being changed to "+".
Files:      src/ex_docmd.c, src/testdir/test_ex_mode.mnv

Patch 8.2.4764
Problem:    CI uses an older gcc version.
Solution:   Use GCC 11. (closes #10185)
Files:      .github/workflows/ci.yml, src/testdir/lsan-suppress.txt

Patch 8.2.4765
Problem:    Function matchfuzzy() sorts too many items.
Solution:   Only put matches in the array. (Yegappan Lakshmanan,
            closes #10208)
Files:      src/search.c

Patch 8.2.4766
Problem:    KRL files using "deffct" not recognized.
Solution:   Adjust the pattern used for matching. (Patrick Meiser-Knosowski,
            closes #10200)
Files:      runtime/autoload/dist/ft.mnv, src/testdir/test_filetype.mnv

Patch 8.2.4767
Problem:    Openscad files are not recognized.
Solution:   Add a filetype pattern. (Niklas Adam, closes #10199)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.4768
Problem:    CI: codecov upload sometimes does not work.
Solution:   Use action v3 instead of v2. (closes #10209)
Files:      .github/workflows/ci.yml

Patch 8.2.4769
Problem:    Build warning with UCRT.
Solution:   Adjust #ifdef for _wenviron. (John Marriott)
Files:      src/evalfunc.c

Patch 8.2.4770
Problem:    Cannot easily mix expression and heredoc.
Solution:   Support `=expr` in heredoc. (Yegappan Lakshmanan, closes #10138)
Files:      runtime/doc/eval.txt, src/evalvars.c, src/userfunc.c,
            src/testdir/test_let.mnv, src/testdir/test_mnv9_assign.mnv

Patch 8.2.4771
Problem:    Coverity warns for not checking return value.
Solution:   Check return value of rettv_dict_alloc().
Files:      src/channel.c

Patch 8.2.4772
Problem:    Old Coverity warning for not checking ftell() return value.
Solution:   Check return value of fseek() and ftell().
Files:      src/misc1.c

Patch 8.2.4773
Problem:    Build failure without the +eval feature.
Solution:   Use other error message.  Avoid warnings.
Files:      src/misc1.c, src/cindent.c, src/term.c

Patch 8.2.4774
Problem:    Crash when using a number for lambda name.
Solution:   Check the type of the lambda reference.
Files:      src/eval.c, src/errors.h, src/testdir/test_lambda.mnv

Patch 8.2.4775
Problem:    SpellBad highlighting does not work in Konsole.
Solution:   Do not keep t_8u defined for Konsole.  Redraw when t_8u is reset.
            (closes #10177)
Files:      src/term.c

Patch 8.2.4776
Problem:    GTK: 'lines' and 'columns' may change during startup.
Solution:   Ignore stale GTK resize events. (Ernie Rael, closes #10179)
Files:      src/gui_gtk_x11.c

Patch 8.2.4777 (after 8.2.4775)
Problem:    Screendump tests fail because of a redraw.
Solution:   Do not output t_8u before receiving termresponse.  Redraw only
            when t_8u is not reset and termresponse is received.
Files:      src/term.c

Patch 8.2.4778
Problem:    Pacman files use dosini filetype.
Solution:   Use conf instead. (Chaoren Lin, closes #10213)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.4779
Problem:    lsan suppression is too version specific.
Solution:   Leave out the version number. (Christian Brabandt, closes #10214)
Files:      src/testdir/lsan-suppress.txt

Patch 8.2.4780
Problem:    Parsing an LSP message fails when it is split.
Solution:   Collapse the received data before parsing. (Yegappan Lakshmanan,
            closes #10215)
Files:      runtime/doc/channel.txt, src/channel.c,
            src/testdir/test_channel.mnv, src/testdir/test_channel_lsp.py

Patch 8.2.4781
Problem:    Maxima files are not recognized.
Solution:   Add patterns to detect Maxima files. (Doron Behar, closes #10211)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.4782
Problem:    Accessing freed memory.
Solution:   Clear evalarg after checking for trailing characters.
            (issue #10218)
Files:      src/userfunc.c, src/testdir/test_lambda.mnv

Patch 8.2.4783
Problem:    Coverity warns for leaking memory.
Solution:   Use another strategy freeing "theline".
Files:      src/evalvars.c

Patch 8.2.4784
Problem:    Lamba test with timer is flaky.
Solution:   Adjust sleep time on retry.
Files:      src/testdir/test_lambda.mnv

Patch 8.2.4785
Problem:    Visual mode not stopped early enough if win_gotoid() goes to
            another buffer. (Sergey Vlasov)
Solution:   Stop Visual mode before jumping to another buffer. (closes #10217)
Files:      src/evalwindow.c, src/testdir/test_mnv9_builtin.mnv,
            src/testdir/dumps/Test_win_gotoid_1.dump,
            src/testdir/dumps/Test_win_gotoid_2.dump,
            src/testdir/dumps/Test_win_gotoid_3.dump

Patch 8.2.4786 (after 8.2.4785)
Problem:    Test for win_gotoid() in Visual mode fails on Mac.
Solution:   Skip the test on MacOS.
Files:      src/testdir/test_mnv9_builtin.mnv

Patch 8.2.4787
Problem:    prop_find() does not find the right property.
Solution:   Fix the scan order. (closes #10220)
Files:      src/textprop.c, src/testdir/test_textprop.mnv

Patch 8.2.4788
Problem:    Large payload for LSP message not tested.
Solution:   Add a test with a large LSP payload. (Yegappan Lakshmanan,
            closes #10223)
Files:      src/channel.c, src/testdir/test_channel.mnv,
            src/testdir/test_channel_lsp.py

Patch 8.2.4789
Problem:    The cursor may be in the in wrong place when using :redraw while
            editing the cmdline.
Solution:   When editing the command line let :redraw update the command line
            too. (closes #10210)
Files:      src/ex_docmd.c, src/testdir/test_cmdline.mnv,
            src/testdir/dumps/Test_redraw_in_autocmd_1.dump,
            src/testdir/dumps/Test_redraw_in_autocmd_2.dump

Patch 8.2.4790
Problem:    Lilypond filetype not recognized.
Solution:   Add patterns for lilypond. (Doug Kearns)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.4791
Problem:    Autocmd events triggered in different order when reusing an empty
            buffer.
Solution:   Call buff_freeall() earlier. (Charlie Groves, closes #10198)
Files:      src/buffer.c, src/testdir/test_autocmd.mnv

Patch 8.2.4792
Problem:    Indent operator creates an undo entry for every line.
Solution:   Create one undo entry for all lines. (closes #10227)
Files:      src/indent.c, src/testdir/test_indent.mnv

Patch 8.2.4793
Problem:    Recognizing Maxima filetype even though it might be another.
Solution:   Remove *.mc and *.dem patterns from Maxima files
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.4794
Problem:    Compiler warning for not initialized variable.
Solution:   Initialize the variable. (John Marriott)
Files:      src/indent.c

Patch 8.2.4795
Problem:    'cursorbind' scrolling depends on whether 'cursorline' is set.
Solution:   Always call validate_cursor(). (Christian Brabandt, closes #10230,
            closes #10014)
Files:      src/move.c, src/testdir/README.txt,
            src/testdir/test_cursorline.mnv,
            src/testdir/dumps/Test_hor_scroll_1.dump,
            src/testdir/dumps/Test_hor_scroll_2.dump,
            src/testdir/dumps/Test_hor_scroll_3.dump,
            src/testdir/dumps/Test_hor_scroll_4.dump

Patch 8.2.4796 (after 8.2.4795)
Problem:    File left behind after running cursorline tests.
Solution:   Uncomment the line that deletes the file.
Files:      src/testdir/test_cursorline.mnv

Patch 8.2.4797
Problem:    getwininfo() may get outdated values.
Solution:   Make sure w_botline is up-to-date. (closes #10226)
Files:      src/evalwindow.c, src/testdir/test_bufwintabinfo.mnv

Patch 8.2.4798
Problem:    t_8u option was reset even when set by the user.
Solution:   Only reset t_8u when using the default value. (closes #10239)
Files:      src/term.c

Patch 8.2.4799
Problem:    Popup does not use correct topline.
Solution:   Also add one when firstline is negative. (closes #10229)
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv

Patch 8.2.4800 (after 8.2.4798)
Problem:    Missing test update for adjusted t_8u behavior.
Solution:   Update and extend the test.
Files:      src/testdir/test_termcodes.mnv

Patch 8.2.4801 (after 8.2.4795)
Problem:    Fix for cursorbind fix not fully tested.
Solution:   Add another test case. (Christian Brabandt, closes #10240)
Files:      src/testdir/test_cursorline.mnv,
            src/testdir/dumps/Test_hor_scroll_5.dump

Patch 8.2.4802
Problem:    Test is not cleaned up.
Solution:   Make test clean up after itself.  Avoid NUL. (closes #10233)
Files:      src/testdir/test_autocmd.mnv

Patch 8.2.4803
Problem:    WinScrolled not always triggered when scrolling with the mouse.
Solution:   Add calls to may_trigger_winscrolled(). (closes #10246)
Files:      src/mouse.c, src/testdir/test_autocmd.mnv

Patch 8.2.4804
Problem:    Expression in heredoc doesn't work for compiled function.
Solution:   Implement compiling the heredoc expressions. (Yegappan Lakshmanan,
            closes #10232)
Files:      runtime/doc/eval.txt, src/evalvars.c, src/proto/evalvars.pro,
            src/ex_getln.c, src/mnv9compile.c, src/proto/mnv9compile.pro,
            src/testdir/test_mnv9_assign.mnv

Patch 8.2.4805
Problem:    CurSearch used for all matches in current line.
Solution:   Don't use the non-zero line count. (closes #10247)
Files:      src/match.c, src/testdir/test_search.mnv,
            src/testdir/dumps/Test_hlsearch_cursearch_single_line_1.dump,
            src/testdir/dumps/Test_hlsearch_cursearch_single_line_2.dump,
            src/testdir/dumps/Test_hlsearch_cursearch_single_line_2a.dump,
            src/testdir/dumps/Test_hlsearch_cursearch_single_line_2b.dump

Patch 8.2.4806
Problem:    A mapping using <LeftDrag> does not start Select mode.
Solution:   When checking for starting select mode with the mouse also do this
            when there is typeahead. (closes #10249)
Files:      src/normal.c

Patch 8.2.4807
Problem:    Processing key events in Win32 GUI is not ideal.
Solution:   Improve processing of key events. (closes #10155)
Files:      src/gui_w32.c

Patch 8.2.4808
Problem:    Unused item in engine struct.
Solution:   Remove "expr".  Add comment with tags.
Files:      src/regexp.h

Patch 8.2.4809
Problem:    Various things not properly tested.
Solution:   Add various test cases. (Yegappan Lakshmanan, closes #10259)
Files:      src/testdir/test_blob.mnv, src/testdir/test_debugger.mnv,
            src/testdir/test_listdict.mnv, src/testdir/test_mnv9_builtin.mnv,
            src/testdir/test_mnv9_import.mnv, src/testdir/test_mnv9_script.mnv

Patch 8.2.4810 (after 8.2.4808)
Problem:    Missing changes in one file.
Solution:   Also change the struct initializers.
Files:      src/regexp.c

Patch 8.2.4811 (after 8.2.4807)
Problem:    Win32 GUI: caps lock doesn't work.
Solution:   Handle VK_CAPITAL. (closes #10260, closes #10258)
Files:      src/gui_w32.c

Patch 8.2.4812
Problem:    Unused struct item.
Solution:   Remove "lines" match_T.  Simplify the code. (closes #10256)
Files:      src/match.c, src/structs.h

Patch 8.2.4813
Problem:    Pasting text while indent folding may mess up folds.
Solution:   Adjust the way folds are split. (Brandon Simmons, closes #10254)
Files:      src/fold.c, src/testdir/test_fold.mnv

Patch 8.2.4814
Problem:    Possible to leave a popup window with win_gotoid().
Solution:   Give an error when trying to leave a popup window with
            win_gotoid(). (closes #10253)
Files:      src/evalwindow.c, src/testdir/test_terminal3.mnv

Patch 8.2.4815 (after 8.2.4776)
Problem:    Cannot build with older GTK version.
Solution:   Use gtk_window_get_size() instead of gdk_window_get_width() and
            gdk_window_get_height(). (Ernie Rael, closes #10257)
Files:      src/gui_gtk_x11.c

Patch 8.2.4816
Problem:    Still using older codecov app in some places of CI.
Solution:   Use v3.1.0. (closes #10209)
Files:      .github/workflows/ci.yml

Patch 8.2.4817
Problem:    Win32 GUI: modifiers are not always used.
Solution:   Handle more modifiers. (closes #10269)
Files:      src/gui_w32.c

Patch 8.2.4818 (after 8.2 4806)
Problem:    No test for what 8.2.4806 fixes.
Solution:   Add a test. (closes #10272)
Files:      src/testdir/test_mapping.mnv

Patch 8.2.4819
Problem:    Unmapping simplified keys also deletes other mapping.
Solution:   Only unmap a mapping with m_simplified set. (closes #10270)
Files:      src/map.c, src/testdir/test_mapping.mnv

Patch 8.2.4820
Problem:    No simple programmatic way to find a specific mapping.
Solution:   Add getmappings(). (Ernie Rael, closes #10273)
Files:      runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
            src/map.c, src/proto/map.pro, src/testdir/test_maparg.mnv

Patch 8.2.4821
Problem:    Crash when imported autoload script was deleted.
Solution:   Initialize local variable. (closes #10274)  Give a more meaningful
            error message.
Files:      src/eval.c, src/mnv9script.c, src/testdir/test_mnv9_import.mnv

Patch 8.2.4822
Problem:    Setting ufunc to NULL twice.
Solution:   Set ufunc to NULL in find_exported(). (closes #19275)
Files:      src/eval.c, src/mnv9script.c

Patch 8.2.4823
Problem:    Concatenating more than 2 strings in a :def function is
            inefficient.
Solution:   Add a count to the CONCAT instruction. (closes #10276)
Files:      src/mnv9.h, src/mnv9cmds.c, src/mnv9compile.c, src/mnv9execute.c,
            src/mnv9expr.c, src/mnv9instr.c, src/proto/mnv9instr.pro,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.4824
Problem:    Expression is evaluated multiple times.
Solution:   Evaluate expression once and store the result. (closes #10278)
Files:      src/map.c

Patch 8.2.4825
Problem:    Can only get a list of mappings.
Solution:   Add the optional {abbr} argument. (Ernie Rael, closes #10277)
            Rename to maplist().  Rename test file.
Files:      runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
            src/map.c, src/proto/map.pro, src/testdir/test_maparg.mnv,
            src/testdir/test_map_functions.mnv, src/testdir/Make_all.mak

Patch 8.2.4826
Problem:    .cshtml files are not recognized.
Solution:   Use html filetype for .cshtml files. (Julien Voisin, closes #10212)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.4827
Problem:    Typo in variable name. (Gabriel Dupras)
Solution:   Rename the variable.
Files:      src/map.c

Patch 8.2.4828
Problem:    Fix for unmapping simplified key not fully tested.
Solution:   Add a test case. (closes #10292)
Files:      src/map.c, src/testdir/test_mapping.mnv

Patch 8.2.4829
Problem:    A key may be simplified to NUL.
Solution:   Use K_ZERO instead.  Use macros instead of hard coded values.
            (closes #10290)
Files:      src/getchar.c, src/misc2.c, src/testdir/test_termcodes.mnv

Patch 8.2.4830
Problem:    Possible endless loop if there is unused typeahead.
Solution:   Only loop when the typeahead changed.
Files:      src/channel.c

Patch 8.2.4831
Problem:    Crash when using maparg() and unmapping simplified keys.
Solution:   Do not keep a mapblock pointer. (closes #10294)
Files:      src/map.c, src/testdir/test_map_functions.mnv

Patch 8.2.4832
Problem:    Passing zero instead of NULL to a pointer argument.
Solution:   Use NULL. (closes #10296)
Files:      src/getchar.c, src/term.c

Patch 8.2.4833
Problem:    Failure of mapping not checked for.
Solution:   Check return value of ins_typebuf(). (closes #10299)
Files:      src/getchar.c, src/term.c, src/testdir/test_termcodes.mnv

Patch 8.2.4834
Problem:    MNV9: some lines not covered by tests.
Solution:   Add a few more tests.  Remove dead code.
Files:      src/mnv9execute.c, src/mnv9instr.c, src/mnv9.h,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.4835
Problem:    MNV9: some lines not covered by tests.
Solution:   Add a few more tests.  Fix disassemble output.
Files:      src/mnv9execute.c, src/testdir/test_mnv9_cmd.mnv,
            src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.4836
Problem:    MNV9: some lines not covered by tests.
Solution:   Remove dead code.  Add disassemble tests.
Files:      src/mnv9execute.c, src/mnv9.h,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.4837 (after patch 8.2.0919)
Problem:    Modifiers not simplified when timed out or using feedkeys() with
            'n" flag.
Solution:   Adjust how mapped flag and timeout are used. (closes #10305)
Files:      src/getchar.c, src/testdir/test_paste.mnv,
            src/testdir/test_termcodes.mnv

Patch 8.2.4838
Problem:    Checking for absolute path is not trivial.
Solution:   Add isabsolutepath(). (closes #10303)
Files:      runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
            src/filepath.c, src/proto/filepath.pro,
            src/testdir/test_functions.mnv

Patch 8.2.4839
Problem:    Compiler warning for unused argument.
Solution:   Add "UNUSED".
Files:      src/gui_gtk_x11.c

Patch 8.2.4840
Problem:    Heredoc expression evaluated even when skipping.
Solution:   Don't evaluate when "skip" is set. (closes #10306)
Files:      src/evalvars.c, src/testdir/test_let.mnv

Patch 8.2.4841
Problem:    Empty string considered an error for expand() when 'verbose' is
            set. (Christian Brabandt)
Solution:   Do not give an error for an empty result. (closes #10307)
Files:      src/evalfunc.c, src/ex_docmd.c, src/proto/ex_docmd.pro,
            src/filepath.c, src/testdir/test_expand_func.mnv

Patch 8.2.4842 (after 8.2.4841)
Problem:    expand("%:p") is not empty when there is no buffer name.
Solution:   When ignoring errors still return NULL. (closes #10311)
Files:      src/ex_docmd.c, src/testdir/test_expand_func.mnv

Patch 8.2.4843 (after 8.2.4807)
Problem:    Win32 GUI: Treating CTRL + ALT as AltGr is not backwards
            compatible. (Axel Bender)
Solution:   Make a difference between left and right menu keys.
            (closes #10308)
Files:      src/gui_w32.c

Patch 8.2.4844
Problem:    <C-S-I> is simplified to <S-Tab>.
Solution:   Do not simplify CTRL if there is also SHIFT. (closes #10313)
Files:      src/getchar.c, src/testdir/test_gui.mnv

Patch 8.2.4845
Problem:    Duplicate code.
Solution:   Move code below if/else. (closes #10314)
Files:      src/misc1.c

Patch 8.2.4846 (after 8.2.4844)
Problem:    Termcodes test fails.
Solution:   use CTRL-SHIFT-V to insert an unsimplified key. (closes #10316)
Files:      runtime/doc/cmdline.txt, src/edit.c, src/getchar.c,
            src/testdir/test_gui.mnv

Patch 8.2.4847
Problem:    Crash when using uninitialized function pointer.
Solution:   Check for NULL pointer. (closes #10319, closes #10319)
Files:      src/eval.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.4848
Problem:    Local completion with mappings and simplification not working.
Solution:   Fix local completion <C-N>/<C-P> mappings not ignored if keys are
            not simplified. (closes #10323)
Files:      src/getchar.c, src/testdir/test_popup.mnv

Patch 8.2.4849
Problem:    Gleam filetype not detected.
Solution:   Add a pattern for Gleam files. (Mathias Jean Johansen,
            closes #10326)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.4850
Problem:    Mksession mixes up "tabpages" and "curdir" arguments.
Solution:   Correct logic for storing tabpage in session. (closes #10312)
Files:      src/session.c, src/testdir/test_mksession.mnv

Patch 8.2.4851
Problem:    Compiler warning for uninitialized variable.
Solution:   Use another variable to decide to restore option values.
Files:      src/session.c

Patch 8.2.4852
Problem:    ANSI color index to RGB value not correct.
Solution:   Convert the cterm index to ANSI index. (closes #10321,
            closes #9836)
Files:      src/term.c

Patch 8.2.4853
Problem:    CI with FreeBSD is a bit outdated.
Solution:   Use 12.3 instead of 12.1. (closes #10333)
Files:      .cirrus.yml

Patch 8.2.4854
Problem:    Array size does not match usage.
Solution:   Make array size 3 instead of 4. (Christian Brabandt, closes #10336)
Files:      src/term.c

Patch 8.2.4855
Problem:    Robot files are not recognized.
Solution:   Add patterns for robot files. (Zoe Roux, closes #10339)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.4856
Problem:    MinGW compiler complains about unknown escape sequence.
Solution:   Avoid using a backslash in path. (Christian Brabandt,
            closes #10337)
Files:      .github/workflows/ci.yml

Patch 8.2.4857
Problem:    Yaml indent for multiline is wrong.
Solution:   Adjust patterns. (closes #10328, closes #8740)
Files:      runtime/indent/yaml.mnv, runtime/indent/testdir/yaml.in,
            runtime/indent/testdir/yaml.ok

Patch 8.2.4858
Problem:    K_SPECIAL may be escaped twice.
Solution:   Avoid double escaping. (closes #10340)
Files:      src/highlight.c, src/misc2.c, src/proto/misc2.pro, src/term.c,
            src/typval.c, src/testdir/test_eval_stuff.mnv,
            src/testdir/test_feedkeys.mnv, src/testdir/test_functions.mnv,
            src/testdir/test_mapping.mnv

Patch 8.2.4859
Problem:    wget2 files are not recognized.
Solution:   Add patterns to recognize wget2. (Doug Kearns)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.4860
Problem:    MS-Windows: always uses current directory for executables.
Solution:   Check the NoDefaultCurrentDirectoryInExePath environment variable.
            (Yasuhiro Matsumoto, closes #10341)
Files:      runtime/doc/builtin.txt, src/os_win32.c,
            src/testdir/test_functions.mnv

Patch 8.2.4861
Problem:    It is not easy to restore saved mappings.
Solution:   Make mapset() accept a dict argument. (Ernie Rael, closes #10295)
Files:      runtime/doc/builtin.txt, src/errors.h, src/evalfunc.c, src/map.c,
            src/typval.c, src/proto/typval.pro,
            src/testdir/test_map_functions.mnv,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.4862
Problem:    MNV9: test may fail when run with valgrind.
Solution:   Wait longer for callback if needed.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.4863
Problem:    Accessing freed memory in test without the +channel feature.
            (Dominique Pellé)
Solution:   Do not generate PUSHCHANNEL or PUSHJOB if they are not
            implemented. (closes #10350)
Files:      src/mnv9instr.c, src/errors.h, src/mnv9compile.c,
            src/testdir/test_mnv9_script.mnv

Patch 8.2.4864 (after 8.2.4863)
Problem:    MNV9: script test fails.
Solution:   Remove "if" around declaration.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.4865
Problem:    :startinsert right after :stopinsert does not work when popup menu
            is still visible.
Solution:   Use ins_compl_active() instead of pum_visible(). (closes #10352)
Files:      src/edit.c, src/testdir/test_ins_complete.mnv

Patch 8.2.4866
Problem:    Duplicate code in "get" functions.
Solution:   Use get_var_from() for getwinvar(), gettabvar(), gettabwinvar()
            and getbufvar(). (closes #10335)
Files:      src/evalvars.c

Patch 8.2.4867
Problem:    Listing of mapping with K_SPECIAL is wrong.
Solution:   Adjust escaping of special characters. (closes #10351)
Files:      src/map.c, src/message.c, src/testdir/test_mapping.mnv

Patch 8.2.4868
Problem:    When closing help window autocmds triggered for the wrong window.
Solution:   Figure out the new current window earlier. (closes #10348)
Files:      src/window.c, src/testdir/test_help.mnv

Patch 8.2.4869
Problem:    Expression in command block does not look after NL.
Solution:   Skip over NL to check what follows. (closes #10358)
Files:      src/eval.c, src/proto/eval.pro, src/mnv9script.c,
            src/testdir/test_usercommands.mnv

Patch 8.2.4870
Problem:    MNV9: expression in :substitute is not compiled.
Solution:   Use an INSTR instruction if possible. (closes #10334)
Files:      src/evalfunc.c, src/regexp.c, src/mnv9execute.c, src/mnv9expr.c,
            src/testdir/test_mnv9_builtin.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.4871
Problem:    MNV9: in :def function no error for using a range with a command
            that does not accept one.
Solution:   Check for the command to accept a range. (closes #10330)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.4872
Problem:    MNV9: no error for using an expression only at the script level
            when followed by an empty line.
Solution:   Do not check the line number but whether something follows.
            (closes #10357)
Files:      src/ex_eval.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.4873
Problem:    MNV9: using "else" differs from using "endif/if !cond".
Solution:   Leave the block and enter another one. (closes #10320)
Files:      src/ex_eval.c, src/testdir/test_mnv9_script.mnv

Patch 8.2.4874
Problem:    Win32 GUI: horizontal scroll wheel not handled properly.
Solution:   Also handle WM_MOUSEHWHEEL. (closes #10309)
Files:      src/gui_w32.c

Patch 8.2.4875
Problem:    MS-Windows: some .exe files are not recognized.
Solution:   Parse APPEXECLINK junctions. (closes #10302)
Files:      src/os_mswin.c, src/proto/os_mswin.pro, src/os_win32.c,
            src/os_win32.h, src/testdir/test_functions.mnv

Patch 8.2.4876
Problem:    MS-Windows: Shift-BS results in strange character in powershell.
Solution:   Add K_S_BS. (Christian Brabandt, closes #10283, closes #10279)
Files:      src/edit.c, src/keymap.h, src/term.c, src/testdir/shared.mnv,
            src/testdir/test_edit.mnv

Patch 8.2.4877
Problem:    MS-Windows: Using Normal colors for termguicolors causes problems.
Solution:   Do not use Normal colors to set sg_gui_fg and sg_gui_bg.
            (Christian Brabandt, closes #10317, closes #10241)
Files:      src/highlight.c

Patch 8.2.4878
Problem:    Valgrind warning for using uninitialized variable.
Solution:   Initialize the type of newtv.
Files:      src/strings.c

Patch 8.2.4879
Problem:    Screendump test may fail when using valgrind.
Solution:   Wait longer for the first screendump.
Files:      src/testdir/test_mnv9_builtin.mnv, src/testdir/screendump.mnv

Patch 8.2.4880
Problem:    MNV9: misplaced elseif causes invalid memory access.
Solution:   Check cs_idx not to be negative.
Files:      src/ex_eval.c

Patch 8.2.4881
Problem:    "P" in Visual mode still changes some registers.
Solution:   Make "P" in Visual mode not change any register. (Shougo
            Matsushita, closes #10349)
Files:      runtime/doc/change.txt, runtime/doc/index.txt,
            runtime/doc/visual.txt, src/normal.c, src/testdir/test_visual.mnv

Patch 8.2.4882
Problem:    Cannot make 'breakindent' use a specific column.
Solution:   Add the "column" entry in 'breakindentopt'. (Christian Brabandt,
            closes #10362, closes #10325)
Files:      runtime/doc/options.txt, src/indent.c, src/structs.h,
            src/testdir/test_breakindent.mnv

Patch 8.2.4883
Problem:    String interpolation only works in heredoc.
Solution:   Support interpolated strings.  Use syntax for heredoc consistent
            with strings, similar to C#. (closes #10327)
Files:      runtime/doc/eval.txt, src/errors.h, src/eval.c, src/evalvars.c,
            src/proto/evalvars.pro, src/typval.c, src/proto/typval.pro,
            src/mnv9compile.c, src/proto/mnv9compile.pro, src/mnv9expr.c,
            src/testdir/test_debugger.mnv, src/testdir/test_expr.mnv,
            src/testdir/test_let.mnv, src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.4884
Problem:    Test fails without the job/channel feature. (Dominique Pellé)
Solution:   Add condition.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.4885 (after 8.2.4884)
Problem:    Test fails with the job/channel feature.
Solution:   Move check for job/channel separately.
Files:      src/testdir/test_mnv9_script.mnv

Patch 8.2.4886
Problem:    MNV9: redir in skipped block seen as assignment.
Solution:   Check for valid assignment.
Files:      src/ex_docmd.c, src/testdir/test_mnv9_assign.mnv

Patch 8.2.4887
Problem:    Channel log does not show invoking a timer callback.
Solution:   Add a ch_log() call.
Files:      src/time.c

Patch 8.2.4888
Problem:    Line number of lambda ignores line continuation.
Solution:   Use the line number of where the arguments are. Avoid outputting
            "..." twice. (closes #10364)
Files:      src/userfunc.c

Patch 8.2.4889
Problem:    CI only tests with FreeBSD 12.
Solution:   Also test with FreeBSD 13. (closes #10366)
Files:      .cirrus.yml

Patch 8.2.4890
Problem:    Inconsistent capitalization in error messages.
Solution:   Make capitalization consistent. (Doug Kearns)
Files:      src/errors.h

Patch 8.2.4891
Problem:    MNV help presentation could be better.
Solution:   Add an imported file for extra MNV help support.  Show highlight
            names in the color they have.
Files:      Filelist, runtime/import/dist/mnvhelp.mnv

Patch 8.2.4892
Problem:    Test failures because of changed error messages.
Solution:   Adjust the expected error messages.
Files:      src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_builtin.mnv, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_func.mnv, src/testdir/test_mnv9_script.mnv,
            src/testdir/test_expand.mnv, src/testdir/test_tcl.mnv,
            src/testdir/test_mnvscript.mnv

Patch 8.2.4893 (after 8.2.4891)
Problem:    Distributed import files are not installed.
Solution:   Add rules to Makefile and NSIS.
Files:      src/Makefile, nsis/gmnv.nsi

Patch 8.2.4894
Problem:    MS-Windows: not using italics.
Solution:   Use italics.  Simplify the code. (closes #10359)
Files:      src/term.c

Patch 8.2.4895
Problem:    Buffer overflow with invalid command with composing chars.
Solution:   Check that the whole character fits in the buffer.
Files:      src/ex_docmd.c, src/testdir/test_cmdline.mnv

Patch 8.2.4896 (after 8.2.4869)
Problem:    Expression in command block does not look after NL when command is
            typed.
Solution:   Skip over NL also when not in a script. (closes #10358)
Files:      src/eval.c, src/testdir/test_usercommands.mnv

Patch 8.2.4897
Problem:    Comment inside an expression in lambda ignores the rest of the
            expression.
Solution:   Truncate the line at the comment. (closes #10367)
Files:      src/eval.c, src/testdir/test_lambda.mnv

Patch 8.2.4898
Problem:    Coverity complains about pointer usage.
Solution:   Move code for increment/decrement.
Files:      src/mnv9compile.c

Patch 8.2.4899
Problem:    With latin1 encoding CTRL-W might go before the start of the
            command line.
Solution:   Check already being at the start of the command line.
Files:      src/ex_getln.c, src/testdir/test_cmdline.mnv

Patch 8.2.4900
Problem:    MNV9 expression test fails without the job feature.
Solution:   Add a check for the job feature. (Dominique Pellé, closes #10373)
Files:      src/testdir/test_mnv9_expr.mnv

Patch 8.2.4901
Problem:    NULL pointer access when using invalid pattern.
Solution:   Check for failed regexp program.
Files:      src/buffer.c, src/testdir/test_buffer.mnv

Patch 8.2.4902
Problem:    Mouse wheel scrolling is inconsistent.
Solution:   Use the MS-Windows system setting. (closes #10368)
Files:      runtime/doc/scroll.txt, src/gui_w32.c, src/mouse.c,
            src/proto/mouse.pro, src/testing.c, src/testdir/test_gui.mnv

Patch 8.2.4903
Problem:    Cannot get the current cmdline completion type and position.
Solution:   Add getcmdcompltype() and getcmdscreenpos(). (Shougo Matsushita,
            closes #10344)
Files:      runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/cmdexpand.c,
            src/proto/cmdexpand.pro, src/evalfunc.c, src/ex_getln.c,
            src/proto/ex_getln.pro, src/usercmd.c, src/proto/usercmd.pro,
            src/testdir/test_cmdline.mnv

Patch 8.2.4904
Problem:    codecov includes MS-Windows install files.
Solution:   Ignore dosinst.c and uninstall.c.
Files:      .codecov.yml

Patch 8.2.4905
Problem:    codecov includes MS-Windows install header file.
Solution:   Ignore dosinst.h.
Files:      .codecov.yml

Patch 8.2.4906
Problem:    MS-Windows: cannot use transparent background.
Solution:   Make transparent background work with 'termguicolors' and NONE
            background color. (Yasuhiro Matsumoto, closes #10310, closes #7162)
Files:      runtime/doc/options.txt, src/os_win32.c, src/term.c

Patch 8.2.4907
Problem:    Some users do not want a line comment always inserted.
Solution:   Add the '/' flag to 'formatoptions' to not repeat the comment
            leader after a statement when using "o".
Files:      runtime/doc/change.txt, src/option.h, src/change.c,
            src/testdir/test_textformat.mnv

Patch 8.2.4908
Problem:    No text formatting for // comment after a statement.
Solution:   format a comment when the 'c' flag is in 'formatoptions'.
Files:      src/textformat.c, src/testdir/test_textformat.mnv

Patch 8.2.4909
Problem:    MODE_ enum entries names are too generic.
Solution:   use CH_MODE_.
Files:      src/structs.h, src/channel.c, src/job.c, src/terminal.c

Patch 8.2.4910
Problem:    Imperfect coding.
Solution:   Make code nicer.
Files:      src/ex_getln.c

Patch 8.2.4911
Problem:    The mode #defines are not clearly named.
Solution:   Prepend MODE_.  Renumber them to put the mapped modes first.
Files:      src/mnv.h, src/autocmd.c, src/buffer.c, src/change.c,
            src/charset.c, src/cindent.c, src/clipboard.c, src/debugger.c,
            src/digraph.c, src/drawline.c, src/drawscreen.c, src/edit.c,
            src/evalfunc.c, src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c,
            src/fileio.c, src/fold.c, src/getchar.c, src/globals.h, src/gui.c,
            src/gui_gtk.c, src/gui_w32.c, src/gui_xim.c, src/indent.c,
            src/insexpand.c, src/macros.h, src/main.c, src/map.c, src/menu.c,
            src/message.c, src/misc1.c, src/misc2.c, src/mouse.c,
            src/netbeans.c, src/normal.c, src/ops.c, src/option.c,
            src/os_unix.c, src/os_win32.c, src/popupmenu.c, src/search.c,
            src/tag.c, src/screen.c, src/term.c, src/terminal.c,
            src/textformat.c, src/window.c

Patch 8.2.4912
Problem:    Using execute() to define a lambda doesn't work. (Ernie Rael)
Solution:   Put the getline function in evalarg. (closes #10375)
Files:      src/eval.c, src/evalfunc.c, src/proto/evalfunc.pro,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.4913
Problem:    Popup_hide() does not always have effect.
Solution:   Add the POPF_HIDDEN_FORCE flag. (closes #10376)
Files:      src/popupwin.c, src/mnv.h, src/testdir/test_popupwin.mnv,
            src/testdir/dumps/Test_popup_prop_not_visible_01a.dump,
            src/testdir/dumps/Test_popup_prop_not_visible_01b.dump

Patch 8.2.4914
Problem:    String interpolation in :def function may fail.
Solution:   Do not terminate the expression. (closes #10377)
Files:      src/mnv9compile.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.4915
Problem:    Sometimes the cursor is in the wrong position.
Solution:   When the cursor moved to another line, recompute w_botline.
            (closes #9736)
Files:      src/move.c

Patch 8.2.4916 (after 8.2.4915)
Problem:    Mouse in Insert mode test fails.
Solution:   Fix the test and check relevant positions.
Files:      src/testdir/test_edit.mnv

Patch 8.2.4917
Problem:    Fuzzy expansion of option names is not right.
Solution:   Pass the fuzzy flag down the call chain. (Christian Brabandt,
            closes #10380, closes #10318)
Files:      src/cmdexpand.c, src/option.c, src/proto/option.pro,
            src/testdir/test_options.mnv

Patch 8.2.4918
Problem:    Conceal character from matchadd() displayed too many times.
Solution:   Check the syntax flag. (closes #10381, closes #7268)
Files:      src/drawline.c, src/testdir/test_matchadd_conceal.mnv

Patch 8.2.4919
Problem:    Can add invalid bytes with :spellgood.
Solution:   Check for a valid word string.
Files:      src/mbyte.c, src/spellfile.c, src/errors.h,
            src/testdir/test_spell_utf8.mnv

Patch 8.2.4920 (after 8.2.4902)
Problem:    MS-Windows GUI: unused variables.
Solution:   Delete the variables. (John Marriott)
Files:      src/gui_w32.c

Patch 8.2.4921
Problem:    Spell test fails because of new illegal byte check.
Solution:   Remove the test.
Files:      src/testdir/test_spell.mnv

Patch 8.2.4922 (after 8.2.4916)
Problem:    Mouse test fails on MS-Windows.
Solution:   Set 'mousemodel' to "extend".
Files:      src/testdir/test_edit.mnv

Patch 8.2.4923
Problem:    Test checks for terminal feature unnecessarily.
Solution:   Remove CheckRunMNVInTerminal. (closes #10383)
Files:      src/testdir/test_matchadd_conceal.mnv

Patch 8.2.4924
Problem:    maparg() may return a string that cannot be reused.
Solution:   use msg_outtrans_special() instead of str2special().
            (closes #10384)
Files:      src/message.c, src/option.c, src/testdir/test_map_functions.mnv,
            src/testdir/test_mapping.mnv, src/testdir/test_options.mnv

Patch 8.2.4925
Problem:    Trailing backslash may cause reading past end of line.
Solution:   Check for NUL after backslash.
Files:      src/textobject.c, src/testdir/test_textobjects.mnv

Patch 8.2.4926
Problem:    #ifdef for crypt feature around too many lines.
Solution:   Move code outside of #ifdef. (closes #10388)
Files:      src/option.c

Patch 8.2.4927
Problem:    Return type of remove() incorrect when using three arguments.
Solution:   Use first argument type when there are three arguments.
            (closes #10387)
Files:      src/evalfunc.c, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.4928
Problem:    Various white space and cosmetic mistakes.
Solution:   Change spaces to tabs, improve comments.
Files:      src/bufwrite.c, src/channel.c, src/cindent.c, src/crypt.c,
            src/debugger.c, src/digraph.c, src/edit.c, src/evalwindow.c,
            src/ex_cmds.c, src/ex_docmd.c, src/ex_getln.c, src/fileio.c,
            src/filepath.c, src/gui.c, src/highlight.c, src/indent.c,
            src/insexpand.c, src/job.c, src/keymap.h, src/macros.h,
            src/menu.c, src/misc1.c, src/misc2.c, src/mouse.c, src/move.c,
            src/normal.c, src/ops.c, src/option.c, src/option.h, src/search.c,
            src/session.c, src/spellsuggest.c, src/structs.h, src/tag.c,
            src/term.c, src/terminal.c, src/textformat.c, src/typval.c,
            src/ui.c, src/userfunc.c, src/mnv.h, src/mnv9.h,
            src/mnv9compile.c, src/mnv9execute.c, src/window.c,
            src/testdir/test_cursorline.mnv, src/os_unix.c, src/if_lua.c,
            src/if_py_both.h, src/os_amiga.c, src/os_win32.c, src/os_mswin.c,
            src/os_vms.c, src/os_vms_conf.h

Patch 8.2.4929
Problem:    Off-by-one error in statusline item.
Solution:   Subtrace one less. (closes #10394, closes #5599)
Files:      src/buffer.c, src/testdir/test_statusline.mnv,
            src/testdir/dumps/Test_statusline_hl.dump

Patch 8.2.4930
Problem:    Interpolated string expression requires escaping.
Solution:   Do not require escaping in the expression.
Files:      runtime/doc/eval.txt, src/typval.c, src/proto/typval.pro,
            src/dict.c, src/eval.c, src/evalvars.c, src/proto/evalvars.pro,
            src/mnv9compile.c, src/proto/mnv9compile.pro, src/mnv9expr.c,
            src/mnv9instr.c, src/alloc.c, src/proto/alloc.pro,
            src/testdir/test_expr.mnv, src/testdir/test_let.mnv

Patch 8.2.4931
Problem:    Crash with sequence of Perl commands.
Solution:   Move PUTBACK to another line. (closes #10386)
Files:      src/if_perl.xs

Patch 8.2.4932
Problem:    Not easy to filter the output of maplist().
Solution:   Add mode_bits to the dictionary. (Ernie Rael, closes #10356)
Files:      runtime/doc/builtin.txt, src/map.c,
            src/testdir/test_map_functions.mnv,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.4933
Problem:    A few more capitalization mistakes in error messages.
Solution:   Adjust capitalization. (Doug Kearns)
Files:      src/errors.h

Patch 8.2.4934
Problem:    String interpolation fails when not evaluating.
Solution:   Skip the expression when not evaluating. (closes #10398)
Files:      src/typval.c, src/evalvars.c, src/proto/evalvars.pro,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.4935
Problem:    With 'foldmethod' "indent" some lines are not included in the
            fold. (Oleg Koshovetc)
Solution:   Fix it. (Brandon Simmons, closes #10399, closes #3214)
Files:      src/fold.c, src/testdir/test_fold.mnv

Patch 8.2.4936
Problem:    MS-Windows: mouse coordinates for scroll event are wrong.
Solution:   Convert coordinates to the text area coordinates. (closes #10400)
Files:      src/gui_w32.c

Patch 8.2.4937 (after 8.2.4931)
Problem:    No test for what 8.2.4931 fixes.
Solution:   Add a test that triggers a valgrind error.
Files:      src/testdir/test_perl.mnv

Patch 8.2.4938
Problem:    Crash when matching buffer with invalid pattern.
Solution:   Check for NULL regprog.
Files:      src/buffer.c, src/testdir/test_buffer.mnv

Patch 8.2.4939
Problem:    matchfuzzypos() with "matchseq" does not have all positions.
Solution:   Also add a position for white space. (closes #10404)
Files:      runtime/doc/builtin.txt, src/search.c,
            src/testdir/test_matchfuzzy.mnv

Patch 8.2.4940
Problem:    Some code is never used.
Solution:   Remove dead code.  Add a few more test cases.
Files:      src/mnv9expr.c, src/proto/mnv9expr.pro, src/mnv9compile.c,
            src/testdir/test_mnv9_builtin.mnv, src/testdir/test_mnv9_expr.mnv

Patch 8.2.4941
Problem:    '[ and '] marks may be wrong after undo.
Solution:   Adjust the '[ and '] marks if needed. (closes #10407, closes #1281)
Files:      src/undo.c, src/testdir/test_undo.mnv

Patch 8.2.4942
Problem:    Error when setting 'filetype' in help file again.
Solution:   Deal with text property type already existing. (closes #10409)
Files:      runtime/import/dist/mnvhelp.mnv

Patch 8.2.4943
Problem:    Changing 'switchbuf' may have no effect.
Solution:   Handle 'switchbuf' in didset_string_options(). (Sean Dewar,
            closes #10406)
Files:      src/optionstr.c, src/testdir/test_options.mnv

Patch 8.2.4944
Problem:    Text properties are wrong after "cc". (Axel Forsman)
Solution:   Pass the deleted byte count to inserted_bytes(). (closes #10412,
            closes #7737, closes #5763)
Files:      src/change.c, src/testdir/test_textprop.mnv

Patch 8.2.4945
Problem:    Inconsistent use of white space.
Solution:   Use Tabs and Spaces consistently.
Files:      src/os_amiga.c, src/if_py_both.h, src/os_win32.c, src/os_mswin.c,
            src/os_vms.c, src/os_vms_conf.h

Patch 8.2.4946
Problem:    MNV9: some code not covered by tests.
Solution:   Add a few more test cases.  Remove dead code.
Files:      src/mnv9expr.c, src/testdir/test_mnv9_expr.mnv,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.4947
Problem:    Text properties not adjusted when accepting spell suggestion.
Solution:   Adjust text properties when text changes. (closes #10414)
Files:      src/spell.c, src/spellsuggest.c, src/testdir/test_textprop.mnv

Patch 8.2.4948
Problem:    Cannot use Perl heredoc in nested :def function. (Virginia
            Senioria)
Solution:   Only concatenate heredoc lines when not in a nested function.
            (closes #10415)
Files:      src/userfunc.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.4949
Problem:    MNV9: some code not covered by tests.
Solution:   Add a few more test cases.  Fix double error message.
Files:      src/mnv9expr.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.4950
Problem:    Text properties position wrong after shifting text.
Solution:   Adjust the text properties when shifting a block of text.
            (closes #10418)
Files:      src/ops.c, src/testdir/test_textprop.mnv

Patch 8.2.4951
Problem:    Smart indenting done when not enabled.
Solution:   Check option values before setting can_si. (closes #10420)
Files:      src/indent.c, src/proto/indent.pro, src/change.c, src/edit.c,
            src/ops.c, src/testdir/test_smartindent.mnv

Patch 8.2.4952
Problem:    GUI test will fail if color scheme changes.
Solution:   Reduce the test for now.
Files:      src/testdir/test_gui.mnv

Patch 8.2.4953
Problem:    With 'smartindent' inserting '}' after completion goes wrong.
Solution:   Check the cursor is in indent.  (closes #10420)
Files:      src/indent.c, src/testdir/test_smartindent.mnv

Patch 8.2.4954
Problem:    Inserting line breaks text property spanning more than one line.
Solution:   Check TP_FLAG_CONT_PREV and TP_FLAG_CONT_NEXT. (closes #10423)
Files:      src/textprop.c, src/testdir/test_textprop.mnv

Patch 8.2.4955
Problem:    Text property in wrong position after auto-indent.
Solution:   Adjust text property columns. (closes #10422, closes #7719)
Files:      src/change.c, src/testdir/test_textprop.mnv

Patch 8.2.4956
Problem:    Reading past end of line with "gf" in Visual block mode.
Solution:   Do not include the NUL in the length.
Files:      src/normal.c, src/testdir/test_gf.mnv

Patch 8.2.4957
Problem:    Text properties in a wrong position after a block change.
Solution:   Adjust the properties columns. (closes #10427)
Files:      src/ops.c, src/testdir/test_textprop.mnv

Patch 8.2.4958
Problem:    A couple conditions are always true.
Solution:   Remove the conditions. (Goc Dundar, closes #10428)
Files:      src/evalfunc.c, src/quickfix.c

Patch 8.2.4959
Problem:    Using NULL regexp program.
Solution:   Check for regexp program becoming NULL in more places.
Files:      src/buffer.c, src/testdir/test_buffer.mnv

Patch 8.2.4960
Problem:    Text properties that cross line boundary are not correctly updated
            for a deleted line.
Solution:   Correct computing location of text property entry. (Paul Ollis,
            closes #10431, closes #10430)
Files:      src/memline.c, src/testdir/test_textprop.mnv

Patch 8.2.4961
Problem:    Build error with a certain combination of features.
Solution:   Adjust #if. (John Marriott)
Files:      src/memline.c

Patch 8.2.4962
Problem:    Files show up in git status.
Solution:   Adjust the list of ignored files.  Clean up more test files.
            (Shane xb Qian, closes #9929)
Files:      .gitignore, src/testdir/Makefile

Patch 8.2.4963
Problem:    Expanding path with "/**" may overrun end of buffer.
Solution:   Use mnv_snprintf().
Files:      src/filepath.c

Patch 8.2.4964
Problem:    MS-Windows GUI: mouse event test is flaky.
Solution:   Add a short delay after generating a mouse event.
Files:      src/testdir/test_gui.mnv

Patch 8.2.4965
Problem:    GUI: testing mouse move event depends on screen cell size.
Solution:   Multiply the row and column with the screen cell size.
Files:      runtime/doc/testing.txt, src/testing.c, src/testdir/test_gui.mnv

Patch 8.2.4966
Problem:    MS-Windows GUI: mouse event test gets extra event.
Solution:   Ignore one move event.
Files:      src/testdir/test_gui.mnv

Patch 8.2.4967 (after 8.2.4966)
Problem:    MS-Windows GUI: mouse event test sometimes fails.
Solution:   Ignore one move event only if there is an extra event.
Files:      src/testdir/test_gui.mnv

Patch 8.2.4968
Problem:    Reading past end of the line when C-indenting.
Solution:   Check for NUL.
Files:      src/cindent.c, src/testdir/test_cindent.mnv

Patch 8.2.4969
Problem:    Changing text in Visual mode may cause invalid memory access.
Solution:   Check the Visual position after making a change.
Files:      src/change.c, src/edit.c, src/misc2.c, src/proto/misc2.pro,
            src/testdir/test_visual.mnv

Patch 8.2.4970
Problem:    "eval 123" gives an error, "eval 'abc'" does not.
Solution:   Also give an error when evaluating only a string. (closes #10434)
Files:      src/ex_eval.c, src/testdir/test_mnv9_cmd.mnv

Patch 8.2.4971
Problem:    MNV9: interpolated string seen as range.
Solution:   Recognize an interpolated string at the start of a command line.
            (closes #10434)
Files:      src/ex_docmd.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.4972
Problem:    MNV9: compilation fails when using dict member when skipping.
Solution:   Do not generate ISN_USEDICT when skipping. (closes #10433)
Files:      src/mnv9expr.c, src/testdir/test_mnv9_expr.mnv

Patch 8.2.4973
Problem:    MNV9: type error for list unpack mentions argument.
Solution:   Mention variable. (close #10435)
Files:      src/mnv9.h, src/mnv9execute.c, src/mnv9instr.c,
            src/proto/mnv9instr.pro, src/mnv9compile.c,
            src/testdir/test_mnv9_script.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.4974
Problem:    ":so" command may read after end of buffer.
Solution:   Compute length of text properly.
Files:      src/scriptfile.c, src/testdir/test_source.mnv

Patch 8.2.4975
Problem:    Recursive command line loop may cause a crash.
Solution:   Limit recursion of getcmdline().
Files:      src/ex_getln.c, src/testdir/test_cmdline.mnv

Patch 8.2.4976
Problem:    Coverity complains about not restoring a saved value.
Solution:   Restore value before handling error.
Files:      src/mnv9execute.c

Patch 8.2.4977
Problem:    Memory access error when substitute expression changes window.
Solution:   Disallow changing window in substitute expression.
Files:      src/ex_cmds.c, src/testdir/test_substitute.mnv

Patch 8.2.4978
Problem:    No error if engine selection atom is not at the start.
Solution:   Give an error. (Christian Brabandt, closes #10439)
Files:      runtime/doc/pattern.txt, src/errors.h, src/regexp_bt.c,
            src/regexp_nfa.c, src/testdir/test_regexp_latin.mnv

Patch 8.2.4979
Problem:    Accessing freed memory when line is flushed.
Solution:   Make a copy of the pattern to search for.
Files:      src/window.c, src/testdir/test_tagjump.mnv

Patch 8.2.4980
Problem:    When 'shortmess' contains 'A' loading a session may still warn for
            an existing swap file. (Melker Österberg)
Solution:   Keep the 'A' flag to 'shortmess' in the session file.
            (closes #10443)
Files:      src/session.c, src/testdir/test_mksession.mnv

Patch 8.2.4981
Problem:    It is not possible to manipulate autocommands.
Solution:   Add functions to add, get and set autocommands. (Yegappan
            Lakshmanan, closes #10291)
Files:      runtime/doc/autocmd.txt, runtime/doc/builtin.txt,
            runtime/doc/usr_41.txt, src/autocmd.c, src/evalfunc.c,
            src/proto/autocmd.pro, src/testdir/test_autocmd.mnv,
            src/testdir/test_mnv9_builtin.mnv

Patch 8.2.4982
Problem:    Colors in terminal window are not 100% correct.
Solution:   Use g:terminal_ansi_colors as documented. (closes #10429,
            closes #7227 closes #10347)
Files:      src/job.c, src/option.c, src/proto/term.pro,
            src/terminal.c, src/proto/terminal.pro, src/term.c,
            src/testdir/test_functions.mnv, src/testdir/test_terminal.mnv

Patch 8.2.4983 (after 8.2.4982)
Problem:    Colors test fails in the GUI.
Solution:   Reset g:terminal_ansi_colors.
Files:      src/testdir/test_functions.mnv

Patch 8.2.4984
Problem:    Dragging statusline fails for window with winbar.
Solution:   Fix off-by-one error. (closes #10448)
Files:      src/mouse.c, src/testdir/test_winbar.mnv

Patch 8.2.4985
Problem:    PVS warns for possible array underrun.
Solution:   Add a check for a positive value. (Goc Dundar, closes #10451)
Files:      src/spell.c

Patch 8.2.4986
Problem:    Some github actions are outdated.
Solution:   Update CodeQl to v2, update checkout to v3. (closes #10450)
Files:      .github/workflows/ci.yml, .github/workflows/codeql-analysis.yml,
            .github/workflows/coverity.yml

Patch 8.2.4987
Problem:    After deletion a small fold may be closable.
Solution:   Check for a reverse range. (Brandon Simmons, closes #10457)
Files:      src/fold.c, src/testdir/test_fold.mnv

Patch 8.2.4988
Problem:    Textprop in wrong position when replacing multi-byte chars.
Solution:   Adjust textprop position. (closes #10461)
Files:      src/change.c, src/testdir/test_textprop.mnv

Patch 8.2.4989
Problem:    Cannot specify a function name for :defcompile.
Solution:   Implement a function name argument for :defcompile.
Files:      runtime/doc/mnv9.txt, src/userfunc.c, src/proto/userfunc.pro,
            src/mnv9execute.c, src/ex_cmds.h, src/testdir/test_mnv9_cmd.mnv,
            src/testdir/test_mnv9_disassemble.mnv

Patch 8.2.4990 (after 8.2.4989)
Problem:    Memory leak when :defcompile fails.
Solution:   Free fname when returning early.
Files:      src/userfunc.c

Patch 8.2.4991
Problem:    No test for what patch 8.1.0535 fixes.
Solution:   Add a test. (closes #10462)
Files:      src/testdir/test_fold.mnv

Patch 8.2.4992 (after 8.2.4989)
Problem:    Compiler warning for possibly uninitialized variable. (Tony
            Mechelynck)
Solution:   Initialize variable in the caller instead of in the function.
Files:      src/userfunc.c, src/mnv9execute.c

Patch 8.2.4993
Problem:    smart/C/lisp indenting is optional, which makes the code more
            complex, while it only reduces the executable size a bit.
Solution:   Graduate FEAT_CINDENT, FEAT_SMARTINDENT and FEAT_LISP.
Files:      runtime/doc/builtin.txt, runtime/doc/indent.txt,
            runtime/doc/options.txt, runtime/doc/various.txt, src/feature.h,
            src/buffer.c, src/change.c, src/cindent.c, src/charset.c,
            src/edit.c, src/evalfunc.c, src/indent.c, src/insexpand.c,
            src/main.c, src/mouse.c, src/ops.c, src/option.c, src/optionstr.c,
            src/register.c, src/search.c, src/textformat.c, src/version.c,
            src/option.h, src/optiondefs.h, src/structs.h, src/globals.h,
            src/testdir/test_edit.mnv

Patch 8.2.4994
Problem:    Tests are using legacy functions.
Solution:   Convert a few tests to use :def functions.
Files:      src/testdir/test_cindent.mnv

Patch 8.2.4995 (after 8.2.4992)
Problem:    Still a compiler warning for possibly uninitialized variable.
            (Tony Mechelynck)
Solution:   Initialize variables.
Files:      src/mnv9execute.c

Patch 8.2.4996 (after 8.2.4969)
Problem:    setbufline() may change Visual selection. (Qiming Zhao)
Solution:   Disable Visual mode when using another buffer. (closes #10466)
Files:      src/evalbuffer.c, src/testdir/test_bufline.mnv

Patch 8.2.4997
Problem:    Python: changing hidden buffer can cause the display to be messed
            up.
Solution:   Do not mark changed lines when using another buffer. (Paul Ollis,
            closes #10437, closes #7972)
Files:      src/if_py_both.h, src/testdir/test_python3.mnv

Patch 8.2.4998
Problem:    MNV9: crash when using multiple funcref().
Solution:   Check if varargs type is NULL. (closes #10467)
Files:      src/mnv9type.c, src/testdir/test_mnv9_func.mnv

Patch 8.2.4999
Problem:    Filetype test table is not properly sorted.
Solution:   Sort by filetype. (Doug Kearns)
Files:      src/testdir/test_filetype.mnv

Patch 8.2.5000
Problem:    No patch for documentation updates.
Solution:   Update documentation files.
Files:      runtime/doc/arabic.txt, runtime/doc/autocmd.txt,
            runtime/doc/builtin.txt, runtime/doc/change.txt,
            runtime/doc/channel.txt, runtime/doc/cmdline.txt,
            runtime/doc/diff.txt, runtime/doc/digraph.txt,
            runtime/doc/editing.txt, runtime/doc/eval.txt,
            runtime/doc/filetype.txt, runtime/doc/fold.txt,
            runtime/doc/ft_ada.txt, runtime/doc/ft_ps1.txt,
            runtime/doc/ft_raku.txt, runtime/doc/ft_rust.txt,
            runtime/doc/ft_sql.txt, runtime/doc/gui.txt,
            runtime/doc/gui_w32.txt, runtime/doc/helphelp.txt,
            runtime/doc/help.txt, runtime/doc/if_cscop.txt,
            runtime/doc/if_lua.txt, runtime/doc/if_perl.txt,
            runtime/doc/if_pyth.txt, runtime/doc/if_tcl.txt,
            runtime/doc/indent.txt, runtime/doc/index.txt,
            runtime/doc/insert.txt, runtime/doc/intro.txt,
            runtime/doc/map.txt, runtime/doc/mbyte.txt,
            runtime/doc/message.txt, runtime/doc/motion.txt,
            runtime/doc/netbeans.txt, runtime/doc/options.txt,
            runtime/doc/os_dos.txt, runtime/doc/os_vms.txt,
            runtime/doc/os_win32.txt, runtime/doc/pattern.txt,
            runtime/doc/pi_netrw.txt, runtime/doc/pi_zip.txt,
            runtime/doc/popup.txt, runtime/doc/print.txt,
            runtime/doc/quickfix.txt, runtime/doc/quickref.txt,
            runtime/doc/remote.txt, runtime/doc/repeat.txt,
            runtime/doc/rileft.txt, runtime/doc/scroll.txt,
            runtime/doc/sign.txt, runtime/doc/spell.txt,
            runtime/doc/sponsor.txt, runtime/doc/starting.txt,
            runtime/doc/syntax.txt, runtime/doc/tabpage.txt,
            runtime/doc/tagsrch.txt, runtime/doc/terminal.txt,
            runtime/doc/term.txt, runtime/doc/testing.txt,
            runtime/doc/textprop.txt, runtime/doc/tips.txt,
            runtime/doc/todo.txt, runtime/doc/uganda.txt,
            runtime/doc/undo.txt, runtime/doc/usr_02.txt,
            runtime/doc/usr_04.txt, runtime/doc/usr_05.txt,
            runtime/doc/usr_06.txt, runtime/doc/usr_08.txt,
            runtime/doc/usr_09.txt, runtime/doc/usr_12.txt,
            runtime/doc/usr_20.txt, runtime/doc/usr_29.txt,
            runtime/doc/usr_40.txt, runtime/doc/usr_41.txt,
            runtime/doc/usr_45.txt, runtime/doc/usr_46.txt,
            runtime/doc/usr_50.txt, runtime/doc/usr_51.txt,
            runtime/doc/usr_52.txt, runtime/doc/usr_90.txt,
            runtime/doc/usr_toc.txt, runtime/doc/various.txt,
            runtime/doc/version5.txt, runtime/doc/version6.txt,
            runtime/doc/version7.txt, runtime/doc/version8.txt,
            runtime/doc/version9.txt, runtime/doc/vi_diff.txt,
            runtime/doc/mnv9.txt, runtime/doc/visual.txt,
            runtime/doc/windows.txt, runtime/doc/tags, runtime/doc/Makefile

Patch 8.2.5001
Problem:    Checking translations affects the search pattern history.
Solution:   Use "keeppatterns". (Doug Kearns)
Files:      src/po/check.mnv

Patch 8.2.5002
Problem:    deletebufline() may change Visual selection.
Solution:   Disable Visual mode when using another buffer. (closes #10469)
Files:      src/evalbuffer.c, src/testdir/test_bufline.mnv

Patch 8.2.5003
Problem:    Cannot do bitwise shifts.
Solution:   Add the >> and << operators. (Yegappan Lakshmanan, closes #8457)
Files:      runtime/doc/eval.txt, src/errors.h, src/eval.c, src/structs.h,
            src/mnv.h, src/mnv9execute.c, src/mnv9expr.c,
            src/testdir/test_expr.mnv, src/testdir/test_mnv9_disassemble.mnv,
            src/testdir/test_mnv9_expr.mnv

Patch 8.2.5004
Problem:    Right shift on negative number does not work as documented.
Solution:   Use a uvarnumber_T type cast.
Files:      runtime/doc/eval.txt, src/eval.c, src/mnv9expr.c,
            src/mnv9execute.c, src/charset.c, src/testdir/test_expr.mnv

Patch 8.2.5005 (after 8.2.5003)
Problem:    Compiler warning for uninitialized variable. (John Marriott)
Solution:   Initialize the pointer to NULL.
Files:      src/mnv9expr.mnv

Patch 8.2.5006 (after 8.2.5003)
Problem:    Asan warns for undefined behavior.
Solution:   Cast the shifted value to unsigned.
Files:      src/eval.c, src/mnv9expr.c, src/mnv9execute.c

Patch 8.2.5007
Problem:    Spell suggestion may use uninitialized memory. (Zdenek Dohnal)
Solution:   Avoid going over the end of the word.
Files:      src/spellsuggest.c, src/testdir/test_spell_utf8.mnv

Patch 8.2.5008
Problem:    When 'formatoptions' contains "/" wrongly wrapping a long trailing
            comment.
Solution:   Pass the OPENLINE_FORMAT flag.
Files:      src/change.c, src/mnv.h, src/textformat.c,
            src/testdir/test_textformat.mnv

Patch 8.2.5009
Problem:    Fold may not be closable after appending.
Solution:   Set the fd_small flag to MAYBE. (Brandon Simmons, closes #10471)
Files:      src/fold.c, src/testdir/test_fold.mnv

Patch 8.2.5010
Problem:    The terminal debugger uses various global variables.
Solution:   Add a dictionary to hold the terminal debugger preferences.
Files:      runtime/doc/terminal.txt,
            runtime/pack/dist/opt/termdebug/plugin/termdebug.mnv

Patch 8.2.5011
Problem:    Replacing an autocommand requires several lines.
Solution:   Add the "replace" flag to autocmd_add(). (Yegappan Lakshmanan,
            closes #10473)
Files:      runtime/doc/autocmd.txt, runtime/doc/builtin.txt, src/autocmd.c,
            src/testdir/test_autocmd.mnv

Patch 8.2.5012
Problem:    Cannot select one character inside ().
Solution:   Do not try to extend the area if it is empty. (closes #10472,
            closes #6616)
Files:      src/textobject.c, src/testdir/test_textobjects.mnv

Patch 8.2.5013
Problem:    After text formatting the cursor may be in an invalid position.
Solution:   Correct the cursor position after formatting.
Files:      src/textformat.c, src/testdir/test_textformat.mnv

Patch 8.2.5014
Problem:    Byte offsets are wrong when using text properties.
Solution:   Make sure text properties do not affect the byte counts.
            (Paul Ollis, closes #10474)
Files:      src/memline.c, src/textprop.c, src/testdir/test_textprop.mnv

Patch 8.2.5015
Problem:    Hoon and Moonscript files are not recognized.
Solution:   Add filetype patterns. (Goc Dundar, closes #10478)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.5016
Problem:    Access before start of text with a put command.
Solution:   Check the length is more than zero.
Files:      src/register.c, src/testdir/test_put.mnv

Patch 8.2.5017
Problem:    Gcc 12.1 warns for uninitialized variable.
Solution:   Initialize the variable. (closes #10476)
Files:      src/evalvars.c

Patch 8.2.5018
Problem:    MNV9: some code is not covered by tests.
Solution:   Delete dead code.
Files:      src/mnv9instr.c, src/proto/mnv9instr.pro, src/mnv9compile.c,
            src/mnv9expr.c,

Patch 8.2.5019
Problem:    Cannot get the first screen column of a character.
Solution:   Let virtcol() optionally return a list. (closes #10482,
            closes #7964)
Files:      runtime/doc/builtin.txt, src/evalfunc.c,
            src/testdir/test_functions.mnv, src/testdir/test_mnv9_builtin.mnv

Patch 8.2.5020
Problem:    Using 'imstatusfunc' and 'imactivatefunc' breaks 'foldopen'.
Solution:   Save and restore the KeyTyped flag. (closes #10479)
Files:      src/gui_xim.c, src/testdir/test_iminsert.mnv


Patch 8.2.5021
Problem:    Build fails with normal features and +terminal. (Dominique Pellé)
Solution:   Add #ifdefs. (closes #10484)
Files:      src/terminal.c

Patch 8.2.5022
Problem:    'completefunc'/'omnifunc' error does not end completion.
Solution:   Check if there was an error or exception. (closes #10486,
            closes #4218)
Files:      src/insexpand.c, src/testdir/test_ins_complete.mnv

Patch 8.2.5023
Problem:    Substitute overwrites allocated buffer.
Solution:   Disallow undo when in a substitute command.
Files:      src/normal.c, src/undo.c, src/testdir/test_substitute.mnv

Patch 8.2.5024
Problem:    Using freed memory with "]d".
Solution:   Copy the pattern before searching.
Files:      src/normal.c, src/testdir/test_tagjump.mnv

Patch 8.2.5025
Problem:    MNV9: a few lines not covered by tests.
Solution:   Add a few tests.
Files:      src/mnv9script.c, src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_import.mnv

Patch 8.2.5026
Problem:    MNV9: a few lines not covered by tests.
Solution:   Delete dead code.  Add a few test cases. make "12->func()" work.
Files:      src/mnv9type.c, src/ex_docmd.c, src/proto/ex_docmd.pro,
            src/mnv9compile.c, src/testdir/test_mnv9_assign.mnv,
            src/testdir/test_mnv9_func.mnv

Patch 8.2.5027
Problem:    Error for missing :endif when an exception was thrown. (Dani
            Dickstein)
Solution:   Do not give an error when aborting. (closes #10490)
Files:      src/ex_docmd.c, src/testdir/test_trycatch.mnv

Patch 8.2.5028
Problem:    Syntax regexp matching can be slow.
Solution:   Adjust the counters for checking the timeout to check about once
            per msec. (closes #10487, closes #2712)
Files:      src/regexp_bt.c, src/regexp_nfa.c

Patch 8.2.5029
Problem:    "textlock" is always zero.
Solution:   Remove "textlock" and rename "textwinlock" to "textlock".
            (closes #10489)
Files:      runtime/doc/insert.txt, runtime/doc/tags, src/beval.c,
            src/change.c, src/edit.c, src/errors.h, src/eval.c, src/ex_cmds.c,
            src/ex_getln.c, src/proto/ex_getln.pro, src/globals.h,
            src/indent.c, src/insexpand.c, src/map.c, src/register.c,
            src/undo.c, src/window.c, src/testdir/test_edit.mnv,
            src/testdir/test_ins_complete.mnv, src/testdir/test_popup.mnv,
            src/testdir/test_quickfix.mnv

Patch 8.2.5030
Problem:    autocmd_add() can only handle one event and pattern.
Solution:   Support a list of events and patterns. (Yegappan Lakshmanan,
            closes #10483)
Files:      runtime/doc/builtin.txt, src/autocmd.c, src/errors.h,
            src/testdir/test_autocmd.mnv

Patch 8.2.5031
Problem:    Cannot easily run the benchmarks.
Solution:   Have "make benchmark" in the src directory work.
Files:      src/Makefile, src/testdir/Makefile

Patch 8.2.5032
Problem:    Python 3 test fails without the GUI.
Solution:   Check the balloon_eval feature is available.
Files:      src/testdir/test_python3.mnv

Patch 8.2.5033 (after 8.2.5030)
Problem:    Build error with +eval but without +quickfix.  Warning for
            uninitialized variable.
Solution:   Adjust #ifdefs. (John Marriott)
Files:      src/errors.h, src/autocmd.c

Patch 8.2.5034
Problem:    There is no way to get the byte index from a virtual column.
Solution:   Add virtcol2col(). (Yegappan Lakshmanan, closes #10477,
            closes #10098)
Files:      runtime/doc/builtin.txt, runtime/doc/usr_41.txt, src/evalfunc.c,
            src/move.c, src/proto/move.pro, src/testdir/test_cursor_func.mnv

Patch 8.2.5035
Problem:    When splitting a window the changelist position moves.
Solution:   Set the changelist index a bit later. (closes #10493)
Files:      src/window.c, src/testdir/test_changelist.mnv,
            src/testdir/test_normal.mnv

Patch 8.2.5036 (after 8.2.5028)
Problem:    Using two counters for timeout check in NFA engine.
Solution:   Use only one counter.  Tune the counts based on guessing.
Files:      src/regexp_nfa.c

Patch 8.2.5037
Problem:    Cursor position may be invalid after "0;" range.
Solution:   Check the cursor position when it was set by ";" in the range.
Files:      src/ex_docmd.c, src/testdir/test_excmd.mnv

Patch 8.2.5038
Problem:    A finished terminal in a popup window does not show a scrollbar.
Solution:   Show the scrollbar if the terminal job is finished. (closes
            #10497)
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv,
            src/testdir/dumps/Test_popupwin_poptermscroll_1.dump,
            src/testdir/dumps/Test_popupwin_poptermscroll_2.dump,
            src/testdir/dumps/Test_popupwin_poptermscroll_3.dump

Patch 8.2.5039
Problem:    Confusing error if first argument of popup_create() is wrong.
Solution:   Give a more informative error.
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv, src/errors.h,
            src/testdir/dumps/Test_popup_settext_07.dump

Patch 8.2.5040
Problem:    Scrollbar thumb in scrolled popup not visible.
Solution:   Show at least one thumb character. (fixes 10492)
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv,
            src/testdir/dumps/Test_popupwin_scroll_13.dump

Patch 8.2.5041
Problem:    Cannot close a terminal popup with "NONE" job.
Solution:   Adjust the conditions for whether a job is running.
            (closes #10498)
Files:      src/buffer.c, src/terminal.c, src/proto/terminal.pro,
            src/undo.c, src/testdir/test_popupwin.mnv

Patch 8.2.5042
Problem:    Scrollbar thumb in tall scrolled popup not visible.
Solution:   Show at least one thumb character. (fixes 10492)
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv,
            src/testdir/dumps/Test_popupwin_scroll_13.dump

Patch 8.2.5043
Problem:    Can open a cmdline window from a substitute expression.
Solution:   Disallow opening a command line window when text or buffer is
            locked.
Files:      src/buffer.c, src/ex_getln.c, src/proto/ex_getln.pro,
            src/window.c, src/testdir/test_substitute.mnv

Patch 8.2.5044 (after 8.2.5043)
Problem:    Command line test fails.
Solution:   Also beep when cmdline win can't be opened because of locks.
            Make the test not beep.  Make the test pass on MS-Windows.
Files:      src/ex_getln.c, src/testdir/test_substitute.mnv

Patch 8.2.5045
Problem:    Can escape a terminal popup window when the job is finished.
Solution:   Only check for a finished job where it is relevant.
            (closes #10253)
Files:      src/popupwin.c, src/testdir/test_popupwin.mnv,
            src/testdir/dumps/Test_popupwin_poptermscroll_1.dump,
            src/testdir/dumps/Test_popupwin_poptermscroll_2.dump,
            src/testdir/dumps/Test_popupwin_poptermscroll_3.dump,
            src/testdir/dumps/Test_popupwin_poptermscroll_4.dump

Patch 8.2.5046
Problem:    mnv_regsub() can overwrite the destination.
Solution:   Pass the destination length, give an error when it doesn't fit.
Files:      src/regexp.h, src/regexp.c, src/proto/regexp.pro, src/eval.c,
            src/ex_cmds.c

Patch 8.2.5047
Problem:    CurSearch highlight is often wrong.
Solution:   Remember the last highlighted position and redraw when needed.
Files:      src/globals.h, src/match.c, src/drawscreen.c, src/change.c,
            src/testdir/test_search.mnv,
            src/testdir/dumps/Test_hlsearch_cursearch_changed_1.dump

Patch 8.2.5048
Problem:    When using XIM the gui test may fail.
Solution:   Only use --not-a-term when not using XIM.
Files:      src/testdir/test_gui.mnv

Patch 8.2.5049
Problem:    Insufficient tests for autocommands.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #10507)
Files:      src/autocmd.c, src/testdir/gen_opt_test.mnv,
            src/testdir/test_autocmd.mnv, src/testdir/test_cmdline.mnv

Patch 8.2.5050
Problem:    Using freed memory when searching for pattern in path.
Solution:   Make a copy of the line.
Files:      src/search.c, src/testdir/test_tagjump.mnv

Patch 8.2.5051
Problem:    Check for autocmd_add() event argument is confusing.
Solution:   Make the code more straightforward.
Files:      src/autocmd.c

Patch 8.2.5052
Problem:    CI checkout step title is a bit cryptic.
Solution:   Add a better title. (closes #10509)
Files:      .github/workflows/ci.yml, .github/workflows/coverity.yml,
            .github/workflows/codeql-analysis.yml

Patch 8.2.5053
Problem:    Cannot have a comment halfway an expression in an autocmd command
            block.
Solution:   When skipping over the NL also skip over comments. (closes #10519)
Files:      src/eval.c, src/testdir/test_autocmd.mnv

Patch 8.2.5054
Problem:    No good filetype for conf files similar to dosini.
Solution:   Add the confini filetype. (closes #10518)
Files:      runtime/filetype.mnv, src/testdir/test_filetype.mnv

Patch 8.2.5055
Problem:    Statusline is not updated when terminal title changes.
Solution:   Redraw the status line when the title changes. (issue #10425)
Files:      src/terminal.c

Patch 8.2.5056
Problem:    The channel log only contains some of the raw terminal output.
Solution:   Add the "o" flag to log all terminal output.  Use it for "--log".
Files:      runtime/doc/channel.txt, runtime/doc/starting.txt, src/main.c,
            src/channel.c, src/mnv.h, src/term.c, src/edit.c, src/normal.c,
            src/optionstr.c

Patch 8.2.5057
Problem:    Using gettimeofday() for timeout is very inefficient.
Solution:   Set a platform dependent timer. (Paul Ollis, closes #10505)
Files:      src/auto/configure, src/config.h.in, src/configure.ac,
            src/drawscreen.c, src/errors.h, src/evalfunc.c, src/ex_cmds.c,
            src/ex_getln.c, src/match.c, src/os_mac.h, src/os_macosx.m,
            src/os_unix.c, src/os_win32.c, src/proto/os_unix.pro,
            src/proto/os_win32.pro, src/proto/regexp.pro, src/quickfix.c,
            src/regexp.c, src/regexp.h, src/regexp_bt.c, src/regexp_nfa.c,
            src/screen.c, src/search.c, src/structs.h, src/syntax.c,
            src/testdir/test_hlsearch.mnv, src/testdir/test_search.mnv,
            src/testdir/test_syntax.mnv

Patch 8.2.5058
Problem:    input() does not handle composing characters properly.
Solution:   Use mb_cptr2char_adv() instead of mb_ptr2char_adv().
            (closes #10527)
Files:      src/getchar.c, src/testdir/test_functions.mnv

Patch 8.2.5059
Problem:    Autoconf 2.71 produces many obsolete warnings.
Solution:   Replace obsolete macros with non-obsolete ones, where the
            functionality does not change. (issue #10528)
Files:      src/configure.ac, src/auto/configure

Patch 8.2.5060 (after 8.2.5059)
Problem:    Running configure fails.
Solution:   Remove line break.
Files:      src/configure.ac, src/auto/configure

Patch 8.2.5061
Problem:    C89 requires signal handlers to return void.
Solution:   Drop RETSIGTYPE and hard-code a void return value.
Files:      src/configure.ac, src/auto/configure, src/if_cscope.c,
            src/os_unix.c, src/pty.c, src/os_mac.h, src/os_vms_conf.h,
            src/config.h.in, src/osdef1.h.in

Patch 8.2.5062
Problem:    Coverity warns for dead code.
Solution:   Remove the dead code.
Files:      src/os_unix.c, src/match.c

Patch 8.2.5063
Problem:    Error for a command may go over the end of IObuff.
Solution:   Truncate the message.
Files:      src/ex_docmd.c, src/testdir/test_cmdline.mnv

Patch 8.2.5064
Problem:    No test for what 8.1.0052 fixes.
Solution:   Add a test. (closes #10531)
Files:      src/getchar.c, src/testdir/test_mapping.mnv

Patch 8.2.5065
Problem:    Wrong return type for main() in tee.c.
Solution:   Use "int" instead of "void".  Remove unused variable.
Files:      src/tee/tee.c

Patch 8.2.5066
Problem:    Can specify multispace listchars only for whole line.
Solution:   Add "leadmultispace". (Christian Brabandt, closes #10496)
Files:      runtime/doc/options.txt, src/drawline.c, src/message.c,
            src/screen.c, src/structs.h, src/window.c,
            src/testdir/test_listchars.mnv

Patch 8.2.5067
Problem:    Timer_create is not available on every Mac system. (Hisashi T
            Fujinaka)
Solution:   Adjust #ifdef.
Files:      src/os_unix.c

Patch 8.2.5068
Problem:    Gcc 12.1 warning when building tee.
Solution:   Change type to size_t. (John Marriott)
Files:      src/tee/tee.c

Patch 8.2.5069
Problem:    Various warnings from clang on MS-Windows.
Solution:   Fix the code to avoid the warnings. (Yegappan Lakshmanan,
            closes #10538)
Files:      src/dosinst.c, src/fileio.c, src/gui_w32.c, src/os_mswin.c,
            src/os_win32.c

Patch 8.2.5070
Problem:    Unnecessary code.
Solution:   Remove code that isn't needed. (closes #10534)
Files:      src/message.c, src/screen.c

Patch 8.2.5071
Problem:    With some Mac OS version clockid_t is redefined.
Solution:   Adjust #ifdefs. (Ozaki Kiichi, closes #10549)
Files:      src/os_mac.h

Patch 8.2.5072
Problem:    Using uninitialized value and freed memory in spell command.
Solution:   Initialize "attr".  Check for empty line early.
Files:      src/spell.c, src/testdir/test_spell_utf8.mnv

Patch 8.2.5073
Problem:    Clang on MS-Windows produces warnings.
Solution:   Avoid the warnings. (Yegappan Lakshmanan, closes #10546)
Files:      src/dosinst.c, src/dosinst.h, src/gui_dwrite.cpp, src/gui_w32.c,
            src/iscygpty.c, src/libvterm/src/vterm_internal.h, src/mbyte.c,
            src/os_win32.c, src/os_win32.h, src/term.c, src/xdiff/xinclude.h

Patch 8.2.5074
Problem:    Spell test fails on MS-Windows.
Solution:   Do not change 'encoding'
Files:      src/testdir/test_spell_utf8.mnv

Patch 8.2.5075
Problem:    Clang gives an out of bounds warning.
Solution:   adjust conditional expression (John Marriott)
Files:      src/ui.c

Patch 8.2.5076
Problem:    Unnecessary code.
Solution:   Remove code and replace with function call. (closes #10552)
Files:      src/drawline.c, src/getchar.c

Patch 8.2.5077
Problem:    Various warnings from clang on MS-Windows.
Solution:   Avoid the warnings. (Yegappan Lakshmanan, closes #10553)
Files:      src/dosinst.c, src/dosinst.h, src/filepath.c, src/gui_w32.c,
            src/misc1.c, src/os_win32.c

Patch 8.2.5078
Problem:    Substitute test has a one second delay.
Solution:   Use ":silent!".  Add another test case. (closes #10558)
Files:      src/testdir/test_substitute.mnv

Patch 8.2.5079
Problem:    DirChanged autocommand may use freed memory. (Shane-XB Qian)
Solution:   Free the memory later. (closes #10555)
Files:      src/ex_docmd.c, src/testdir/test_autocmd.mnv

Patch 8.2.5080
Problem:    When indenting gets out of hand it is hard to stop.
Solution:   When line gets too long set got_int.
Files:      src/indent.c

Patch 8.2.5081
Problem:    Autocmd test fails on MS-Windows.
Solution:   Set shellslash to get forward slashes.
Files:      src/testdir/test_autocmd.mnv

Patch 8.2.5082 (after 8.2.5080)
Problem:    Retab test fails.
Solution:   Disable the test for now.
Files:      src/testdir/test_retab.mnv

Patch 8.2.5083
Problem:    Autocmd test still fails on MS-Windows.
Solution:   Change backward to forward slashes.
Files:      src/testdir/test_autocmd.mnv

Patch 8.2.5084
Problem:    When the GUI shows a dialog tests get stuck.
Solution:   Add the --gui-dialog-file argument.
Files:      runtime/doc/starting.txt, src/Make_mvc.mak, src/gui.c, src/main.c,
            src/message.c, src/os_mswin.c, src/proto/gui.pro,
            src/proto/main.pro, src/structs.h, src/testdir/Make_dos.mak,
            src/testdir/Make_ming.mak, src/testdir/Makefile,
            src/testdir/runtest.mnv, src/testdir/shared.mnv

Patch 8.2.5085
Problem:    Gcc gives warning for signed/unsigned difference.
Solution:   Use a different pointer type. (John Marriott)
Files:      src/os_mswin.c

Patch 8.2.5086
Problem:    CI runs on Windows 2019.
Solution:   Switch to Windows 2022. (closes #10566)
Files:      .github/workflows/ci.yml

Patch 8.2.5087
Problem:    Cannot build with clang on MS-Windows.
Solution:   Add support for building with clang. (Yegappan Lakshmanan,
            closes #10557)
Files:      src/GmnvExt/Make_ming.mak, src/INSTALLpc.txt,
            src/Make_cyg_ming.mak

Patch 8.2.5088
Problem:    Value of cmod_verbose is a bit complicated to use.
Solution:   Use zero for not set, value + 1 when set. (closes #10564)
Files:      src/ex_docmd.c, src/ex_getln.c, src/globals.h, src/structs.h

Patch 8.2.5089
Problem:    Some functions return a different value on failure.
Solution:   Initialize the return value earlier. (Yegappan Lakshmanan,
            closes #10568)
Files:      src/autocmd.c, src/dict.c, src/evalfunc.c, src/list.c

Patch 8.2.5090
Problem:    MS-Windows: mnv.def is no longer used.
Solution:   Delete mnv.def. (Ken Takata, closes #10569)
Files:      Filelist, Makefile, src/mnv.def

Patch 8.2.5091
Problem:    Terminal test fails with some shell commands.
Solution:   Disable setting the window title. (closes #10530)
Files:      src/testdir/test_terminal.mnv

Patch 8.2.5092
Problem:    Using "'<,'>" in Ex mode may compare unrelated pointers.
Solution:   Set eap->cmd to "+" only later.
Files:      src/ex_docmd.c

Patch 8.2.5093
Problem:    Error message for unknown command may mention the command twice.
            (Malcolm Rowe)
Solution:   Add the did_append_cmd flag. (closes #10570)
Files:      src/ex_docmd.c

Patch 8.2.5094
Problem:    MS-Windows GUI: empty command may cause a dialog.
Solution:   Delete the dialog file.  Improve the message.
Files:      src/testdir/runtest.mnv, src/testdir/test_ex_mode.mnv

Patch 8.2.5095
Problem:    Terminal test still fails with some shell commands.
Solution:   Disable setting the window title in the MNV instance running in a
            terminal window. (closes #10530)
Files:      src/testdir/test_terminal.mnv

Patch 8.2.5096 (after 8.2.5095)
Problem:    Terminal test still fails with some shell commands.
Solution:   Add missing "call".  (closes #10530)
Files:      src/testdir/test_terminal.mnv

Patch 8.2.5097
Problem:    Using uninitialized memory when using 'listchars'.
Solution:   Use the length returned by mb_char2bytes(). (closes #10576)
Files:      src/message.c

Patch 8.2.5098
Problem:    Spelldump test sometimes hangs.
Solution:   Catch the problem of the spell file not being found to avoid
            hanging in the download dialog.
Files:      src/testdir/test_spell.mnv

Patch 8.2.5099
Problem:    Some terminal tests are not retried.
Solution:   Mark terminal tests as flaky.
Files:      src/testdir/test_terminal.mnv

Patch 8.2.5100
Problem:    Memory usage tests are not retried.
Solution:   Mark memory usage tests as flaky.
Files:      src/testdir/test_memory_usage.mnv

Patch 8.2.5101
Problem:    MS-Windows with MinGW: $CC may be "cc" instead of "gcc".
Solution:   Set $CC if it is not matching "clang". (Yegappan Lakshmanan,
            closes #10578)
Files:      src/INSTALLpc.txt, src/Make_cyg_ming.mak

Patch 8.2.5102
Problem:    Interrupt not caught in test.
Solution:   Consider an exception thrown in the current try/catch when got_int
            is set.  Also catch early exit when not using try/catch.
Files:      src/indent.c, src/testing.c, src/testdir/test_retab.mnv,
            src/testdir/runtest.mnv

Patch 8.2.5103
Problem:    Build fails with small features.
Solution:   Add #ifdef.  Skip test on MS-Windows.
Files:      src/indent.c, src/testdir/test_retab.mnv

Patch 8.2.5104 (after 8.2.5103)
Problem:    Test hangs on MS-Windows.
Solution:   Skip another test on MS-Windows.
Files:      src/testdir/test_retab.mnv

Patch 8.2.5105 (after 8.2.5104)
Problem:    Test still hangs on MS-Windows.
Solution:   Skip "nocatch" test the right way.
Files:      src/testdir/test_retab.mnv

Patch 8.2.5106
Problem:    Default cmdwin mappings are re-mappable.
Solution:   Make the default mappings not re-mappable. (closes #10580)  Use
            symbols for the first do_map() argument.
Files:      src/mnv.h, src/ex_getln.c, src/map.c, src/proto/map.pro,
            src/digraph.c, src/netbeans.c

Patch 8.2.5107
Problem:    Some callers of rettv_list_alloc() check for not OK. (Christ van
            Willegen)
Solution:   Use "==" instead of "!=" when checking the return value.
Files:      src/evalbuffer.c, src/channel.c, src/cmdexpand.c, src/evalfunc.c,
            src/evalwindow.c, src/insexpand.c, src/job.c, src/list.c,
            src/map.c, src/menu.c, src/mouse.c, src/move.c, src/sign.c,
            src/textprop.c, src/term.c, src/time.c

Patch 8.2.5108
Problem:    Retab test disabled because it hangs on MS-Windows.
Solution:   Also set got_int at the other place an overlong text is detected.
Files:      src/indent.c, src/testdir/test_retab.mnv

Patch 8.2.5109
Problem:    Mode not updated after CTRL-O CTRL-C in Insert mode.
Solution:   Set redraw_mode and use it. (closes #10581)
Files:      src/main.c, src/normal.c, src/testdir/test_normal.mnv,
            src/testdir/dumps/Test_mode_updated_1.dump

Patch 8.2.5110
Problem:    Icon filetype not recognized from the first line.
Solution:   Add a check for the first line. (Doug Kearns)
Files:      runtime/autoload/dist/script.mnv, src/testdir/test_filetype.mnv

Patch 8.2.5111
Problem:    No test for --gui-dialog-file.
Solution:   Add a test.
Files:      src/testdir/test_gui.mnv

Patch 8.2.5112 (after 8.2.5111)
Problem:    Gui test hangs on MS-Windows.
Solution:   Use "!start" to start MNV.
Files:      src/testdir/test_gui.mnv

Patch 8.2.5113
Problem:    Timer becomes invalid after fork/exec, :gui gives errors. (Gabriel
            Dupras)
Solution:   Delete the timer before forking. (closes #10584)
Files:      src/os_unix.c, src/proto/os_unix.pro, src/gui.c

Patch 8.2.5114
Problem:    Time limit on searchpair() does not work properly.
Solution:   Set the time limit once instead of for each regexp. (closes #10562)
Files:      src/search.c, src/evalfunc.c, src/testdir/test_search.mnv

Patch 8.2.5115
Problem:    Search timeout is overrun with some patterns.
Solution:   Check for timeout in more places.  Make the flag volatile and
            atomic.  Use assert_inrange() to see what happened.
Files:      src/regexp_nfa.c, src/regexp_bt.c, src/regexp.c, src/os_unix.c,
            src/proto/os_unix.pro, src/testdir/test_search.mnv

Patch 8.2.5116
Problem:    "limit" option of matchfuzzy() not always respected.
Solution:   Remove "else". (Kazuyuki Miyagi, closes #10586)
Files:      runtime/doc/builtin.txt, src/search.c,
            src/testdir/test_matchfuzzy.mnv

Patch 8.2.5117
Problem:    Crash when calling a Lua callback from a :def function. (Bohdan
            Makohin)
Solution:   Handle FC_CFUNC in call_user_func_check(). (closes #10587)
Files:      src/userfunc.c, src/testdir/test_lua.mnv

Patch 8.2.5118
Problem:    MS-Windows: sending a message to another MNV may hang if that MNV
            is halted.
Solution:   Add a timeout to serverSendToMNV(). (Ken Takata, closes #10585)
Files:      runtime/pack/dist/opt/editexisting/plugin/editexisting.mnv,
            src/os_mswin.c

Patch 8.2.5119
Problem:    CI uses cache v2.
Solution:   Use cache v3. (closes #10588)
Files:      .github/workflows/ci.yml

Patch 8.2.5120
Problem:    Searching for quotes may go over the end of the line.
Solution:   Check for running into the NUL.
Files:      src/textobject.c

Patch 8.2.5121
Problem:    Interrupt test sometimes fails.
Solution:   Use a different file name.
Files:      src/testdir/test_interrupt.mnv

Patch 8.2.5122
Problem:    Lisp indenting my run over the end of the line.
Solution:   Check for NUL earlier.
Files:      src/indent.c, src/testdir/test_indent.mnv

Patch 8.2.5123
Problem:    Using invalid index when looking for spell suggestions.
Solution:   Do not decrement the index when it is zero.
Files:      src/spellsuggest.c, src/testdir/test_spell.mnv

Patch 8.2.5124
Problem:    When syntax timeout test fails it does not show the time.
Solution:   Use assert_inrange().
Files:      src/testdir/test_syntax.mnv

Patch 8.2.5125
Problem:    MS-Windows: warnings from MinGW compiler.
Solution:   Use "volatile". (Yasuhiro Matsumoto, closes #10589)  Initialize
            variable.
Files:      src/os_win32.c, src/proto/os_win32.pro, src/map.c

Patch 8.2.5126
Problem:    Substitute may overrun destination buffer.
Solution:   Disallow switching buffers in a substitute expression.
Files:      src/ex_docmd.c, src/testdir/test_substitute.mnv

Patch 8.2.5127
Problem:    Using assert_true() does not show value on failure.
Solution:   Use assert_inrange(). (closes #10593)
Files:      src/testdir/test_channel.mnv, src/testdir/test_hlsearch.mnv

Patch 8.2.5128
Problem:    Syntax highlighting disabled when using synID() in searchpair()
            skip expression and it times out. (Jaehwang Jung)
Solution:   Add the redrawtime_limit_set flag. (closes #10562)
Files:      src/globals.h, src/drawscreen.c, src/syntax.c

Patch 8.2.5129
Problem:    Timeout handling is not optimal.
Solution:   Avoid setting timeout_flag twice.  Adjust the pointer when
            stopping the regexp timeout.  Adjust variable name.
Files:      src/os_unix.c, src/os_win32.c, src/regexp.c

Patch 8.2.5130
Problem:    Edit test for mode message fails when using valgrind.
Solution:   Use WaitForAssert().  Run beep test later.
Files:      src/testdir/test_edit.mnv

Patch 8.2.5131
Problem:    Timeout implementation is not optimal.
Solution:   Further improvements for timeouts.  Add a test for searchpair()
            timeout. (partly by Paul Ollis)
Files:      src/configure.ac, src/auto/configure,
            src/testdir/test_hlsearch.mnv, src/testdir/test_search.mnv

Patch 8.2.5132
Problem:    :mkview test doesn't test much.
Solution:   Save the view with the folds closed. (James McCoy, closes #10596)
Files:      src/testdir/test_mksession.mnv

Patch 8.2.5133
Problem:    MacOS: build fails.
Solution:   Remove "#if 0" from timer_delete().
Files:      src/os_macosx.m

Patch 8.2.5134
Problem:    Function has confusing name.
Solution:   Rename tgetent_error() to invoke_tgetent().
Files:      src/term.c

Patch 8.2.5135
Problem:    Running configure gives warnings for main() return type.
Solution:   Specify "int" return type.  Avoid a few more warnings.
Files:      src/configure.ac, src/auto/configure

Patch 8.2.5136
Problem:    Debugger test fails when run with valgrind.
Solution:   Wait longer when using valgrind.
Files:      src/testdir/shared.mnv, src/testdir/test_debugger.mnv,
            src/testdir/test_search.mnv

Patch 8.2.5137
Problem:    Cannot build without the +channel feature. (Dominique Pellé)
Solution:   Add #ifdef around ch_log() calls. (closes #10598)
Files:      src/os_unix.c, src/regexp_nfa.c, src/regexp_bt.c

Patch 8.2.5138
Problem:    Various small issues.
Solution:   Various small improvements.
Files:      src/filepath.c, src/job.c, src/mark.c, src/move.c,
            src/popupwin.c, src/testdir/test_filetype.mnv

Patch 8.2.5139
Problem:    TIME_WITH_SYS_TIME is no longer supported by autoconf.
Solution:   Always include time.h.
Files:      src/os_unix.h

Patch 8.2.5140
Problem:    Seachpair timeout test is flaky.
Solution:   Mark the test as flaky so it is retried.
Files:      src/testdir/test_search.mnv

Patch 8.2.5141
Problem:    Using "volatile int" in a signal handler might be wrong.
Solution:   Use "volatile sig_atomic_t".
Files:      src/os_unix.c, src/proto/os_unix.pro, src/os_win32.c,
            src/proto/os_win32.pro, src/regexp.c,

Patch 8.2.5142
Problem:    Startup test fails if there is a status bar at the top of the
            screen. (Ernie Rael)
Solution:   Use a larger vertical offset in the test.
Files:      src/testdir/test_startup.mnv

Patch 8.2.5143
Problem:    Some tests fail when using valgrind. Spurious leak reports.
Solution:   Use WaitForAssert().  Avoid failing fork/exec.  Skip tests where a
            job is killed when running valgrind.
Files:      src/testdir/test_iminsert.mnv, src/testdir/test_popup.mnv,
            src/testdir/test_cscope.mnv, src/testdir/test_channel.mnv

Patch 8.2.5144
Problem:    With 'lazyredraw' set completion menu may be displayed wrong.
Solution:   When the popup menu is visible do not insert a screen line.
            (closes #10601)
Files:      src/screen.c

Patch 8.2.5145
Problem:    Exit test causes spurious valgrind reports.
Solution:   Skip test.  Add CheckNotValgrind.
Files:      src/testdir/test_exit.mnv, src/testdir/check.mnv,
            src/testdir/test_channel.mnv

Patch 8.2.5146
Problem:    Memory leak when substitute expression nests.
Solution:   Use an array of expression results.
Files:      src/alloc.c, src/regexp.c, src/proto/regexp.pro,
            src/errors.h, src/ex_cmds.c, src/testdir/test_substitute.mnv

Patch 8.2.5147
Problem:    Flaky test always fails on retry.
Solution:   Delete the created function.
Files:      src/testdir/test_search.mnv

Patch 8.2.5148
Problem:    Invalid memory access when using an expression on the command line.
Solution:   Make sure the position does not go negative.
Files:      src/ex_getln.c, src/testdir/test_cmdline.mnv

Patch 8.2.5149 (after 8.2.5148)
Problem:    Cannot build without the +eval feature. (Tony Mechelynck)
Solution:   Add #ifdefs.
Files:      src/ex_getln.c

Patch 8.2.5150
Problem:    Read past the end of the first line with ":0;'{".
Solution:   When on line zero check the column is valid for line one.
Files:      src/ex_docmd.c, src/testdir/test_cmdline.mnv

Patch 8.2.5151
Problem:    Reading beyond the end of the line with lisp indenting.
Solution:   Avoid going over the NUL at the end of the line.
Files:      src/indent.c, src/testdir/test_lispwords.mnv

Patch 8.2.5152
Problem:    search() gets stuck with "c" and skip evaluates to true.
Solution:   Reset the SEARCH_START option. (closes #10608)
Files:      src/evalfunc.c, src/testdir/test_syntax.mnv

Patch 8.2.5153
Problem:    "make uninstall" does not remove colors/lists.
Solution:   Add a line to the Makefile. (closes #10609)
Files:      src/Makefile

Patch 8.2.5154
Problem:    Still mentioning version8, some cosmetic issues.
Solution:   Prefer mentioning version9, cosmetic improvements.
Files:      src/version.c, src/if_tcl.c, src/regexp.c,
            src/testdir/test_gui.mnv, src/os_unix.c, Filelist, src/Makefile

Patch 8.2.5155
Problem:    In diff mode windows may get out of sync. (Gary Johnson)
Solution:   Avoid that the other window scrolls for 'cursorbind'.
Files:      src/move.c, src/testdir/test_diffmode.mnv,
            src/testdir/dumps/Test_diff_scroll_1.dump,
            src/testdir/dumps/Test_diff_scroll_2.dump

Patch 8.2.5156
Problem:    Search timeout test often fails with FreeBSD.
Solution:   Double the maximum time.
Files:      src/testdir/test_search.mnv

Patch 8.2.5157
Problem:    MS-Windows GUI: CTRL-key combinations do not always work.
Solution:   Handle special key combinations better. (closes #10613,
            closes #10602, closes #10579)
Files:      src/gui_w32.c

Patch 8.2.5158
Problem:    TSTP and INT signal tests are not run with valgrind.
Solution:   Sleep a bit longer. (closes #10614)
Files:      src/testdir/test_signals.mnv

Patch 8.2.5159 (after 8.2.5157)
Problem:    Fix for CTRL-key combinations causes more problems than it solves.
Solution:   Roll back the change.
Files:      src/gui_w32.c

Patch 8.2.5160
Problem:    Accessing invalid memory after changing terminal size.
Solution:   Adjust cmdline_row and msg_row to the value of Rows.
Files:      src/term.c

Patch 8.2.5161
Problem:    Might still access invalid memory.
Solution:   Add extra check for negative value.
Files:      src/message.c

Patch 8.2.5162
Problem:    Reading before the start of the line with BS in Replace mode.
Solution:   Check the cursor column is more than zero.
Files:      src/edit.c

Patch 8.2.5163
Problem:    Crash when deleting buffers in diff mode.
Solution:   Recompute diffs later.  Skip window without a valid buffer.
Files:      src/diff.c, src/testdir/test_diffmode.mnv

Patch 8.2.5164
Problem:    Invalid memory access after diff buffer manipulations.
Solution:   Use zero offset when change removes all lines in a diff block.
Files:      src/diff.c, src/testdir/test_diffmode.mnv

Patch 8.2.5165
Problem:    Import test fails because 'diffexpr' isn't reset.
Solution:   Reset 'diffexpr'.
Files:      src/testdir/test_mnv9_import.mnv

Patch 8.2.5166
Problem:    Test for DiffUpdated fails.
Solution:   Also accept a count of two.
Files:      src/testdir/test_diffmode.mnv

Patch 8.2.5167
Problem:    get(Fn, 'name') on funcref returns special byte code.
Solution:   Use the printable name.
Files:      src/evalfunc.c, src/testdir/test_getvar.mnv

Patch 8.2.5168
Problem:    Cannot build with Python 3.11.
Solution:   Adjust define for _PyObject_TypeCheck. (Zdenek Dohnal,
            closes #10627)
Files:      src/if_python3.c

Patch 8.2.5169
Problem:    Nested :source may use NULL pointer.
Solution:   Do not use the NULL pointer.
Files:      src/eval.c, src/testdir/test_mnvscript.mnv

Patch 8.2.5170
Problem:    Tiny issues.
Solution:   Tiny improvements.
Files:      src/misc1.c, src/screen.c, src/mnv.h

Patch 8.2.5171
Problem:    Dependencies and proto files are outdated.
Solution:   Update dependencies and proto files.  Avoid errors.
Files:      src/Makefile, src/gui_w32.c, src/os_mswin.c, src/proto/buffer.pro,
            src/proto/cmdexpand.pro, src/proto/getchar.pro,
            src/proto/help.pro, src/proto/mbyte.pro, src/proto/option.pro,
            src/proto/screen.pro, src/proto/syntax.pro,
            src/proto/textformat.pro, src/proto/textobject.pro,
            src/proto/time.pro, src/proto/gui_x11.pro, src/proto/if_tcl.pro,
            src/proto/os_mswin.pro

Patch 8.2.5172
Problem:    "make menu" still uses legacy script.
Solution:   make menu generation script use MNV9 script, fix errors.
Files:      runtime/makemenu.mnv


==============================================================================
VERSION 9.1				*version-9.1* *version9.1* *mnv-9.1*

This section is about improvements made between version 9.0 and 9.1.
The release 9.1 is dedicated to MNV's Benevolent dictator for life
|Bram-Moolenaar|.

This release has hundreds of bug fixes, there are a few new features and there
are many minor improvements.

MNV9 classes ~
------------
Support for classes and objects in a MNV9 script are added.  This is described
in |mnv9-class|.  The following features are supported:
    - Defining classes and instantiating objects
    - Multiple constructors
    - Class variables and methods
    - Object variables and methods
    - Public and protected access for variables and methods
    - Constant and final object/class variables
    - Extending classes (single inheritance)
    - Interfaces
    - Abstract classes
    - Exporting classes

Support for creating a type alias for an existing type is added.

Virtual text ~
------------
Support for adding |virtual-text| to a buffer is added.  This is useful for
language server features (e.g. inlay hints)

Smooth Scroll ~
-------------
Support for scrolling text using screen lines instead of file lines is added.
Refer to the 'smoothscroll' option.

The EditorConfig (|editorconfig-install|) and the JSON formatting
(|ft-json-plugin|) plugins are included.

OpenVMS x86_64 platform port: http://www.polarhome.com/mnv/

						*new-other-9.1*
Other improvements ~
------------------
- Support for undercurl (|t_Ce|), double underline (|t_Us|), dotted underline
  (|t_ds|) and dashed underline (|t_Ds|) termcap entries and
  highlight modes (|highlight-term|).
- The 'fillchars' option is now a global-local option and allows to
  specify the character used for the last window line.
- The |:vertical| and |:horizontal| modifiers can be used with ":wincmd ="
  command to equalize windows vertically or horizontally.
- |:defer| command to defer the execution of a function till the end of a
  function.
- Support for closing a tab page using the middle mouse button.
- Sound support in MacOS.
- The |prop_remove()| function can now remove multiple text properties.
- The |items()| function now supports a List or a String argument.
- The |repeat()| function now supports blob repeat.
- Command line completion support for |:runtime| command.
- Support for custom completion using |getcompletion()|.
- Command-line completion support for option values.
- Support for multiple "%=" items in 'statusline'.
- Support for the PmenuKind, PmenuKindSel, PmenuExtra and PmenuExtraSel
  highlight groups.
- Text properties can override 'cursorline' highlight.
- Support for echoing messages in a popup window |:echowindow|.
- Control scroll behavior when splitting windows 'splitkeep'.
- Support for mouse scrolling in the MS-Windows console.
- Support for using different keyboard protocols 'keyprotocol'
  (xterm |modifyOtherKeys| and Kitty terminal protocol (CSI u) support).
- Support for UTF-16 string index.
- Quickfix list items can have associated custom user data.
- |reverse()| supports reversing a string.
- 'switchbuf' is used by more commands.
- |undotree()| can be used with any buffer.
- |printf()| supports positional arguments.
- |col()|, |charcol()| and |virtcol()| can be used with different windows.
- Support for Python3 stable ABI (|python-stable|).
- Use |jumplist| like a stack 'jumpoptions'.
- Support for writing extended attributes in Linux (|xattr|).
- 'errorformat' supports parsing a buffer number ("%b").
- Support for building the python interface using Python 3.12.
- |matchaddpos()| is no longer limited to 8 positions.
- |readblob()| allows to read part of a file.
- 'shortmess' allows to suppress "scanning" messages.
- Add the XChaCha20v2 encryption method 'cryptmethod'.
- Add support for testing syntax files.
- Support "**" for filename expansion with bash using globstar setting.
- Add quadruple prime digraph using 4'.
- Better high dpi support on Windows.
- Various fixes for unsafe memory access, memory leaks, buffer overflows
  and potential crashes.
- Termdebug: Support for the variables window (|termdebug_variables_window|),
  moving up/down the stack frames (|termdebug-frames|) and setting temporary
  breakpoints (|:Tbreak|).
- xxd: support for using colors in the hex dump output (xxd -R).
- xxd: reversing a bit dump (xxd -r).
- xxd: customize the variable name used in the C include output (xxd -n).

							*changed-9.1*
Changed ~
-------
- The features |++builtin_terms|, |+cmdline_info|, |+cmdwin|, |+file_in_path|,
  |+float|, |+path_extra|, |+textobjects|, |+wildignore| and |+wildmenu| are
  available in all the builds.
- Support for Windows-XP is dropped (starting with v9.0.0496)
- Support for VisMNV is removed.
- The "small" and "big" builds are dropped in favor of "tiny" and "huge"
  builds.
- Mention the detected 'keyprotocol' on ":verbose map" when listing mappings.
- The optional Content-Type header is removed from the LSP messages.
- |charidx()| returns the character length when the index is one more than the
  last byte index.
- Ctrl-Q works like Ctrl-V in replace mode.
- |popup_filter_menu()| now wraps around.
- |popup_create()| now aborts on an error.
- |g<End>| now jumps to the last non-blank character.
- dot and hyphen are supported in highlight group names.
- |executable()| resolves symlinks on MS-Windows.
- Ruby 1.8 support is dropped.
- 'ttyfast' is always set.
- |virtcol2col()| returns the first byte for a multi-byte character.
- |i_CTRL-O| resets Select Mode.
- |mode()| returns more submodes.
- r with CTRL-C on a visual area replaces using CTRL-C consistently.
- The matchparen plugin no longer uses hard coded match id 3.
- The Statusline no longer uses hard coded values "^" and "=" if the
  highlighting groups for the statusline have been cleared.
- 'maxfuncdepth' setting is also used for the maximum callback depth.
- Migrate to autoconf 2.71.
- Start using C99 feature (declare variable in for loops).

						*added-9.1*
Added ~
-----

Various syntax, indent and other plugins were added.

Functions: ~

|err_teapot()|		produce error 418 or 503
|getbufoneline()|	get a single line from the specified buffer
|getcellwidths()|	get character cell width overrides
|getmouseshape()|	get name of the current mouse shape
|getscriptinfo()|	get list of sourced mnv scripts
|indexof()|		index in a List or Blob of a true expression
|instanceof()|		check if a variable is an instance of a given class
|keytrans()|		translate internal key codes to be usable with |:map|
|popup_findecho()|	get window ID for popup used for |:echowindow|
|setcmdline()|		set the current command line
|strutf16len()|		number of UTF-16 code units in a string
|swapfilelist()|	list of existing swap files in 'directory'
|test_mswin_event()|	generate an MS-Windows event for testing
|utf16idx()|		UTF-16 index of a byte in a string


Autocommands: ~

|TextChangedT|		after a change was made to the text in Terminal mode
|WinResized|		after a window in the current tab page is resized


Commands: ~

|:abstract|		declare a MNV9 abstract class
|:class|		start of a class declaration
|:defer|		call function when current function is done
|:echowindow|		same as :echomsg, but use a popup window
|:endinterface|		end of an interface declaration
|:endclass|		end of a class declaration
|:horizontal|		following window command works horizontally
|:interface|		start of an interface declaration
|:public|		prefix for a class or object member
|:static|		prefix for a class member or function
|:this|			prefix for an object member
|:type|			create a type alias


Options: ~

'endoffile'		write CTRL-Z at end of the file
'jumpoptions'		specifies how jumping is done
'keyprotocol'		what keyboard protocol to use for what terminal
'lispoptions'		changes how Lisp indenting is done
'showcmdloc'		where to show (partial) command
'smoothscroll'		scroll by screen lines when 'wrap' is set
'splitkeep'		determines scroll behavior for split windows

==============================================================================
PATCHES						*patches-9.1* *bug-fixes-9.1*
						*patches-after-9.0*

The list of patches that got included since 9.0.0.  This includes all the new
features, but does not include runtime file changes (syntax, indent, ftplugin,
documentation, etc.)

Note: authorship and the list of changed files is left out and only visible
through `git log` for each commit.

Patch 9.0.0001
Problem:    Travis CI is no longer used.
Solution:   Delete the Travis CI configuration. (Hugo Osvaldo Barrera,
            closes #10636)

Patch 9.0.0002
Problem:    Map functionality outside of map.c.
Solution:   Move f_hasmapto() to map.c.  Rename a function. (closes #10611)

Patch 9.0.0003
Problem:    Functions are global while they could be local.
Solution:   Add "static".  Add a few tests. (Yegappan Lakshmanan,
            closes #10612)

Patch 9.0.0004
Problem:    Plural messages not translated properly.
Solution:   Use ngettext() in a few more places. (Matvey Tarasov,
            closes #10606)

Patch 9.0.0005
Problem:    Hare files are not recognized.
Solution:   Add a filetype pattern. (Hugo Osvaldo Barrera, closes #10630)

Patch 9.0.0006
Problem:    Not all Visual Basic files are recognized.
Solution:   Change detection of *.cls files. (Doug Kearns)

Patch 9.0.0007
Problem:    No support for double, dotted and dashed underlines.
Solution:   Add the termcap entries and highlight modes. (closes #9553)

Patch 9.0.0008
Problem:    Cannot specify the variable name for "xxd -i".
Solution:   Add the "-name" argument. (David Gow, closes #10599)

Patch 9.0.0009
Problem:    Going past the end of a menu item with only modifier.
Solution:   Check for NUL.

Patch 9.0.0010
Problem:    Returning 0 for has('patch-9.0.0') is inconsistent.
Solution:   Make it return 1. (closes #10640)

Patch 9.0.0011
Problem:    Reading beyond the end of the line with put command.
Solution:   Adjust the end mark position.

Patch 9.0.0012
Problem:    Signature files not detected properly.
Solution:   Add a function to better detect signature files. (Doug Kearns)

Patch 9.0.0013
Problem:    Reproducing memory access errors can be difficult.
Solution:   When testing, copy each line to allocated memory, so that valgrind
            can detect accessing memory before and/or after it.  Fix uncovered
            problems.

Patch 9.0.0014
Problem:    Missing part of the test override change.
Solution:   Add the missing part.

Patch 9.0.0015
Problem:    With EXITFREE defined terminal menus are not cleared.
Solution:   Also clear terminal menus. Remove condition that is always true.
            (closes #10641)

Patch 9.0.0016
Problem:    Comparing line pointer for 'breakindent' is not reliable.
Solution:   Make a copy of the line.

Patch 9.0.0017
Problem:    Accessing memory beyond the end of the line.
Solution:   Stop Visual mode when closing a window.

Patch 9.0.0018
Problem:    Going over the end of the typeahead.
Solution:   Put a NUL after the typeahead.

Patch 9.0.0019
Problem:    Timers test not run where possible.
Solution:   Adjust platform checks. (closes #10645)

Patch 9.0.0020
Problem:    With some completion reading past end of string.
Solution:   Check the length of the string.

Patch 9.0.0021
Problem:    Invalid memory access when adding word with a control character to
            the internal spell word list.
Solution:   Disallow adding a word with control characters or a trailing
            slash.

Patch 9.0.0022
Problem:    Spell test fails.
Solution:   Expect new error is given.

Patch 9.0.0023
Problem:    On Solaris timer_create() exists but does not work.
Solution:   Adjust the configure check to run the test program.
            (closes #10647)

Patch 9.0.0024
Problem:    May access part of typeahead buf that isn't filled.
Solution:   Check length of typeahead.

Patch 9.0.0025
Problem:    Accessing beyond allocated memory when using the cmdline window in
            Ex mode.
Solution:   Use "*" instead of "'<,'>" for Visual mode.

Patch 9.0.0026
Problem:    Accessing freed memory with diff put.
Solution:   Bail out when diff pointer is no longer valid.

Patch 9.0.0027
Problem:    The command line test is getting quite big.
Solution:   Move command line window tests to a separate file.

Patch 9.0.0028
Problem:    MS-Windows: tests fail if there is a stray "runtime" directory.
Solution:   Only use a "runtime" directory if it contains "defaults.mnv".

Patch 9.0.0029
Problem:    The bitmaps/mnv.ico file is not in the distribution.
Solution:   Add it back to the distribution.  Adjust the build rules to have
            it end up in the right place.

Patch 9.0.0030
Problem:    Matchfuzzy test depends on path of current directory.
Solution:   Use fnamemodify() to remove the path. (Robin Becker,
            closes #10650)

Patch 9.0.0031
Problem:    <cmod> of user command does not have correct verbose value.
Solution:   Use the value from the command modifier. (closes #10651)

Patch 9.0.0032
Problem:    In the quickfix window 'cursorline' overrules QuickFixLine
            highlighting.
Solution:   Combine the attributes.  Add a test. (closes #10654)

Patch 9.0.0033
Problem:    On a Belgian keyboard CTRL-[ does not work.
Solution:   Handle GDK_KEY_dead_circumflex. (Anton Sharonov, closes #10658)

Patch 9.0.0034
Problem:    Spell tests do not always clear the word list.
Solution:   Clear the word list in TearDown(). (closes #10659)

Patch 9.0.0035
Problem:    Spell dump may go beyond end of an array.
Solution:   Limit the word length.

Patch 9.0.0036
Problem:    'fillchars' cannot have window-local values.
Solution:   Make 'fillchars' global-local. (closes #5206)

Patch 9.0.0037
Problem:    Build error.
Solution:   Add missing change.

Patch 9.0.0038
Problem:    'listchars' test fails.
Solution:   Use window-local value after setting the global value

Patch 9.0.0039
Problem:    Not all systems have GDK_KEY_dead_circumflex. (Hisashi T Fujinaka)
Solution:   Add an #ifdef.

Patch 9.0.0040
Problem:    Use of set_chars_option() is confusing.
Solution:   Add "apply" argument to store the result or not.  Merge similar
            code.

Patch 9.0.0041
Problem:    A couple of filetype patterns do not have "*" before "/etc".
Solution:   Add the star. (Jonas Strittmatter, closes #10662)

Patch 9.0.0042
Problem:    Missing change for filetype detection.
Solution:   Include change to detect guile from shebang line.

Patch 9.0.0043
Problem:    Insufficient testing for bracket commands.
Solution:   Add a few more tests. (closes #10668)

Patch 9.0.0044
Problem:    Typos in comments, wrapping lines.
Solution:   Adjust comments.  Wrap lines.

Patch 9.0.0045
Problem:    Reading past end of completion with a long line and 'infercase'
            set.
Solution:   Allocate the string if needed.

Patch 9.0.0046
Problem:    Reading past end of completion with duplicate match.
Solution:   Check string length

Patch 9.0.0047
Problem:    Using freed memory with recursive substitute.
Solution:   Always make a copy for reg_prev_sub.

Patch 9.0.0048
Problem:    Cursor in wrong column with mouse click after concealed text.
Solution:   Store the text column when drawing text.

Patch 9.0.0049
Problem:    Csv and tsv files are not recognized.
Solution:   Add patterns for csv and tsv files. (Leandro Lourenci,
            closes #10680)

Patch 9.0.0050
Problem:    Split else-of is confusing.
Solution:   Join the lines. (closes #10696)

Patch 9.0.0051
Problem:    Using CTRL-C with :append may hang MNV.
Solution:   Reset got_int. (closes #10729, closes #10728)

Patch 9.0.0052
Problem:    "zG" may throw an error if invalid character follows.
Solution:   Pass the word length to valid_spell_word(). (Ken Takata,
            closes #10737)

Patch 9.0.0053
Problem:    E1281 not tested with the old regexp engine.
Solution:   Loop over the values of 'regexp'. (Dominique Pellé, closes #10695)

Patch 9.0.0054
Problem:    Compiler warning for size_t to int conversion.
Solution:   Add type cast. (Mike Williams, closes #10741)

Patch 9.0.0055
Problem:    Bitbake files are not detected.
Solution:   Add bitbake filetype detection by file name and contents. (Gregory
            Anders, closes #10697)

Patch 9.0.0056
Problem:    Wrong line number reported when :cexpr fails in :def function.
Solution:   Set line_number before executing :cexpr. (closes #10735)

Patch 9.0.0057
Problem:    has('patch-xxx') returns true.
Solution:   Check for digit. (closes #10751)

Patch 9.0.0058
Problem:    Win32: cannot test low level events.
Solution:   Add "sendevent" to test_gui_event(). (Yegappan Lakshmanan,
            closes #10679)

Patch 9.0.0059
Problem:    Test file has wrong name.
Solution:   Rename the file.  Various small fixes. (closes #10674)

Patch 9.0.0060
Problem:    Accessing uninitialized memory when completing long line.
Solution:   Terminate string with NUL.

Patch 9.0.0061
Problem:    ml_get error with nested autocommand.
Solution:   Also check line numbers for a nested autocommand. (closes #10761)

Patch 9.0.0062
Problem:    Compiler warnings for signed/unsigned char.
Solution:   Add type casts. (John Marriott)

Patch 9.0.0063
Problem:    Too many type casts for dict_get functions.
Solution:   Change the key argument from "char_u *" to "char *".

Patch 9.0.0064
Problem:    Confusing error when using "q:" in command line window.
Solution:   Check for the situation and give a better error message.
            (closes #10756)

Patch 9.0.0065
Problem:    Cross-compiling doesn't work because of timer_create check.
Solution:   Use AC_CACHE_CHECK(). (Richard Purdie, closes #10777)

Patch 9.0.0066
Problem:    Switching window unnecessarily when getting buffer options.
Solution:   Do not switch window when getting buffer options. (closes #10767)

Patch 9.0.0067
Problem:    Cannot show virtual text.
Solution:   Initial changes for virtual text support, using text properties.

Patch 9.0.0068
Problem:    Build fails with tiny features.
Solution:   Add #ifdef.

Patch 9.0.0069
Problem:    Leaking memory when using text prop with inserted text.
Solution:   Clear the growarray with text.

Patch 9.0.0070
Problem:    Using utfc_ptr2char_len() when length is negative.
Solution:   Check value of length. (closes #10760)

Patch 9.0.0071
Problem:    Command overlaps with printed text in scrollback.
Solution:   Clear until end-of-line and use correct message chunk.
            (closes #10765, closes #10764)

Patch 9.0.0072
Problem:    Compiler warning for uninitialized variable.
Solution:   Initialize it. (John Marriott)

Patch 9.0.0073
Problem:    Too many files recognized as bsdl.
Solution:   Use pattern "*.bsd" instead of "*bsd". (Martin Tournoij,
            closes #10783)

Patch 9.0.0074
Problem:    Coverity warns for double free.
Solution:   Reset cts_text_prop_count when freeing cts_text_props.

Patch 9.0.0075
Problem:    Some compilers warn for using an uninitialized variable. (Tony
            Mechelynck)
Solution:   Initialize the variable.

Patch 9.0.0076
Problem:    No test for what patch 8.1.1424 fixes.
Solution:   Add a test. (closes #10789)

Patch 9.0.0077
Problem:    When switching window in autocmd the restored cursor position may
            be wrong.
Solution:   Do not restore the cursor if it was not set. (closes #10775)

Patch 9.0.0078
Problem:    Star register is changed when deleting and both "unnamed" and
            "unnamedplus" are in 'clipboard'.
Solution:   Make the use of the star register work as documented. (Ernie Rael,
            closes #10669)

Patch 9.0.0079
Problem:    Error in autoload script not reported for 'foldexpr'.
Solution:   Reset "emsg_off" when auto-loading a script. (closes #10685)

Patch 9.0.0080
Problem:    Compiler warning for size_t to int conversion.
Solution:   Add type casts. (Mike Williams, closes #10795)

Patch 9.0.0081
Problem:    Command line completion of user command may have duplicates.
            (Dani Dickstein)
Solution:   Skip global user command if an identical buffer-local one is
            defined. (closes #10797)

Patch 9.0.0082
Problem:    Cannot interrupt global command from command line.
Solution:   Reset got_int in another place. (closes #10739)

Patch 9.0.0083
Problem:    ModeChanged event not triggered when leaving the cmdline window.
Solution:   Call may_trigger_modechanged(). (closes #10791)

Patch 9.0.0084
Problem:    Using "terraform" filetype for .tfvars file is bad.
Solution:   use "terraform-vars", so that different completion and other
            mechanisms can be used. (Radek Simko, closes #10755)

Patch 9.0.0085
Problem:    ":write" fails after ":file name" and the ":edit".
Solution:   Reset BF_NOTEDITED when using ":edit". (closes #10790)

Patch 9.0.0086
Problem:    Tabline is not redrawn when entering command line.
Solution:   Set "redraw_tabline". (closes #10771)

Patch 9.0.0087
Problem:    MS-Windows: CTRL-[ on Belgian keyboard does not work like Esc.
Solution:   Figure out what the key code means. (Anton Sharonov,
            closes #10687, closes #10454)

Patch 9.0.0088
Problem:    Pattern for detecting bitbake files is not sufficient.
Solution:   Adjust the pattern. (Gregory Anders, closes #10743)

Patch 9.0.0089
Problem:    Fuzzy argument completion doesn't work for shell commands.
Solution:   Check for cmdidx not being CMD_bang. (Yegappan Lakshmanan,
            closes #10769)

Patch 9.0.0090
Problem:    No error when assigning bool to a string option with setwinvar().
Solution:   Give an error (closes #10766)

Patch 9.0.0091
Problem:    Duplicate error number.
Solution:   Use unique error number.

Patch 9.0.0092
Problem:    Plugins cannot change v:completed_item.
Solution:   Make v:completed_item writeable. (Shougo Matsushita,
            closes #10801)

Patch 9.0.0093
Problem:    Sway config files are recognized as i3config.
Solution:   Recognize swayconfig separately. (James Eapen, closes #10672)

Patch 9.0.0094
Problem:    Cursor restored unexpected with nested autocommand.
Solution:   Do not restore the cursor when it was moved intentionally.
            (closes #10780)

Patch 9.0.0095
Problem:    Conditions are always true.
Solution:   Remove useless conditions. (closes #10802)

Patch 9.0.0096
Problem:    Flag "new_value_alloced" is always true.
Solution:   Remove "new_value_alloced". (closes #10792)

Patch 9.0.0097
Problem:    Long quickfix line is truncated for :clist.
Solution:   Allocate a buffer if needed.

Patch 9.0.0098
Problem:    missing include file in timer_create configure check.
Solution:   Include stdlib.h.

Patch 9.0.0099
Problem:    Scrollback can be wrong after redrawing the command line.
Solution:   Clear unfinished scrollback when redrawing. (closes #10807)

Patch 9.0.0100
Problem:    Get hit-enter prompt for system() when '!' is in 'guioptions'.
Solution:   Do not call wait_return() when not redrawing. (closes #3327)

Patch 9.0.0101
Problem:    Invalid memory access in diff mode with "dp" and undo.
Solution:   Make sure the line number does not go below one.

Patch 9.0.0102
Problem:    Reading past end of line with insert mode completion.
Solution:   Check text length.

Patch 9.0.0103
Problem:    If running configure with cached results -lrt may be missing.
Solution:   Use two cache variables, one without and one with -lrt.
            (closes #10799)  Swap checks to avoid adding -lrt unnecessarily.

Patch 9.0.0104
Problem:    Going beyond allocated memory when evaluating string constant.
Solution:   Properly skip over <Key> form.

Patch 9.0.0105
Problem:    Illegal memory access when pattern starts with illegal byte.
Solution:   Do not match a character with an illegal byte.

Patch 9.0.0106
Problem:    Illegal byte regexp test doesn't fail when fix is reversed.
Solution:   Make sure illegal bytes end up in sourced script file.

Patch 9.0.0107
Problem:    Condition always has the same value.
Solution:   Remove the condition.

Patch 9.0.0108
Problem:    Configure check for timer_create may give wrong error.
Solution:   Give a warning instead of an error.

Patch 9.0.0109
Problem:    Writing over the end of a buffer on stack when making list of
            spell suggestions.
Solution:   Make sure suggested word is not too long. (closes #10812)

Patch 9.0.0110
Problem:    Help tag generation picks up words in code examples.
Solution:   Skip over examples. (Carlo Teubner, closes #10813)

Patch 9.0.0111
Problem:    "nocombine" is missing from synIDattr().
Solution:   Add "nocombine". (Muni Tanjim, closes #10816)

Patch 9.0.0112
Problem:    MS-Windows: test fails because file already exists.
Solution:   Wait a little while until the file is gone.

Patch 9.0.0113
Problem:    has() is not strict about parsing the patch version.
Solution:   Check the version more strictly. (Ken Takata, closes #10752)

Patch 9.0.0114
Problem:    The command line takes up space even when not used.
Solution:   Allow for 'cmdheight' to be set to zero. (Shougo Matsushita,
            closes #10675, closes #940)

Patch 9.0.0115
Problem:    When 'cmdheight' is zero pressing ':' may scroll a window.
Solution:   Add the made_cmdheight_nonzero flag and set 'scrolloff' to zero.

Patch 9.0.0116
Problem:    Virtual text not displayed if 'signcolumn' is "yes".
Solution:   Set c_extra and c_final to NUL.

Patch 9.0.0117
Problem:    Text of removed textprop with text is not freed.
Solution:   Free the text when the property is removed.  Reduce the array size
            to ignore NULLs at the end.

Patch 9.0.0118
Problem:    No test for what patch 9.0.0155 fixes.
Solution:   Add a test. Fix typos.  (closes #10822)

Patch 9.0.0119
Problem:    Tiny chance that creating a backup file fails.
Solution:   Check for EEXIST error. (Ken Takata, closes #10821)

Patch 9.0.0120
Problem:    MS-Windows GUI: cannot use AltGr + Space.
Solution:   Check for VK_MENU instead of VK_LMENU. (Anton Sharonov,
            closes #10820, closes #10753)

Patch 9.0.0121
Problem:    Cannot put virtual text after or below a line.
Solution:   Add "text_align" and "text_wrap" arguments.

Patch 9.0.0122
Problem:    Breakindent test fails.
Solution:   Fix condition.

Patch 9.0.0123
Problem:    Cannot build with small features.
Solution:   Add #ifdef.

Patch 9.0.0124
Problem:    Code has more indent than needed.
Solution:   Use continue and return statements. (closes #10824)

Patch 9.0.0125
Problem:    Cursor positioned wrong with virtual text after the line.
Solution:   Clear cts_with_trailing.

Patch 9.0.0126
Problem:    Expanding file names fails in directory with more than 255
            entries.
Solution:   Use an int instead of char_u to count. (John Drouhard,
            closes #10818)

Patch 9.0.0127
Problem:    Unused variable.
Solution:   Remove the variable. (closes #10829)

Patch 9.0.0128
Problem:    Coverity complains about possible double free.
Solution:   Clear the pointer to avoid warnings.

Patch 9.0.0129
Problem:    Compiler warning for int/size_t usage.
Solution:   Add a type cast. (Mike Williams, closes #10830)

Patch 9.0.0130
Problem:    Cursor position wrong when inserting around virtual text.
Solution:   Update the cursor position properly.

Patch 9.0.0131
Problem:    Virtual text with Tab is not displayed correctly.
Solution:   Change any Tab to a space.

Patch 9.0.0132
Problem:    Multi-byte characters in virtual text not handled correctly.
Solution:   Count screen cells instead of bytes.

Patch 9.0.0133
Problem:    Virtual text after line moves to joined line. (Yegappan
            Lakshmanan)
Solution:   When joining lines only keep virtual text after the last line.

Patch 9.0.0134
Problem:    No test for text property with column zero.
Solution:   Add a test.  Add message to assert for no open popups.

Patch 9.0.0135
Problem:    Comment about tabpage line above the wrong code.
Solution:   Move the comment. (closes #10836)

Patch 9.0.0136
Problem:    After CTRL-Left-mouse click a mouse scroll also has CTRL.
Solution:   Reset orig_mouse_code also for wheel events. (closes #10840)

Patch 9.0.0137
Problem:    Debugger test may fail when $CWD is very long.
Solution:   Skip the test if the directory name is too long. (James McCoy,
            closes #10837)

Patch 9.0.0138
Problem:    Not enough characters accepted for 'spellfile'.
Solution:   Add mnv_is_fname_char() and use it for 'spellfile'.

Patch 9.0.0139
Problem:    Truncating virtual text after a line not implemented.
            Cursor positioning wrong with Newline in the text.
Solution:   Implement truncating.  Disallow control characters in the text.
            (closes #10842)

Patch 9.0.0140
Problem:    execute() does not use the "legacy" command modifier.
Solution:   pass the command modifier in sticky_cmdmod_flags. (Kota Kato,
            closes #10845)

Patch 9.0.0141
Problem:    "delmenu" does not remove autocommands. Running menu test function
            alone fails.
Solution:   Delete autocommands Make sure there is at least one menu.
            (closes #10848)

Patch 9.0.0142
Problem:    Crash when adding and removing virtual text. (Ben Jackson)
Solution:   Check that the text of the text property still exists.

Patch 9.0.0143
Problem:    Cursor positioned after virtual text in empty line.
Solution:   Keep cursor in the first column. (closes #10786)

Patch 9.0.0144
Problem:    Text property cannot override 'cursorline' highlight.
Solution:   Add the "override" flag to prop_type_add(). (closes #5533,
            closes #8225).

Patch 9.0.0145
Problem:    Substitute that joins lines drops text properties.
Solution:   Move text properties of the last line to the new line.

Patch 9.0.0146
Problem:    Missing part of change for "override" flag.
Solution:   Add the missing change.

Patch 9.0.0147
Problem:    Cursor positioned wrong after two text properties with virtual
            text and "below" alignment. (Tim Pope)
Solution:   Do not stop after a text property using MAXCOL. (closes #10849)

Patch 9.0.0148
Problem:    A "below" aligned text property gets 'showbreak' displayed.
Solution:   Do not use 'showbreak' before or in virtual text. (issue #10851)

Patch 9.0.0149
Problem:    Test for fuzzy completion fails sometimes.
Solution:   Use a more specific file name to minimize the chance of matching a
            random directory name. (closes #10854)

Patch 9.0.0150
Problem:    Error for using #{ in an expression is a bit confusing.
Solution:   Mention that this error is only given for an expression.
            Avoid giving the error more than once. (closes #10855)

Patch 9.0.0151
Problem:    A "below" aligned text property does not work with 'nowrap'.
Solution:   Start a new screen line to display the virtual text.
            (closes #10851)

Patch 9.0.0152
Problem:    Warning for unused argument in small build.
Solution:   Add "UNUSED".

Patch 9.0.0153
Problem:    No fold and sign column for virtual text with "below" align and
            'nowrap'.
Solution:   Go back to draw state WL_START when moving to the next line.
            (closes #10851)

Patch 9.0.0154
Problem:    Text properties wrong after splitting a line.
Solution:   Check for text properties after the line. (closes #10857)

Patch 9.0.0155

Patch 9.0.0156
Problem:    Giving E1170 only in an expression is confusing.
Solution:   Give E1170 for any "#{ comment". (closes #10855)

Patch 9.0.0157
Problem:    'showbreak' displayed below truncated "after" text prop.
Solution:   Suppress 'showbreak' when "after" prop doesn't wrap.

Patch 9.0.0158
Problem:    With 'nowrap' "below" property not displayed correctly.
Solution:   Adjust virtual text with 'nowrap', do not truncate.

Patch 9.0.0159
Problem:    Cannot build with small features.
Solution:   Check for E1170 only with FEAT_EVAL.

Patch 9.0.0160
Problem:    Some diff mode tests fail.
Solution:   Only advance "ptr" when a text property follows.

Patch 9.0.0161
Problem:    Warning for uninitialized variable. (Tony Mechelynck)
Solution:   Initialize line_attr_save.

Patch 9.0.0162
Problem:    Text property "below" gets indent if 'breakindent' is set. (Tim
            Pope)
Solution:   Do not put indent before text property. (closes #10859)

Patch 9.0.0163
Problem:    Text property not adjusted for text inserted with "p".
Solution:   Adjust column and length of text properties.

Patch 9.0.0164
Problem:    Using freed memory with put command.
Solution:   Get byte offset before replacing the line.

Patch 9.0.0165
Problem:    Looking up a text property type by ID is slow.
Solution:   Keep an array of property types sorted on ID.

Patch 9.0.0166
Problem:    When using text properties the line text length is computed twice.
Solution:   If the text length was already computed don't do it again.

Patch 9.0.0167
Problem:    Checking for text properties could be a bit more efficient.
Solution:   Return early when there are no text properties.  Update TODO
            items.

Patch 9.0.0168
Problem:    Cursor positioned wrong with two virtual text properties close
            together. (Ben Jackson)
Solution:   Add the original size, not the computed one. (closes #10864)

Patch 9.0.0169
Problem:    Insufficient testing for line2byte() with text properties.
Solution:   Add tests with a lot of text.

Patch 9.0.0170
Problem:    Various minor code formatting issues.
Solution:   Improve code formatting.

Patch 9.0.0171
Problem:    Quickfix line highlight is overruled by 'cursorline'.
Solution:   Reverse the combination of attributes. (closes #10654)

Patch 9.0.0172
Problem:    Trying to allocate zero bytes.
Solution:   Do not allocate the proptype array when there are none.
            (closes #10867)

Patch 9.0.0173
Problem:    Assert fails only on MS-Windows.
Solution:   Disable the assert for now.

Patch 9.0.0174
Problem:    No error for using "#{ comment" in a compiled function.
Solution:   Make error checking for "#{" consistent. (closes #10855)

Patch 9.0.0175
Problem:    Spell checking for capital not working with trailing space.
Solution:   Do not calculate cap_col at the end of the line. (Christian
            Brabandt, closes #10870, issue #10838)

Patch 9.0.0176
Problem:    Checking character options is duplicated and incomplete.
Solution:   Move checking to check_chars_options(). (closes #10863)

Patch 9.0.0177
Problem:    Cursor position wrong with 'virtualedit' and mouse click after end
            of the line. (Hermann Mayer)
Solution:   Do not use ScreenCols[] when 'virtualedit' is active.
            (closes #10868)

Patch 9.0.0178
Problem:    Cursor position wrong with virtual text before Tab.
Solution:   Use the byte length, not the cell with, to compare the column.
            Correct tab size after text prop. (closes #10866)

Patch 9.0.0179
Problem:    Cursor position wrong with wrapping virtual text in empty line.
Solution:   Adjust handling of an empty line. (closes #10875)

Patch 9.0.0180
Problem:    Stray logfile appears when running tests.
Solution:   Remove ch_logfile() calls.

Patch 9.0.0181
Problem:    Textprop test with line2byte() fails on MS-Windows.
Solution:   Fix updating chunks in ml_delete_int().

Patch 9.0.0182
Problem:    Quarto files are not recognized.
Solution:   Recognize quarto files by the extension. (Jonas Strittmatter,
            closes #10880)

Patch 9.0.0183
Problem:    Extra space after virtual text when 'linebreak' is set.
Solution:   Do not count virtual text when getting linebreak value.
            (closes #10884)

Patch 9.0.0184
Problem:    Virtual text prop highlight continues after truncation.
Solution:   Recompute the length of attributes.

Patch 9.0.0185
Problem:    Virtual text does not show if there is a text prop at same
            position. (Ben Jackson)
Solution:   Fix the sorting of properties. (closes #10879)

Patch 9.0.0186
Problem:    Virtual text without highlighting does not show. (Ben Jackson)
Solution:   Use a text property when it has highlighting or when it has text.
            (closes #10878)

Patch 9.0.0187
Problem:    Command line height changes when maximizing window height.
Solution:   Do not change the command line height. (closes #10885)

Patch 9.0.0188
Problem:    Strange effects when using virtual text with "text_align" and
            non-zero column. (Martin Tournoij)
Solution:   Give an error. (closes #10888)

Patch 9.0.0189
Problem:    Invalid memory access for text prop without highlight.
Solution:   Check for a valid highlight ID.

Patch 9.0.0190
Problem:    The way 'cmdheight' can be made zero is inconsistent.
Solution:   Only make 'cmdheight' zero when setting it explicitly, not when
            resizing windows. (closes #10890)

Patch 9.0.0191
Problem:    Messages test fails; window size incorrect when 'cmdheight' is
            made smaller.
Solution:   Properly cleanup after test with cmdheight zero.  Resize windows
            correctly when 'cmdheight' gets smaller.

Patch 9.0.0192
Problem:    Possible invalid memory access when 'cmdheight' is zero. (Martin
            Tournoij)
Solution:   Avoid going over the end of w_lines[] when w_height is Rows.
            (closes #10882)

Patch 9.0.0193
Problem:    Search and match highlight interfere with virtual text highlight.
            (Ben Jackson)
Solution:   Check for match highlight after text properties.  Reset and
            restore search highlight when showing virtual text.
            (closes #10892)

Patch 9.0.0194
Problem:    Cursor displayed in wrong position after removing text prop. (Ben
            Jackson)
Solution:   Invalidate the cursor position. (closes #10898)

Patch 9.0.0195
Problem:    Metafun files are not recognized.
Solution:   Add filetype detection patterns.

Patch 9.0.0196
Problem:    Finding value in list may require a for loop.
Solution:   Add indexof(). (Yegappan Lakshmanan, closes #10903)

Patch 9.0.0197
Problem:    Astro files are not detected.
Solution:   Add a pattern to match Astro files. (Emilia Zapata, closes #10904)

Patch 9.0.0198
Problem:    ml_get error when switching buffer in Visual mode.
Solution:   End Visual mode when switching buffer. (closes #10902)

Patch 9.0.0199
Problem:    Cursor position wrong with two right-aligned virtual texts.
Solution:   Add the padding for right-alignment. (issue #10906)

Patch 9.0.0200
Problem:    cursor in a wrong position if 'wrap' is off and using two right
            aligned text props in one line.
Solution:   Count an extra line for a right aligned text property after a
            below or right aligned text property. (issue #10909)

Patch 9.0.0201
Problem:    CursorLine highlight overrules virtual text highlight.
Solution:   Let extra attribute overrule line attribute. (closes #10909)

Patch 9.0.0202
Problem:    Code and help for indexof() is not ideal.
Solution:   Refactor the code, improve the help. (Yegappan Lakshmanan,
            closes #10908)

Patch 9.0.0203
Problem:    Confusing variable name.
Solution:   Use "prim_aep" instead of "spell_aep".

Patch 9.0.0204
Problem:    indexof() may leak memory.
Solution:   Free allocated values. (Yegappan Lakshmanan, closes #10916)

Patch 9.0.0205
Problem:    Cursor in wrong position when inserting after virtual text. (Ben
            Jackson)
Solution:   Put the cursor after the virtual text, where the text will be
            inserted. (closes #10914)

Patch 9.0.0206
Problem:    Redraw flags are not named specifically.
Solution:   Prefix "UPD_" to the flags, for UPDate_screen().

Patch 9.0.0207
Problem:    Stacktrace not shown when debugging.
Solution:   Set msg_scroll in msg_source(). (closes #10917)

Patch 9.0.0208
Problem:    The override flag has no effect for virtual text. (Ben Jackson)
Solution:   Make the override flag work. (closes #10915)

Patch 9.0.0209
Problem:    Build error with small features.
Solution:   Add #ifdef.

Patch 9.0.0210
Problem:    'list' mode does not work properly with virtual text.
Solution:   Show the "$" at the right position. (closes #10913)

Patch 9.0.0211
Problem:    Invalid memory access when compiling :lockvar.
Solution:   Don't read past the end of the line.

Patch 9.0.0212
Problem:    Invalid memory access when compiling :unlet.
Solution:   Don't read past the end of the line.

Patch 9.0.0213
Problem:    Using freed memory with error in assert argument.
Solution:   Make a copy of the error.

Patch 9.0.0214
Problem:    Splitting a line may duplicate virtual text. (Ben Jackson)
Solution:   Don't duplicate a text property with virtual text. Make
            auto-indenting work better. (closes #10919)

Patch 9.0.0215
Problem:    Not passing APC_INDENT flag.
Solution:   Pass the flag where it's needed.

Patch 9.0.0216
Problem:    Undo earlier test sometimes fails on MS-Windows.
Solution:   Use another file name.

Patch 9.0.0217
Problem:    'shellslash' works differently when sourcing a script again.
Solution:   Use the name from the script item. (closes #10920)

Patch 9.0.0218
Problem:    Reading before the start of the line.
Solution:   When displaying "$" check the column is not negative.

Patch 9.0.0219
Problem:    Cannot make a funcref with "s:func" in a def function in legacy
            script.
Solution:   Allow for using a lower case function name after "s:". (Kota Kato,
            closes #10926)

Patch 9.0.0220
Problem:    Invalid memory access with for loop over NULL string.
Solution:   Make sure mb_ptr2len() consistently returns zero for NUL.

Patch 9.0.0221
Problem:    Accessing freed memory if compiling nested function fails.
Solution:   Mess up the variable name so that it won't be found.

Patch 9.0.0222
Problem:    No good reason why text objects are only in larger builds.
Solution:   Graduate +textobjects.

Patch 9.0.0223
Problem:    Typo in diffmode test.
Solution:   Fix the typo. (closes #10932)

Patch 9.0.0224
Problem:    Using NULL pointer when skipping compiled code.
Solution:   Check for skipping.

Patch 9.0.0225
Problem:    Using freed memory with multiple line breaks in expression.
Solution:   Free eval_tofree later.

Patch 9.0.0226
Problem:    job_start() test may fail under valgrind.
Solution:   Wait until the job is running.

Patch 9.0.0227
Problem:    Cannot read error message when abort() is called.
Solution:   Output a newline before calling abort().

Patch 9.0.0228
Problem:    Crash when pattern looks below the last line.
Solution:   Consider invalid lines to be empty. (closes #10938)

Patch 9.0.0229
Problem:    MNV9: error message for missing type is not clear.
Solution:   Mention the context. (issue #10944)

Patch 9.0.0230
Problem:    No error for comma missing in list in :def function.
Solution:   Check for missing comma. (closes #10943)

Patch 9.0.0231
Problem:    Expanding "**" may loop forever with directory links.
Solution:   Check for being interrupted. (closes #10946)

Patch 9.0.0232
Problem:    Test with BufNewFile autocmd is flaky.
Solution:   Use another file name.

Patch 9.0.0233
Problem:    Removing multiple text properties takes many calls.
Solution:   Pass a list to prop_remove(). (Ben Jackson, closes #10945)

Patch 9.0.0234
Problem:    Cannot make difference between the end of :normal and a character
            in its argument.
Solution:   Add the "typebuf_was_empty" flag. (closes #10950)

Patch 9.0.0235
Problem:    'autoshelldir' does not work with chunked response.
Solution:   Collect chunks before parsing OSC 7. (closes #10949)

Patch 9.0.0236
Problem:    Popup menu not removed when 'wildmenu' reset while it is visible.
Solution:   Do not check p_wmnu, only pum_visible(). (closes #10953)

Patch 9.0.0237
Problem:    Mac: cannot build if dispatch.h is not available.
Solution:   Add #ifdef. (Evan Miller, closes #10954)

Patch 9.0.0238
Problem:    Shift-Tab shows matches on cmdline when 'wildmenu' is off.
Solution:   Only show matches when 'wildmode' contains "list". (closes #10951)

Patch 9.0.0239
Problem:    Build failure without the +wildmenu feature.
Solution:   Move parenthesis.

Patch 9.0.0240
Problem:    Crash when using ":mkspell" with an empty .dic file.
Solution:   Check for an empty word tree.

Patch 9.0.0241
Problem:    "make install" does not install shared syntax file. (James McCoy)
Solution:   Install and uninstall the shared syntax files. (closes #10956)

Patch 9.0.0242
Problem:    "make install" still fails. (Wilhelm Payne)
Solution:   Also add the directory to installrtbase. (Dominique Pellé)

Patch 9.0.0243
Problem:    Text properties "below" sort differently on MS-Windows.
Solution:   Use the ID as a tie breaker. (closes #10958)

Patch 9.0.0244
Problem:    Cannot easily get the list of sourced scripts.
Solution:   Add the getscriptinfo() function. (Yegappan Lakshmanan,
            closes #10957)

Patch 9.0.0245
Problem:    Mechanism to prevent recursive screen updating is incomplete.
Solution:   Add "redraw_not_allowed" and set it in build_stl_str_hl().
            (issue #10952)

Patch 9.0.0246
Problem:    Using freed memory when 'tagfunc' deletes the buffer.
Solution:   Make a copy of the tag name.

Patch 9.0.0247
Problem:    Cannot add padding to virtual text without highlight.
Solution:   Add the "text_padding_left" argument. (issue #10906)

Patch 9.0.0248
Problem:    Duplicate code in finding a script in the execution stack.
Solution:   Reduce duplicate code. (closes #10961)

Patch 9.0.0249
Problem:    No test for what 9.0.0234 fixes.
Solution:   Add a test. (issue #10950)

Patch 9.0.0250
Problem:    Slightly inconsistent error messages.
Solution:   Make it "Using a Float". (closes #10959)

Patch 9.0.0251
Problem:    Test output shows up in git.
Solution:   Ignore the "failed" directory. (Yao-Ching Huang, closes #10969)

Patch 9.0.0252
Problem:    Cursor in wrong place after virtual text.
Solution:   Do not change the length of a virtual text property.
            (closes #10964)

Patch 9.0.0253
Problem:    A symlink to an autoload script results in two entries in the list
            of scripts, items expected in one are actually in the other.
Solution:   Have one script item refer to the actually sourced one.
            (closes #10960)

Patch 9.0.0254
Problem:    Typo in function name.
Solution:   Rename the function. (closes #10971)

Patch 9.0.0255
Problem:    Build failure without the eval feature.
Solution:   Add #ifdef.

Patch 9.0.0256
Problem:    Compiler warning for uninitialized variables.
Solution:   Initialize the variables.

Patch 9.0.0257
Problem:    "->" in ":scriptnames" output not tested yet.
Solution:   Add a check.

Patch 9.0.0258
Problem:    MS-Windows installer skips syntax/shared.
Solution:   Use "File /r" in the installer script. (Ken Takata, closes #10972)

Patch 9.0.0259
Problem:    Crash with mouse click when not initialized.
Solution:   Check TabPageIdxs[] is not NULL.

Patch 9.0.0260
Problem:    Using freed memory when using 'quickfixtextfunc' recursively.
Solution:   Do not allow for recursion.

Patch 9.0.0261
Problem:    bufload() reads a file even if the name is not a file name. (Cyker
            Way)
Solution:   Do not read the file when the buffer name is not a file name.
            (closes #10975)

Patch 9.0.0262
Problem:    Build failure without the +quickfix feature.
Solution:   Add #ifdef.

Patch 9.0.0263
Problem:    Too many #ifdefs.
Solution:   Make some functions always available.

Patch 9.0.0264
Problem:    CI still runs on Ubuntu 18.04.
Solution:   Run CI on Ubuntu 20.04. (closes #10582)

Patch 9.0.0265
Problem:    No good reason why the "gf" command is not in the tiny version.
Solution:   Graduate the file_in_path feature.

Patch 9.0.0266
Problem:    Compiler warning for unused argument.
Solution:   Add UNUSED.

Patch 9.0.0267
Problem:    Coverity workflow still uses Ubuntu 18.04.
Solution:   Use Ubuntu 20.04

Patch 9.0.0268
Problem:    Build error without the +eval feature.
Solution:   Remove #ifdef.

Patch 9.0.0269
Problem:    getscriptinfo() does not include the version.  Cannot select
            entries by script name.
Solution:   Add the "version" item and the "name" argument. (Yegappan
            Lakshmanan, closes #10962)

Patch 9.0.0270
Problem:    Some values of 'path' and 'tags' do not work in the tiny version.
Solution:   Graduate the +path_extra feature.

Patch 9.0.0271
Problem:    Using INIT() in non-header files.
Solution:   Remove INIT(). (closes #10981)

Patch 9.0.0272
Problem:    BufReadCmd not triggered when loading a "nofile" buffer. (Maxim
            Kim)
Solution:   Call readfile() but bail out before reading a file.
            (closes #10983)

Patch 9.0.0273
Problem:    Konsole termresponse not recognized.
Solution:   Handle Konsole like libvterm, set 'ttymouse' to "sgr".
            (closes #10990)

Patch 9.0.0274
Problem:    Netrw plugin does not show remote files.
Solution:   Do read a file when 'buftype' is "acwrite". (closes #10983)

Patch 9.0.0275
Problem:    BufEnter not triggered when using ":edit" in "nofile" buffer.
Solution:   Let readfile() return NOTDONE. (closes #10986)

Patch 9.0.0276
Problem:    'buftype' values not sufficiently tested.
Solution:   Add and extend tests with 'buftype' values. (closes #10988)

Patch 9.0.0277
Problem:    Coverity CI: update-alternatives not needed with Ubuntu 20.04.
Solution:   Remove update-alternatives for Lua. (closes #10987)

Patch 9.0.0278
Problem:    The +wildignore feature is nearly always available.
Solution:   Graduate +wildignore for consistency.

Patch 9.0.0279
Problem:    The tiny version has the popup menu but not 'wildmenu'.
Solution:   Graduate the wildmenu feature.

Patch 9.0.0280
Problem:    The builtin termcap list depends on the version.
Solution:   Always include all termcap entries.  Remove duplicate lines.

Patch 9.0.0281
Problem:    Build failure without the +eval feature.
Solution:   Add #ifdef.

Patch 9.0.0282
Problem:    A nested timeout stops the previous timeout.
Solution:   Ignore any nested timeout.

Patch 9.0.0283
Problem:    Cannot complete "syn list @cluster".
Solution:   Recognize and handle "list @". (Björn Linse, closes #10990)

Patch 9.0.0284
Problem:    Using static buffer for multiple completion functions.
Solution:   Use one buffer in expand_T.

Patch 9.0.0285
Problem:    It is not easy to change the command line from a plugin.
Solution:   Add setcmdline(). (Shougo Matsushita, closes #10869)

Patch 9.0.0286
Problem:    Using freed memory when location list changed in autocmd.
Solution:   Return QF_ABORT and handle it. (Yegappan Lakshmanan,
            closes #10993)

Patch 9.0.0287
Problem:    Irix systems no longer exist.
Solution:   Remove references to Irix. (Yegappan Lakshmanan, closes #10994)

Patch 9.0.0288
Problem:    When 'cmdheight' is zero some messages are not displayed.
Solution:   Use a popup notification window.

Patch 9.0.0289
Problem:    Invalid memory write.
Solution:   Do not put NUL in a static string.

Patch 9.0.0290
Problem:    Compiler warning for variable set but not used.
Solution:   Add #ifdef.

Patch 9.0.0291
Problem:    Test failing.
Solution:   Run test with cmdheight=0 last.

Patch 9.0.0292
Problem:    Test causes another test to fail.
Solution:   Redraw to remove the popup window

Patch 9.0.0293
Problem:    Messages window not hidden when starting a command line.
Solution:   Hide the messages window. (closes #10996)

Patch 9.0.0294
Problem:    Crash when 'cmdheight' is 0 and popup_clear() used.
Solution:   Reset "message_win" when the message popup is cleared.  Close the
            popup when 'cmdheight' is non-zero.  Add a screendump test.

Patch 9.0.0295
Problem:    GUI drop files test sometimes fails.
Solution:   Mark the test as flaky.

Patch 9.0.0296
Problem:    Message in popup is shortened unnecessary.
Solution:   Do not use 'showcmd' and 'ruler' for a message in the popup.
            Set the timer when unhiding the message popup.

Patch 9.0.0297
Problem:    Cursor position wrong after right aligned virtual text. (Iizuka
            Masashi)
Solution:   Take the width of the column offset into account. (closes #10997)
            Also fix virtual text positioning.

Patch 9.0.0298
Problem:    Compiler warning for size_t to int conversion.
Solution:   Add a type cast. (Wilhelm Payne, closes #11000)

Patch 9.0.0299
Problem:    Error messages for setcmdline() could be better.
Solution:   Use more specific error messages. (Yegappan Lakshmanan,
            closes #10995)

Patch 9.0.0300
Problem:    'cpoptions' tests are flaky.
Solution:   Use a different file name for each test.

Patch 9.0.0301
Problem:    The message window popup is delayed after an error message.
Solution:   Do not set emsg_on_display when using the message window.

Patch 9.0.0302
Problem:    CI for Coverity is bothered by deprecation warnings.
Solution:   Ignore deprecation warnings. (closes #11002)

Patch 9.0.0303
Problem:    It is not easy to get information about a script.
Solution:   Make getscriptinfo() return the version.  When selecting a specific
            script return functions and variables. (Yegappan Lakshmanan,
            closes #10991)

Patch 9.0.0304
Problem:    WinScrolled is not triggered when only skipcol changes.
Solution:   Add w_last_skipcol and use it. (closes #10998)

Patch 9.0.0305
Problem:    CI lists useless deprecation warnings.
Solution:   Ignore deprecation warnings. (closes #11003)

Patch 9.0.0306
Problem:    Buffer write message is two lines in message popup window.
Solution:   Overwrite message if "msg_scroll" is off.

Patch 9.0.0307
Problem:    :echomsg doesn't work properly with cmdheight=0.
Solution:   Improve scrolling and displaying.

Patch 9.0.0308
Problem:    When cmdheight is zero the attention prompt doesn't show.
Solution:   Do not use the message window for a prompt.

Patch 9.0.0309
Problem:    Invalid memory access when cmdheight is zero.
Solution:   Check index in w_lines is smaller than Rows.

Patch 9.0.0310
Problem:    Output of :messages disappears when cmdheight is zero.
Solution:   Do not use the messages window for :messages.  Make Esc close the
            messages window.

Patch 9.0.0311
Problem:    Test for hit-Enter prompt fails.
Solution:   Only reset cmdline_row when 'cmdheight' is zero.

Patch 9.0.0312
Problem:    Test for cmdheight zero fails.
Solution:   Do not close the messages window for CTRL-C.

Patch 9.0.0313
Problem:    Using common name in tests leads to flaky tests.
Solution:   Rename files and directories to be more specific.

Patch 9.0.0314
Problem:    VDM files are not recognized.
Solution:   Add patterns for VDM files. (Alessandro Pezzoni, closes #11004)

Patch 9.0.0315
Problem:    Shell command is displayed in message window.
Solution:   Do not echo the shell command in the message window.

Patch 9.0.0316
Problem:    Screen flickers when 'cmdheight' is zero.
Solution:   Redraw over existing text instead of clearing.

Patch 9.0.0317
Problem:    When updating the whole screen a popup may not be redrawn.
Solution:   Mark the screen and windows for redraw also when not clearing.
            Also mark popup windows for redraw.

Patch 9.0.0318
Problem:    Clearing screen causes flicker.
Solution:   Do not clear but redraw in more cases.  Add () to "wait_return".

Patch 9.0.0319
Problem:    Godot shader files are not recognized.
Solution:   Add patterns for "gdshader". (Maxim Kim, closes #11006)

Patch 9.0.0320
Problem:    Command line type of CmdlineChange differs from getcmdtype().
Solution:   Use the same type. (closes #11005)

Patch 9.0.0321
Problem:    Cannot use the message popup window directly.
Solution:   Add ":echowindow".

Patch 9.0.0322
Problem:    Crash when no errors and 'quickfixtextfunc' is set.
Solution:   Do not handle errors if there aren't any.

Patch 9.0.0323
Problem:    Using common name in tests leads to flaky tests.
Solution:   Rename files and directories to be more specific.

Patch 9.0.0324
Problem:    MS-Windows: resolve() test fails.
Solution:   Revert renaming the directory.

Patch 9.0.0325
Problem:    MS-Windows: completion test fails.
Solution:   Adjust directory prefix.

Patch 9.0.0326
Problem:    Some changes for cmdheight=0 are not needed.
Solution:   Revert resize behavior if height is greater than the available
            space. (Shougo Matsushita, closes #11008)

Patch 9.0.0327
Problem:    items() does not work on a list. (Sergey Vlasov)
Solution:   Make items() work on a list. (closes #11013)

Patch 9.0.0328
Problem:    OLD_DIGRAPHS is unused.
Solution:   Remove OLD_DIGRAPHS.  Also drop HPUX_DIGRAPHS.

Patch 9.0.0329
Problem:    ":highlight" hangs when 'cmdheight' is zero.
Solution:   Add to msg_col when using the message window. (closes #11014)

Patch 9.0.0330
Problem:    Method tests fail.
Solution:   Adjust for change of items().

Patch 9.0.0331
Problem:    Cannot use items() on a string.
Solution:   Make items() work on a string. (closes #11016)

Patch 9.0.0332
Problem:    Overwrite check may block BufWriteCmd.
Solution:   Do not use overwrite check when 'buftype' is "acwrite".
            (closes #11011)

Patch 9.0.0333
Problem:    Method test fails.
Solution:   Adjust test for items() now working on string.

Patch 9.0.0334
Problem:    Test does not properly clean up.
Solution:   Fix typo in argument of delete(). (Dominique Pellé, closes #11010)

Patch 9.0.0335
Problem:    Checks for Dictionary argument often give a vague error message.
Solution:   Give a useful error message. (Yegappan Lakshmanan, closes #11009)

Patch 9.0.0336
Problem:    Tests are flaky because of using a common file name.
Solution:   Rename files and directories to be more unique.

Patch 9.0.0337
Problem:    Flicker when resetting cmdline_row after updating the screen.
Solution:   Do not update cmdline_row. (issue #11017)

Patch 9.0.0338
Problem:    Return value of list_append_list() not always checked.
Solution:   Check return value and handle failure.

Patch 9.0.0339
Problem:    No check if the return value of XChangeGC() is NULL.
Solution:   Only use the return value when it is not NULL. (closes #11020)

Patch 9.0.0340
Problem:    The 'cmdheight' zero support causes too much trouble.
Solution:   Revert support for 'cmdheight' being zero.

Patch 9.0.0341
Problem:    mapset() does not restore <Nop> mapping properly.
Solution:   Use an empty string for <Nop>. (closes #11022)

Patch 9.0.0342
Problem:    ":wincmd =" equalizes in two directions.
Solution:   Make ":vertical wincmd =" equalize vertically only and
            ":horizontal wincmd =" equalize horizontally only.

Patch 9.0.0343
Problem:    ColorScheme autocommand triggered when colorscheme is not found.
            (Romain Lafourcade)
Solution:   Only trigger ColorScheme when loading the colorscheme succeeds.
            (closes #11024)

Patch 9.0.0344
Problem:    MS-Windows: background color wrong in Console.
Solution:   Figure out the default console background color. (Yasuhiro
            Matsumoto, issue #10310)

Patch 9.0.0345
Problem:    Error message for list argument could be clearer.
Solution:   Include the argument number. (Yegappan Lakshmanan, closes #11027)

Patch 9.0.0346
Problem:    :horizontal modifier not fully supported.
Solution:   Also use :horizontal for completion and user commands.
            (closes #11025)

Patch 9.0.0347
Problem:    MS-Windows: cannot set cursor shape in Windows Terminal.
Solution:   Make cursor shape work with Windows Terminal. (Ken Takata,
            closes #11028, closes #6576)

Patch 9.0.0348
Problem:    MS-Windows: GUI mouse move event test is flaky.
Solution:   Wait for a little while for the first move event.

Patch 9.0.0349
Problem:    Filetype of *.sil files not well detected.
Solution:   Inspect the file contents to guess the filetype.

Patch 9.0.0350
Problem:    :echowindow does not work in a compiled function.
Solution:   Handle the expression at compile time.

Patch 9.0.0351
Problem:    Message window may obscure the command line.
Solution:   Reduce the maximum height of the message window.

Patch 9.0.0352
Problem:    using :echowindow in a timer clears part of message
Solution:   Do not use msg_clr_eos().

Patch 9.0.0353
Problem:    Missing entry in switch.
Solution:   Add ISN_ECHOWINDOW.

Patch 9.0.0354
Problem:    MS-Windows: starting a python server for test sometimes fails.
Solution:   Increase the waiting time for the port.

Patch 9.0.0355
Problem:    Check for uppercase char in autoload name is wrong, it checks the
            name of the script.
Solution:   Remove the check. (closes #11031)

Patch 9.0.0356
Problem:    :echowindow sets the in_echowindow flag too early.
Solution:   Set in_echowindow only when outputting the text. (Yasuhiro
            Matsumoto, closes #11033)

Patch 9.0.0357
Problem:    'linebreak' interferes with text property highlight if there is
            syntax highlighting.
Solution:   Check the text prop attributes after combining with syntax
            attributes. (closes #11035)

Patch 9.0.0358
Problem:    'breakindent' does not indent non-lists with
            "breakindentopt=list:-1".
Solution:   Adjust indent computation. (Maxim Kim, closes #11038)

Patch 9.0.0359
Problem:    Error message for wrong argument type is not specific.
Solution:   Include more information in the error. (Yegappan Lakshmanan,
            closes #11037)

Patch 9.0.0360
Problem:    Crash when invalid line number on :for is ignored.
Solution:   Do not check breakpoint for non-existing line.

Patch 9.0.0361
Problem:    Removing a listener may result in a memory leak and remove
            subsequent listeners.
Solution:   Init the "prev" pointer only once. (Yegappan Lakshmanan,
            closes #11039)

Patch 9.0.0362
Problem:    Expanding ":e %" does not work for remote files.
Solution:   If the "%" or "#" file does not exist add the expansion anyway.

Patch 9.0.0363
Problem:    Common names in test files causes tests to be flaky.
Solution:   Use more specific names.

Patch 9.0.0364
Problem:    Clang static analyzer gives warnings.
Solution:   Avoid the warnings. (Yegappan Lakshmanan, closes #11043)

Patch 9.0.0365
Problem:    File name used in test is unusual.
Solution:   Rename it. (Dominique Pellé, closes #11044)

Patch 9.0.0366
Problem:    Cannot use import->Func() in lambda. (Israel Chauca Fuentes)
Solution:   Adjust how an expression in a lambda is parsed. (closes #11042)

Patch 9.0.0367
Problem:    Coverity complains about dropping sign of character.
Solution:   Add explicit type cast.

Patch 9.0.0368
Problem:    Old Coverity warning for using NULL pointer.
Solution:   Bail out if dictionary allocation fails.

Patch 9.0.0369
Problem:    A failing flaky test doesn't mention the time.
Solution:   Add the time for debugging.  Improve error message.

Patch 9.0.0370
Problem:    Cleaning up afterwards can make a function messy.
Solution:   Add the :defer command.

Patch 9.0.0371
Problem:    Compiler warning for uninitialized variable.
Solution:   Initialize the variable. (John Marriott)

Patch 9.0.0372
Problem:    MS-Windows: "%T" time format does not appear to work.
Solution:   Use "%H:%M:%S" instead.

Patch 9.0.0373
Problem:    Coverity warns for NULL check and unused return value.
Solution:   Remove the NULL check, it was already checked earlier.  Add (void)
            to ignore the return value.

Patch 9.0.0374
Problem:    Coverity still complains about dropping sign of character.
Solution:   Add intermediate variable.

Patch 9.0.0375
Problem:    The footer feature is unused.
Solution:   Remove FEAT_FOOTER and code.

Patch 9.0.0376
Problem:    Clang warns for dead assignments.
Solution:   Adjust the code. (Yegappan Lakshmanan, closes #11048)

Patch 9.0.0377
Problem:    Argument assignment does not work.
Solution:   Skip over "=".

Patch 9.0.0378
Problem:    Compiler warning for uninitialized variable. (Tony Mechelynck)
Solution:   Initialize it.

Patch 9.0.0379
Problem:    Cleaning up after writefile() is a hassle.
Solution:   Add the 'D' flag to defer deleting the written file.  Very useful
            in tests.

Patch 9.0.0380
Problem:    Deleting files in tests is a hassle.
Solution:   Use the new 'D' flag of writefile().


Problem:    Deleting files in tests is a hassle.
Solution:   Use the new 'D' flag of writefile().

Patch 9.0.0381
Problem:    Writefile test leaves files behind.
Solution:   Fix the file names of files to be deleted. (Dominique Pellé,
            closes #11056)

Patch 9.0.0382
Problem:    Freeing the wrong string on failure.
Solution:   Adjust the argument.  Reorder the code.

Patch 9.0.0383
Problem:    Coverity complains about unused value.
Solution:   Use the value.

Patch 9.0.0384
Problem:    Coverity still complains about using return value of getc().
Solution:   Check for EOF.

Patch 9.0.0385
Problem:    GUI: when CTRL-D is mapped in Insert mode it gets inserted.
            (Yasuhiro Matsumoto)
Solution:   Also recognize modifier starting with CSI. (closes #11057)

Patch 9.0.0386
Problem:    Some code blocks are nested too deep.
Solution:   Bail out earlier. (Yegappan Lakshmanan, closes #11058)

Patch 9.0.0387
Problem:    repeating a <ScriptCmd> mapping does not use the right script
            context.
Solution:   When using a mapping put <SID>{sid}; in the redo buffer.
            (closes #11049)

Patch 9.0.0388
Problem:    The do_arg_all() function is too long.
Solution:   Split the function in smaller parts. (Yegappan Lakshmanan,
            closes #11062)

Patch 9.0.0389
Problem:    Crash when 'tagfunc' closes the window.
Solution:   Bail out when the window was closed.

Patch 9.0.0390
Problem:    Cannot use a partial with :defer.
Solution:   Add the partial arguments before the other arguments.  Disallow
            using a dictionary.

Patch 9.0.0391
Problem:    Using separate delete() call instead of writefile() 'D' flag.
Solution:   Use the writefile 'D' flag.

Patch 9.0.0392
Problem:    Inverted condition is a bit confusing.
Solution:   Remove the "!" and swap the blocks. (Ken Takata)

Patch 9.0.0393
Problem:    Signals test often fails on FreeBSD.
Solution:   Use separate files for Suspend and Resume. (Ken Takata,
            closes #11065)

Patch 9.0.0394
Problem:    Cygwin: multibyte characters may be broken in terminal window.
Solution:   Adjust how to read and write on the channel. (Ken Takata,
            closes #11063)

Patch 9.0.0395
Problem:    Clang warnings for function prototypes.
Solution:   Remove incomplete function prototypes. (closes #11068)

Patch 9.0.0396
Problem:    :findrepl does not escape '&' and '~' properly.
Solution:   Escape depending on the value of 'magic'. (closes #11067)

Patch 9.0.0397
Problem:    :defer not tested with exceptions and ":qa!".
Solution:   Test :defer works when exceptions are thrown and when ":qa!" is
            used.  Invoke the deferred calls on exit.

Patch 9.0.0398
Problem:    Members of funccall_T are inconsistently named.
Solution:   Use the "fc_" prefix for all members.

Patch 9.0.0399
Problem:    Using :defer in expression funcref not tested.
Solution:   Add a test.  Fix uncovered problems.

Patch 9.0.0400
Problem:    GUI test sometimes hangs on CI.
Solution:   Delete a test file explicitly. (Ken Takata, closes #11072)

Patch 9.0.0401
Problem:    CI uses older clang version.
Solution:   Switch from clang 14 to 15. (closes #11066)

Patch 9.0.0402
Problem:    Javascript module files are not recognized.
Solution:   Recognize "*.jsm" files as Javascript. (Brett Holman,
            closes #11069)

Patch 9.0.0403
Problem:    'equalalways' may be off when 'laststatus' is zero.
Solution:   call last_status() before win_equal(). (Luuk van Baal,
            closes #11070)

Patch 9.0.0404
Problem:    Crash when passing invalid arguments to assert_fails().
Solution:   Check for NULL string.

Patch 9.0.0405
Problem:    Arguments in a partial not used by a :def function.
Solution:   Put the partial arguments on the stack.

Patch 9.0.0406
Problem:    Deferred functions not invoked when partial func exits.
Solution:   Create a funccall_T when calling a :def function.

Patch 9.0.0407
Problem:    matchstr() does match column offset. (Yasuhiro Matsumoto)
Solution:   Accept line number zero. (closes #10938)

Patch 9.0.0408
Problem:    GUI test sometimes fails on MS-Windows.
Solution:   Make sure MNV is the foreground window. (Ken Takata, closes #11077)

Patch 9.0.0409
Problem:    #{g:x} was seen as a curly-braces expression.
Solution:   Do never see #{} as a curly-braces expression. (closes #11075)

Patch 9.0.0410
Problem:    Struct member cts_lnum is unused.
Solution:   Delete it.

Patch 9.0.0411
Problem:    Only created files can be cleaned up with one call.
Solution:   Add flags to mkdir() to delete with a deferred function.
            Expand the writefile() name to a full path to handle changing
            directory.

Patch 9.0.0412
Problem:    Compiler warning for unused argument.
Solution:   Add UNUSED.

Patch 9.0.0413
Problem:    ASAN reports a memory leak.
Solution:   Free the string received from the server. (Ken Takata,
            closes #11080)

Patch 9.0.0414
Problem:    matchstr() still does not match column offset when done after a
            text search.
Solution:   Only use the line number for a multi-line search.  Fix the test.
            (closes #10938)

Patch 9.0.0415
Problem:    On MS-Windows some tests are flaky.
Solution:   Add sleeps, disable swapfile, mark test as flaky. (Ken Takata,
            closes #11082)

Patch 9.0.0416
Problem:    ml_get error when appending lines in popup window.
Solution:   Only update w_topline when w_buffer matches curbuf.
            (closes #11074)

Patch 9.0.0417
Problem:    Jsonnet files are not recognized.
Solution:   Add a pattern for Jsonnet files. (Cezary Drożak, closes #11073,
            closes #11081)

Patch 9.0.0418
Problem:    Manually deleting temp test files.
Solution:   Use the 'D' flag of writefile() and mkdir().

Patch 9.0.0419
Problem:    The :defer command does not check the function argument count and
            types.
Solution:   Check the function arguments when adding a deferred function.

Patch 9.0.0420
Problem:    Function went missing.
Solution:   Add the function back.

Patch 9.0.0421
Problem:    MS-Windows makefiles are inconsistently named.
Solution:   Use consistent names. (Ken Takata, closes #11088)

Patch 9.0.0422
Problem:    Not enough testing of the :all command.
Solution:   Add more testing. (Yegappan Lakshmanan, closes #11091)

Patch 9.0.0423
Problem:    "for" and "while" not recognized after :mnv9cmd and :legacy.
            (Emanuele Torre)
Solution:   Recognize all the command modifiers. (closes #11087)
            Add a test to check the list of modifiers.

Patch 9.0.0424
Problem:    gitattributes files are not recognized.
Solution:   Add patterns to match gitattributes files. (closes #11085)

Patch 9.0.0425
Problem:    Autocmd test is a bit flaky on MS-Windows.
Solution:   Add a bit more sleeping. (Ken Takata, closes #11095)

Patch 9.0.0426
Problem:    Failed flaky tests reports only start time.
Solution:   Also report the end time.

Patch 9.0.0427
Problem:    Drupal theme files are not recognized.
Solution:   Use php filetype for Drupl theme files.  Remove trailing spaces.
            (Rodrigo Aguilera, closes #11096)

Patch 9.0.0428
Problem:    Autocmd test uses common file name.
Solution:   Use unique name to reduce flakiness.

Patch 9.0.0429
Problem:    Not all keys are tested for the MS-Windows GUI.
Solution:   Add more key codes to the list. (Yegappan Lakshmanan,
            closes #11097)

Patch 9.0.0430
Problem:    Cannot use repeat() with a blob.
Solution:   Implement blob repeat. (closes #11090)

Patch 9.0.0431
Problem:    Current mode shows in message window.
Solution:   Reset in_echowindow before redrawing. (issue #11094)

Patch 9.0.0432
Problem:    Crash when using for loop variable in closure.
Solution:   Check that the variable wasn't deleted. (issue #11094)

Patch 9.0.0433
Problem:    Coverity warns for not checking allocation failure.
Solution:   Check that allocating a list or blob succeeded.

Patch 9.0.0434
Problem:    gitignore files are not recognized.
Solution:   Add patterns for the gitignore filetype. (closes #11102)

Patch 9.0.0435
Problem:    Compiler warning for uninitialized variable.
Solution:   Initialize it.

Patch 9.0.0436
Problem:    CI: running tests in parallel causes flakiness.
Solution:   Reorganize the MS-Windows runs. (Ken Takata, closes #11101)

Patch 9.0.0437
Problem:    No error when a custom completion function returns something else
            than the expected list.
Solution:   Give an error. (closes #11100)

Patch 9.0.0438
Problem:    Cannot put virtual text above a line.
Solution:   Add the "above" value for "text_align".

Patch 9.0.0439
Problem:    Cursor wrong if inserting before line with virtual text above.
Solution:   Add the width of the "above" virtual text to the cursor position.
            (issue #11084)

Patch 9.0.0440
Problem:    Crash when using mkdir() with "R" flag in compiled function.
Solution:   Reserve a variable for deferred function calls.  Handle more than
            one argument.

Patch 9.0.0441
Problem:    Closure in for loop test fails on some systems.
Solution:   Do not wait for the ruler to show up. (issue #11106)

Patch 9.0.0442
Problem:    Virtual text "above" doesn't handle line numbers.
Solution:   Take the left column offset into account. (issue #11084)
            Also make padding work.

Patch 9.0.0443
Problem:    Blueprint files are not recognized.
Solution:   Add a pattern for blueprint files. (Gabriele Musco, closes #11107)

Patch 9.0.0444
Problem:    Trying to declare g:variable gives confusing error.
Solution:   Give a better error message. (closes #11108)

Patch 9.0.0445
Problem:    When opening/closing window text moves up/down.
Solution:   Add the 'splitscroll' option.  When off text will keep its
            position as much as possible.

Patch 9.0.0446
Problem:    Message window may be positioned too low.
Solution:   Compute cmdline_row before computing the position.

Patch 9.0.0447
Problem:    Using :echowin while at the hit-enter prompt causes problems.
Solution:   Do not prompt for :echowin.  Postpone showing the message window.
            Start the timer when the window is displayed.

Patch 9.0.0448
Problem:    SubRip files are not recognized.
Solution:   Add a pattern for SubRip. (closes #11113)

Patch 9.0.0449
Problem:    There is no easy way to translate a string with a key code into a
            readable string.
Solution:   Add the keytrans() function. (closes #11114)

Patch 9.0.0450
Problem:    Return value of argument check functions is inconsistent.
Solution:   Return OK/FAIL instead of TRUE/FALSE. (closes #11112)

Patch 9.0.0451
Problem:    Virtual text "above" does not work with 'nowrap'.
Solution:   Do wrap the line after. (closes #11084)

Patch 9.0.0452
Problem:    Visual highlighting extends into virtual text prop.
Solution:   Do not highlight what isn't actually selected.  Fix ordering of
            stored text props.

Patch 9.0.0453
Problem:    On an AZERTY keyboard digit keys get the shift modifier.
Solution:   Remove the shift modifier from digit keys. (closes #11109)

Patch 9.0.0454
Problem:    Incorrect color for modeless selection with GTK.
Solution:   Use simple inversion instead of XOR. (closes #11111)

Patch 9.0.0455
Problem:    A few problems with 'splitscroll'.
Solution:   Fix 'splitscroll' problems. (Luuk van Baal, closes #11117)

Patch 9.0.0456
Problem:    Function called at debug prompt is also debugged.
Solution:   Reset the debug level while entering the debug command.
            (closes #11118)

Patch 9.0.0457
Problem:    Substitute prompt does not highlight an empty match.
Solution:   Highlight at least one character.

Patch 9.0.0458
Problem:    Splitting a line with a text prop "above" moves it to a new line
            below.
Solution:   Keep an "above" text prop above the first line.

Patch 9.0.0459
Problem:    MNV9: block in for loop doesn't behave like a code block.
Solution:   Use a new block ID for each loop at the script level.

Patch 9.0.0460
Problem:    Loop variable can't be found.
Solution:   Adjust block_id of the loop variable each round.

Patch 9.0.0461
Problem:    'scroll' is not always updated.
Solution:   Call win_init_size() at the right place.

Patch 9.0.0462
Problem:    ASAN warning for integer overflow.
Solution:   Check for tp_col to be MAXCOL.

Patch 9.0.0463
Problem:    Command line test leaves directory behind.
Solution:   Use the "R" flag on the first mkdir(). (Dominique Pellé,
            closes #11127)

Patch 9.0.0464
Problem:    With virtual text "above" indenting doesn't work well.
Solution:   Ignore text properties while adjusting indent. (issue #11084)

Patch 9.0.0465
Problem:    Cursor moves when cmdwin is closed when 'splitscroll' is off.
Solution:   Temporarily set 'splitscroll' when jumping back to the original
            window. (closes #11128)

Patch 9.0.0466
Problem:    Virtual text wrong after adding line break after line.
Solution:   Pass an "eol" flag to where text properties are adjusted.
            (closes #11131)

Patch 9.0.0467
Problem:    Build failure.
Solution:   Add missing change.

Patch 9.0.0468
Problem:    Execution stack underflow without the +eval feature. (Dominique
            Pellé)
Solution:   Add to execution stack without FEAT_EVAL. (closes #11135)

Patch 9.0.0469
Problem:    Cursor moves if cmdwin is closed when 'splitscroll' is off.
Solution:   Skip win_fix_cursor if called when cmdwin is open or closing.
            (Luuk van Baal, closes #11134)

Patch 9.0.0470
Problem:    In a :def function all closures in a loop get the same variables.
Solution:   When in a loop and a closure refers to a variable declared in the
            loop, prepare for making a copy of variables for each closure.

Patch 9.0.0471
Problem:    No test for what patch 9.0.0469 fixes.
Solution:   Add a test. (closes #11140)

Patch 9.0.0472
Problem:    Virtual text "below" doesn't show in list mode.
Solution:   Reset lcs_eol_one when displaying text property.

Patch 9.0.0473
Problem:    fullcommand() only works for the current script version.
Solution:   Add an optional argument for the script version.

Patch 9.0.0474
Problem:    fullcommand() test failure.
Solution:   Update function table.

Patch 9.0.0475
Problem:    Not using deferred delete in tests.
Solution:   Use deferred delete more often.

Patch 9.0.0476
Problem:    Varargs does not work for replacement function of substitute().
Solution:   Check the varargs flag of the function. (closes #11142)

Patch 9.0.0477
Problem:    Missing dependency may cause crashes on incomplete build.
Solution:   Add dependency.

Patch 9.0.0478
Problem:    Test for 'splitscroll' takes too much time.
Solution:   Only test some of the combinations. (Luuk van Baal, closes #11139)

Patch 9.0.0479
Problem:    In a :def function all closures in a loop get the same variables.
Solution:   Use a separate list of variables for LOADOUTER and SAVEOUTER.

Patch 9.0.0480
Problem:    Cannot use a :def varargs function with substitute().
Solution:   Use has_varargs(). (closes #11146)

Patch 9.0.0481
Problem:    In a :def function all closures in a loop get the same variables.
Solution:   Use a separate list of variables for LOADOUTER and STOREOUTER.
            Not copied at end of loop yet.

Patch 9.0.0482
Problem:    "g0" moves to wrong location with virtual text "above".
Solution:   Compensate for the extra columns. (closes #11141)  Also fix "g$"

Patch 9.0.0483
Problem:    Illegal memory access when replacing in virtualedit mode.
Solution:   Check for replacing NUL after Tab.

Patch 9.0.0484
Problem:    In a :def function all closures in a loop get the same variables.
Solution:   Add ENDLOOP at break, continue and return if needed.

Patch 9.0.0485
Problem:    In a :def function all closures in a loop get the same variables.
Solution:   Make a copy of loop variables used in a closure.

Patch 9.0.0486
Problem:    Text scrolled with 'nosplitscroll', autocmd win opened and help
            window closed.
Solution:   Skip win_fix_scroll() in more situations. (Luuk van Baal,
            closes #11150)

Patch 9.0.0487
Problem:    Using freed memory with combination of closures.
Solution:   Do not use a partial after it has been freed through the
            funcstack.

Patch 9.0.0488
Problem:    Cursor in wrong position with virtual text "above" and
            'showbreak'.
Solution:   Take the first character column into account. (closes #11149)

Patch 9.0.0489
Problem:    Using "end_lnum" with virtual text causes problems.
Solution:   Disallow using "end_lnum" with virtual text. (closes #11151)
            Also disallow "end_col" and "length".

Patch 9.0.0490
Problem:    Using freed memory with cmdwin and BufEnter autocmd.
Solution:   Make sure pointer to b_p_iminsert is still valid.

Patch 9.0.0491
Problem:    No good reason to build without the float feature.
Solution:   Remove configure check for float and "#ifdef FEAT_FLOAT".

Patch 9.0.0492
Problem:    Cmdwin test fails on MS-Windows.
Solution:   Skip test on MS-Windows.

Patch 9.0.0493
Problem:    Perl test fails.
Solution:   Remove remaining FEAT_EVAL.

Patch 9.0.0494
Problem:    Small build misses float function declarations.
Solution:   Adjust #ifdefs.

Patch 9.0.0495
Problem:    Closure doesn't work properly in nested loop.
Solution:   Save variables up to the outer loop.

Patch 9.0.0496
Problem:    No good reason to keep supporting Windows-XP.
Solution:   Drop Windows-XP support. (Ken Takata, closes #11089)

Patch 9.0.0497
Problem:    LyRiCs files are not recognized.
Solution:   Add a pattern to detect LyRiCs files. (closes #11155)

Patch 9.0.0498
Problem:    Various small issues.
Solution:   Various small fixes.

Patch 9.0.0499
Problem:    In :def function list created after const is locked.
Solution:   Reset v_lock. (closes #11154)

Patch 9.0.0500
Problem:    When quitting the cmdline window with CTRL-C it remains visible.
Solution:   Redraw to avoid confusion. Adjust the error message.
            (closes #11152)  Adjust the cursor position after CTRL-C.

Patch 9.0.0501
Problem:    Warning for using uninitialized value in mouse test.
Solution:   Clear ScreenCols when allocating it. (Dominique Pellé)

Patch 9.0.0502
Problem:    A closure in a nested loop in a :def function does not work.
Solution:   Use an array of loopvars, one per loop level.

Patch 9.0.0503
Problem:    Build failure.
Solution:   Add missing changes.

Patch 9.0.0504
Problem:    still a Build failure.
Solution:   Add another missing changes.  Avoid compiler warning.

Patch 9.0.0505
Problem:    Various problems with 'nosplitscroll'.
Solution:   Fix 'nosplitscroll' problems. (Luuk van Baal, closes #11166)

Patch 9.0.0506
Problem:    Line number argument for :badd does not work.
Solution:   Set the last cursor position in the new buffer. (closes #11161)

Patch 9.0.0507
Problem:    Command line cleared when using :redrawstatus in CmdlineChanged
            autocommand event.
Solution:   Postpone the redraw. (closes #11162)

Patch 9.0.0508
Problem:    When the channel test fails there is no clue why.
Solution:   Add info about the job status. (Ken Takata, closes #11175)

Patch 9.0.0509
Problem:    Confusing error for "saveas" command with "nofile" buffer.
Solution:   Give a clearer error message. (closes #11171)

Patch 9.0.0510
Problem:    Chatito files are not recognized.
Solution:   Add a pattern for Chatito files. (closes #11174)

Patch 9.0.0511
Problem:    Unnecessary scrolling for message of only one line.
Solution:   Only set msg_scroll when needed. (closes #11178)

Patch 9.0.0512
Problem:    Cannot redraw the status lines when editing a command.
Solution:   Only postpone the redraw when messages have scrolled.
            (closes #11170)

Patch 9.0.0513
Problem:    May not be able to use a pattern ad the debug prompt.
Solution:   Temporarily disable the timeout. (closes #11164)

Patch 9.0.0514
Problem:    Terminal test sometimes hangs.
Solution:   Add a bit more information to the test output. (issue #11179)

Patch 9.0.0515
Problem:    Virtual text highlight starts too early when 'number' is set.
Solution:   Set column offset when wrapping. (issue #11138)

Patch 9.0.0516
Problem:    Virtual text "above" highlights gap after it.
Solution:   Do not highlight the gap. (closes #11138)

Patch 9.0.0517
Problem:    When at the command line :redrawstatus does not work well.
Solution:   Only update the statuslines instead of the screen. (closes #11180)

Patch 9.0.0518
Problem:    Virtual text highlight starts too early with 'nowrap' and 'number'
            set.
Solution:   Add the offset to the attribute skip count. (issue #11138)

Patch 9.0.0519
Problem:    The win_line() function is much too long.
Solution:   Move the code to draw the line number to a separate function.

Patch 9.0.0520
Problem:    Declaring a loop variable at the start of a block is clumsy.
Solution:   Declare the variable inside the loop in a few places to see if
            this works.

Patch 9.0.0521
Problem:    Compiler warns for unused argument in small version.
Solution:   Add UNUSED.

Patch 9.0.0522
Problem:    Build fails on Appveyor.
Solution:   Select Visual Studio 2015 for the build tools.

Patch 9.0.0523
Problem:    more compiler warnings for arguments in small version
Solution:   Adjust #ifdefs.

Patch 9.0.0524
Problem:    Build instructions for MS-Windows are outdated.
Solution:   Remove instructions for old MSVC versions.

Patch 9.0.0525
Problem:    Manually deleting temp test files.
Solution:   Add the 'D' flag to writefile().

Patch 9.0.0526
Problem:    MS-Windows: still some support for XP and old compilers.
Solution:   Remove XP support and mention of old compilers. (Ken Takata,
            closes #11183)

Patch 9.0.0527
Problem:    Long sign text may overflow buffer.
Solution:   Use a larger buffer.  Prevent for overflow.

Patch 9.0.0528
Problem:    MS-Windows: no batch files for more recent MSVC versions.
Solution:   Add batch files for 2017, 2019 and 2022. (Ken Takata,
            closes #11184)

Patch 9.0.0529
Problem:    Appveyor setup contains outdated lines.
Solution:   Remove outdated lines. (Ken Takata, closes #11182)

Patch 9.0.0530
Problem:    Using freed memory when autocmd changes mark.
Solution:   Copy the mark before editing another buffer.

Patch 9.0.0531
Problem:    The win_line() function is much too long.
Solution:   Move code to separate functions.

Patch 9.0.0532
Problem:    Edit test is flaky when run under valgrind.
Solution:   Send some text to the terminal to trigger a redraw.

Patch 9.0.0533
Problem:    The win_line() function is much too long.
Solution:   Move code to separate functions.

Patch 9.0.0534
Problem:    Line number is displayed at virtual text "above".
Solution:   Show the line number at the text line.

Patch 9.0.0535
Problem:    Closure gets wrong value in for loop with two loop variables.
Solution:   Correctly compute the number of loop variables to clear.

Patch 9.0.0536
Problem:    CI: codecov action update available.
Solution:   Update Codecov 3.1.0 to 3.3.1. (closes #11188)

Patch 9.0.0537
Problem:    The do_set() function is much too long.
Solution:   Move setting of a string option to a separate function.

Patch 9.0.0538
Problem:    Manually deleting test temp files.
Solution:   Add the 'D' flag to writefile().

Patch 9.0.0539
Problem:    Long message test can be flaky.
Solution:   Wait for more prompt instead of ruler.

Patch 9.0.0540
Problem:    Assigning stack variable to argument confuses Coverity.
Solution:   Use a local pointer, also makes the code simpler.

Patch 9.0.0541
Problem:    Terminal pwd test fails with a very long path name.
Solution:   Join two lines.

Patch 9.0.0542
Problem:    MSVC build still has support for 2012 edition.
Solution:   Drop MSVC 2012 support. (Ken Takata, closes #11191)

Patch 9.0.0543
Problem:    Insufficient testing for assert and test functions.
Solution:   Add a few more tests. (Yegappan Lakshmanan, closes #11190)

Patch 9.0.0544
Problem:    Minor issues with setting a string option.
Solution:   Adjust the code, add a test. (closes #11192)

Patch 9.0.0545
Problem:    When a test is slow and CI times out there is no time info.
Solution:   Add the elapsed time to the "Executing" message.

Patch 9.0.0546
Problem:    Supporting Ruby 1.8 makes code complicated.
Solution:   Drop Ruby 1.8 support, it is ancient. (Ken Takata, closes #11195)

Patch 9.0.0547
Problem:    Looping over empty out_loop[] entries.
Solution:   Store the array size.

Patch 9.0.0548
Problem:    reduce() with a compiled lambda could be faster.
Solution:   Call eval_expr_typval() instead of call_func() directly.

Patch 9.0.0549
Problem:    Duplicated code in calling a :def function.
Solution:   Simplify the code.

Patch 9.0.0550
Problem:    Crash when closing a tabpage and buffer is NULL.
Solution:   Adjust how autocommands are triggered when closing a window.
            (closes #11198, closes #11197)

Patch 9.0.0551
Problem:    Mode message is delayed when :echowin was used. (Maxim Kim)
Solution:   Save and restore msg_didout in :echowin. (closes #11193)

Patch 9.0.0552
Problem:    Crash when using NUL in buffer that uses :source.
Solution:   Don't get a next line when skipping over NL.

Patch 9.0.0553
Problem:    No error for "|" after "{" in lambda.
Solution:   Check for invalid "|". (closes #11199)

Patch 9.0.0554
Problem:    Using freed memory when command follows lambda.
Solution:   Don't free what is still in use. (closes #11201)

Patch 9.0.0555
Problem:    Scrolling with 'nosplitscroll' in callback changing curwin.
Solution:   Invalidate w_cline_row in the right place. (Luuk van Baal,
            closes #11185)

Patch 9.0.0556
Problem:    Leaking memory with nested functions.
Solution:   Free saved pointer.

Patch 9.0.0557
Problem:    Valgrind reports possibly leaked memory.
Solution:   Move the problematic test function to the "fails" test file to
            avoid obscuring real memory leaks.

Patch 9.0.0558
Problem:    Coverity warns for possibly using NULL pointer.
Solution:   Only use "evalarg" when not NULL.

Patch 9.0.0559
Problem:    Timer test may get stuck at hit-enter prompt.
Solution:   Feed some more characters.

Patch 9.0.0560
Problem:    Elapsed time since testing started is not visible.
Solution:   Show the elapsed time while running tests.

Patch 9.0.0561
Problem:    When a test gets stuck it just hangs forever.
Solution:   Set a timeout of 30 seconds.

Patch 9.0.0562
Problem:    HSL playlist files are not recognized.
Solution:   Add a pattern to recognize HSL playlist files. (Benoît Ryder,
            closes #11204)

Patch 9.0.0563
Problem:    Timer_info() test fails.
Solution:   Ignore test timeout timer.  Don't use test_null_job() when not
            available.

Patch 9.0.0564
Problem:    A few tests keep failing on MacOS M1.
Solution:   Add a test check CheckNotMacM1.  Fix timer tests.

Patch 9.0.0565
Problem:    Cscope test causes problems when code for test timeout timer is
            included (even when commented out).
Solution:   Disable part of the cscope test for now.

Patch 9.0.0566
Problem:    Nim files are not recognized.
Solution:   Add patterns for Nim files. (Nbiba Bedis, closes #11205)

Patch 9.0.0567
Problem:    'completeopt' "longest" is not used for complete().
Solution:   Also use "longest" for complete(). (Bjorn Linse, closes #11206)

Patch 9.0.0568
Problem:    Autocmd code is indented more than needed.
Solution:   Break out sooner. (Yegappan Lakshmanan, closes #11208)
            Also in user function code.

Patch 9.0.0569
Problem:    Cannot easily get out when using "mnv file | grep word".
Solution:   Without changes let CTRL-C exit MNV.  Otherwise give a message on
            stderr. (closes #11209)

Patch 9.0.0570
Problem:    CI for Windows is still using codecov action 3.1.0.
Solution:   Use action 3.1.1. (closes #11212)

Patch 9.0.0571
Problem:    MS-Windows: CTRL-C can make MNV exit.
Solution:   Check the not-a-term argument.

Patch 9.0.0572
Problem:    Insert complete tests leave a mapping behind.
Solution:   Use a buffer-local mapping. (closes #11211)

Patch 9.0.0573
Problem:    Outdated dependencies go unnoticed.
Solution:   Use github Dependabot. (closes #11213)

Patch 9.0.0574
Problem:    Timer garbage collect test hangs on Mac M1.
Solution:   Properly check for Mac M1 and skip the test.

Patch 9.0.0575
Problem:    The getchar() function behaves strangely with bracketed paste.
Solution:   Do not handle paste-start in getchar(). (issue #11172)

Patch 9.0.0576
Problem:    Unused loop variables.
Solution:   Use a while loop instead. (closes #11214)

Patch 9.0.0577
Problem:    Buffer underflow with unexpected :finally.
Solution:   Check CSF_TRY can be found.

Patch 9.0.0578
Problem:    One timer test fails on Mac M1.
Solution:   Skip the test on Mac M1.

Patch 9.0.0579
Problem:    Using freed memory when 'tagfunc' wipes out buffer that holds
            'complete'.
Solution:   Make a copy of the option.  Make sure cursor position is valid.

Patch 9.0.0580
Problem:    No CI running for MacOS on M1.
Solution:   Add a cirrus CI task. (closes #11203)

Patch 9.0.0581
Problem:    Adding a character for incsearch fails at end of line.
Solution:   Only check cursor line number.

Patch 9.0.0582
Problem:    Channel cwd test fails on Cirrus CI.
Solution:   Also remove /private from the expected directory.

Patch 9.0.0583
Problem:    Only recognizing .m3u8 files is inconsistent.
Solution:   Also match .m3u files. (issue #11204)

Patch 9.0.0584
Problem:    Cscope test with wrong executable name fails.
Solution:   Use /bin/sh to execute the command. (Yegappan Lakshmanan)

Patch 9.0.0585
Problem:    When long message test fails the error message is not visible.
Solution:   Dump more lines.

Patch 9.0.0586
Problem:    Missing change in test.
Solution:   Add the test change.

Patch 9.0.0587
Problem:    Unicode tables are outdated.
Solution:   Update to Unicode release 15. (Christian Brabandt, closes #11220)

Patch 9.0.0588
Problem:    MorphOS build is broken.
Solution:   Add "-lm" to LDFLAGS and "-noixemul" to CFLAGS. (Ola Söder,
            closes #11222)

Patch 9.0.0589
Problem:    On AmigaOS4 the pid is available but the task address is used.
Solution:   Use getpid().  (Ola Söder, closes #11224)

Patch 9.0.0590
Problem:    After exiting Insert mode spelling is not checked in the next
            line.
Solution:   When spelling is enabled redraw the next line after exiting Insert
            mode in case the spell highlight needs updating.

Patch 9.0.0591
Problem:    Message window popup shows on only one tab page. (Naruhiko
            Nishino)
Solution:   Show the message window popup on all tab pages. (closes #11231)

Patch 9.0.0592
Problem:    Display not cleared when scrolling back in messages, a background
            color is set and t_ut is empty.
Solution:   Clear to the end of the display if needed. (closes #8973)

Patch 9.0.0593
Problem:    CI actions have too many permissions.
Solution:   Restrict permissions to what is required. (closes #11223)

Patch 9.0.0594
Problem:    Makefile error message causes a shell error.
Solution:   Put the message in single quotes. (closes #11232)

Patch 9.0.0595
Problem:    Extra newline in messages after a verbose shell message.
Solution:   Output the newline with msg_putchar_attr(). (closes #11233)
            Make it possible to filter a screendump before comparing it.

Patch 9.0.0596
Problem:    CI on Mac M1 has the channel feature disabled.
Solution:   Include the channel feature.

Patch 9.0.0597
Problem:    Cannot close a tab page with the middle mouse button.
Solution:   Support closing a tab page with the middle mouse button, like many
            other programs. (closes #10746)

Patch 9.0.0598
Problem:    Using negative array index with negative width window.
Solution:   Make sure the window width does not become negative.

Patch 9.0.0599
Problem:    Latexmkrc files are not recognized.
Solution:   Use Perl filetype for latexmkrc files. (closes #11241)

Patch 9.0.0600
Problem:    GYP files are not recognized.
Solution:   Recognize GYP files. (closes #11242)

Patch 9.0.0601
Problem:    Too much indent.
Solution:   Return out early from a function. (Yegappan Lakshmanan,
            close #11238)

Patch 9.0.0602
Problem:    New TypeScript extensions are not recognized.
Solution:   Recognize .mts and .cts files. (closes #11237)

Patch 9.0.0603
Problem:    With 'nosplitscroll' folds are not handled correctly.
Solution:   Take care of closed folds when moving the cursor. (Luuk van Baal,
            closes #11234)

Patch 9.0.0604
Problem:    Luacheckrc file is not recognized.
Solution:   Use lua filetype for luacheckrc. (closes #11236)

Patch 9.0.0605
Problem:    Dump file missing.
Solution:   Add the missing dump file. (issue #11234)

Patch 9.0.0606
Problem:    system() opens a terminal window when using the GUI and "!" is in
            'guioptions'.
Solution:   Do not use a terminal window when the SHELL_SILENT flag is used.
            (closes #11202)

Patch 9.0.0607
Problem:    Verbose echo message test fails on Mac OS.
Solution:   Skip the test on Mac OS.

Patch 9.0.0608
Problem:    With spell checking, deleting a full stop at the end of a line
            does not update SpellCap at the start of the next line.
Solution:   Update the next line when characters have been deleted.  Also when
            using undo.

Patch 9.0.0609
Problem:    Blockedit test fails because of wrong indent.
Solution:   Adjust the expected text temporarily

Patch 9.0.0610
Problem:    Global interrupt test fails when run under valgrind.
Solution:   Use TermWait().

Patch 9.0.0611
Problem:    Tests delete files with a separate delete() call.
Solution:   Use deferred delete.

Patch 9.0.0612
Problem:    Blockedit test passes with wrong result.
Solution:   Add a "mnv9script" line to make indenting work.

Patch 9.0.0613
Problem:    Running source tests leaves file behind.
Solution:   Add the "D" flag to writefile(). (Dominique Pellé, closes #11243)
            Also do this for other writefile() calls and drop delete().

Patch 9.0.0614
Problem:    SpellFileMissing autocmd may delete buffer.
Solution:   Disallow deleting the current buffer to avoid using freed memory.

Patch 9.0.0615
Problem:    Using reduce() on a list from range() is a bit slow.
Solution:   Avoid materializing the list.

Patch 9.0.0616
Problem:    Spell test fails because error message changed.
Solution:   Adjust expected error message.

Patch 9.0.0617
Problem:    Calling function for reduce() has too much overhead.
Solution:   Only call clear_tv() when needed.

Patch 9.0.0618
Problem:    Calling function for reduce() has too much overhead.
Solution:   Do not create a funccall_T every time.

Patch 9.0.0619
Problem:    Too many delete() calls in tests.
Solution:   Use deferred delete where possible.

Patch 9.0.0620
Problem:    matchaddpos() can only add up to 8 matches.
Solution:   Allocate the array of positions. (closes #11248)

Patch 9.0.0621
Problem:    Filetype test leaves file behind.
Solution:   Add deferred delete flag to writefile(). (Dominique Pellé,
            closes #11249)

Patch 9.0.0622
Problem:    matchaddpos() can get slow when adding many matches.
Solution:   Update the next available match ID when manually picking an ID and
            remove check if the available ID can be used. (idea by Rick Howe)

Patch 9.0.0623
Problem:    Error for modifying a const is not detected at compile time.
Solution:   Add TTFLAG_CONST and check for it in add() and extend().

Patch 9.0.0624
Problem:    Leaking argument type array.
Solution:   Add allocated memory to type_gap.

Patch 9.0.0625
Problem:    Too many delete() calls in tests.
Solution:   Use deferred delete where possible.

Patch 9.0.0626
Problem:    Too many delete() calls in tests.
Solution:   Use deferred delete where possible.

Patch 9.0.0627
Problem:    "const" and "final" both make the type a constant. (Daniel
            Steinberg)
Solution:   Only have "const" make the type a constant.

Patch 9.0.0628
Problem:    Coverity warns for not checking return value.
Solution:   Check the return value and simplify the code.

Patch 9.0.0629
Problem:    Get an error for using const only when executing.
Solution:   Check for const at compile time for filter(), map(), remove(),
            reverse(), sort() and uniq().

Patch 9.0.0630
Problem:    In MNV9 script a numbered function cannot be called.
Solution:   Do not require "g:" before a numbered function name.
            (closes #11254)

Patch 9.0.0631
Problem:    Too many delete() calls in tests.
Solution:   Use deferred delete where possible.

Patch 9.0.0632
Problem:    Calling a function from an "expr" option has too much overhead.
Solution:   Add call_simple_func() and use it for 'foldexpr'

Patch 9.0.0633
Problem:    FEAT_TITLE was removed but is still used.
Solution:   Remove FEAT_TITLE. (Naruhiko Nishino, closes #11256)

Patch 9.0.0634
Problem:    Evaluating "expr" options has more overhead than needed.
Solution:   Use call_simple_func() for 'foldtext', 'includeexpr', 'printexpr',
            "expr" of 'spellsuggest', 'diffexpr', 'patchexpr', 'balloonexpr',
            'formatexpr', 'indentexpr' and 'charconvert'.

Patch 9.0.0635
Problem:    Build error and compiler warnings.
Solution:   Add missing change.  Add type casts.

Patch 9.0.0636
Problem:    Underline color does not work in terminals that don't send a
            termresponse.
Solution:   Do output t_8u if it was set explicitly. (closes #11253)

Patch 9.0.0637
Problem:    Syntax of commands in MNV9 script depends on +eval feature.
Solution:   Use same syntax with and without the +eval feature.

Patch 9.0.0638
Problem:    Popup menu highlight wrong on top of preview popup. (Yegappan
            Lakshmanan)
Solution:   Also check for the popup menu in screen_line().

Patch 9.0.0639
Problem:    Checking for popup in screen_char() is too late, the attribute has
            already been changed.
Solution:   Move check for popup to where screen_char() is called.

Patch 9.0.0640
Problem:    Cannot scroll by screen line if a line wraps.
Solution:   Add the 'smoothscroll' option.  Only works for CTRL-E and CTRL-Y
            so far.

Patch 9.0.0641
Problem:    Missing part of the new option code.
Solution:   Add missing WV_SMS.

Patch 9.0.0642
Problem:    Breakindent test fails.
Solution:   Correct logic for resetting need_showbreak.

Patch 9.0.0643
Problem:    Smoothscroll test fails.
Solution:   Check if skipcol changed.

Patch 9.0.0644
Problem:    'smoothscroll' is not copied to a new window on :split.
Solution:   Copy the option value.  Add a test.

Patch 9.0.0645
Problem:    CTRL-Y does not stop at line 1. (John Marriott)
Solution:   Stop at line 1 when 'smoothscroll' is not set. (closes #11261)

Patch 9.0.0646
Problem:    with 'smoothscroll' set CTRL-E does not work properly when
            'foldmethod' is set to "indent". (Yee Cheng Chin)
Solution:   Merge the code for scrolling with folds and 'smoothscroll'.
            (closes #11262)

Patch 9.0.0647
Problem:    The 'splitscroll' option is not a good name.
Solution:   Rename 'splitscroll' to 'splitkeep' and make it a string option,
            also supporting "topline". (Luuk van Baal, closes #11258)

Patch 9.0.0648
Problem:    When using powershell input redirection does not work.
Solution:   Use a different shell command for powershell. (Yegappan
            Lakshmanan, closes #11257)

Patch 9.0.0649
Problem:    No indication when the first line is broken for 'smoothscroll'.
Solution:   Show "<<<" in the first line.

Patch 9.0.0650
Problem:    Some tests are failing.
Solution:   Adjust for "<<<" showing up.

Patch 9.0.0651
Problem:    Build fails without the +conceal feature.
Solution:   Rename called function.

Patch 9.0.0652
Problem:    'smoothscroll' not tested with 'number' and "n" in 'cpo'.
Solution:   Add tests, fix uncovered problem.

Patch 9.0.0653
Problem:    BS and DEL do not work properly in an interactive shell. (Gary
            Johnson)
Solution:   Adjust the length for replaced codes.

Patch 9.0.0654
Problem:    Breakindent test fails.
Solution:   Temporarily accept wrong result.

Patch 9.0.0655
Problem:    passing modifier codes to a shell running in the GUI. (Gary
            Johnson)
Solution:   Include modifier codes into the key and drop the modifiers.

Patch 9.0.0656
Problem:    Cannot specify another character to use instead of '@' at the end
            of the window.
Solution:   Add "lastline" to 'fillchars'. (Martin Tournoij, closes #11264,
            closes #10963)

Patch 9.0.0657
Problem:    Too many #ifdefs.
Solution:   Graduate the +cmdwin feature.  Now the tiny and small builds are
            equal, drop the small build.  (Martin Tournoij, closes #11268)

Patch 9.0.0658
Problem:    Tiny build fails on Mac OS.
Solution:   Define FEAT_CLIPBOARD only for normal build.

Patch 9.0.0659
Problem:    Wrong type of comment in SetSyn() function.
Solution:   Use MNV9 comment. (closes #11278)

Patch 9.0.0660
Problem:    Mapping with CTRL keys does not work in the GUI.
Solution:   Recognize CSI next to K_SPECIAL. (closes #11275, closes #11270)

Patch 9.0.0661
Problem:    Multi-byte "lastline" item in 'fillchars' does not work properly
            when the window is two columns wide.
Solution:   Compute the text length correctly. (closes #11280)

Patch 9.0.0662
Problem:    Concealed characters do not work correctly.
Solution:   Subtract boguscols instead of adding them. (closes #11273)

Patch 9.0.0663
Problem:    Tests check for +cmdwin feature which is always present.
Solution:   Remove the checks. (closes #11287)

Patch 9.0.0664
Problem:    Bad redrawing with spell checking, using "C" and "$" in 'cpo'.
Solution:   Do not redraw the next line when "$" is in 'cpo'. (closes #11285)

Patch 9.0.0665
Problem:    Setting 'cmdheight' has no effect if last window was resized.
Solution:   Do apply 'cmdheight' when told to.  Use the frame height instead
            of the cmdline_row.  (closes #11286)

Patch 9.0.0666
Problem:    Spacing-combining characters handled as composing, causing text to
            take more space than expected.
Solution:   Handle characters marked with "Mc" not as composing.
            (closes #11282)

Patch 9.0.0667
Problem:    ml_get error when 'splitkeep' is "screen". (Marius Gedminas)
Solution:   Check the botline is not too large. (Luuk van Baal,
            closes #11293, closes #11292)

Patch 9.0.0668
Problem:    CI on Mac M1 only uses clang
Solution:   Also run with gcc. (closes #11263)

Patch 9.0.0669
Problem:    Too many delete() calls in tests.
Solution:   Use deferred delete where possible.

Patch 9.0.0670
Problem:    No space for command line when there is a tabline.
Solution:   Correct computation of where the command line should be.
            (closes #11295)

Patch 9.0.0671
Problem:    Negative topline using CTRL-Y with 'smoothscroll' and 'diff'.
            (Ernie Rael)
Solution:   Only use 'smoothscroll' when 'wrap' is set.

Patch 9.0.0672
Problem:    Cursor line only partly shows with 'smoothscroll' and 'scrolloff'
            zero.
Solution:   Do not use 'smoothscroll' when adjusting the bottom of the window.
            (closes #11269)

Patch 9.0.0673
Problem:    First line not scrolled properly with 'smoothscroll' and
            'scrolloff' zero and using "k".
Solution:   Make sure the cursor position is visible.

Patch 9.0.0674
Problem:    Build error with tiny version.
Solution:   Use PLINES_NOFILL macro.

Patch 9.0.0675
Problem:    Search test screendump is outdated.
Solution:   Update the screendump for improved display.

Patch 9.0.0676
Problem:    CI on Mac M1 with gcc actually uses clang.
Solution:   Remove the gcc task. (Ozaki Kiichi, closes #11297)

Patch 9.0.0677
Problem:    Breakindent test accepts wrong result.
Solution:   Fix the number column and adjust the expected text.

Patch 9.0.0678
Problem:    Using exclamation marks on :function.
Solution:   Use :func and :endfunc as usual.

Patch 9.0.0679
Problem:    Tests failing with 'smoothscroll', 'number' and "n" in 'cpo'.
Solution:   Do not count number column in topline if columns are skipped.

Patch 9.0.0680
Problem:    Tests failing with 'breakindent', 'number' and "n" in 'cpo'.
Solution:   Do count the number column in topline if 'breakindent' is set.

Patch 9.0.0681
Problem:    "<<<" shows for 'smoothscroll' even when 'showbreak is set.
Solution:   When 'showbreak' is set do not display "<<<".

Patch 9.0.0682
Problem:    Crash when popup with deleted timer is closed. (Igbanam
            Ogbuluijah)
Solution:   Check the timer still exists. (closes #11301)

Patch 9.0.0683
Problem:    Cannot specify a time for :echowindow.
Solution:   A count can be used to specify the display time. Add
            popup_findecho().

Patch 9.0.0684
Problem:    Skipped :exe command fails compilation on MS-Windows.
Solution:   Adjust return value when skipping.

Patch 9.0.0685
Problem:    FORTIFY_SOURCE causes a crash in MNV9 script.
Solution:   Use a pointer to the first char. (Yee Cheng Chin, closes #11302)

Patch 9.0.0686
Problem:    The right ALT key does not work on some MS-Windows keyboards.
Solution:   Adjust the modifiers based on GetKeyState(). (Anton Sharonov,
            closes #11300)

Patch 9.0.0687
Problem:    "export def" does not work in a nested block.
Solution:   Do not handle "export" with a separate function but in the same
            command stack. (closes #11304)

Patch 9.0.0688
Problem:    Debugger does not display the whole command.
Solution:   Set ea.cmd before checking for a breakpoint.

Patch 9.0.0689
Problem:    Compiler warning for unused function.
Solution:   Add #ifdef. (John Marriott)

Patch 9.0.0690
Problem:    Buffer size for expanding tab not correctly computed.
Solution:   Correctly use size of end character.

Patch 9.0.0691
Problem:    lalloc(0) error in listchars test.
Solution:   Skip generating text for tab if tab_len is zero.

Patch 9.0.0692
Problem:    PoE filter files are not recognized.
Solution:   Add a pattern to detect PoE filter files. (closes #11305)

Patch 9.0.0693
Problem:    browse() first argument cannot be a bool.
Solution:   Use tv_get_bool_chk() instead of tv_get_number_chk().
            (closes #11308)

Patch 9.0.0694
Problem:    No native sound support on Mac OS.
Solution:   Add sound support for Mac OS. (Yee Cheng Chin, closes #11274)

Patch 9.0.0695
Problem:    Failing check for dictionary type for const any.
Solution:   Check for any type properly. (closes #11310)

Patch 9.0.0696
Problem:    It is unclear if the +rightleft and +arabic features are actively
            being used.
Solution:   Disable the features, await feedback.

Patch 9.0.0697
Problem:    Cursor in wrong position with Visual substitute.
Solution:   When restoring 'linebreak' mark the virtual column as invalid.
            (closes #11309, closes #11311)

Patch 9.0.0698
Problem:    VisMNV is outdated, does not work with current Visual Studio.
Solution:   Remove VisMNV. (Martin Tournoij)

Patch 9.0.0699
Problem:    Tiny build fails.
Solution:   Add #ifdef.

Patch 9.0.0700
Problem:    There is no real need for a "big" build.
Solution:   Move common features to "normal" build, less often used features
            to the "huge" build. (Martin Tournoij, closes #11283)

Patch 9.0.0701
Problem:    With 'smoothscroll' the cursor position s not adjusted in a long
            line.
Solution:   Move the cursor further up or down in the line.

Patch 9.0.0702
Problem:    Incomplete testing cursor position after change with 'linebreak'
            set.
Solution:   Add a test and move test cases together. (closes #11313)

Patch 9.0.0703
Problem:    Failing check for argument type for const any.
Solution:   Check for any type properly. (closes #11316)

Patch 9.0.0704
Problem:    CI runs "tiny" and "small" builds, which are the same.
Solution:   Remove the "small" build. (Naruhiko Nishino, closes #11315)

Patch 9.0.0705
Problem:    Virtual text truncation does not take padding into account.
Solution:   Subtract the padding from the available space. (closes #11318)

Patch 9.0.0706
Problem:    :help in a narrow window always opens at the top.
Solution:   Respect 'splitbelow'. (closes #11319)

Patch 9.0.0707
Problem:    With 'smoothscroll' and 'scrolloff' non-zero the cursor position
            is not properly adjusted in a long line.
Solution:   Move the cursor further up or down in the line.

Patch 9.0.0708
Problem:    :confirm does not work properly for a terminal buffer.
Solution:   Handle :confirm for a terminal buffer differently.  (Yee Cheng
            Chin, closes #11312)

Patch 9.0.0709
Problem:    Virtual text "after" not correct with 'nowrap'.
Solution:   Do not display "after" text prop on the next line when 'wrap' is
            off.

Patch 9.0.0710
Problem:    Quitting/unloading/hiding a terminal buffer does not always work
            properly.
Solution:   Avoid that ":q!" leaves an empty buffer behind.  ":bunload!" also
            kills the job and unloads the buffer.  ":hide" does not unload the
            buffer. (Yee Cheng Chin, closes #11323)

Patch 9.0.0711
Problem:    SubStation Alpha files are not recognized.
Solution:   Add patterns for SubStation Alpha files. (closes #11332)

Patch 9.0.0712
Problem:    Wrong column when calling setcursorcharpos() with zero lnum.
Solution:   Set the line number before calling buf_charidx_to_byteidx().
            (closes #11329)

Patch 9.0.0713
Problem:    <amatch> of MenuPopup event is expanded like a file name.
Solution:   Do not expand <amatch> for MenuPopup. (closes #11328)

Patch 9.0.0714
Problem:    With 'nowrap' two virtual text below not displayed correctly.
Solution:   Set text_prop_follows before continuing.  Correct for number
            column. (closes #11333)

Patch 9.0.0715
Problem:    Wrong argument for append() gives two error messages.
Solution:   When getting an error for a number argument don't try using it as
            a string. (closes #11335)

Patch 9.0.0716
Problem:    With 'nowrap' virtual text "after" does not scroll left.
Solution:   Skip part of the virtual text that is left of the window.
            (closes #11320)  Fix going beyond the last column of the window.

Patch 9.0.0717
Problem:    Compiler warning for unused variable in tiny build.
Solution:   Add #ifdefs.

Patch 9.0.0718
Problem:    Extra empty line between two virtual text "below" when 'wrap' and
            'number' are set.
Solution:   Reset "before" when there is no text in the screen line.
            (closes #11334)

Patch 9.0.0719
Problem:    Too many delete() calls in tests.
Solution:   Use deferred delete where possible.

Patch 9.0.0720
Problem:    MS-Windows GUI may have pixel dust from antialiasing.
Solution:   When a character changes also redraw the next one. (issue #8532)

Patch 9.0.0721
Problem:    Virtual text "above" with padding not displayed correctly.
Solution:   Take padding into account when truncating. (closes #11340)

Patch 9.0.0722
Problem:    Virtual text "after" does not show with 'list' set.
Solution:   Do not break out of the loop when another text prop follows.
            (closes #11337)

Patch 9.0.0723
Problem:    Extra empty line below virtual text when 'list' is set.
Solution:   Do not reset lcs_eol_one but set text_prop_follows. (closes #11339)

Patch 9.0.0724
Problem:    Closure in compiled function gets same variable in block.
Solution:   At the end of a block to not always reset the variable count.
            (issue #11094)

Patch 9.0.0725
Problem:    Virtual text "after" wraps to next line even when 'wrap' is off
            and 'list' is set.
Solution:   Do not use the minimum width when 'wrap' is off. (issue #11336)

Patch 9.0.0726
Problem:    Looping over list of lists and changing the list contents works in
            MNV9 script, not in a compiled function.
Solution:   Mark the loop variable final instead of const. (closes #11347)

Patch 9.0.0727
Problem:    Help in the repository differs from patched version too much.
Solution:   Make a patch for a few help files.

Patch 9.0.0728
Problem:    extend() test fails.
Solution:   Item is final, not const.

Patch 9.0.0729
Problem:    The rightleft and arabic features are disabled.
Solution:   Re-enable the features, some users want to use the functionality.

Patch 9.0.0730
Problem:    Startup test fails with right-left feature.
Solution:   Do not delete test file too early.

Patch 9.0.0731
Problem:    clang-tidy configuration files are not recognized.
Solution:   Recognize clang-tidy files as yaml. (closes #11350)

Patch 9.0.0732
Problem:    No check for white space before and after "=<<". (Doug Kearns)
Solution:   Check for white space in MNV9 script. (closes #11351)

Patch 9.0.0733
Problem:    Use of strftime() is not safe.
Solution:   Check the return value of strftime().  Use a larger buffer and
            correctly pass the available space. (Dominique Pellé, closes
            #11348)

Patch 9.0.0734
Problem:    Cursor position invalid when scrolling with 'smoothscroll' set.
            (Ernie Rael)
Solution:   Add w_valid_skipcol and clear flags when it changes.  Adjust
            w_skipcol after moving the cursor.

Patch 9.0.0735
Problem:    Breakindent and scrolloff tests fail.
Solution:   Temporarily skip the assertions.

Patch 9.0.0736
Problem:    Quickfix listing does not handle very long messages.
Solution:   Use a growarray instead of a fixed size buffer. (Yegappan
            Lakshmanan, closes #11357)

Patch 9.0.0737
Problem:    Lisp word only recognized when a space follows.
Solution:   Also match a word at the end of a line.  Rename the test.  Use a
            compiled function to avoid backslashes.

Patch 9.0.0738
Problem:    Cannot suppress completion "scanning" messages.
Solution:   Add the "C" flag in 'shortmess'. (Bjorn Linse, closes #11354)

Patch 9.0.0739
Problem:    Mouse column not correctly used for popup_setpos.
Solution:   Adjust off-by-one error and handle Visual line selection properly.
            (Yee Cheng Chin, closes #11356)

Patch 9.0.0740
Problem:    prop_add_list() gives multiple errors for invalid argument.
Solution:   Only give one error message.

Patch 9.0.0741
Problem:    Cannot specify an ID for each item with prop_add_list(). (Sergey
            Vlasov)
Solution:   Add an optional fifth number to the item. (closes #11360)

Patch 9.0.0742
Problem:    Reading past end of the line when compiling a function with
            errors.
Solution:   Do not return an invalid pointer.  Fix skipping redirection.

Patch 9.0.0743
Problem:    Starting cscope on Unix does not quote the arguments correctly.
            (Gary Johnson)
Solution:   Move the final quote after the arguments.

Patch 9.0.0744
Problem:    In script in autoload dir exported variable is not found. (Doug
            Kearns)
Solution:   Find the variable with the "script#" prefix. (closes #11361)

Patch 9.0.0745
Problem:    Wrong cursor position when using "gj" and "gk" in a long line.
Solution:   Adjust computations for the cursor position and skipcol. Re-enable
            tests that pass now, disable failing breakindent test.

Patch 9.0.0746
Problem:    Breakindent test cases are commented out.
Solution:   Adjust expected result to slightly different behavior.  Correct
            computations for cursor position.

Patch 9.0.0747
Problem:    Too many #ifdefs.
Solution:   Graduate the +cmdline_info feature. (Martin Tournoij,
            closes #11330)

Patch 9.0.0748
Problem:    Kitty may send key without modifiers with CSI u code.
Solution:   Handle CSI u code without modifiers. (Trygve Aaberge,
            closes #11364)

Patch 9.0.0749
Problem:    Alloc/free of buffer for each quickfix entry is inefficient.
Solution:   Use a shared grow array. (Yegappan Lakshmanan, closes #11365)

Patch 9.0.0750
Problem:    Crash when popup closed in callback. (Maxim Kim)
Solution:   In syntax_end_parsing() check that syn_block is valid.

Patch 9.0.0751
Problem:    'scrolloff' does not work well with 'smoothscroll'.
Solution:   Make positioning the cursor a bit better.  Rename functions.

Patch 9.0.0752
Problem:    Rprofile files are not recognized.
Solution:   Recognize Rprofile files as "r". (closes #11369)

Patch 9.0.0753
Problem:    Some Ex commands are not in the help index.
Solution:   Add the missing commands.  Add a script to check all Ex commands
            are in the help index. (Yee Cheng Chin, closes #11371)

Patch 9.0.0754
Problem:    'indentexpr' overrules lisp indenting in one situation.
Solution:   Add "else" to keep the lisp indent. (issue #11327)

Patch 9.0.0755
Problem:    Huge build on macos always fails on CI.
Solution:   Temporarily disable the perl interface.

Patch 9.0.0756
Problem:    No autocmd event for changing text in a terminal window.
Solution:   Add TextChangedT. (Shougo Matsushita, closes #11366)

Patch 9.0.0757
Problem:    Line number not visible with 'smoothscroll', 'nu' and 'rnu'.
Solution:   Put the ">>>" after the line number instead of on top.

Patch 9.0.0758
Problem:    "precedes" from 'listchars' overwritten by <<< for 'smoothscroll'.
Solution:   Keep the "precedes" character.

Patch 9.0.0759
Problem:    Huge build on macos does not use Perl.
Solution:   Re-enable the Perl interface using "dynamic". (closes #11375)

Patch 9.0.0760
Problem:    Display test for 'listchars' "precedes" fails.
Solution:   Correct the expected result.

Patch 9.0.0761
Problem:    Cannot use 'indentexpr' for Lisp indenting.
Solution:   Add the 'lispoptions' option.

Patch 9.0.0762
Problem:    Build failure.
Solution:   Add missing change.

Patch 9.0.0763
Problem:    MS-Windows: warning for using int for size_t.
Solution:   Declare variable as size_t.

Patch 9.0.0764
Problem:    Indent and option tests fail.
Solution:   Change OP_INDENT.  Add entry to options test table.

Patch 9.0.0765
Problem:    With a Visual block a put command column may go negative.
Solution:   Check that the column does not become negative.

Patch 9.0.0766
Problem:    Too many delete() calls in tests.
Solution:   Use deferred delete where possible.

Patch 9.0.0767
Problem:    Too many delete() calls in tests.
Solution:   Use deferred delete where possible.

Patch 9.0.0768
Problem:    Too many delete() calls in tests.
Solution:   Use deferred delete where possible.

Patch 9.0.0769
Problem:    Too many delete() calls in tests.
Solution:   Use deferred delete where possible.

Patch 9.0.0770
Problem:    Quickfix commands may keep memory allocated.
Solution:   Free memory when it's a bit much. (Yegappan Lakshmanan,
            closes #11379)

Patch 9.0.0771
Problem:    Cannot always tell the difference between tex and rexx files.
Solution:   Recognize tex by a leading backslash. (Martin Tournoij,
            closes #11380)

Patch 9.0.0772
Problem:    The libvterm code is outdated.
Solution:   Include libvterm changes from revision 790 to 801.

Patch 9.0.0773
Problem:    Huge build on MacOS uses dynamic Perl.
Solution:   Use built-in Perl, uninstall the brew one. (closes #11382)

Patch 9.0.0774
Problem:    The libvterm code is outdated.
Solution:   Include libvterm changes from revision 802 to 817.  Revert some
            changes made for C89.

Patch 9.0.0775
Problem:    MS-Windows: mouse scrolling not supported in the console.
Solution:   Add event handling for mouse scroll events. (Christopher
            Plewright, closes #11374)

Patch 9.0.0776
Problem:    MSVC can't have field name "small".
Solution:   Rename small to smallfont.

Patch 9.0.0777
Problem:    Code is indented too much.
Solution:   Use an early return. (Yegappan Lakshmanan, closes #11386)

Patch 9.0.0778
Problem:    Indexing of unknown const type fails during compilation.
Solution:   Check for "any" properly. (closes #11389)

Patch 9.0.0779
Problem:    lsl and lm3 file extensions are not recognized.
Solution:   Add *.lsl and *.lm3 patterns. (Doug Kearns, closes #11384)

Patch 9.0.0780
Problem:    'scroll' value computed in unexpected location.
Solution:   Compute 'scroll' when the window height is changed. (Luuk van
            Baal, closes #11387)

Patch 9.0.0781
Problem:    Workaround to rename "small" to "smallfont" is clumsy.
Solution:   Undefine "small" after including windows.h. (Ken Takata)

Patch 9.0.0782
Problem:    OpenVPN files are not recognized.
Solution:   Add patterns for OpenVPN files. (closes #11391)

Patch 9.0.0783
Problem:    ":!" doesn't do anything but does update the previous command.
Solution:   Do not have ":!" change the previous command. (Martin Tournoij,
            closes #11372)

Patch 9.0.0784
Problem:    Text prop "above" not displayed correctly with 'number' and "n" in
            'cpo'.
Solution:   Draw the line number column until the line text is reached.

Patch 9.0.0785
Problem:    Memory leak with empty shell command.
Solution:   Free the allocated memory when bailing out.

Patch 9.0.0786
Problem:    User command does not get number from :tab modifier.
Solution:   Include the number. (closes #11393, closes #6901)

Patch 9.0.0787
Problem:    MS-Windows: mouse scrolling in terminal misbehaves without dll.
Solution:   Add #ifdef as a temporary solution. (Christopher Plewright,
            closes #11392)

Patch 9.0.0788
Problem:    ModeChanged autocmd not executed when Visual mode is ended with
            CTRL-C.
Solution:   Do not trigger the autocmd when got_int is set. (closes #11394)

Patch 9.0.0789
Problem:    Dummy buffer ends up in a window.
Solution:   Disallow navigating to a dummy buffer.

Patch 9.0.0790
Problem:    Test for dummy buffer does not always produce the E86 error.
Solution:   Do not check if the error is produced.

Patch 9.0.0791
Problem:    At the hit-Enter prompt the End and Home keys may not work.
Solution:   Use the special "@" code for End and Home, like it was done for
            the cursor keys in patch 8.2.2246. (Trygve Aaberge, closes #11396)

Patch 9.0.0792
Problem:    MS-Windows: compiler complains about unused function.
Solution:   Add #ifdef. (John Marriott)

Patch 9.0.0793
Problem:    MS-Windows: mouse scroll events only work with the dll.
Solution:   Accept CSI codes for MS-Windows without the GUI. (Christopher
            Plewright, closes #11401)

Patch 9.0.0794
Problem:    There is no way to find out if an escape sequence with
            modifyOtherKeys has been seen.
Solution:   Add a notice with ":verbose map".

Patch 9.0.0795
Problem:    readblob() always reads the whole file.
Solution:   Add arguments to read part of the file. (Ken Takata,
            closes #11402)

Patch 9.0.0796
Problem:    Mapping test fails in some situations.
Solution:   Find the line with the verbose information.

Patch 9.0.0797
Problem:    Order of assert function arguments is reverted.
Solution:   Swap the arguments. (closes #11399)

Patch 9.0.0798
Problem:    Clang format configuration files are not recognized.
Solution:   Use yaml for Clang format configuration files. (Marwin Glaser,
            closes #11398)

Patch 9.0.0799
Problem:    In compiled function ->() on next line not recognized.
Solution:   Also check for "(". (closes #11405)

Patch 9.0.0800
Problem:    Compiler complains about repeated typedef.
Solution:   Remove one typedef.

Patch 9.0.0801
Problem:    The modifyOtherKeys flag is set when it should not.
Solution:   Do not handle special key codes with a modifier value above 16 as
            a modifyOtherKeys value. (issue #11403)

Patch 9.0.0802
Problem:    MS-Windows: cannot map console mouse scroll events.
Solution:   Change CSI to K_SPECIAL when checking for a mapping. (Christopher
            Plewright, closes #11410)

Patch 9.0.0803
Problem:    readblob() cannot read from character device.
Solution:   Use S_ISCHR() to not check the size. (Ken Takata, closes #11407)

Patch 9.0.0804
Problem:    Crash when trying to divide the largest negative number by -1.
Solution:   Handle this case specifically.

Patch 9.0.0805
Problem:    Filetype autocmd may cause freed memory access.
Solution:   Set the quickfix-busy flag while filling the buffer.

Patch 9.0.0806
Problem:    'langmap' works differently when there are modifiers.
Solution:   Only apply 'langmap' to a character where modifiers have no
            effect. (closes #11395, closes #11404)

Patch 9.0.0807
Problem:    With 'smoothscroll' typing "0" may not go to the first column.
Solution:   Recompute w_cline_height when needed.  Do not scroll up when it
            would move the cursor.

Patch 9.0.0808
Problem:    jsonnet filetype detection has a typo.
Solution:   Change "libjsonnet" to "libsonnet". (Maxime Brunet, closes #11412)

Patch 9.0.0809
Problem:    Test for job writing to buffer fails.
Solution:   Correct w_topline when deleting a buffer line.

Patch 9.0.0810
Problem:    readblob() returns empty when trying to read too much.
Solution:   Return what is available.

Patch 9.0.0811
Problem:    Error if :echowin is preceded by a command modifier.
Solution:   Do not give an error for range when there is a modifier.
            (closes #11414)

Patch 9.0.0812
Problem:    GUI mouse scrollwheel mappings don't work.
Solution:   Add check for "gui.in_use". (Christopher Plewright, closes #11418)

Patch 9.0.0813
Problem:    Kitty terminal is not recognized.
Solution:   Recognize Kitty by the termresponse and then do not set
            seenModifyOtherKeys, since Kitty doesn't support that.
            (issue #11413)

Patch 9.0.0814
Problem:    Aws config files are not recognized.
Solution:   Use "confini" for aws config files. (Justin M. Keyes,
            closes #11416)

Patch 9.0.0815
Problem:    ":!" does not switch to the alternate screen.
Solution:   For ":!" don't clear the previous command. (closes #11420,
            closes #11409) 

Patch 9.0.0816
Problem:    CTRL-Z at end of file is always dropped.
Solution:   Add the 'endoffile' option, like the 'endofline' option.
            (closes #11408, closes #11397) 

Patch 9.0.0817
Problem:    Build error.
Solution:   correct variable name. 

Patch 9.0.0818
Problem:    "!ls" does not work.
Solution:   Do not free memory that is in use. 

Patch 9.0.0819
Problem:    Still a build error, tests are failing.
Solution:   Correct recent changes. Add missing init for 'eof'.

Patch 9.0.0820
Problem:    Memory leak with empty shell command.
Solution:   Free the empty string.

Patch 9.0.0821
Problem:    Memory leak with empty shell command.
Solution:   Free the empty string.

Patch 9.0.0822
Problem:    Crash when dragging the statusline with a mapping.
Solution:   Check for valid window pointer. (issue #11427)

Patch 9.0.0823
Problem:    Mouse drag test fails.
Solution:   Only reset the mouse click flag when actually switching to another
            tab page.  Disable test that keeps failing.

Patch 9.0.0824
Problem:    Crash when using win_move_separator() in other tab page.
Solution:   Check for valid window in current tab page.
            (closes #11479, closes #11427)

Patch 9.0.0825
Problem:    Cannot drag an entry in the tabpage line.
Solution:   Clear dragwin instead of got_click. (closes #11483,
            closes #11482)

Patch 9.0.0826
Problem:    If 'endofline' is set the CTRL-Z may be written in the wrong
            place.
Solution:   Write CTRL-Z at the end of the file.  Update the help to explain
            the possibilities better. (Ken Takata, closes #11486)

Patch 9.0.0827
Problem:    The <Home> key in tmux doesn't work when 'term' is set to "xterm".
            (Dominique Pellé)
Solution:   Only use '@' in a termcap key entry for "1" when ";" follows.
            (closes #11429)

Patch 9.0.0828
Problem:    Various typos.
Solution:   Correct typos. (closes #11432)

Patch 9.0.0829
Problem:    Wrong counts in macro comment.
Solution:   Update the value counts. (closes #11480)

Patch 9.0.0830
Problem:    Compiling with Perl on Mac 12 fails.
Solution:   Suppress infinite warnings. (closes #11499)

Patch 9.0.0831
Problem:    Compiler warning for redefining HAVE_DUP.
Solution:   Undefine HAVE_DUP if needed. (Ozaki Kiichi, closes #11484)

Patch 9.0.0832
Problem:    Deprecation warning causes build failure.
Solution:   Suppress deprecation warning. (closes #11503)

Patch 9.0.0833
Problem:    Mac: no +sound feature in huge build.
Solution:   Enable +sound in Mac huge build. (closes #11497)

Patch 9.0.0834
Problem:    Warning for missing return type.
Solution:   Add "int". (San James, closes #11496)

Patch 9.0.0835
Problem:    The window title is not redrawn when 'endoffile' changes.
Solution:   redraw the window title when 'endoffile' is changed. (Ken Takata,
            closes #11488)

Patch 9.0.0836
Problem:    Wrong error when using extend() with funcref.
Solution:   Better check the variable type. (closes #11468, closes #11455)

Patch 9.0.0837
Problem:    append() reports failure when not appending anything.
Solution:   Only report failure when appending something. (closes #11498)

Patch 9.0.0838
Problem:    Compiler warnings for unused variables.
Solution:   Adjust #ifdef and remove unused variables. (John Marriott)

Patch 9.0.0839
Problem:    Test may fail depending on sequence of events.
Solution:   Accept error codes in either order. (Yee Cheng Chin,
            closes #11510)

Patch 9.0.0840
Problem:    Cannot change a slice of a const list. (Takumi KAGIYAMA)
Solution:   Remove the const flag from the slice type. (closes #11490)

Patch 9.0.0841
Problem:    deletebufline() does not always return 1 on failure.
Solution:   Refactor the code to make it work more predictable. (closes #11511)

Patch 9.0.0842
Problem:    Unicode range for Apple SF symbols is outdated.
Solution:   Update to SF Symbols 4. (Yee Cheng Chin, closes #11474)

Patch 9.0.0843
Problem:    VHS tape files are not recognized.
Solution:   Add a filetype pattern. (Carlos Alexandro Becker, closes #11452)

Patch 9.0.0844
Problem:    Handling 'statusline' errors is spread out.
Solution:   Pass the option name to the lower levels so the option can be
            reset there when an error is encountered. (Luuk van Baal,
            closes #11467)

Patch 9.0.0845
Problem:    Shell command with just space gives strange error.
Solution:   Skip white space at start of the argument. (Christian Brabandt,
            Shane-XB-Qian, closes #11515, closes #11495)

Patch 9.0.0846
Problem:    Using assert_fails() may cause hit-enter prompt.
Solution:   Set no_wait_return. (closes #11522)

Patch 9.0.0847
Problem:    CI: not totally clear what MS-Windows version is used.
Solution:   Show the Windows version. (Ken Takata, closes #11524)

Patch 9.0.0848
Problem:    Help item for --log argument is not aligned nicely.
Solution:   Add a Tab. (Ken Takata, closes #11521)

Patch 9.0.0849
Problem:    Terminal mouse test is a bit flaky.
Solution:   Add WaitFor() calls. (James McCoy closes #11519)  Tune wait times
            to reduce flakiness.

Patch 9.0.0850
Problem:    MS-Windows Terminal has unstable color control.
Solution:   Do not try to read the old command prompt colortable, use modern
            VT sequences. (Christopher Plewright, closes #11450,
            closes #11373)

Patch 9.0.0851
Problem:    Terminal mouse test is still flaky.
Solution:   Also use WaitForAssert().

Patch 9.0.0852
Problem:    Crypt test is skipped if xxd is not found.
Solution:   Find xxd where it was supposed to be build.

Patch 9.0.0853
Problem:    Terminal mouse test is still flaky on MacOS M1.
Solution:   Also wait for the file to have some contents.

Patch 9.0.0854
Problem:    No proper test for what 9.0.0846 fixes.
Solution:   Run test in a terminal so that the hit-enter prompt can show up.
            (closes #11523)

Patch 9.0.0855
Problem:    Comment not located above the code it refers to.
Solution:   Move the comment. (closes #11527)

Patch 9.0.0856
Problem:    MS-Windows: executable not found when running individual test.
Solution:   Also look for mnvd.exe. (Christopher Plewright, closes #11525)

Patch 9.0.0857
Problem:    Selecting MSVC 2017 does not set $PLATFORM.
Solution:   Use $VSCMD_ARG_TGT_ARCH. (Ken Takata, closes #11485)

Patch 9.0.0858
Problem:    "!!sort" in a closed fold sorts too many lines.
Solution:   Round to end of fold after adding the line count. (closes #11487)

Patch 9.0.0859
Problem:    Compiler warning for unused variable.
Solution:   Add #ifdef.

Patch 9.0.0860
Problem:    MS-Windows: windres fails with clang 15.0.4.
Solution:   Use llvm-windres. (John Marriott)

Patch 9.0.0861
Problem:    Solution for "!!sort" in closed fold is not optimal.
Solution:   Use a different range instead of the subtle difference in handling
            a range with an offset. (issue #11487)

Patch 9.0.0862
Problem:    Default value of 'endoffile' is wrong.
Solution:   The default must be 'noendoffile'.

Patch 9.0.0863
Problem:    col() and charcol() only work for the current window.
Solution:   Add an optional winid argument. (Yegappan Lakshmanan,
            closes #11466, closes #11461)

Patch 9.0.0864
Problem:    Crash when using "!!" without a previous shell command.
Solution:   Check "prevcmd" is not NULL. (closes #11487)

Patch 9.0.0865
Problem:    Duplicate arguments are not always detected.
Solution:   Expand to full path before comparing arguments. (Nir Lichtman,
            closes #11505, closes #9402)

Patch 9.0.0866
Problem:    No test for what patch 8.2.2207 fixes.
Solution:   Add a test case. (closes #11531)

Patch 9.0.0867
Problem:    Wildmenu redrawing code is spread out.
Solution:   Refactor to move code together. (closes #11528)

Patch 9.0.0868
Problem:    MS-Windows: after MNV exits console resizing does not work
            properly.
Solution:   Restore screen behavior checks for various WT and VTP
            combinations. (Christopher Plewright, closes #11526,
            closes #11507)

Patch 9.0.0869
Problem:    Bogus error when string used after :elseif.
Solution:   Do not consider a double quote the start of a comment.
            (closes #11534)

Patch 9.0.0870
Problem:    Get E967 when using text property in quickfix window. (Sergey
            Vlasov)
Solution:   Do not add an extra NUL and compute the text length correctly.
            (closes #11513)

Patch 9.0.0871
Problem:    Using freed memory when clearing augroup at more prompt.
Solution:   Delay clearing augroup until it's safe. (closes #11441)

Patch 9.0.0872
Problem:    Code is indented more than needed.
Solution:   Return early. (Yegappan Lakshmanan, closes #11538)

Patch 9.0.0873
Problem:    Using freed memory when executing mapclear at the more prompt.
Solution:   Do not clear mappings while listing them. (closes #11438)

Patch 9.0.0874
Problem:    Using freed memory when executing unmenu at the more prompt.
Solution:   Do not clear menus while listing them. (closes #11439)

Patch 9.0.0875
Problem:    Using freed memory when executing delfunc at the more prompt.
Solution:   Check function list not changed in another place. (closes #11437)

Patch 9.0.0876
Problem:    Code is indented more than needed.
Solution:   Split ExpandEscape() in two. (Yegappan Lakshmanan, closes #11539)

Patch 9.0.0877
Problem:    Using freed memory with :comclear while listing commands.
Solution:   Bail out when the command list has changed. (closes #11440)

Patch 9.0.0878
Problem:    Coverity warns for dead code.
Solution:   Remove the dead code.

Patch 9.0.0879
Problem:    Unnecessary nesting in makefile.
Solution:   Join "else" and "ifeq". (Ken Takata, closes #11547)

Patch 9.0.0880
Problem:    Preprocessor indenting is off.
Solution:   Adjust preprocessor indentation. (Ken Takata, closes #11546)

Patch 9.0.0881
Problem:    Cannot get the currently showing mouse shape.
Solution:   Add getmouseshape().

Patch 9.0.0882
Problem:    Using freed memory after SpellFileMissing autocmd uses bwipe.
Solution:   Bail out if the window no longer exists.

Patch 9.0.0883
Problem:    A silent mapping may cause dots on the command line.
Solution:   Don't show dots for completion if they are not going to be removed
            again. (closes #11501)

Patch 9.0.0884
Problem:    Mouse shape remains in op-pending mode after failed change.
Solution:   Reset finish_op and restore it. (closes #11545)

Patch 9.0.0885
Problem:    Informational message has an error message number.
Solution:   Use a message without an error number. (closes #11530)

Patch 9.0.0886
Problem:    Horizontal mouse scroll only works in the GUI.
Solution:   Make horizontal mouse scroll also work in a terminal.
            (Christopher Plewright, closes #11448)

Patch 9.0.0887
Problem:    Cannot easily try out what codes various keys produce.
Solution:   Add a script to gather key code information, with an initial list
            of codes to compare with.

Patch 9.0.0888
Problem:    MS-Windows GUI: CTRL-] does not work on Swiss keyboard.
Solution:   Check the key code and don't consider it as a dead key. (Aedin
            Louis Xavier, closes #11556)

Patch 9.0.0889
Problem:    Keycode check script has a few flaws.
Solution:   Sort on terminal name.  Ignore XTGETTCAP responses.  Check for
            version and status response.  Update entries.

Patch 9.0.0890
Problem:    No test for what patch 9.0.0827 fixes.
Solution:   Add a test (still doesn't fail when fix is reverted).

Patch 9.0.0891
Problem:    Virtual text below after match has wrong highlight.
Solution:   Restore search_attr only after the virtual text.
            (closes #11446)

Patch 9.0.0892
Problem:    May redraw when not needed, causing slow scrolling.
Solution:   Do not redraw when w_skipcol doesn't change.  When w_skipcol
            changes only redraw from the top. (issue #11559)

Patch 9.0.0893
Problem:    'smoothscroll' cursor calculations wrong when 'number' is set.
Solution:   Correct the code that computes the width. (closes #11492)

Patch 9.0.0894
Problem:    Virtual text property highlight ignores window background.
Solution:   Combine text prop attribute with win_attr into extra_attr.
            (closes #11462)

Patch 9.0.0895
Problem:    File renamed twice in test; missing feature check.
Solution:   Remove a rename() call.  Add check for cryptv feature.
            (closes #11564)

Patch 9.0.0896
Problem:    Test for home key fails when 'term' is "tmux".
Solution:   Only save termcap entries that exist.  Adjust code for xHome to
            what xterm uses. (closes #11566)

Patch 9.0.0897
Problem:    Clinical Quality Language files are not recognized.
Solution:   Add the "*.cql" pattern. (Matthew Gramigna, closes #11452)

Patch 9.0.0898
Problem:    With 'smoothscroll' cursor is one screen line too far down. (Ernie
            Rael)
Solution:   Add a test that currently has the wrong result so that a fix can
            be made. (issue #11436)

Patch 9.0.0899
Problem:    The builtin terminals are in one long list.
Solution:   Refactor into multiple lists and an index of the lists.

Patch 9.0.0900
Problem:    Cursor moves too far with 'smoothscroll'.
Solution:   Only move as far as really needed. (Yee Cheng Chin, closes #11504)

Patch 9.0.0901
Problem:    Setting w_leftcol and handling side effects is confusing.
Solution:   Use a function to set w_leftcol() and handle side effects.

Patch 9.0.0902
Problem:    Some mouse scroll code is not in a good place.
Solution:   Refactor the code. (Christopher Plewright, closes #11561)

Patch 9.0.0903
Problem:    Key code checker doesn't check modifyOtherKeys resource.
Solution:   Request the modifyOtherKeys resource value.  Drop resource DCS
            responses.

Patch 9.0.0904
Problem:    Various comment and indent flaws.
Solution:   Improve comments and indenting.

Patch 9.0.0905
Problem:    Virtual text after the line wraps when 'wrap' is off.
Solution:   Only set text_prop_follows when wrapping. (closes #11463)

Patch 9.0.0906
Problem:    Mouse scroll code is not optimal.
Solution:   Properly organise Normal mode, Insert mode and common code.
            (Christopher Plewright, closes #11572)

Patch 9.0.0907
Problem:    Restoring window after WinScrolled may fail.
Solution:   Lock the window layout when triggering WinScrolled.

Patch 9.0.0908
Problem:    With 'smoothscroll' cursor may end up in wrong position.
Solution:   Correct the computation of screen lines. (Yee Cheng Chin,
            closes #11502)

Patch 9.0.0909
Problem:    Error message for layout change does not match action.
Solution:   Pass the command to where the error is given. (closes #11573)

Patch 9.0.0910
Problem:    Setting lines in another buffer may not work well.
Solution:   Make sure the buffer being changed has a window. (issue #11558)

Patch 9.0.0911
Problem:    With 'smoothscroll' set mouse click position may be wrong.
Solution:   Adjust computations for w_skipcol. (Yee Cheng Chin, closes #11514)

Patch 9.0.0912
Problem:    libvterm with modifyOtherKeys level 2 does not match xterm.
Solution:   Adjust key code escape sequences to be the same as what xterm
            sends in modifyOtherKeys level 2 mode.  Check the value of
            no_reduce_keys before using it.

Patch 9.0.0913
Problem:    Only a change in the current window triggers the WinScrolled
            event.
Solution:   Trigger WinScrolled if any window scrolled or changed size.
            (issue #11576)

Patch 9.0.0914
Problem:    deletebufline() may move marks in the wrong window.
Solution:   Find a window for the buffer being changed. (closes #11583)

Patch 9.0.0915
Problem:    WinScrolled may trigger immediately when defined.
Solution:   Initialize the fields in all windows. (closes #11582)

Patch 9.0.0916
Problem:    getbufline() is inefficient for getting a single line.
Solution:   Add getbufoneline().

Patch 9.0.0917
Problem:    The WinScrolled autocommand event is not enough.
Solution:   Add WinResized and provide information about what changed.
            (closes #11576)

Patch 9.0.0918
Problem:    MS-Windows: modifier keys do not work with mouse scroll events.
Solution:   Use K_SPECIAL instead of CSI for the modifier keys. (Christopher
            Plewright, closes #11587)

Patch 9.0.0919
Problem:    Build failure with tiny features.
Solution:   Adjust #ifdef's.

Patch 9.0.0920
Problem:    Cannot find an import prefixed with "s:". (Doug Kearns)
Solution:   Skip over the "s:". (closes #11585)

Patch 9.0.0921
Problem:    Missing defined(PROTO) in #ifdef.
Solution:   Adjust #ifdef so that proto works with different features.
            Clean up some preprocessor indenting.

Patch 9.0.0922
Problem:    Mermaid files are not recognized.
Solution:   Add patterns for Mermaid. (Crag MacEachern)

Patch 9.0.0923
Problem:    Second SIGWINCH signal may be ignored.
Solution:   When set_shellsize() is busy when called then run the inner code
            again when it's done.  (issue #424)

Patch 9.0.0924
Problem:    The first termcap entry of a builtin termcap is not used.
Solution:   Remove increment that was previously skipping the KS_NAME entry.

Patch 9.0.0925
Problem:    Two conditions are always false.
Solution:   Remove the conditions.  Update return value types to make clear
            what could be returned. (closes #11593)

Patch 9.0.0926
Problem:    Coverity warns for not using return value of dict_add().
Solution:   When dict_add() fails then don't call hash_remove().

Patch 9.0.0927
Problem:    Coverity warns for using a NULL pointer.
Solution:   Check for memory allocation failure.

Patch 9.0.0928
Problem:    Using Ruby LDFLAGS may cause build problems.
Solution:   Do not add Ruby LDFLAGS to MNV's LDFLAGS. (Zdenek Dohnal,
            closes #11592)

Patch 9.0.0929
Problem:    Build failure with tiny version. (Tony Mechelynck)
Solution:   Add #ifdef.

Patch 9.0.0930
Problem:    Cannot debug the Kitty keyboard protocol with TermDebug.
Solution:   Add Kitty keyboard protocol support to the libvterm fork.
            Recognize the escape sequences that the protocol generates.  Add
            the 'keyprotocol' option to allow the user to specify for which
            terminal what protocol is to be used, instead of hard-coding this.
            Add recognizing the kitty keyboard protocol status.

Patch 9.0.0931
Problem:    MS-Windows: mouse column limited to 223.
Solution:   Use two bytes for each mouse coordinate.  Add the mouse position
            to scroll events. (Christopher Plewright, closes #11597)

Patch 9.0.0932
Problem:    Oblivion files are not recognized.
Solution:   Recognize Oblivion files and alike as "obse". (closes #11540)

Patch 9.0.0933
Problem:    Kitty shows "already at oldest change" on startup.
Solution:   When receiving the keyboard protocol state return the ignore key.
            (closes #11601)

Patch 9.0.0934
Problem:    Various code formatting issues.
Solution:   Improve code formatting.

Patch 9.0.0935
Problem:    When using dash it may not be recognize as filetype "sh".
Solution:   Add checks for "dash". (Eisuke Kawashima, closes #11600)

Patch 9.0.0936
Problem:    Wrong type for "isunnamed" returned by getreginfo().
Solution:   Use VAR_BOOL instead of VAR_SPECIAL. (closes #11598)

Patch 9.0.0937
Problem:    Forked repositories send out useless email.
Solution:   When Coverity fails to run just ignore it. (Shane-XB-Qian,
            closes #11604)

Patch 9.0.0938
Problem:    MS-Windows: debug executable not found when running test.
Solution:   Look for mnvd.exe. (Christopher Plewright, closes #11602)

Patch 9.0.0939
Problem:    Still using simplified mappings when using the kitty keyboard
            protocol.
Solution:   Use the kitty_protocol_state value to decide whether to use
            simplified mappings.  Improve how seenModifyOtherKeys is set and
            reset.

Patch 9.0.0940
Problem:    Crash when typing a letter in a terminal window. (Shane-XB-Qian)
Solution:   Use the "vterm" variable instead of getting the terminal pointer
            from the current buffer.  (closes #11608)

Patch 9.0.0941
Problem:    CI failures in sound dummy.
Solution:   Temporarily disable building sound dummy. (closes #11610)

Patch 9.0.0942
Problem:    Workflow Description Language files are not recognized.
Solution:   Add a pattern for the "wdl" filetype. (Matt Dunford,
            closes #11611)

Patch 9.0.0943
Problem:    Pretending to go out of Insert mode when Esc is received has side
            effects.
Solution:   When the kitty keyboard protocol is enabled expect Esc to always
            be the start of an escape sequence.

Patch 9.0.0944
Problem:    'cursorline' causes virtual text highlight to continue.
Solution:   Save and restore line_attr. (closes #11588)

Patch 9.0.0945
Problem:    Failures in the cursorline test.
Solution:   Reset extra_attr only after a text property.

Patch 9.0.0946
Problem:    CI: Error in Coverity flow is not reported.
Solution:   Use another way to avoid errors in a forked repository. (Ken
            Takata, closes #11609)

Patch 9.0.0947
Problem:    Invalid memory access in substitute with function that goes to
            another file.
Solution:   Check for text locked in CTRL-W gf.

Patch 9.0.0948
Problem:    'ttyfast' is set for arbitrary terminals.
Solution:   Always set 'ttyfast'. (closes #11549)

Patch 9.0.0949
Problem:    Crash when unletting a variable while listing variables.
Solution:   Disallow changing a hashtable while going over the entries.
            (closes #11435)

Patch 9.0.0950
Problem:    The pattern "\_s\zs" matches at EOL.
Solution:   Make the pattern "\_s\zs" match at the start of the next line.
            (closes #11617)

Patch 9.0.0951
Problem:    Trying every character position for a match is inefficient.
Solution:   Use the start position of the match ignoring "\zs".

Patch 9.0.0952
Problem:    Eclipse preference files are not recognized.
Solution:   Add a pattern to use "jproperties" for Eclipse preference files.
            (closes #11618)

Patch 9.0.0953
Problem:    Part of making search more efficient is missing.
Solution:   Add the change in searchit().

Patch 9.0.0954
Problem:    Cannot detect whether modifyOtherKeys is enabled.
Solution:   Use XTQMODKEYS introduced by xterm version 377 to request the
            modifyOtherKeys level.  Update the keycode check results.

Patch 9.0.0955
Problem:    Libvterm does not support the XTQMODKEYS request.
Solution:   Implement the XTQMODKEYS request and response.  Update the keycode
            check results.

Patch 9.0.0956
Problem:    Terminal tests fail when using key with modifier.
Solution:   Use the modifyOtherKeys encoding when using RunMNVInTerminal().

Patch 9.0.0957
Problem:    Tests fail without the terminal feature.
Solution:   Move functions to another utility script.

Patch 9.0.0958
Problem:    Messages test is flaky.
Solution:   Add a short delay.

Patch 9.0.0959
Problem:    Error when using the "File Settings / Text Width" menu.
Solution:   Use str2nr(). (closes #11624)

Patch 9.0.0960
Problem:    Error when using the "Tools / Spelling / Find More Languages"
            menu.
Solution:   Remove "<SID>".  Reset "g:menutrans_set_lang_to" when 'encoding'
            changes. (closes #11625)

Patch 9.0.0961
Problem:    Using deletebufline() may jump to another window.
Solution:   Do not use a window where the buffer was only in the past.
            (closes #11594)

Patch 9.0.0962
Problem:    Virtual text below cannot be placed below empty lines.
Solution:   Add one character. (James Alvarado, closes #11606, closes #11520)

Patch 9.0.0963
Problem:    Function name does not match autocmd event name.
Solution:   Rename "optionsset" to "optionset". (closes #11630)

Patch 9.0.0964
Problem:    Status line of other window not redrawn when dragging it when
            'splitkeep' is set to "screen".
Solution:   Set w_redr_status earlier. (Luuk van Baal, closes #11635,
            closes #11632)

Patch 9.0.0965
Problem:    Using one window for executing autocommands is insufficient.
Solution:   Use up to five windows for executing autocommands.

Patch 9.0.0966
Problem:    Some compilers don't allow a declaration after a label.
Solution:   Move the declaration to the start of the block. (John Marriott)

Patch 9.0.0967
Problem:    Leaking memory from autocmd windows.
Solution:   Free window when auc_win is not NULL.

Patch 9.0.0968
Problem:    GUI mouse event test is a bit flaky.
Solution:   Mark the test case as flaky.  Move test function failure checks to
            a separate test function.

Patch 9.0.0969
Problem:    Matchparen highlight is not updated when switching buffers.
Solution:   Listen to the BufLeave and the BufWinEnter autocmd events.
            (closes #11626)

Patch 9.0.0970
Problem:    Coverity warns for uninitialized variable.
Solution:   Initialize "ren_ret".

Patch 9.0.0971
Problem:    Escape sequences not recognized without the termresponse feature.
Solution:   Recognize escape sequences to avoid display mess up.

Patch 9.0.0972
Problem:    Build failure on some systems.
Solution:   Adjust #ifdefs related to the termresponse feature.

Patch 9.0.0973
Problem:    Kitty keyboard protocol key not decoded when it has an unsupported
            modifier, such as NumLock.
Solution:   Accept a key with any modifier. (closes #11638)

Patch 9.0.0974
Problem:    Even when Esc is encoded a timeout is used.
Solution:   Use K_ESC when an encoded Esc is found.

Patch 9.0.0975
Problem:    Virtual text below an empty line is misplaced when 'number' is
            set.
Solution:   Adjust the computations. (closes #11629)

Patch 9.0.0976
Problem:    Enabling the kitty keyboard protocol uses push/pop.
Solution:   Use the start/stop codes to avoid unpredictable behavior.

Patch 9.0.0977
Problem:    It is not easy to see what client-server commands are doing.
Solution:   Add channel log messages if ch_log() is available.  Move the
            channel logging and make it available with the +eval feature.

Patch 9.0.0978
Problem:    Build errors without the +channel feature. (John Marriott)
Solution:   Adjust #ifdefs.

Patch 9.0.0979
Problem:    ch_log() text can be hard to find in the log file.
Solution:   Prepend "ch_log()" to the text.

Patch 9.0.0980
Problem:    The keyboard state response may end up in a shell command.
Solution:   Only request the keyboard protocol state when the typeahead is
            empty, no more commands are following and not exiting.  Add the
            t_RK termcap entry for this.

Patch 9.0.0981
Problem:    Build error in tiny version.
Solution:   Add #ifdef.

Patch 9.0.0982
Problem:    'cursorline' not drawn before virtual text below.
Solution:   Add the 'cursorline' attribute to the empty space. (closes #11647)

Patch 9.0.0983
Problem:    Stray characters displayed when starting the GUI.
Solution:   Add t_RK to the list of terminal options.

Patch 9.0.0984
Problem:    GUI: remote_foreground() does not always work. (Ron Aaron)
Solution:   For GTK use gtk_window_set_keep_above(). (issue #11641)

Patch 9.0.0985
Problem:    When using kitty keyboard protocol function keys may not work.
            (Kovid Goyal)
Solution:   Recognize CSI ending in [ABCDEFHPQRS] also when the termcap
            entries are not specified. (closes #11648)

Patch 9.0.0986
Problem:    Build failure with tiny version.
Solution:   Add #ifdef.

Patch 9.0.0987
Problem:    File missing from list of distributed files.
Solution:   Add logfile.pro to list of distributed files.

Patch 9.0.0988
Problem:    Using feedkeys() does not show up in a channel log.
Solution:   Add ch_log() calls and clean up the code.

Patch 9.0.0989
Problem:    Popupwin test is more flaky on MacOS.
Solution:   Use a longer wait time.

Patch 9.0.0990
Problem:    Callback name argument is changed by setqflist().
Solution:   Use the expanded function name for the callback, do not store it
            in the argument. (closes #11653)

Patch 9.0.0991
Problem:    Crash when reading help index with various options set. (Marius
            Gedminas)
Solution:   Do not set wlv.c_extra to NUL when wlv.p_extra is NULL.
            (closes #11651)

Patch 9.0.0992
Problem:    MNV9 script: get E1096 when comment follows return.
Solution:   Adjust condition for return without expression. (closes #11654)

Patch 9.0.0993
Problem:    Display errors when adding or removing text property type.
Solution:   Perform a full redraw.  Only use text properties for which the
            type is defined. (closes #11655)

Patch 9.0.0994
Problem:    Tests for empty prop type name fail.
Solution:   Correct the error number.

Patch 9.0.0995
Problem:    Padding before virtual text below is highlighted when 'number' and
            'nowrap' are set.
Solution:   Save and restore n_attr_skip. (closes #11643)

Patch 9.0.0996
Problem:    If 'keyprotocol' is empty "xterm" still uses modifyOtherKeys.
Solution:   Remove t_TI, t_RK and t_TE from the "xterm" builtin termcap and
            let the default value of 'keyprotocol' add those.

Patch 9.0.0997
Problem:    Coverity warns for dead code.
Solution:   Don't use ASCII_ISUPPER() for a negative value.

Patch 9.0.0998
Problem:    "gk" may reset skipcol when not needed.
Solution:   Only reset skipcol if the cursor column is less.

Patch 9.0.0999
Problem:    Memory may leak.
Solution:   Free the sound callback function name if it was allocated.

Patch 9.0.1000
Problem:    With 'smoothscroll' skipcol may be reset unnecessarily.
Solution:   Check the line does actually fit in the window.

Patch 9.0.1001
Problem:    Classes are not documented or implemented yet.
Solution:   Make the first steps at documenting MNV9 objects, classes and
            interfaces.  Make initial choices for the syntax.  Add a skeleton
            implementation.  Add "public" and "this" in the command table.

Patch 9.0.1002
Problem:    Command list test fails.
Solution:   Add commands added to the list.

Patch 9.0.1003
Problem:    Tiny build fails.
Solution:   Remove #ifdef from error message.

Patch 9.0.1004
Problem:    Suspend test sometimes fails on MacOS.
Solution:   Wait a short while for terminal responses.

Patch 9.0.1005
Problem:    A failed test may leave a swap file behind.
Solution:   Delete the swap file to avoid another test to fail.  Use another
            file name.

Patch 9.0.1006
Problem:    Suspend test still sometimes fails on MacOS.
Solution:   Wait a little while for terminal responses.

Patch 9.0.1007
Problem:    There is no way to get a list of swap file names.
Solution:   Add the swapfilelist() function.  Use it in the test script to
            clean up.  Remove deleting individual swap files.

Patch 9.0.1008
Problem:    Test for swapfilelist() fails on MS-Windows.
Solution:   Only check the tail of the path.  Mark a test as flaky.

Patch 9.0.1009
Problem:    Test for catch after interrupt is flaky on MS-Windows.
Solution:   Mark the test as flaky.

Patch 9.0.1010
Problem:    Stray warnings for existing swap files.
Solution:   Wipe out the buffer until it has no name and no swap file.

Patch 9.0.1011
Problem:    ml_get error when using screenpos().
Solution:   Give an error for the line number. (closes #11661)

Patch 9.0.1012
Problem:    Tests may get stuck in buffer with swap file.
Solution:   Bail out when bwipe! doesn't get another buffer.

Patch 9.0.1013
Problem:    Suspend test often fails on Mac OS.
Solution:   Make t_RP empty.

Patch 9.0.1014
Problem:    Zir files are not recognized.
Solution:   Add a pattern for Zir files. (closes #11664)

Patch 9.0.1015
Problem:    Without /dev/urandom srand() seed is too predictable.
Solution:   Use micro seconds and XOR with process ID. (Yasuhiro Matsumoto,
            closes #11656)

Patch 9.0.1016
Problem:    screenpos() does not count filler lines for diff mode.
Solution:   Add filler lines. (closes 11658)

Patch 9.0.1017
Problem:    Test for srand() fails on MS-Windows.
Solution:   Do not expect the same result a second time.

Patch 9.0.1018
Problem:    Suspend test still fails on Mac OS.
Solution:   Make 'keyprotocol' empty.

Patch 9.0.1019
Problem:    'smoothscroll' and virtual text above don't work together.
            (Yee Cheng Chin)
Solution:   Skip virtual text above when w_skipcol is non-zero.
            (closes #11665)

Patch 9.0.1020
Problem:    Tests call GetSwapFileList() before it is defined.
Solution:   Move the call to after defining the function. (Christopher
            Plewright)

Patch 9.0.1021
Problem:    Test trips over g:name.
Solution:   Delete g:name after using it.

Patch 9.0.1022
Problem:    Suspend test fails on Mac OS when suspending MNV.
Solution:   Make 'keyprotocol' empty.

Patch 9.0.1023
Problem:    MS-Windows: dynamic loading of libsodium doesn't work.
Solution:   Add "randombytes_random". (Ken Takata, closes #11667)

Patch 9.0.1024
Problem:    CI doesn't use the latest FreeBSD version.
Solution:   Go from 12.3 to 12.4. (closes #11423)

Patch 9.0.1025
Problem:    WinScrolled is not triggered when filler lines change.
Solution:   Add "topfill" to the values that WinScrolled triggers on.
            (closes #11668)

Patch 9.0.1026
Problem:    type of w_last_topfill is wrong.
Solution:   Use "int" instead of "linenr_T". (closes #11670)

Patch 9.0.1027
Problem:    LGTM is soon shutting down.
Solution:   Remove LGTM from CI. (closes #11671)

Patch 9.0.1028
Problem:    Mouse shape test is flaky, especially on Mac OS.
Solution:   Instead of starting all timers at the same time, start the next
            one in the callback of the previous one. (Yee Cheng Chin,
            closes #11673)  Also use "bwipe!" instead of "close!" to avoid
            swap files remaining.

Patch 9.0.1029
Problem:    Autoload directory missing from distribution.
Solution:   Add the autoload/zig directory to the list of distributed files.

Patch 9.0.1030
Problem:    Using freed memory with the cmdline popup menu.
Solution:   Clear the popup menu when clearing the matches. (closes #11677)

Patch 9.0.1031
Problem:    MNV9 class is not implemented yet.
Solution:   Add very basic class support.

Patch 9.0.1032
Problem:    Test fails when terminal feature is missing.
Solution:   Use CheckRunMNVInTerminal.

Patch 9.0.1033
Problem:    Tiny build fails because of conflicting typedef.
Solution:   Remove one typedef.

Patch 9.0.1034
Problem:    Reporting swap file when windows are split.
Solution:   Close extra windows after running a test.

Patch 9.0.1035
Problem:    Object members are not being marked as used, garbage collection
            may free them.
Solution:   Mark object members as used.  Fix reference counting.

Patch 9.0.1036
Problem:    Undo misbehaves when writing from an insert mode mapping.
Solution:   Sync undo when writing. (closes #11674)

Patch 9.0.1037
Problem:    lalloc(0) error for a class without members.
Solution:   Don't allocate room for members if there aren't any.
            Don't create the class if there was an error.

Patch 9.0.1038
Problem:    Function name does not match what it is used for.
Solution:   Include the modifier in the name. (closes #11679)

Patch 9.0.1039
Problem:    Using a <Cmd> mapping CmdlineChanged may be triggered twice.
Solution:   Count the number of times CmdlineChanged is triggered and avoid
            doing it twice. (closes #116820

Patch 9.0.1040
Problem:    Test for <Cmd> mapping with CmdlineChanged fails.
Solution:   Put back the check for the cmdline length not changing.

Patch 9.0.1041
Problem:    Cannot define a method in a class.
Solution:   Implement defining an object method.  Make calling an object
            method work.

Patch 9.0.1042
Problem:    ASAN gives false alarm about array access.
Solution:   Use an intermediate pointer.

Patch 9.0.1043
Problem:    Macro has confusing name and is duplicated.
Solution:   Use one macro with an understandable name. (closes #11686)

Patch 9.0.1044
Problem:    Setting window height using Python may cause errors.
Solution:   When setting "curwin" also set "curbuf". (closes #11687)

Patch 9.0.1045
Problem:    In a class object members cannot be initialized.
Solution:   Support initializing object members. Make "disassemble" work on
            an object method.

Patch 9.0.1046
Problem:    Class method disassemble test fails on MS-Windows.
Solution:   Do not match with a specific size.

Patch 9.0.1047
Problem:    Matchparen is slow.
Solution:   Actually use the position where the match started, not the
            position where the search started. (closes #11644)

Patch 9.0.1048
Problem:    With "screenline" in 'culopt' cursorline highlight is wrong.
Solution:   Apply the priority logic also when "screenline is in 'culopt'.
            (closes #11696)

Patch 9.0.1049
Problem:    Crash when opening a very small terminal window.
Solution:   Instead of crashing fix the cursor position. (closes #11697)

Patch 9.0.1050
Problem:    Using freed memory when assigning to variable twice.
Solution:   Make copy of the list type. (closes #11691)

Patch 9.0.1051
Problem:    After a failed CTRL-W ] next command splits window.
Solution:   Reset postponed_split. (Rob Pilling, closes #11698)

Patch 9.0.1052
Problem:    Using freed memory on exit when EXITFREE is defined.
Solution:   Make a deep copy of the type.  Make sure TTFLAG_STATIC is not set
            in the copy.

Patch 9.0.1053
Problem:    Default constructor arguments are not optional.
Solution:   Use "= v:none" to make constructor arguments optional.

Patch 9.0.1054
Problem:    Object member can't get type from initializer.
Solution:   If there is no type specified try to use the type of the
            initializer.  Check for a valid type.

Patch 9.0.1055
Problem:    Coverity warns for using uninitialized memory.
Solution:   Clear the "lhs" field earlier.

Patch 9.0.1056
Problem:    Leaking memory when disassembling an object method.
Solution:   Free the typval of the class.

Patch 9.0.1057
Problem:    Conflict between supercollider and scala filetype detection.
Solution:   Do not check for "Class : Method", it can appear in both
            filetypes. (Chris Kipp, closes #11699)

Patch 9.0.1058
Problem:    String value of class and object do not have useful information.
Solution:   Add the class name and for the object the member values.

Patch 9.0.1059
Problem:    Build failure with some compilers that can't handle a
            declaration directly after a "case" statement.
Solution:   Add a block to put the declarations in.

Patch 9.0.1060
problem:    Private and public object members are not implemented yet.
Solution:   Implement private and public object members.

Patch 9.0.1061
Problem:    Cannot display 'showcmd' somewhere else.
Solution:   Add the 'showcmdloc' option. (Luuk van Baal, closes #11684)

Patch 9.0.1062
Problem:    Some test function names do not match what they are doing.
Solution:   Leave out user data for the test that is called "NoUserData".
            (closes #11703)

Patch 9.0.1063
Problem:    When using Kitty a shell command may mess up the key protocol
            state.
Solution:   Output t_te before t_TE.  If t_te switches between the main and
            the alternate screen then deactivating the key protocol by t_TE
            should happen after switching screen. (issue #11705)

Patch 9.0.1064
Problem:    Code for making 'shortmess' temporarily empty is repeated.
Solution:   Add functions for making 'shortmess' empty and restoring it.
            (Christian Brabandt, closes #11709)

Patch 9.0.1065
Problem:    A shell command switching screens may still have a problem with
            the kitty keyboard protocol.
Solution:   Disable the kitty keyboard protocol both in the current and the
            alternate screen, if there are indications it might be needed.
            (issue #11705)  Also fix naming.

Patch 9.0.1066
Problem:    Test function name is wrong.
Solution:   Rename to what is actually being tested. (closes #11712)

Patch 9.0.1067
Problem:    In diff mode virtual text is highlighted incorrectly. (Rick Howe)
Solution:   Do not use diff attributes for virtual text. (closes #11714)

Patch 9.0.1068
Problem:    No information about whether requesting term codes has an effect.
Solution:   Add ch_log() calls to report the effect of term code responses.
            Avoid deleting an entry and then adding back the same one.

Patch 9.0.1069
Problem:    Diff mode highlight fails for special characters.
Solution:   Adjust condition for setting "diff_hlf".

Patch 9.0.1070
Problem:    Reading beyond array size.
Solution:   Only use name[0] and name[1], do not use "name" as a string.

Patch 9.0.1071
Problem:    Codecov action version is too specific.
Solution:   Only use "v3" to automatically use the latest stable version.
            (closes #11720)

Patch 9.0.1072
Problem:    screenpos() column result in fold may be too small.
Solution:   Add space of 'number', sign column, etc. (closes #11715)

Patch 9.0.1073
Problem:    Using "xterm-kitty" for 'term' causes problems.
Solution:   Remove the "xterm-" part when 'term' is set from $TERM.  Detect a
            few kitty-specific properties based on the version response
            instead of the terminal name.

Patch 9.0.1074
Problem:    Class members are not supported yet.
Solution:   Add initial support for class members.

Patch 9.0.1075
Problem:    build fails if the compiler doesn't allow for a declaration right
            after "case".
Solution:   Add a block.

Patch 9.0.1076
Problem:    ASAN complains about NULL argument.
Solution:   Skip memmove() when there is nothing to move.

Patch 9.0.1077
Problem:    Can add text property with negative ID before virtual text
            property.
Solution:   Remember that a text property with a negative ID was used and give
            an appropriate error message. (closes #11725)
            Fix index computation.

Patch 9.0.1078
Problem:    With the +vartabs feature indent folding may use wrong 'tabstop'.
Solution:   Use the "buf" argument instead of "curbuf".

Patch 9.0.1079
Problem:    Leaking memory when defining a user command fails.
Solution:   Free "compl_arg" when needed. (closes #11726)

Patch 9.0.1080
Problem:    The "kitty" terminfo entry is not widespread, resulting in the
            kitty terminal not working properly.
Solution:   Go back to using "xterm-kitty" and avoid the problems it causes in
            another way.

Patch 9.0.1081
Problem:    Using "->" with split lines does not always work.
Solution:   Avoid trying to get another line. (closes #11723)

Patch 9.0.1082
Problem:    Some jsonc files are not recognized.
Solution:   Add patterns for jsonc and move some from json to jsonc.
            (closes #11711)

Patch 9.0.1083
Problem:    Empty and comment lines in a class cause an error.
Solution:   Skip empty and comment lines. (closes #11734)

Patch 9.0.1084
Problem:    Code handling low level MS-Windows events cannot be tested.
Solution:   Add test_mswin_event() and tests using it. (Christopher Plewright,
            closes #11622)

Patch 9.0.1085
Problem:    Compiler warns for uninitialized variable.
Solution:   Initialize the variable.  Remove unused function. (John Marriott)

Patch 9.0.1086
Problem:    Display wrong in Windows terminal after exiting MNV.
Solution:   Apply screen restore fix for Windows 11 also to Windows 10 builds.
            (Christopher Plewright, closes #11713, closes #11706)

Patch 9.0.1087
Problem:    Autocommand test sometimes fails.
Solution:   Add a short delay. (James McCoy, closes #11737)

Patch 9.0.1088
Problem:    Clang warns for unused variable.
Solution:   Adjust #ifdef. (John Marriott)

Patch 9.0.1089
Problem:    unnecessary assignment
Solution:   Remove the assignment. (Luuk van Baal, closes #1136)

Patch 9.0.1090
Problem:    FHIR Shorthand files are not recognized.
Solution:   Add a pattern to detect FSH files. (Matthew Gramigna,
            closes #11738)

Patch 9.0.1091
Problem:    Assignment to non-existing member causes a crash. (Yegappan
            Lakshmanan)
Solution:   Give an error message and bail out when a member cannot be found.

Patch 9.0.1092
Problem:    Search error message doesn't show used pattern.
Solution:   Pass the actually used pattern to where the error message is
            given. (Rob Pilling, closes #11742)

Patch 9.0.1093
Problem:    Using freed memory of object member. (Yegappan Lakshmanan)
Solution:   Make a copy of the object member when getting it.

Patch 9.0.1094
Problem:    Compiler warning when HAS_MESSAGE_WINDOW is not defined.
Solution:   Add UNUSED.

Patch 9.0.1095
Problem:    Using freed memory when declaration fails. (Yegappan Lakshmanan)
Solution:   After unreferencing an object set the reference to NULL.

Patch 9.0.1096
Problem:    Reallocating hashtab when the size didn't change.
Solution:   Bail out when the hashtab is already the desired size.

Patch 9.0.1097
Problem:    Tests are failing.
Solution:   Do clean up a hashtab when at the initial size.

Patch 9.0.1098
Problem:    Code uses too much indent.
Solution:   Use an early return. (Yegappan Lakshmanan, closes #11747)

Patch 9.0.1099
Problem:    Trying to resize a hashtab may cause a problem.
Solution:   Do not try to resize a hashtab before adding an item.

Patch 9.0.1100
Problem:    A hashtab with many removed items is not cleaned up.
Solution:   Re-hash a hashtab even when the size didn't change if too many
            items were removed.

Patch 9.0.1101
Problem:    Unused global variable.
Solution:   Remove the variable. (closes #11752)

Patch 9.0.1102
Problem:    Complicated use of #ifdef.
Solution:   Simplify #ifdef use. (Ken Takata, closes #11745)

Patch 9.0.1103
Problem:    jq files are not recognized.
Solution:   Add detection of Jq files. (David McDonald, closes #11743)

Patch 9.0.1104
Problem:    Invalid memory access when checking function argument types.
Solution:   Do not check beyond the number of arguments. (closes #11755)

Patch 9.0.1105
Problem:    Code is indented too much.
Solution:   Use an early return. (Yegappan Lakshmanan, closes #11756)

Patch 9.0.1106
Problem:    Not all postfix files are recognized.
Solution:   Recognize main.cf.proto files. (closes #11732)

Patch 9.0.1107
Problem:    Float constant not recognized as float.
Solution:   Check the vartype instead of comparing with t_float.
            (closes #11754)

Patch 9.0.1108
Problem:    Type error when using "any" type and adding a number to a float.
Solution:   Accept both a number and a float. (closes #11753)

Patch 9.0.1109
Problem:    Leaking allocated type.
Solution:   Reset the "static" flag in the allocated type copy.

Patch 9.0.1110
Problem:    Build fails on Mac OS X 10.4/10.5 .
Solution:   Check if the dispatch/dispatch.h header exists. (Evan Miller,
            closes #11746)

Patch 9.0.1111
Problem:    Termcap entries for RGB colors are not set automatically.
Solution:   Always set the termcap entries when +termguicolors is enabled.

Patch 9.0.1112
Problem:    test_mswin_event() can hang.
Solution:   Add the "execute" argument to process events right away.
            (Christopher Plewright, closes #11760)

Patch 9.0.1113
Problem:    Users cannot easily try out a PR.
Solution:   Add an "artifacts" section to the AppVeyor CI config. (Christian
            Brabandt, closes #11762)

Patch 9.0.1114
Problem:    CI does not use the latest Python version.
Solution:   Switch from Python 3.10 to 3.11. (closes #11761)

Patch 9.0.1115
Problem:    Code is indented more than needed.
Solution:   Use an early return to reduce indenting. (Yegappan Lakshmanan,
            closes #11758)

Patch 9.0.1116
Problem:    Compiler may complain about an unused function.
Solution:   Add #ifdef. (John Marriott)

Patch 9.0.1117
Problem:    Terminfo entries for bracketed paste are not used.
Solution:   Use the newly added terminfo entries for bracketed paste.
            Correct mixup of output strings and key codes.

Patch 9.0.1118
Problem:    Sporadic test failures when using a terminal window.
Solution:   Adjust waiting times. (James McCoy, closes #11763)

Patch 9.0.1119
Problem:    Type of arguments not checked when calling a partial.
Solution:   Give an error for a wrong argument type. (closes #11753)

Patch 9.0.1120
Problem:    Tex filetype detection not sufficiently tested.
Solution:   Add more test cases for "tex" detection. (Jonas Strittmatter,
            closes #11765)

Patch 9.0.1121
Problem:    Cursor positioning and display problems with 'smoothscroll' and
            using "zt", "zb" or "zz".
Solution:   Adjust computations and conditions. (Yee Cheng Chin,
            closes #11764)

Patch 9.0.1122
Problem:    Class member access is not fully tested yet.
Solution:   Add more tests.

Patch 9.0.1123
Problem:    Class function not implemented yet.
Solution:   Implement defining and calling a class function.

Patch 9.0.1124
Problem:    Virtual text at a column position is truncated at the window edge.
            (Yegappan Lakshmanan)
Solution:   Do not truncated virtual text that is placed at a column.

Patch 9.0.1125
Problem:    Memory leak when using class functions.
Solution:   Clear and free the array with class functions.

Patch 9.0.1126
Problem:    Bracketed paste can be enabled when pasted text is not recognized.
Solution:   Output t_BE only when t_PS and t_PE are set.

Patch 9.0.1127
Problem:    No error if function argument shadows class member.
Solution:   Give an error for shadowing a class member.

Patch 9.0.1128
Problem:    Build failure.
Solution:   Add type cast.  Add missing error messages.

Patch 9.0.1129
Problem:    Sporadic Test_range() failure.
Solution:   Clear typeahead.  Move to a separate function. (issue #22771)

Patch 9.0.1130
Problem:    Unexpected output when autoloading a script for an interactive
            operation.
Solution:   Reset "KeyTyped" while loading a script and when handling a nested
            function. (closes #11773)

Patch 9.0.1131
Problem:    Build failure without the +eval feature.
Solution:   Move code inside #ifdef.

Patch 9.0.1132
Problem:    Code is indented more than needed.
Solution:   Use an early return to reduce indentation. (Yegappan Lakshmanan,
            closes #11769)

Patch 9.0.1133
Problem:    Error message names do not match the items.
Solution:   Add "_str" when the text contains "%s".

Patch 9.0.1134
Problem:    Comparing objects uses identity instead of equality.
Solution:   Compare the object values.

Patch 9.0.1135
Problem:    Missing function argument.
Solution:   Add ignore case flag.

Patch 9.0.1136
Problem:    Memory leak when getting class member type from expr.
Solution:   Clear the expression result.

Patch 9.0.1137
Problem:    Some conditions are always false.
Solution:   Remove the useless conditions. (closes #11776)

Patch 9.0.1138
Problem:    Crash when expecting varargs but it is something else.
Solution:   Only use the member when the type is a list. (closes #11774)

Patch 9.0.1139
Problem:    Cannot create a new object in a compiled function.
Solution:   Compile the instructions to create a new object.

Patch 9.0.1140
Problem:    Cannot call an object method in a compiled function.
Solution:   Compile the instructions to invoke an object method.

Patch 9.0.1141
Problem:    'cursorcolumn' and 'colorcolumn' wrong after concealing and
            wrapping line.
Solution:   Reset "wlv.vcol_off" after each screen line. (Alexey Radkov,
            closes #11777)

Patch 9.0.1142
Problem:    Crash and/or memory leak when redefining function after error.
Solution:   Clear pointer after making a copy.  Clear arrays on failure.
            (closes #11774)

Patch 9.0.1143
Problem:    Invalid memory access with bad 'statusline' value.
Solution:   Avoid going over the NUL at the end.

Patch 9.0.1144
Problem:    Reading beyond text.
Solution:   Add strlen_maxlen() and use it.

Patch 9.0.1145
Problem:    Invalid memory access with recursive substitute expression.
Solution:   Check the return value of mnv_regsub().

Patch 9.0.1146
Problem:    MS-Windows: various special keys and modifiers are not mappable.
Solution:   Adjust the handling of keys with modifiers. (Christian Plewright,
            closes #11768)

Patch 9.0.1147
Problem:    Cannot access a class member in a compiled function.
Solution:   Implement looking up a class member.

Patch 9.0.1148
Problem:    Cmdline test fails in the GUI.
Solution:   Skip the test when running in the GUI.

Patch 9.0.1149
Problem:    Class members may be garbage collected.
Solution:   Mark class members as being in use.

Patch 9.0.1150
Problem:    :interface is not implemented yet.
Solution:   Implement the basics of :interface.

Patch 9.0.1151
Problem:    Build failure.
Solution:   Add missing part of :interface change.

Patch 9.0.1152
Problem:    Class "implements" argument not implemented.
Solution:   Implement "implements" argument.  Add basic checks for when a
            class implements an interface.

Patch 9.0.1153
Problem:    Build error with some compilers.
Solution:   Clear pointer the right way.

Patch 9.0.1154
Problem:    Coverity warns for dead code.
Solution:   Remove condition that is always true.

Patch 9.0.1155
Problem:    Cannot use a class as a type.
Solution:   Accept a class and interface name as a type.

Patch 9.0.1156
Problem:    Tests fail because of a different error message.
Solution:   Don't give an error if a type name can't be found.

Patch 9.0.1157
Problem:    "implements" only handles one interface name.
Solution:   Handle a comma separated list of names.  Check for duplicate
            names.

Patch 9.0.1158
Problem:    Code is indented more than necessary.
Solution:   Use an early return where it makes sense. (Yegappan Lakshmanan,
            closes #11787)

Patch 9.0.1159
Problem:    Extends argument for class not implemented yet.
Solution:   Basic implementation of "extends".

Patch 9.0.1160
Problem:    ASAN error for ufunc_T allocated with wrong size.
Solution:   Make sure the size can always fit the struct.

Patch 9.0.1161
Problem:    Coverity warns for using strcpy().
Solution:   Call a function to set the function name.

Patch 9.0.1162
Problem:    Configure does not handle all FORTIFY_SOURCE variants.
Solution:   Also handle Fedora's default FORTIFY_SOURCE flags. (Zdenek Dohnal,
            closes #11794)

Patch 9.0.1163
Problem:    Compiler warning for implicit size_t/int conversion.
Solution:   Add a type cast. (Mike Williams, closes #11795)

Patch 9.0.1164
Problem:    Evaluating string expression advances function line.
Solution:   Disable function lines while parsing a string expression.
            (Hirohito Higashi, closes #11796)

Patch 9.0.1165
Problem:    Tests using IPv6 sometimes fail.
Solution:   Use getaddrinfo() and use try/catch. (James McCoy,
            closes #11783)

Patch 9.0.1166
Problem:    Code is indented more than necessary.
Solution:   Use an early return where it makes sense. (Yegappan Lakshmanan,
            closes #11792)

Patch 9.0.1167
Problem:    EditorConfig files do not have their own filetype.
Solution:   Add the "editorconfig" filetype. (Gregory Anders, closes #11779)

Patch 9.0.1168
Problem:    Code to enable/disable mouse is not from terminfo/termcap.
Solution:   Request the "XM" entry and use it to set 'ttymouse' if possible.

Patch 9.0.1169
Problem:    Some key+modifier tests fail on some AppVeyor images.
Solution:   Adjust the tests for key movements and fix the revealed bugs.
            (Christopher Plewright, closes #11798)

Patch 9.0.1170
Problem:    LGTM badge no longer works.
Solution:   Remove the LGTM badge. (closes #11799)

Patch 9.0.1171
Problem:    Screen is not redrawn after using setcellwidths().
Solution:   Redraw the screen when the cell widths have changed. (Yasuhiro
            Matsumoto, closes #11800)

Patch 9.0.1172
Problem:    When 'selection' is "exclusive" then "1v" is one char short.
Solution:   Add one character when 'selection' is "exclusive". (closes #11791)

Patch 9.0.1173
Problem:    Compiler warning for unused variable on non-Unix systems.
Solution:   Move #ifdef. (John Marriott)

Patch 9.0.1174
Problem:    Smali files are not recognized.
Solution:   Add a pattern for Smali files. (Amaan Qureshi, closes #11801)

Patch 9.0.1175
Problem:    The set_ref_in_item() function is too long.
Solution:   Use a separate function for more complicated types. (Yegappan
            Lakshmanan, closes #11802)

Patch 9.0.1176
Problem:    smithy files are not recognized.
Solution:   Add a pattern for Smithy files. (Chris Kipp, closes #11804)

Patch 9.0.1177
Problem:    AppVeyor uses some older tools.
Solution:   Switch to Visual Studio 2022 and Python 3.11. (Christopher
            Plewright, closes #11793)

Patch 9.0.1178
Problem:    A child class cannot override functions from a base class.
Solution:   Allow overriding and implement "super".

Patch 9.0.1179
Problem:    Not all errors around inheritance are tested.
Solution:   Add more tests.  Fix uncovered problems.

Patch 9.0.1180
Problem:    Compiler warnings without the +job feature.
Solution:   Adjust #ifdefs. (John Marriott)

Patch 9.0.1181
Problem:    Class inheritance and typing insufficiently tested.
Solution:   Add more tests.  Implement missing behavior.

Patch 9.0.1182
Problem:    go checksum files are not recognized.
Solution:   Add the name of go checksum files. (Amaan Qureshi, closes #11803)

Patch 9.0.1183
Problem:    Code is indented more than necessary.
Solution:   Use an early return where it makes sense. (Yegappan Lakshmanan,
            closes #11805)

Patch 9.0.1184
Problem:    Interface of an object is not recognized when checking type.
Solution:   Use the interface implemented by an object.

Patch 9.0.1185
Problem:    Using class from imported script not tested.
Solution:   Add tests.  Implement what is missing.

Patch 9.0.1186
Problem:    Imported class does not work when used twice in a line.
Solution:   Fix the type parsing.

Patch 9.0.1187
Problem:    Test for using imported class fails.
Solution:   Skip over rest of type.

Patch 9.0.1188
Problem:    Return value of type() for class and object unclear.
Solution:   Add v:t_object and v:t_class.

Patch 9.0.1189
Problem:    Invalid memory access with folding and using "L".
Solution:   Prevent the cursor from moving to line zero.

Patch 9.0.1190
Problem:    AppVeyor runs much slower with MSVC 2022.
Solution:   Go back to MSVC 2015. (Christopher Plewright, closes #11810)

Patch 9.0.1191
Problem:    Some Bazel files are not recognized.
Solution:   Add an extra Bazel pattern. (Keith Smily, closes #11807)

Patch 9.0.1192
Problem:    No error when class function argument shadows a member.
Solution:   Check for shadowing.

Patch 9.0.1193
Problem:    Cannot map <Esc> when using the Kitty key protocol.
Solution:   Add a non-simplified mapping for K_ESC. (closes #11811)

Patch 9.0.1194
Problem:    Compiler warning for comparing pointer with int.
Solution:   Change NULL to zero.

Patch 9.0.1195
Problem:    Restoring KeyTyped when building statusline not tested.
Solution:   Add a test.  Clean up and fix other tests. (closes #11815)

Patch 9.0.1196
Problem:    Code is indented more than necessary.
Solution:   Use an early return where it makes sense. (Yegappan Lakshmanan,
            closes #11813)

Patch 9.0.1197
Problem:    Dump file missing from patch.
Solution:   Add missing dump file.

Patch 9.0.1198
Problem:    Abstract class not supported yet.
Solution:   Implement abstract class and add tests.

Patch 9.0.1199
Problem:    Crash when using kitty and using a mapping with <Esc>.
Solution:   Do not try setting did_simplify when it is NULL. (closes #11817)

Patch 9.0.1200
Problem:    AppVeyor builds with an old Python version.
Solution:   Switch from Python 3.8 to 3.11. (Christopher Plewright,
            closes #11814)

Patch 9.0.1201
Problem:    Assignment with operator doesn't work in object method.
Solution:   Handle loading the object member. (closes #11820)  Add a few more
            tests.

Patch 9.0.1202
Problem:    Crash when iterating over list of objects.
Solution:   Do not make a copy of tt_member for object or class.
            (closes #11823)

Patch 9.0.1203
Problem:    Return type of values() is always list<any>.
Solution:   Use the member type if possible. (issue #11822)

Patch 9.0.1204
Problem:    Expression compiled the wrong way after using an object.
Solution:   Generate constants before getting the type.

Patch 9.0.1205
Problem:    Crash when handling class that extends another class with more
            than one object members.
Solution:   Correct pointer computations. (closes #11824)

Patch 9.0.1206
Problem:    Testing with Python on AppVeyor does not work properly.
Solution:   Fix typo.  Move most lines to the .bat file. (Christopher
            Plewright, closes #11828)

Patch 9.0.1207
Problem:    Error when object type is expected but getting "any".
Solution:   When actual type is "any" use a runtime type check.
            (closes #11826)

Patch 9.0.1208
Problem:    Code is indented more than necessary.
Solution:   Use an early return where it makes sense. (Yegappan Lakshmanan,
            closes #11819)

Patch 9.0.1209
Problem:    Getting interface member does not always work.
Solution:   Convert the index on the interface to the index on the object.
            (closes #11825)

Patch 9.0.1210
Problem:    Compiler complains about declaration after label.
Solution:   Move declaration to beginning of block (John Marriott)

Patch 9.0.1211
Problem:    Storing value in interface member does not always work.
Solution:   Convert the index on the interface to the index on the object.

Patch 9.0.1212
Problem:    Cannot read back what setcellwidths() has done.
Solution:   Add getcellwidths(). (Kota Kato, closes #11837)

Patch 9.0.1213
Problem:    Adding a line below the last one does not expand fold.
Solution:   Do not skip mark_adjust() when adding lines below the last one.
            (Brandon Simmons, closes #11832, closes #10698)

Patch 9.0.1214
Problem:    File left behind after running tests.
Solution:   Delete the file. (Dominique Pellé, closes #11839)

Patch 9.0.1215
Problem:    Using isalpha() adds dependency on current locale.
Solution:   Do not use isalpha() for recognizing a URL or the end of an Ex
            command. (closes #11835)

Patch 9.0.1216
Problem:    Coverity warns for ignoring return value.
Solution:   Break out of loop if function fails.

Patch 9.0.1217
Problem:    Using an object member in a closure doesn't work.
Solution:   Initialize lv_loop_depth. (closes #11840)

Patch 9.0.1218
Problem:    Completion includes functions that don't work.
Solution:   Skip functions that are not implemented. (Kota Kato,
            closes #11845)

Patch 9.0.1219
Problem:    Handling of FORTIFY_SOURCE flags doesn't match Fedora usage.
Solution:   Adjust the "sed" patterns. (Zdenek Dohnal, closes #11847)

Patch 9.0.1220
Problem:    Termcap/terminfo entries do not indicate where modifiers might
            appear.
Solution:   Add ";*" for function keys where modifiers are likely to be used.

Patch 9.0.1221
Problem:    Code is indented more than necessary.
Solution:   Use an early return where it makes sense. (Yegappan Lakshmanan,
            closes #11833)

Patch 9.0.1222
Problem:    Terminal tests are flaky on MacOS.
Solution:   Add TermWait() calls. (Yegappan Lakshmanan, closes #11852)

Patch 9.0.1223
Problem:    Cannot use setcellwidths() below 0x100.
Solution:   Also accept characters between 0x80 and 0x100. (Ken Takata,
            closes #11834)

Patch 9.0.1224
Problem:    Cannot call a :def function with a number for a float argument.
Solution:   Accept a number as well, convert it to a float.

Patch 9.0.1225
Problem:    Reading past the end of a line when formatting text.
Solution:   Check for not going over the end of the line.

Patch 9.0.1226
Problem:    Spurious empty line when using text properties and virtual text.
Solution:   Do not set "text_prop_follows" when the other text property is not
            virtual text. (closes #11846)

Patch 9.0.1227
Problem:    No cmdline completion for :runtime.
Solution:   Add completion for :runtime. (closes #11853, closes #11447)
            Improve the resulting matches.

Patch 9.0.1228
Problem:    Fuzzy menu completion is only tested in the GUI.
Solution:   Make fuzzy menu completion test work without GUI.
            (closes #11861)

Patch 9.0.1229
Problem:    Cap'n Proto files are not recognized.
Solution:   Add a pattern and the "capnp" filetype. (Amaan Qureshi,
            closes #11862)

Patch 9.0.1230
Problem:    Apache thrift files are not recognized.
Solution:   Add a pattern for thrift files. (Amaan Qureshi, closes #11859)

Patch 9.0.1231
Problem:    Completion of :runtime does not handle {where} argument.
Solution:   Parse the {where} argument. (closes #11863)

Patch 9.0.1232
Problem:    ColorTable saving and restoring does not work properly.
Solution:   Restore ColorTable[16] usage. (Christopher Plewright,
            closes #11836)

Patch 9.0.1233
Problem:    search() loops forever if "skip" is TRUE for all matches.
Solution:   Keep the position of the first match.

Patch 9.0.1234
Problem:    The code style has to be checked manually.
Solution:   Add basic code style checks in a test.  Fix or avoid uncovered
            problems.

Patch 9.0.1235
Problem:    MS-Windows console: not flushing termguicolors.
Solution:   Flush termguicolors. (Christopher Plewright, closes #11871)

Patch 9.0.1236
Problem:    Code in same_leader() can be simplified.
Solution:   Simplify code that is executed only once. (closes #11867)

Patch 9.0.1237
Problem:    Code is indented more than necessary.
Solution:   Use an early return where it makes sense. (Yegappan Lakshmanan,
            closes #11858)

Patch 9.0.1238
Problem:    :runtime completion can be further improved.
Solution:   Also complete the {where} argument values and adjust the
            completion for that. (closes #11874)

Patch 9.0.1239
Problem:    Cannot have a line break before an object member access.
Solution:   Check for "." in next line. (closes #11864)

Patch 9.0.1240
Problem:    Cannot access a private object member in a lambda defined inside
            the class.
Solution:   Go up the context stack to find the class. (closes #11866)

Patch 9.0.1241
Problem:    Coverity warns for not checking function return value.
Solution:   Explicitly ignore the return value.

Patch 9.0.1242
Problem:    Code for :runtime completion is not consistent.
Solution:   Make code for cmdline expansion more consistent. (closes #11875)

Patch 9.0.1243
Problem:    :setglobal cannot use script-local function for "expr" option.
Solution:   Use the pointer to the option value properly. (closes #11883)

Patch 9.0.1244
Problem:    Cursor briefly displayed in a wrong position when pressing Esc in
            Insert mode after autoindent was used.
Solution:   Do not adjust the cursor position for assumed deleted white space
            if text is following.  (closes #11877)

Patch 9.0.1245
Problem:    Code is indented more than necessary.
Solution:   Use an early return where it makes sense. (Yegappan Lakshmanan,
            closes #11879)

Patch 9.0.1246
Problem:    Code is indented more than necessary.
Solution:   Use an early return where it makes sense. (Yegappan Lakshmanan,
            closes #11887)

Patch 9.0.1247
Problem:    Divide by zero with 'smoothscroll' set and a narrow window.
Solution:   Bail out when the window is too narrow.

Patch 9.0.1248
Problem:    Cannot export an interface. (Ernie Rael)
Solution:   Add the EX_EXPORT flag to :interface. (closes #11884)

Patch 9.0.1249
Problem:    Cannot export an abstract class. (Ernie Rael)
Solution:   Add the EX_EXPORT flag to :abstract. (closes #11884)

Patch 9.0.1250
Problem:    Cannot use an object method with :defer. (Ernie Rael)
Solution:   Find the object method and generate code to call it.
            (closes #11886)

Patch 9.0.1251
Problem:    Checking returned value of ga_grow() is inconsistent.
Solution:   Check for FAIL instead of "not OK". (Yegappan Lakshmanan,
            closes #11897)

Patch 9.0.1252
Problem:    MS-Windows: scrollback cropped off on MNV exit.
Solution:   Don't call SetConsoleScreenBufferInfoEx when using the alternate
            screen buffer. (Christopher Plewright, closes #11882)

Patch 9.0.1253
Problem:    CI adds repository unnecessarily.
Solution:   Remove the line from the workflow. (closes #11900)

Patch 9.0.1254
Problem:    Calling a method on an interface does not work.
Solution:   At runtime figure out what method to call. (closes #11901)

Patch 9.0.1255
Problem:    Changing 'virtualedit' does not have immediate effect.
Solution:   Correct how is checked for a changed value. (closes #11878)

Patch 9.0.1256
Problem:    NetworkManager connection files are not recognized.
Solution:   Add a pattern for NetworkManager connection files. (closes #11893)

Patch 9.0.1257
Problem:    Code style is not check in test scripts.
Solution:   Add basic code style check for test files.

Patch 9.0.1258
Problem:    Code style test fails.
Solution:   Adjust test files.

Patch 9.0.1259
Problem:    Diffmode test fails.
Solution:   Adjust expected result for adjusted indenting.

Patch 9.0.1260
Problem:    Coverity warns for possible NULL pointer usage.
Solution:   Change the condition.

Patch 9.0.1261
Problem:    Elsa files are not recognized.
Solution:   Add a pattern for Elsa files. (Amaan Qureshi, closes #11908)

Patch 9.0.1262
Problem:    The did_set_string_option function is too long.
Solution:   Split off functionality to individual functions.  (Yegappan
            Lakshmanan, Lewis Russell, closes #11904)

Patch 9.0.1263
Problem:    KDL files are not recognized.
Solution:   Add a pattern for KDL files. (Amaan Qureshi, closes #11898)

Patch 9.0.1264
Problem:    Motif: compiler warning for unused argument.
Solution:   Add "UNUSED".

Patch 9.0.1265
Problem:    Using an interface method may give a compilation error.
Solution:   Do not try to compile the body of a method of an interface.
            (closes #11885)

Patch 9.0.1266
Problem:    Error for space before ": type" is inconsistent.
Solution:   Give E1059 in more places. (closes #11868)

Patch 9.0.1267
Problem:    The did_set_string_option function is too long.
Solution:   Further cleanup of handling string options.  (Yegappan Lakshmanan,
            Lewis Russell, closes #11920)

Patch 9.0.1268
Problem:    .clangd and .stylelintrc files don't get a filetype.
Solution:   Use yaml for .clangd and json for .stylelintrc files. (Mark
            Skelton, closes #11916)

Patch 9.0.1269
Problem:    Channel test often fails on Mac OS.
Solution:   Increase the wait time from one to 15 milliseconds. (D. Ben
            Knoble, closes #11894)

Patch 9.0.1270
Problem:    Crash when using search stat in narrow screen.
Solution:   Check length of message. (closes #11921)

Patch 9.0.1271
Problem:    Using sizeof() and subtract array size is tricky.
Solution:   Use offsetof() instead. (closes #11926)

Patch 9.0.1272
Problem:    Typo in pattern for filetype detection.
Solution:   Fix the typo. (closes #11924)

Patch 9.0.1273
Problem:    "1v" may select block with wrong size. (Evgeni Chasnovski)
Solution:   Compute "curswant" in the right line. (closes #11925)

Patch 9.0.1274
Problem:    FIRRTL files are not recognized.
Solution:   Add a pattern for FIRRTL files. (Amaan Qureshi, closes #11931)

Patch 9.0.1275
Problem:    The code for setting options is too complicated.
Solution:   Refactor the do_set() function. (Yegappan Lakshmanan, Lewis
            Russell, closes #11932)

Patch 9.0.1276
Problem:    Some mappings with Meta and Shift do not work.
Solution:   Apply the Shift modifier to the key. (issue #11913)

Patch 9.0.1277
Problem:    Cursor may move with autocmd in Visual mode.
Solution:   Restore "VIsual_active" before calling check_cursor().
            (closes #11939)

Patch 9.0.1278
Problem:    go.work.sum files are not recognized.
Solution:   Recognize go.work.sum files as the gosum filetype. (Amaan Qureshi,
            closes #11940)

Patch 9.0.1279
Problem:    Display shows lines scrolled down erroneously. (Yishai Lerner)
Solution:   Do not change "wl_lnum" at index zero. (closes #11938)

Patch 9.0.1280
Problem:    Insufficient testing for what 9.0.1265 fixes.
Solution:   Add a couple of test cases. (issue #11885)

Patch 9.0.1281
Problem:    Cadence files are not recognized.
Solution:   Recognize Cadence files. (Janez Podhostnik, closes #11951)

Patch 9.0.1282
Problem:    Ron files are not recognized.
Solution:   Recognize Ron files. (Amaan Qureshi, closes #11948)

Patch 9.0.1283
Problem:    The code for setting options is too complicated.
Solution:   Refactor the do_set() function. (Yegappan Lakshmanan, Lewis
            Russell, closes #11945)

Patch 9.0.1284
Problem:    Compiler warnings for uninitialized variables. (Tony Mechelynck)
Solution:   Add variable initializations.

Patch 9.0.1285
Problem:    Various small problems.
Solution:   Adjust white space and comments.

Patch 9.0.1286
Problem:    Coverity warns for using a NULL pointer.
Solution:   Bail out whan "varp" is NULL.

Patch 9.0.1287
Problem:    With the Kitty key protocol Esc with NumLock cannot be mapped.
Solution:   Also use K_ESC when there is a modifier. (closes #11811)

Patch 9.0.1288
Problem:    FunC files are not recognized.
Solution:   Recognize FunC files. (Amaan Qureshi, closes #11949)

Patch 9.0.1289
Problem:    A newer version of clang can be used for CI.
Solution:   Switch from clang-15 to clang-16. (closes #11577)

Patch 9.0.1290
Problem:    CTRL-N and -P on cmdline don't trigger CmdlineChanged.
Solution:   Jump to cmdline_changed instead of cmdline_not_changed.
            (closes #11956)

Patch 9.0.1291
Problem:    Move language files are not recognized.
Solution:   Recognize Move language files. (Amaan Qureshi, closes #11947)

Patch 9.0.1292
Problem:    :defer may call the wrong method for an object. (Ernie Rael)
Solution:   When en object is from a class that extends or implements, figure
            out the method to call at runtime. (closes #11910)

Patch 9.0.1293
Problem:    The set_num_option() is too long.
Solution:   Move code to separate functions. (Yegappan Lakshmanan,
            closes #11954)

Patch 9.0.1294
Problem:    The set_bool_option() function is too long.
Solution:   Move code to separate functions. (Yegappan Lakshmanan,
            closes #11964)

Patch 9.0.1295
Problem:    The option initialization function is too long.
Solution:   Move code to separate functions. (Yegappan Lakshmanan,
            closes #11966)

Patch 9.0.1296
Problem:    Calling an object method with arguments does not work. (Ernie
            Rael)
Solution:   Take the argument count into account when looking up the object.
            (closes #11911)

Patch 9.0.1297
Problem:    Wrong value for $LC_CTYPE makes the environ test fail.
Solution:   Unset $LC_CTYPE when running tests. (closes #11963)

Patch 9.0.1298
Problem:    Inserting a register on the command line does not trigger
            incsearch or update hlsearch.
Solution:   Have cmdline_insert_reg() return CMDLINE_CHANGED when appropriate
            and handle it correctly. (Ken Takata, closes #11960)

Patch 9.0.1299
Problem:    Change for triggering incsearch not sufficiently tested.
Solution:   Add a test case.  Simplify the code. (closes #11971)

Patch 9.0.1300
Problem:    'statusline' only supports one "%=" item.
Solution:   Add support for multiple "%=" items. (TJ DeVries, Yegappan
            Lakshmanan, closes #11970, closes #11965)

Patch 9.0.1301
Problem:    Virtual text below empty line not displayed.
Solution:   Adjust flags and computations. (closes #11959)

Patch 9.0.1302
Problem:    On a Belgian keyboard CTRL-] does not work.
Solution:   Translate CTRL-$ into CTRL-]. (closes #11831)

Patch 9.0.1303
Problem:    Motif: scrollbar width/height wrong when maximized.
Solution:   Set the width/height when creating the scrollbar. (closes #11946)

Patch 9.0.1304
Problem:    "$" for 'list' option displayed in wrong position when there are
            text properties.
Solution:   Adjust logic for order of displayed items. (closes #11959)

Patch 9.0.1305
Problem:    Cursor in wrong line with virtual text above.
Solution:   Count extra line for text property above/below. (closes #11959)

Patch 9.0.1306
Problem:    No regression test for solved problem of #11959.
Solution:   Add a test, also with 'list' set. (closes #11959)

Patch 9.0.1307
Problem:    Setting 'formatoptions' with :let doesn't check for errors.
Solution:   Pass "errbuf" to set_string_option(). (Yegappan Lakshmanan,
            closes #11974, closes #11972)

Patch 9.0.1308
Problem:    The code for setting options is too complicated.
Solution:   Refactor the code for setting options. (Yegappan Lakshmanan,
            closes #11989)

Patch 9.0.1309
Problem:    Scrolling two lines with even line count and 'scrolloff' set.
Solution:   Adjust how the topline is computed. (closes #10545)

Patch 9.0.1310
Problem:    'splitkeep' test has failures.
Solution:   Adjust expected cursor line position.

Patch 9.0.1311
Problem:    Coverity warns for using a NULL pointer.
Solution:   Use "empty_option" instead of NULL.

Patch 9.0.1312
Problem:    Cursor position wrong when splitting window in insert mode.
Solution:   Pass the actual mode to win_fix_cursor(). (Luuk van Baal,
            closes #11999,

Patch 9.0.1313
Problem:    Some settings use the current codepage instead of 'encoding'.
Solution:   Adjust how options are initialized. (Ken Takata, closes #11992)

Patch 9.0.1314
Problem:    :messages behavior depends on 'fileformat' of current buffer.
Solution:   Pass the buffer pointer to where it is used. (Mirko Ceroni,
            closes #11995)

Patch 9.0.1315
Problem:    Escaping for completion of map command not properly tested.
Solution:   Add a few test cases. (closes #12009)

Patch 9.0.1316
Problem:    MS-Windows: mnvfiles dir created with admin group.
Solution:   Use ShellExecAsUser to create the mnvfiles directory. (Christopher
            Plewright, Ken Takata, closes #12000, closes #11888)

Patch 9.0.1317
Problem:    Crash when using an unset object variable.
Solution:   Give an error instead. (closes #12005)

Patch 9.0.1318
Problem:    Code style test fails.
Solution:   Remove trailing white space.

Patch 9.0.1319
Problem:    PRQL files are not recognized.
Solution:   Add a filetype pattern for PRQL files. (Matthias Queitsch,
            closes #12018)

Patch 9.0.1320
Problem:    Checking the type of a null object causes a crash.
Solution:   Don't try to get the class of a null object. (closes #12005)
            Handle error from calling a user function better.

Patch 9.0.1321
Problem:    mnvscript test fails where using {expr} syntax.
Solution:   Only return FCERR_FAILED in call_user_func() for MNV9 script.

Patch 9.0.1322
Problem:    Crash when indexing "any" which is an object.
Solution:   Check the index is a number.  Do not check the member type of an
            object.  (closes #12019)

Patch 9.0.1323
Problem:    Build failure with +eval feature.
Solution:   Add missing part for using funcerror_T.

Patch 9.0.1324
Problem:    "gj" and "gk" do not move correctly over a closed fold.
Solution:   Use the same code as used for "j"/"k" to go to the next/previous
            line. (Luuk van Baal, closes #12007)

Patch 9.0.1325
Problem:    'colorcolumn' highlight wrong with virtual text above.
Solution:   Adjust column of 'colorcolumn' for text property. (closes #12004)

Patch 9.0.1326
Problem:    Relative line number not updated with virtual text above.
Solution:   Adjust the row for the line number for virtual text above.
            (closes #12004)

Patch 9.0.1327
Problem:    Cursor in wrong position below line with virtual text below ending
            in multi-byte character.
Solution:   When checking for last character take care of multi-byte
            character.

Patch 9.0.1328
Problem:    Error when using "none" for GUI color is confusing.
Solution:   Mention that the name should perhaps be "NONE". (closes #1400)

Patch 9.0.1329
Problem:    Completion of map includes simplified ones.
Solution:   Do not complete simplified mappings. (closes #12013)

Patch 9.0.1330
Problem:    Handling new value of an option has a long "else if" chain.
Solution:   Use a function pointer. (Yegappan Lakshmanan, closes #12015)

Patch 9.0.1331
Problem:    Illegal memory access when using :ball in Visual mode.
Solution:   Stop Visual mode when using :ball. (Pavel Mayorov, closes #11923)

Patch 9.0.1332
Problem:    Crash when using buffer-local user command in cmdline window.
            (Karl Yngve Lervåg)
Solution:   Use the right buffer to find the user command. (closes #12030,
            closes #12029)

Patch 9.0.1333
Problem:    When redo'ing twice <ScriptCmd> may not get the script ID.
Solution:   When "last_used_map" map is not set use "last_used_sid".
            (closes #11930)

Patch 9.0.1334
Problem:    Using tt_member for the class leads to mistakes.
Solution:   Add a separate tt_class field.

Patch 9.0.1335
Problem:    No test for bad use of spaces in help files.
Solution:   Add checks for use of spaces in help files.  Ignore intentional
            spaces. (Hirohito Higashi, closes #11952)

Patch 9.0.1336
Problem:    Functions without arguments are not always declared properly.
Solution:   Use "(void)" instead of "()". (Yegappan Lakshmanan, closes #12031)

Patch 9.0.1337
Problem:    Yuck files are not recognized.
Solution:   Add a filetype pattern for yuck files. (Amaan Qureshi,
            closes #12033)

Patch 9.0.1338
Problem:    :defcompile and :disassemble can't find class method. (Ernie Rael)
Solution:   Make a class name and class.method name work. (closes #11984)

Patch 9.0.1339
Problem:    No test for :disassemble with class function.
Solution:   Add a test.

Patch 9.0.1340
Problem:    Coverity warns for using NULL pointer.
Solution:   Check that lhs_type is not NULL.

Patch 9.0.1341
Problem:    Build error with mzscheme but without GUI.
Solution:   Adjust #ifdefs. (Ken Takata, closes #12042)  Also fix function
            argument.

Patch 9.0.1342
Problem:    MS-Windows: linking may fail with space in directory name.
Solution:   Add quotes. (closes #12050)

Patch 9.0.1343
Problem:    Check for OSC escape sequence doesn't work.
Solution:   Move square bracket to the right place. (Johan Mattsson,
            closes #12048)

Patch 9.0.1344
Problem:    Check for OSC escape sequence doesn't work.
Solution:   Fix typo in index.

Patch 9.0.1345
Problem:    Too many "else if" statements for handling options.
Solution:   Add more functions to handle options. (Yegappan Lakshmanan,
            closes #12051)

Patch 9.0.1346
Problem:    Starlark files are not recognized.
Solution:   Add patterns for Starlark files. (Amaan Qureshi, closes #12049)

Patch 9.0.1347
Problem:    "gr CTRL-O" stays in Insert mode. (Pierre Ganty)
Solution:   Do not set restart_edit when "cmdchar" is 'v'. (closes #12045)

Patch 9.0.1348
Problem:    Un-grammar files are not recognized.
Solution:   Add patterns for Un-grammar files. (Amaan Qureshi, closes #12034)

Patch 9.0.1349
Problem:    "gr" with a count fails.
Solution:   Break out of the loop only after using the count.

Patch 9.0.1350
Problem:    CPON files are not recognized.
Solution:   Add patterns for CPON files. (Amaan Qureshi, closes #12053)

Patch 9.0.1351
Problem:    Dhall files are not recognized.
Solution:   Add patterns for Dhall files. (Amaan Qureshi, closes #12052)

Patch 9.0.1352
Problem:    "ignore" files are outdated.
Solution:   Update "ignore" files. (Ken Takata, closes #12056)

Patch 9.0.1353
Problem:    Too many "else if" statements to handle option values.
Solution:   Add more functions to handle option value changes. (Yegappan
            Lakshmanan, closes #12058)

Patch 9.0.1354
Problem:    "gr CTRL-G" stays in virtual replace mode. (Pierre Ganty)
Solution:   Prepend CTRL-V before control characters. (closes #12045)

Patch 9.0.1355
Problem:    No error when declaring a class twice. (Ernie Rael)
Solution:   Pass different flags when declaring the class. (closes #12057)

Patch 9.0.1356
Problem:    Cannot cancel "gr" with Esc.
Solution:   Make "gr<Esc>" do nothing. (closes #12064)

Patch 9.0.1357
Problem:    Using null_object results in an internal error. (Ernie Rael)
Solution:   Add instructions for pushing an object and class. (closes #12044)

Patch 9.0.1358
Problem:    Compilation error with some compilers.
Solution:   Avoid using "class" as member name.

Patch 9.0.1359
Problem:    Too many "else if" statements in handling options.
Solution:   Add more functions for handling option changes. (Yegappan
            Lakshmanan, closes #12060)

Patch 9.0.1360
Problem:    Cue files are not recognized.
Solution:   Add patterns for Cue files. (Amaan Qureshi, closes #12067)

Patch 9.0.1361
Problem:    extendnew() not sufficiently tested.
Solution:   Add a few more test cases for extendnew(). (closes #12075)

Patch 9.0.1362
Problem:    ml_get error when going to another tab. (Daniel J. Perry)
Solution:   Do not call update_topline() if "curwin" is invalid.
            (closes #11907)

Patch 9.0.1363
Problem:    Crash when :def function has :break in skipped block. (Ernie Rael)
Solution:   Don't generate a jump for a skipped :break. (closes #12077)

Patch 9.0.1364
Problem:    Build error with older Mac OS.
Solution:   Adjust #ifdef. (Yee Cheng Chin, closes #12074)

Patch 9.0.1365
Problem:    Dead test code.
Solution:   Remove code that depends on Farsi, which has been removed.
            (closes #12084)

Patch 9.0.1366
Problem:    Functions for setting options are in random order.
Solution:   Sort functions alphabetically. (Yegappan Lakshmanan,
            closes #12082)

Patch 9.0.1367
Problem:    Divide by zero in zero-width window.
Solution:   Check the width is positive.

Patch 9.0.1368
Problem:    Bass files are not recognized.
Solution:   Add patterns for Bass files. (Amaan Qureshi, closes #12088)

Patch 9.0.1369
Problem:    Still some "else if" constructs for setting options.
Solution:   Add a few more functions for handling options. (Yegappan
            Lakshmanan, closes #12090)

Patch 9.0.1370
Problem:    Crash when using a NULL object. (Ernie Rael)
Solution:   Check for NULL and give an error message. (closes #12083)

Patch 9.0.1371
Problem:    Ballooneval interferes with Insert completion.
Solution:   Ignore mouse-move events when completing. (closes #12094,
            closes #12092)

Patch 9.0.1372
Problem:    Test for 'toolbariconsize' may fail.
Solution:   Only test 'toolbariconsize' when it is supported. (James McCoy,
            closes #12095)

Patch 9.0.1373
Problem:    Wrong text displayed when using both 'linebreak' and 'list'.
Solution:   Only set "c_extra" to NUL when "p_extra" is not empty. (Hirohito
            Higashi, closes #12065)

Patch 9.0.1374
Problem:    Function for setting options not used consistently.
Solution:   Use a function for 'encoding' and terminal options. (Yegappan
            Lakshmanan, closes #12099)

Patch 9.0.1375
Problem:    Crash when getting member of obj of unknown class.
Solution:   Check for NULL class and give an error message. (Ernie Rael,
            closes #12096)

Patch 9.0.1376
Problem:    Accessing invalid memory with put in Visual block mode.
Solution:   Adjust the cursor column if needed.

Patch 9.0.1377
Problem:    job_status() may return "dead" if the process parent changed.
Solution:   Call mch_process_running() to check if the job is still alive.

Patch 9.0.1378
Problem:    Illegal memory access when using virtual editing.
Solution:   Make sure "startspaces" is not negative.

Patch 9.0.1379
Problem:    Functions for handling options are not ordered.
Solution:   Put functions in alphabetical order. (Yegappan Lakshmanan,
            closes #12101)

Patch 9.0.1380
Problem:    CTRL-X on 2**64 subtracts two. (James McCoy)
Solution:   Correct computation for large number. (closes #12103)

Patch 9.0.1381
Problem:    ACCESS_ names have a conflict with on some systems.
Solution:   Rename by prepending MNV_. (Ola Söder, closes #12105)

Patch 9.0.1382
Problem:    Failing test for strptime() doesn't show returned value.
Solution:   Use assert_equal() instead of assert_true().

Patch 9.0.1383
Problem:    xxd: combination of little endian and cols fails. (Aapo
            Rantalainen)
Solution:   Round up the space taken by the hex output. (closes #12097)

Patch 9.0.1384
Problem:    Setting HOMEBREW_NO_AUTO_UPDATE is not needed with Homebrew
            version 4.
Solution:   Remove setting HOMEBREW_NO_AUTO_UPDATE. (closes #12008)

Patch 9.0.1385
Problem:    g'Esc is considered an error.
Solution:   Make g'Esc silently abandon the command. (closes #12110)

Patch 9.0.1386
Problem:    Options test fails with some window width.
Solution:   Adjust what text the test checks with. (closes #12111)

Patch 9.0.1387
Problem:    Scrollbar test sporadically fails.
Solution:   Mark the scrollbar test as flaky. (Christian Brabandt,
            closes #12113)

Patch 9.0.1388
Problem:    Amiga: not all builds use gethostname().
Solution:   Use gethostname() for all builds except AROS. (Ola Söder,
            closes #12107)

Patch 9.0.1389
Problem:    Amiga: a couple of include files are included twice.
Solution:   Remove duplicate includes. (Ola Söder, closes #12106)

Patch 9.0.1390
Problem:    FOR_ALL_ macros are defined in an unexpected file.
Solution:   Move FOR_ALL_ macros to macros.h.  Add FOR_ALL_HASHTAB_ITEMS.
            (Yegappan Lakshmanan, closes #12109)

Patch 9.0.1391
Problem:    "clear" macros are not always used.
Solution:   Use ALLOC_ONE, MNV_CLEAR, CLEAR_POINTER and CLEAR_FIELD in more
            places. (Yegappan Lakshmanan, closes #12104)

Patch 9.0.1392
Problem:    Using NULL pointer with nested :open command.
Solution:   Check that ccline.cmdbuff is not NULL.

Patch 9.0.1393
Problem:    Cairo files are not recognized.
Solution:   Add a pattern for Cairo files. (Amaan Qureshi, closes #12118)

Patch 9.0.1394
Problem:    Unx Tal files are not recognized.
Solution:   Add a pattern for Unx Tal files. (Amaan Qureshi, closes #12117)

Patch 9.0.1395
Problem:    Odin files are not recognized.
Solution:   Add a pattern for Odin files. (Amaan Qureshi, closes #12122)

Patch 9.0.1396
Problem:    sort(list, 'N') does not work in MNV9 script context.
Solution:   Convert string to number without giving an error. (closes #12061)

Patch 9.0.1397
Problem:    Highlight for popupmenu kind and extra cannot be set.
Solution:   Add PmenuKind, PmenuKindSel, PmenuExtra and PmenuExtraSel
            highlight groups and use them. (Gianmaria Bajo, closes #12114)

Patch 9.0.1398
Problem:    Profile test repeats the headers many times.
Solution:   Put the headers in script variables.

Patch 9.0.1399
Problem:    Highlight test script has a few problems.
Solution:   Rewrite the script in MNV9 syntax. (closes #10379)

Patch 9.0.1400
Problem:    find_file_in_path() is not reentrant.
Solution:   Instead of global variables pass pointers to the functions.
            (closes #12093)

Patch 9.0.1401
Problem:    Condition is always true.
Solution:   Remove the condition. (closes #12139)

Patch 9.0.1402
Problem:    Crash when using null_class.
Solution:   Give an error when trying to use a null class.

Patch 9.0.1403
Problem:    Unused variables and functions.
Solution:   Delete items and adjust #ifdefs. (Dominique Pellé, closes #12145)

Patch 9.0.1404
Problem:    Compilation error with some compilers.
Solution:   Adjust array initialization. (John Marriott)

Patch 9.0.1405
Problem:    Missing check for out-of-memory.
Solution:   Check for alloc() returning NULL pointer. (closes #12149)

Patch 9.0.1406
Problem:    ILE RPG files are not recognized.
Solution:   Add patterns for ILE RPG files. (Andreas Louv, issue #12152)

Patch 9.0.1407
Problem:    TableGen files are not recognized.
Solution:   Add a pattern for TableGen files. (Amaan Qureshi, closes #12156)

Patch 9.0.1408
Problem:    QMLdir files are not recognized.
Solution:   Add a pattern for QMLdir files. (Amaan Qureshi, closes #12161)

Patch 9.0.1409
Problem:    Racket files are recognized as scheme.
Solution:   Recognize rackets files separately. (Gabriel Kakizaki,
            closes #12164, closes #12162)

Patch 9.0.1410
Problem:    MacOS: sed fails on .po files.
Solution:   Set $LANG to "C". (Yee Cheng Chin, closes #12153)

Patch 9.0.1411
Problem:    Accuracy of profiling is not optimal.
Solution:   Use CLOCK_MONOTONIC if possible. (Ernie Rael, closes #12129)

Patch 9.0.1412
Problem:    Pony files are not recognized.
Solution:   Add a pattern for Pony files. (Amaan Qureshi, closes #12155)

Patch 9.0.1413
Problem:    Compiler warning for unused variable.
Solution:   Move variable declaration. (John Marriott)

Patch 9.0.1414
Problem:    <M-S-x> in Kitty does not use the Shift modifier.
Solution:   Apply the Shift modifier to ASCII letters. (closes #11913)

Patch 9.0.1415
Problem:    Crystal files are not recognized.
Solution:   Add a pattern for Crystal files. (Amaan Qureshi, closes #12175)

Patch 9.0.1416
Problem:    Crash when collection is modified when using filter().
Solution:   Lock the list/dict/blob. (Ernie Rael, closes #12183)

Patch 9.0.1417
Problem:    ESDL files are not recognized.
Solution:   Add a pattern for ESDL files. (Amaan Qureshi, closes #12174)

Patch 9.0.1418
Problem:    The included xdiff code is a bit outdated.
Solution:   Sync with the latest git xdiff code. (Yee Cheng Chin,
            closes #12181)

Patch 9.0.1419
Problem:    Lean files are not recognized.
Solution:   Add a pattern for Lean files. (Amaan Qureshi, closes #12177)

Patch 9.0.1420
Problem:    Build failure because SIZE_MAX is not defined.
Solution:   Define SIZE_MAX when missing. (John Marriott)

Patch 9.0.1421
Problem:    Nu files are not recognized.
Solution:   Add a pattern for Nu files. (Amaan Qureshi, closes #12172)

Patch 9.0.1422
Problem:    Sage files are not recognized.
Solution:   Add a pattern for Sage files. (Amaan Qureshi, closes #12176)

Patch 9.0.1423
Problem:    WebAssembly Interface Type files are not recognized.
Solution:   Add a pattern for WIT files. (Amaan Qureshi, closes #12173)

Patch 9.0.1424
Problem:    Unused macros are defined.
Solution:   Remove the unused macros.

Patch 9.0.1425
Problem:    "wat" and "wast" files are one filetype.
Solution:   Add a separate filetype for "wat" files. (Amaan Qureshi,
            closes #12165)

Patch 9.0.1426
Problem:    Indent wrong after "export namespace" in C++.
Solution:   Skip over "inline" and "export" in any order. (Virginia Senioria,
            closes #12134, closes #12133)

Patch 9.0.1427
Problem:    Warning for uninitialized variable. (Tony Mechelynck)
Solution:   Add #ifdef.

Patch 9.0.1428
Problem:    Cursor in wrong position when leaving insert mode.
Solution:   Update the w_valid flags.  Position the cursor also when not
            redrawing. (closes #12137)

Patch 9.0.1429
Problem:    Invalid memory access when ending insert mode.
Solution:   Check if the insert_skip value is valid.

Patch 9.0.1430
Problem:    Livebook files are not recognized.
Solution:   Add a pattern for Livebook files. (Mathias Jean Johansen,
            closes #12203)

Patch 9.0.1431
Problem:    getscriptinfo() loops even when specific SID is given.
Solution:   Only loop when needed.  Give a clearer error message.
            (closes #12207)

Patch 9.0.1432
Problem:    Completion popup in wrong position with virtual text "above".
Solution:   Adjust the column. (closes #12210)

Patch 9.0.1433
Problem:    On some systems the Lua library is not found.
Solution:   Check if a subdirectory for Lua exists.  (closes #4475)

Patch 9.0.1434
Problem:    Crash when adding package already in 'runtimepath'.
Solution:   Change order for using 'runtimepath' entries. (closes #12215)

Patch 9.0.1435
Problem:    Scrolling too many lines when 'wrap' and 'diff' are set.
Solution:   Only scroll by screenlines for 'diff' when 'wrap' is not set.
            (closes #12211)

Patch 9.0.1436
Problem:    Cannot compare a typed variable with v:none.
Solution:   Allow for "x is v:none" and "x isnot v:none". (issue #12194)

Patch 9.0.1437
Problem:    Test fails with different error number.
Solution:   Adjust the expected error.

Patch 9.0.1438
Problem:    .fs files are falsely recognized as forth files.
Solution:   Check 100 lines for something that looks like forth. (Johan
            Kotlinski, closes #12219, closes #11988)

Patch 9.0.1439
Problem:    Start Insert mode when accessing a hidden prompt buffer.
Solution:   Call leaving_window() in aucmd_restbuf(). (Thorben Tröbst,
            closes #12148, closes #12147)

Patch 9.0.1440
Problem:    "rmnv" can execute a shell through :diffpatch.
Solution:   Disallow the shell "patch" command.

Patch 9.0.1441
Problem:    MacOS: Python 3 using framework do not set dll name properly.
Solution:   Use the framework prefix. (Yee Cheng Chin, closes #12189)

Patch 9.0.1442
Problem:    mapset() does not restore non-script context.
Solution:   Also accept negative sid. (closes #12132)

Patch 9.0.1443
Problem:    Ending Insert mode when accessing a hidden prompt buffer.
Solution:   Don't stop Insert mode when it was active before. (closes #12237)

Patch 9.0.1444
Problem:    Crash when passing NULL to setcmdline(). (Andreas Louv)
Solution:   Use tv_get_string() instead of using v_string directly.
            (closes #12231, closes #12227)

Patch 9.0.1445
Problem:    openSUSE: configure doesn't find the Motif library. (Tony
            Mechelynck)
Solution:   Also search in /usr/lib64.

Patch 9.0.1446
Problem:    Unnecessary checks for the "skip" flag when skipping.
Solution:   Remove the unnecessary checks. (closes #12254)

Patch 9.0.1447
Problem:    Condition is always true.
Solution:   Remove the useless condition. (closes #12253)

Patch 9.0.1448
Problem:    Diff test fails on MacOS 13.
Solution:   Install GNU diffutils. (Ozaki Kiichi, closes #12258)

Patch 9.0.1449
Problem:    Test for prompt buffer is flaky.
Solution:   Use WaitForAssert() instead of TermWait(). (Ozaki Kiichi,
            closes #12247)

Patch 9.0.1450
Problem:    MacOS: building fails if clock_gettime() is not available.
Solution:   Add a configure check for clock_gettime(). (closes #12242)

Patch 9.0.1451
Problem:    Unnecessary redrawing when 'showcmdloc' is not "last".
Solution:   Redraw later when "showcmd_is_clear" is set. (Luuk van Baal,
            closes #12260)

Patch 9.0.1452
Problem:    Code using EVAL_CONSTANT is dead, it is never set.
Solution:   Remove EVAL_CONSTANT. (closes #12252)

Patch 9.0.1453
Problem:    Typos in source code and tests.
Solution:   Fix the typos. (Dominique Pellé, closes #12217)

Patch 9.0.1454
Problem:    Code indenting is confused by macros.
Solution:   Put semicolon after the macros instead of inside. (Ozaki Kiichi,
            closes #12257)

Patch 9.0.1455
Problem:    C++ 20 modules are not recognized.
Solution:   Add patterns to recognize C++ 20 modules as "cpp". (Ben Jackson,
            closes #12261)

Patch 9.0.1456
Problem:    Shortmess test depends on order of test execution.
Solution:   Clear messages. (closes #12264)

Patch 9.0.1457
Problem:    No regression test for what patch 9.0.1333 fixes.
Solution:   Extend existing test to cover the fixed problem. (issue #11930)

Patch 9.0.1458
Problem:    Buffer overflow when expanding long file name.
Solution:   Use a larger buffer and avoid overflowing it. (Yee Cheng Chin,
            closes #12201)

Patch 9.0.1459
Problem:    Typo in name of type.
Solution:   Change funccal_T to funccall_T. (closes #12265)

Patch 9.0.1460
Problem:    Insufficient testing for getcmdcompltype().
Solution:   Add a few more test cases. (closes #12268)

Patch 9.0.1461
Problem:    Ruler not drawn correctly when using 'rulerformat'.
Solution:   Adjust formatting depending on whether the ruler is drawn in the
            statusline or the command line. (Sean Dewar, closes #12246)

Patch 9.0.1462
Problem:    Recursively calling :defer function if it does :qa.
Solution:   Clear the defer entry before calling the function. (closes #12266)

Patch 9.0.1463
Problem:    Virtual text truncation only works with Unicode 'encoding'.
Solution:   Convert the ellipsis character to 'encoding' if needed. (Hirohito
            Higashi, closes #12233)

Patch 9.0.1464
Problem:    Strace filetype detection is expensive.
Solution:   Match with a cheap pattern first. (Federico Mengozzi,
            closes #12220)

Patch 9.0.1465
Problem:    Haiku build fails.
Solution:   Do not include globals.h and proto.h twice. (Ozaki Kiichi,
            closes #12273)

Patch 9.0.1466
Problem:    Cannot use an object member name as a method argument.
Solution:   Do not give an error for using an object member name for a method
            argument. (Hirohito Higashi, closes #12241, closes #12225)
            Fix line number for other argument error.

Patch 9.0.1467
Problem:    Jenkinsfiles are not recognized as groovy.
Solution:   Add a pattern for Jenkinsfiles. (closes #12236)

Patch 9.0.1468
Problem:    Recursively calling :defer function if it does :qa in a compiled
            function.
Solution:   Clear the defer entry before calling the function. (closes #12271)

Patch 9.0.1469
Problem:    Deferred functions not called from autocommands.
Solution:   Also go through the funccal_stack. (closes #12267)

Patch 9.0.1470
Problem:    Deferred functions invoked in unexpected order when using :qa and
            autocommands.
Solution:   Call deferred functions for the current funccal before using the
            stack. (closes #12278)

Patch 9.0.1471
Problem:    Warnings for function declarations.
Solution:   Add argument types. (Michael Jarvis, closes #12277)

Patch 9.0.1472
Problem:    ":drop fname" may change the last used tab page.
Solution:   Restore the last used tab page when :drop has changed it.
            (closes #12087)

Patch 9.0.1473
Problem:    CI does not run sound tests.
Solution:   Re-enable sound tests.  Use "apt-get" instead of "apt". (Ozaki
            Kiichi, closes #12280)

Patch 9.0.1474
Problem:    CI runs with old version of Ubuntu and tools.
Solution:   Update CI to more recent versions. (closes #11092)

Patch 9.0.1475
Problem:    Busted configuration files are not recognized.
Solution:   Recognize busted configuration files as Lua. (Craig MacEachern,
            closes #12209) 

Patch 9.0.1476
Problem:    Lines put in non-current window are not displayed. (Marius
            Gedminas)
Solution:   Don't increment the topline when inserting just above it.
            (closes #12212)

Patch 9.0.1477
Problem:    Crash when recovering from corrupted swap file.
Solution:   Check for a valid page count. (closes #12275)

Patch 9.0.1478
Problem:    Filetypes for *.v files not detected properly.
Solution:   Use the file contents to detect the filetype. (Turiiya,
            closes #12281)

Patch 9.0.1479
Problem:    Small source file problems; outdated list of distributed files.
Solution:   Small updates to source files and list of distributed files.

Patch 9.0.1480
Problem:    Using popup menu may leave text in the command line.
Solution:   Clear the command line if the popup menu covered it. (Luuk van
            Baal, closes #12286)

Patch 9.0.1481
Problem:    Decrypting with libsodium may fail if the library changes.
Solution:   Add parameters used to the encrypted file header. (Christian
            Brabandt, closes #12279)

Patch 9.0.1482
Problem:    Crash when textprop has a very large "padding" value. (Yegappan
            Lakshmanan)
Solution:   Avoid the "after" count to go negative.

Patch 9.0.1483
Problem:    += operator does not work on class member.
Solution:   Do not skip as if "this." was used. (Christian Brabandt,
            closes #12263)

Patch 9.0.1484
Problem:    Coverity warns for using invalid array index.
Solution:   Add entry for Xchacha, even though it is not used.

Patch 9.0.1485
Problem:    no functions for converting from/to UTF-16 index.
Solution:   Add UTF-16 flag to existing functions and add strutf16len() and
            utf16idx(). (Yegappan Lakshmanan, closes #12216)

Patch 9.0.1486
Problem:    Parallel make might not work.
Solution:   Add missing dependencies. (Samuel Dionne-Riel, closes #12288)

Patch 9.0.1487
Problem:    Content-type header for LSP channel not according to spec.
Solution:   Use "vscode-jsonrpc" instead of "mnv-jsonrpc". (Yegappan
            Lakshmanan, closes #12295)

Patch 9.0.1488
Problem:    xchacha20v2 crypt header is platform dependent.
Solution:   Avoid using "size_t". (Ozaki Kiichi, closes #12296)

Patch 9.0.1489
Problem:    Crypt with libsodium is not tested on CI.
Solution:   Configure testing with libsodium. (Ozaki Kiichi, closes #12297)

Patch 9.0.1490
Problem:    The ModeChanged event may be triggered too often.
Solution:   Only trigger ModeChanged when no operator is pending.
            (closes #12298)

Patch 9.0.1491
Problem:    Wrong scrolling with ls=0 and :botright split.
Solution:   Add statusline before calling frame_new_height(). (closes #12299)

Patch 9.0.1492
Problem:    Using uninitialized memory when argument is missing.
Solution:   Check there are sufficient arguments before the base.
            (closes #12302)

Patch 9.0.1493
Problem:    Popup menu position wrong in window with toolbar.
Solution:   Take the window toolbar into account when positioning the popup
            menu. (closes #12308)

Patch 9.0.1494
Problem:    Crash when recovering from corrupted swap file.
Solution:   Bail out when the line index looks wrong. (closes #12276)

Patch 9.0.1495
Problem:    GTK3: hiding the mouse pointer does not work. (Rory O’Kane)
Solution:   Set alpha level to zero. (Kenny Stauffer, closes #12293,
            closes #3256)

Patch 9.0.1496
Problem:    Test restoring register with wrong value.
Solution:   Correct name of variable. (closes #12310)

Patch 9.0.1497
Problem:    The ruler percentage can't be localized.
Solution:   Use a string that can be translated. (Emir Sari, closes #12311)

Patch 9.0.1498
Problem:    In a terminal window the cursor may jump around. (Kenny Stauffer)
Solution:   Do not move the cursor to the position for terminal-normal mode.
            (closes #12312)

Patch 9.0.1499
Problem:    Using uninitialized memory with fuzzy matching.
Solution:   Initialize the arrays used to store match positions.

Patch 9.0.1500
Problem:    The falsy operator is not tested properly.
Solution:   Add a few more test cases. (closes #12319)

Patch 9.0.1501
Problem:    Crash with nested :try and :throw in catch block.
Solution:   Jump to :endtry before returning from function. (closes #12245)

Patch 9.0.1502
Problem:    No test for deleting the end of a long wrapped line.
Solution:   Add a test to check the right text is displayed. (Luuk van Baal,
            closes #12318)

Patch 9.0.1503
Problem:    Luau files are not recognized.
Solution:   Add a patter for Luau files. (Amaan Qureshi, closes #12317)

Patch 9.0.1504
Problem:    No error when calling remote_startserver() with an empty string.
Solution:   Give an error for an empty string. (Hirohito Higashi,
            closes #12327)

Patch 9.0.1505
Problem:    Error when heredoc content looks like heredoc.
Solution:   Handle curly expressions. (closes #12325)

Patch 9.0.1506
Problem:    Line number not displayed when using 'smoothscroll'.
Solution:   Adjust condition for showing the line number. (closes #12333)

Patch 9.0.1507
Problem:    Assert message is confusing with boolean result.  assert_inrange()
            replaces message instead of adding it.
Solution:   Don't put quotes around expected boolean value.  Append message
            for assert_inrange(). (closes #12342, closes #12341)

Patch 9.0.1508
Problem:    Catch does not work when lines are joined with a newline.
Solution:   Set "nextcmd" appropriately. (closes #12348)

Patch 9.0.1509
Problem:    Error message lacks mentioning the erroneous argument.
Solution:   Specify the argument that the error is for.

Patch 9.0.1510
Problem:    Misleading variable name for error message.
Solution:   Change "name" to "number".  (closes #12345)

Patch 9.0.1511
Problem:    Crash when using wrong arg types to assert_match().
Solution:   Check for NULL pointer. (closes #12349)

Patch 9.0.1512
Problem:    Inserting lines when scrolling with 'smoothscroll' set.
Solution:   Adjust line height computation for w_skipcol. (Luuk van Baal,
            closes #12350)

Patch 9.0.1513
Problem:    Text scrolls unnecessarily when splitting and 'splitkeep' is not
            "cursor".
Solution:   Avoid resetting w_skipcol. (Luuk van Baal, closes #12334)

Patch 9.0.1514
Problem:    Test waits unnecessarily long before checking screendump.
Solution:   Remove TermWait() call.

Patch 9.0.1515
Problem:    reverse() does not work for a String.
Solution:   Implement reverse() for a String. (Yegappan Lakshmanan,
            closes #12179)

Patch 9.0.1516
Problem:    Cannot use special keys in <Cmd> mapping.
Solution:   Do allow for special keys in <Cmd> and <ScriptCmd> mappings.
            (closes #12326)

Patch 9.0.1517
Problem:    MacOS: configure removes -O2 from $CFLAGS.
Solution:   Only adjust $CFLAGS for gcc. (closes #12351)

Patch 9.0.1518
Problem:    Search stats not always visible when searching backwards.
Solution:   Do not display the top/bot message on top of the search stats.
            (Christian Brabandt, closes #12322, closes #12222)

Patch 9.0.1519
Problem:    Global 'filetype' is set when it is detected from the file content.
Solution:   Set the local 'filetype' option value.

Patch 9.0.1520
Problem:    Completion for option name includes all bool options.
Solution:   Do not recognize the "noinv" prefix.  Prefix "no" or "inv" when
            appropriate.

Patch 9.0.1521
Problem:    Failing redo of command with control characters.
Solution:   Use AppendToRedobuffLit() for colon commands. (closes #12354)

Patch 9.0.1522
Problem:    Some functions give two error messages.
Solution:   Do not give a second error message. (closes #12352)

Patch 9.0.1523
Problem:    Some error messages are not marked for translation.
Solution:   Surround the messages in _(). (closes #12356)

Patch 9.0.1524
Problem:    Passing -1 for bool is not always rejected.
Solution:   Check for error in a better way. (closes #12358)

Patch 9.0.1525
Problem:    'smoothscroll' does not always work properly.
Solution:   Do not reset w_skipcol after it was intentionally set.  (Luuk van
            Baal, closes #12360, closes #12199, closes #12323)

Patch 9.0.1526
Problem:    Condition is always true.
Solution:   Remove unnecessary condition. (closes #12359)

Patch 9.0.1527
Problem:    Crash when using negative value for term_cols.
Solution:   Check for invalid term_cols value. (Kenta Sato, closes #12362)

Patch 9.0.1528
Problem:    Libsodium encryption is only used with "huge" features, even when
            manually enabled through configure. (Tony Mechelynck)
Solution:   Remove the condition on FEAT_HUGE.

Patch 9.0.1529
Problem:    Code style test doesn't check for space after "if".
Solution:   Add a test for space.

Patch 9.0.1530
Problem:    Cursor moves to wrong line when 'foldmethod' is "diff". (Rick
            Howe)
Solution:   Adjust logic for scrolling. (Luuk van Baal, closes #12364,
            closes #12218)

Patch 9.0.1531
Problem:    Crash when register contents ends up being invalid.
Solution:   Check "y_array" is not NULL.

Patch 9.0.1532
Problem:    Crash when expanding "~" in substitute causes very long text.
Solution:   Limit the text length to MAXCOL.

Patch 9.0.1533
Problem:    Test for 'smoothscroll' is ineffective.
Solution:   Change the order of testing "zb" and "zt". (Luuk van Baal,
            closes #12366)

Patch 9.0.1534
Problem:    Test for expanding "~" in substitute takes too long.
Solution:   Disable the test for now.

Patch 9.0.1535
Problem:    Test commented out in a wrong way.
Solution:   Use legacy script comment character.

Patch 9.0.1536
Problem:    CI: sound dummy stopped working.
Solution:   Temporarily stop using sound dummy.

Patch 9.0.1537
Problem:    Message for opening the cmdline window is not translated.
Solution:   Add gettext() and scan the defaults script for text to be
            translated.  (closes #12371)

Patch 9.0.1538
Problem:    :wqall does not trigger ExitPre. (Bart Libert)
Solution:   Move preparations for :qall to a common function. (closes #12374)

Patch 9.0.1539
Problem:    Typst filetype is not recognized.
Solution:   Distinguish between sql and typst. (Gaetan Lepage, closes #12363)

Patch 9.0.1540
Problem:    reverse() on string doesn't work in compiled function.
Solution:   Accept string in argument type check. (Yegappan Lakshmanan,
            closes #12377)

Patch 9.0.1541
Problem:    CI: sound dummy is disabled.
Solution:   Make sound dummy work again. (closes #12380)

Patch 9.0.1542
Problem:    Line not fully displayed if it doesn't fit in the screen.
Solution:   Do not reset s_skipcol if not needed. (Luuk van Baal,
            closes #12376)

Patch 9.0.1543
Problem:    Display errors when making topline shorter and 'smoothscroll' is
            set.
Solution:   Reset w_skipcol when the topline becomes shorter than its current
            value. (Luuk van Baal, closes #12367)

Patch 9.0.1544
Problem:    Recent glibc marks sigset() as a deprecated.
Solution:   Use sigaction() in mch_signal() if possible. (Ozaki Kiichi,
            closes #12373)

Patch 9.0.1545
Problem:    Text not scrolled when cursor moved with "g0" and "h".
Solution:   Adjust w_skipcol when needed. (Luuk van Baal, closes #12387)

Patch 9.0.1546
Problem:    Some commands for opening a file don't use 'switchbuf'.
Solution:   Use 'switchbuf' for more commands. (Yegappan Lakshmanan,
            closes #12383, closes #12381)

Patch 9.0.1547
Problem:    Coveralls workflow on CI is commented out.
Solution:   Remove the Coveralls workflow. (closes #12389)

Patch 9.0.1548
Problem:    CI: check in sound-dummy module may throw an error.
Solution:   Check whether apt-cache can show the package description.
            (Christian Brabandt, closes #12390)

Patch 9.0.1549
Problem:    USD filetype is not recognized.
Solution:   Add patterns for USD filetype. (Colin Kennedy, closes #12370)

Patch 9.0.1550
Problem:    In cmdline window S-Tab does not select previous completion.
            (Maxim Kim)
Solution:   Add a mapping for S-Tab. (closes #12116)

Patch 9.0.1551
Problem:    Position of marker for 'smoothscroll' not computed correctly.
Solution:   Take 'list' and other options into account. (Luuk van Baal,
            closes #12393)

Patch 9.0.1552
Problem:    CI: sound-dummy module is not installed.
Solution:   Invert using the result of the condition.  (closes #12394)

Patch 9.0.1553
Problem:    CI: using slightly outdated gcc version.
Solution:   Use "brew" to get a more recent gcc version.  (closes #12391)

Patch 9.0.1554
Problem:    Code for handling 'switchbuf' is repeated.
Solution:   Add a function to handle 'switchbuf'. (Yegappan Lakshmanan,
            closes #12397)

Patch 9.0.1555
Problem:    setcharsearch() does not clear last searched char properly.
Solution:   Do not accept lastc_bytelen smaller than one. (closes #12398)

Patch 9.0.1556
Problem:    MNV9: error for missing "return" after "throw".
Solution:   Set had_return flag for "throw". (closes #12262)

Patch 9.0.1557
Problem:    Test failures for unreachable code.
Solution:   Add a test override to ignore unreachable code.

Patch 9.0.1558
Problem:    Wrong error for unreachable code after :throw.
Solution:   Adjust the error message.

Patch 9.0.1559
Problem:    Function argument types not always checked and using v:none may
            cause an error.
Solution:   Check argument types once the function type is known.  Do not give
            an error for using v:none as an argument. (closes #12200)

Patch 9.0.1560
Problem:    Win32: When 'encoding' is set $PATH has duplicate entries.
Solution:   Only append the directory if it is not there yet. (Ken Takata,
            closes #12400, closes #12372)

Patch 9.0.1561
Problem:    Display wrong when moving cursor to above the top line and
            'smoothscroll' is set.
Solution:   Call adjust_skipcol() in more places and make it work better.
            (Luuk van Baal, closes #12395)

Patch 9.0.1562
Problem:    Mixing package managers is not a good idea.
Solution:   Install gcc 13 with apt-get. (closes #12405)

Patch 9.0.1563
Problem:    GTK3: window manager resize hints are incomplete.
Solution:   Use NULL for second argument of gtk_window_set_geometry_hints().
            (Kenny Stauffer closes #11055)

Patch 9.0.1564
Problem:    Display moves up and down with 'incsearch' and 'smoothscroll'.
Solution:   Do not check if w_skipcol changed. (Luuk van Baal, closes #12410,
            closes #12409)

Patch 9.0.1565
Problem:    Json lines files are not recognized.
Solution:   Add a pattern to detect "jsonl" files. (issue #7520)

Patch 9.0.1566
Problem:    Motif: GUI scrollbar test fails in 24 lines terminal.
Solution:   Skip the part of the test that fails for now.

Patch 9.0.1567
Problem:    Profiler calculation may be wrong on 32 bit builds.
Solution:   Use 64 bit variable if possible. (Isao Sato, closes #12412)

Patch 9.0.1568
Problem:    With 'smoothscroll' cursor may move below botline.
Solution:   Call redraw_later() if needed,  Compute cursor row with adjusted
            condition. (Luuk van Baal, closes #12415)

Patch 9.0.1569
Problem:    Cannot use "this.member" in lambda in class method.
Solution:   Adjust check for reserved keyword. (Hirohito Higashi,
            closes #12416, closes #12076, closes #12336)

Patch 9.0.1570
Problem:    Some tests are slow.
Solution:   Make a few test cases faster.

Patch 9.0.1571
Problem:    RedrawingDisabled not used consistently.
Solution:   Avoid RedrawingDisabled going negative.  Set RedrawingDisabled in
            win_split_ins(). (closes #11961)

Patch 9.0.1572
Problem:    Error messages are not translated.
Solution:   Add _().

Patch 9.0.1573
Problem:    Error for function name has wrong line number.
Solution:   Set the line number before giving the error.

Patch 9.0.1574
Problem:    MS-Windows: list of translation input files incomplete.
Solution:   Move the list of files to a common file. (closes #12426)

Patch 9.0.1575
Problem:    "file N of M" message is not translated.
Solution:   Make argument count message translatable. (close #12429)

Patch 9.0.1576
Problem:    Users may not know what to do with an internal error.
Solution:   Add a translated message with instructions.

Patch 9.0.1577
Problem:    MS-Windows: context menu translations may be wrong.
Solution:   Set the encoding before using gettext(). (Ken Takata,
            closes #12441, closes #12431)

Patch 9.0.1578
Problem:    SpellCap highlight not always updated when needed.
Solution:   Handle updating line below closed fold and other situations where
            only part of the window is redrawn. (Luuk van Baal, closes #12428,
            closes #12420)

Patch 9.0.1579
Problem:    Some error messages are not translated.
Solution:   Add the N_() marker on messages. (closes #12427)

Patch 9.0.1580
Problem:    CI: indent test hangs on FreeBSD.
Solution:   Set 'nomore' when running the indent tests. (Ozaki Kiichi,
            closes #12446)

Patch 9.0.1581
Problem:    Translation does not work for plural argument.
Solution:   Use PLURAL_MSG() for errors and with xgettext. (closes #12443)

Patch 9.0.1582
Problem:    :stopinsert may not work in a popup close handler. (Ben Jackson)
Solution:   Restore stop_insert_mode when appropriate. (closes #12452,
            closes #12434)

Patch 9.0.1583
Problem:    Get E304 when using 'cryptmethod' "xchacha20v2". (Steve Mynott)
Solution:   Add 4th crypt method to block zero ID check.  Avoid syncing a swap
            file before reading the file. (closes #12433)

Patch 9.0.1584
Problem:    Not all meson files are recognized.
Solution:   Add "meson.options". (Liam Beguin, closes #12444)

Patch 9.0.1585
Problem:    Weird use of static variables for spell checking.
Solution:   Move the variables to a structure and pass them from win_update()
            to win_line(). (Luuk van Baal, closes #12448)

Patch 9.0.1586
Problem:    Checking translations gives an error for using two messages with
            ngettext() that differ in "%" items.
Solution:   Adjust the check script to tolerate omitting one "%" item.

Patch 9.0.1587
Problem:    Corn config files are not recognized.
Solution:   Add a pattern for Corn config files. (Jake Stanger, closes #12449)

Patch 9.0.1588
Problem:    Incsearch not triggered when pasting clipboard register on the
            command line.
Solution:   Also set "literally" when using a clipboard register. (Ken Takata,
            closes #12460)

Patch 9.0.1589
Problem:    Filetype test contains too many special characters.
Solution:   Use MNV9 syntax for a few things.

Patch 9.0.1590
Problem:    Filetype test has trailing white space.
Solution:   Remove trailing white space.

Patch 9.0.1591
Problem:    Some "gomod" files are not recognized.
Solution:   Check for "go.mod" file name before checking out the contents.
            (Omar El Halabi, closes #12462)

Patch 9.0.1592
Problem:    Not all timer tests are marked as flaky.
Solution:   Set the flaky flag for all timer tests. (closes #12355)

Patch 9.0.1593
Problem:    MS-Windows: assert error when compiled with debug mode.
Solution:   Adjust arguments to setvbuf(). (Ken Takata, closes #12467)

Patch 9.0.1594
Problem:    Some internal error messages are translated.
Solution:   Consistently do not translate internal error messages.
            (closes #12459)

Patch 9.0.1595
Problem:    Line pointer becomes invalid when using spell checking.
Solution:   Call ml_get() at the right places. (Luuk van Baal, closes #12456)

Patch 9.0.1596
Problem:    :registers command does not work in sandbox.
Solution:   Add flag to the command. (closes #12473)

Patch 9.0.1597
Problem:    Cursor ends up below the window after a put.
Solution:   Mark w_crow and w_botline invalid when changing the cursor line.
            (closes #12465)

Patch 9.0.1598
Problem:    screenchar(), screenchars() and screenstring() do not work
            properly when 'encoding' is set to a double-byte encoding.
Solution:   Fix the way the bytes of the characters are obtained.
            (issue #12469)

Patch 9.0.1599
Problem:    Cursor not adjusted when near top or bottom of window and
            'splitkeep' is not "cursor".
Solution:   Move boundary checks to outer cursor move functions, inner
            functions should only return valid cursor positions. (Luuk van
            Baal, closes #12480)

Patch 9.0.1600
Problem:    screenpos() does not take w_skipcol into account.
Solution:   Subtract w_skipcol from column. (closes #12486, closes #12476)

Patch 9.0.1601
Problem:    Filetype detection fails for *.conf file without comments.
            (Dmitrii Tcyganok)
Solution:   Use "conf" filetype as a fallback for an empty .conf file.
            (closes #12487, closes #12483)

Patch 9.0.1602
Problem:    Stray character is visible if 'smoothscroll' marker is displayed
            on top of a double-wide character.
Solution:   When overwriting a double-width character with the 'smoothscroll'
            marker clear the second half. (closes #12469)

Patch 9.0.1603
Problem:    Display wrong when scrolling multiple lines with 'smoothscroll'
            set.
Solution:   Redraw when w_skipcol changed. (closes #12477, closes #12468)

Patch 9.0.1604
Problem:    Errors from the codestyle test are a bit confusing.
Solution:   Use assert_report() with a clearer message.  Avoid a warning for
            an existing swap file.

Patch 9.0.1605
Problem:    Crash when calling method on super in child constructor. (Israel
            Chauca Fuentes)
Solution:   Clear the type list. (Ernie Rael, closes #12489, closes #12471)

Patch 9.0.1606
Problem:    Using freed memory when 'foldcolumn' is set.
Solution:   Save extra pointer to free it later. (closes #12492)

Patch 9.0.1607
Problem:    screenpos() returns wrong row with diff filler lines.
Solution:   Only add filler lines when appropriate.  Also don't add the
            'smoothscroll' marker when w_skipcol is zero. (closes #12485,
            closes #12484)

Patch 9.0.1608
Problem:    update_topline() is called twice.
Solution:   Do not call update_topline() before curs_columns(). (Luuk van
            Baal, closes #12495)

Patch 9.0.1609
Problem:    Crash when an object indirectly references itself.
Solution:   Avoid clearing an object while it is already being cleared.
            (closes #12494)

Patch 9.0.1610
Problem:    Display is wrong when 'smoothscroll' is set and scrolling multiple
            lines.
Solution:   Redraw with UPD_NOT_VALID when "skipcol" is or was set.
            (closes #12490, closes #12468)

Patch 9.0.1611
Problem:    v:maxcol can be changed in a :for loop.
Solution:   Check for read-only loop variable. (closes #12470)

Patch 9.0.1612
Problem:    "skipcol" not reset when using multi-byte characters.
Solution:   Compare with w_virtcol instead of w_cursor.col. (closes #12457)

Patch 9.0.1613
Problem:    Some make output gets picked up by 'errorformat'.
Solution:   Ignore make output by default. (Gregory Anders, closes #12481)

Patch 9.0.1614
Problem:    strlen() called too often for :spellrepall.
Solution:   Store the result in a variable. (closes #12497)

Patch 9.0.1615
Problem:    URL shortcut files are not recognized.
Solution:   Add a pattern for URL shortcut files. (closes #12474)

Patch 9.0.1616
Problem:    Quickfix text field is truncated.
Solution:   Fix output of text field after pattern field in quickfix buffer.
            (Shane Harper, closes #12498)

Patch 9.0.1617
Problem:    charidx() and utf16idx() result is not consistent with byteidx().
Solution:   When the index is equal to the length of the text return the
            length of the text instead of -1. (Yegappan Lakshmanan,
            closes #12503)

Patch 9.0.1618
Problem:    Trace32 files are not recognized.
Solution:   Add patterns for the t32 filetype. (Christoph Sax, closes #12505)

Patch 9.0.1619
Problem:    The focus gained/lost escape sequences cause trouble for a
            terminal where MNV does not expect them.
Solution:   Always recognize the codes for focus gained/lost. (closes #12499)

Patch 9.0.1620
Problem:    Nix files are not recognized from the hashbang line.
Solution:   Add a hashbang check. (issue #12507)

Patch 9.0.1621
Problem:    FILETYPE_FILE is defined to the same value multiple times.  Same
            for a few similar macros.
Solution:   Define FILETYPE_FILE and others in feature.h only

Patch 9.0.1622
Problem:    Filetype name t32 is a bit obscure.
Solution:   Rename t32 to trace32. (Christoph Sax, closes #12512)

Patch 9.0.1623
Problem:    The program to filetype translation is not exported.
Solution:   Export Exe2filetype().

Patch 9.0.1624
Problem:    Crash when calling object constructor from legacy script. (Israel
            Chauca Fuentes)
Solution:   Pass a pointer for "ufunc". (closes #12502)

Patch 9.0.1625
Problem:    "super" is not considered a reserved name.
Solution:   Add "super" to the list of reserved names. (closes #12515)

Patch 9.0.1626
Problem:    Visual area not shown when using 'showbreak' and start of line is
            not visible. (Jaehwang Jung)
Solution:   Adjust "fromcol" for the space taken by 'showbreak'.
            (closes #12514)

Patch 9.0.1627
Problem:    No generic mechanism to test syntax plugins.
Solution:   Add a syntax plugin test mechanism, using screendumps.  Add a
            simple test for "c".

Patch 9.0.1628
Problem:    Syntax tests fail on FreeBSD.
Solution:   Pass the MNV executable path with MNVPROG. (Ken Takata,
            closes #12535)  Adjust the paths.

Patch 9.0.1629
Problem:    Having utf16idx() rounding up is inconvenient.
Solution:   Make utf16idx() round down. (Yegappan Lakshmanan, closes #12523)

Patch 9.0.1630
Problem:    "make clean" at the toplevel fails.
Solution:   Clean the indent and syntax directories in a sub-shell.  (Ben
            Jackson, closes #12536, closes #12526)

Patch 9.0.1631
Problem:    Passing a wrong variable type to an option gives multiple errors.
Solution:   Bail out early on failure. (closes #12504)

Patch 9.0.1632
Problem:    Not all cabal config files are recognized.
Solution:   Add a couple of patterns. (Marcin Szamotulski, closes #12463)

Patch 9.0.1633
Problem:    Duplicate code for converting float to string.
Solution:   Use tv_get_string(). (closes #12521)

Patch 9.0.1634
Problem:    Message is cleared when removing mode message (Gary Johnson).
Solution:   Do not clear the command line after displaying a message.

Patch 9.0.1635
Problem:    Error message is cleared when removing mode message.
Solution:   Also reset flags when the message is further down.

Patch 9.0.1636
Problem:    Expanding a pattern interferes with command line completion.
Solution:   Set the file index only when appropriate. (closes #12519)

Patch 9.0.1637
Problem:    Compiler warning for uninitialized variable.
Solution:   Move the variable to an inner block and initialize it. (Christian
            Brabandt, closes #12549)

Patch 9.0.1638
Problem:    crypt tests hang and cause memory errors
Solution:   Move variable to start of function.

Patch 9.0.1639
Problem:    Build failure without the crypt feature.
Solution:   Adjust #ifdefs

Patch 9.0.1640
Problem:    Compiler warning for unused variables without the crypt feature.
Solution:   Adjust #ifdefs

Patch 9.0.1641
Problem:    The log file does not give information about window sizes.
Solution:   Add a few log messages about obtaining the window size.

Patch 9.0.1642
Problem:    Build failure with tiny features.
Solution:   Add #ifdef's.

Patch 9.0.1643
Problem:    Filetype detection fails if file name ends in many '~'.
Solution:   Strip multiple '~' at the same time. (closes #12553)

Patch 9.0.1644
Problem:    Not all filetype file name matches are tested.
Solution:   Add more file names to test with. (Jonas Strittmatter,
            closes #12569)

Patch 9.0.1645
Problem:    zserio files are not recognized.
Solution:   Add a pattern for zserio files. (Dominique Pellé,
            closes #12544)

Patch 9.0.1646
Problem:    CI: codecov may take a very long time to run.
Solution:   Add a timeout. (Philip Heiduck, closes #12559)

Patch 9.0.1647
Problem:    Insufficient testing for syntax plugins.
Solution:   Add shell file examples. (Charles Campbell)  Create a messages
            file for easier debugging and reporting the test results.

Patch 9.0.1648
Problem:    Result of syntax tests is hard to see.
Solution:   List the failed tests.

Patch 9.0.1649
Problem:    Syntax test failure causes script to abort.
Solution:   Fix appending string to list.

Patch 9.0.1650
Problem:    MS-Windows: default 'viewdir' may include read-only directory.
Solution:   Use $HOME instead of $MNV for 'viewdir' default. (closes #12119)

Patch 9.0.1651
Problem:    Unclear why syntax test fails on Mac.
Solution:   Temporarily show the whole "messages" file.

Patch 9.0.1652
Problem:    Unclear why syntax test fails on Mac.
Solution:   Echo v:errors when it's not empty.

Patch 9.0.1653
Problem:    Amiga: default 'viewdir' may not work.
Solution:   Use "home:" instead of "$MNV". Add a test. (Christian Brabandt,
            closes #12576)

Patch 9.0.1654
Problem:    MS-Windows: test for default 'viewdir' fails.
Solution:   Escape the pattern.

Patch 9.0.1655
Problem:    Syntax test fails when MNV window is not tall enough.
Solution:   Make sure each terminal window is closed.

Patch 9.0.1656
Problem:    Syntax test fails when detected shell type differs.
Solution:   Avoid using "/bin/sh", it depends on the system.  Add a check that
            the shell type detection is correct.

Patch 9.0.1657
Problem:    One more syntax test depends on the system.
Solution:   Use "dash" instead of "sh".

Patch 9.0.1658
Problem:    Autoload files for "zig" are not installed.
Solution:   Add install and uninstall rules in the makefile. (Christian
            Brabandt, closes #12577, closes #12567)

Patch 9.0.1659
Problem:    Termdebug: default highlight cleared when changing colorscheme.
Solution:   Use a ColorScheme autocommand. (Christian Brabandt, closes #12566,
            closes #12555)

Patch 9.0.1660
Problem:    Error for using matchfuzzy() in MNV9 script returning a list of
            dicts.
Solution:   Make return type of matchfuzzy() list<any>. (Yegappan Lakshmanan,
            closes #12574)

Patch 9.0.1661
Problem:    BUCK files are not recognized.
Solution:   Recognize BUCK files as "bzl". (Son Luong Ngoc, closes #12564)

Patch 9.0.1662
Problem:    Crash when using a class member twice. (Christian J. Robinson)
Solution:   Make a copy of the value.

Patch 9.0.1663
Problem:    Termdebug on MS-Windows: some file names are not recognized.
Solution:   Do not always change \t and \n. (Christian Brabandt,
            closes #12565, closes #12560, closes #12550)

Patch 9.0.1664
Problem:    Divide by zero when scrolling with 'smoothscroll' set.
Solution:   Avoid using a negative width. (closes #12540, closes #12528)

Patch 9.0.1665
Problem:    Empty CmdlineEnter autocommand causes errors in Ex mode.
Solution:   Save and restore ex_pressedreturn. (Christian Brabandt,
            closes # 12581, closes #12578)

Patch 9.0.1666
Problem:    Compiler may warn for uninitialized variable.
Solution:   Initialize this_props_len. (Christian Brabandt, closes #12599)

Patch 9.0.1667
Problem:    Regression test doesn't fail when fix is reverted.
Solution:   Add "n" to 'cpoptions' instead of using :winsize. (closes #12587,
            issue #12528)

Patch 9.0.1668
Problem:    PEM files are not recognized.
Solution:   Add patterns to match PEM files. (closes #12582)

Patch 9.0.1669
Problem:    Crash syncing swapfile in new buffer when using sodium crypt.
            (James McCoy)
Solution:   Add checks for sodium encryption. (Christian Brabandt,
            closes #12591, closes #12585)

Patch 9.0.1670
Problem:    Resetting local option to global value is inconsistent.
Solution:   Handle "<" specifically for 'scrolloff' and 'sidescrolloff'.
            (closes #12594)

Patch 9.0.1671
Problem:    Termdebug: error with more than 99 breakpoints.
Solution:   Use a different sign for breakpoint 100 and over. (closes #12589,
            closes #12588)

Patch 9.0.1672
Problem:    Tabline highlight wrong after truncated double width label.
Solution:   Fill up half a double width character later. (closes #12614)

Patch 9.0.1673
Problem:    Cannot produce a status 418 or 503 message.
Solution:   Add err_teapot().

Patch 9.0.1674
Problem:    Help for builtin functions is not sorted properly.
Solution:   Put err_teapot() help in the right position.

Patch 9.0.1675
Problem:    Test may run into timeout when using valgrind.
Solution:   Use a longer timeout when using valgrind.

Patch 9.0.1676
Problem:    Warning for buffer in use when exiting early.
Solution:   Change file names to be able to see what buffer is in use when
            exiting.

Patch 9.0.1677
Problem:    Typo in syntax test input file.
Solution:   Fix the typo and the expected dump files. (THARAK HEGDE,
            closes #12635)

Patch 9.0.1678
Problem:    Blade files are not recognized.
Solution:   Add a pattern for Blade files. (closes #12650)

Patch 9.0.1679
Problem:    Tests may leave leftover files around
Solution:   Clean up tests and remove files

Patch 9.0.1680
Problem:    sodium test fails in Github CI
Solution:   Catch sodium_mlock() errors and do not error out

Patch 9.0.1681
Problem:    Build Failure with Perl 5.38
Solution:   Fix Build Failure

Patch 9.0.1682
Problem:    crypt: sodium encryption is not portable
Solution:   use little-endian byte order for sodium encrypted files

Patch 9.0.1683
Problem:    need runtime files updated
Solution:   merge various github PRs

Patch 9.0.1684
Problem:    libvterm slightly outdated
Solution:   Update libvterm from rev 818 to rev 839

Patch 9.0.1685
Problem:    Python 3.11 interface throws deprecation warnings
Solution:   ignore those warnings for gcc and clang

Patch 9.0.1686
Problem:    undotree() only works for the current buffer
Solution:   Add an optional "buffer number" parameter to undotree().  If
            omitted, use the current buffer for backwards compatibility.

Patch 9.0.1687
Problem:    mapset() not properly handling script ID
Solution:   replace_termcodes() may accept a script ID

Patch 9.0.1688
Problem:    cannot store custom data in quickfix list
Solution:   add `user_data` field for the quickfix list

Patch 9.0.1689
Problem:    python 3.12 produces warnings and fails test
Solution:   Make use of raw strings in python3 tests

Patch 9.0.1690
Problem:    popup_create() not aborting on errors
Solution:   check for errors in arguments given and abort if an error
            occurred

Patch 9.0.1691
Problem:    wrong viewport restored for incsearch and smoothscroll
Solution:   Save and restore skipcol as well

Patch 9.0.1692
Problem:    Android not handling AI_V4MAPPED ai_flag
Solution:   don't set AI_V4MAPPED flag when on Android, since
            Android's getaddrinfo returns EAI_BADFLAGS if ai_flags
            contains it

Patch 9.0.1693
Problem:    Ctrl-Q not handled like Ctrl-V in replace mode
Solution:   Handle Ctrl-Q like Ctrl-V

Patch 9.0.1694
Problem:    wrong mapping applied when replaying a char search
Solution:   Store a NOP after the ESC

Patch 9.0.1695
Problem:    Crash with overlong textprop above
Solution:   Consider only positive padding

Patch 9.0.1696
Problem:    sodium_mlock may still fail in CI
Solution:   Catch E1230 in testscript and skip test

Patch 9.0.1697
Problem:    incsearch test not sufficient (after 9.0.1691)
Solution:   add an additional test

Patch 9.0.1698
Problem:    Test_map_restore_sid fails in GUI
Solution:   Feed an unsimplified Ctrl-B

Patch 9.0.1699
Problem:    compile warning for xdiff/xutils on MS-Windows
Solution:   add explicit type cast from size_t to long

Patch 9.0.1700
Problem:    Cannot compile with dynamic perl < 5.38 (after 9.0.1681)
Solution:   Fix if_perl/dyn from perl 5.32 to 5.38

Patch 9.0.1701
Problem:    mnv9 crash when class member overridden
Solution:   Use method_count field instead

Patch 9.0.1702
Problem:    Undo test is flaky.
Solution:   Apply filter and change time to "1 second ago" in both dumps.

Patch 9.0.1703
Problem:    MNV9 Calling a method in an extended class fails
Solution:   use method index directly

Patch 9.0.1704
Problem:    Cannot use positional arguments for printf()
Solution:   Support positional arguments in string formatting

Patch 9.0.1705
Problem:    cursor position wrong when clicking on an unprintable char
Solution:   Don't update prev_ptr when wlv.n_extra is not zero.

Patch 9.0.1706
Problem:    typos in the xxd manpage
Solution:   Fix typos and formatting

Patch 9.0.1707
Problem:    Cannot wrap around in popup_filter_menu()
Solution:   Allow to wrap around by default

Patch 9.0.1708
Problem:    getcompletion() fails for user-defined commands
Solution:   set context for completion function

Patch 9.0.1709
Problem:    dynamic build with python 3.12 breaks
Solution:   if_python3.c: Fix building dynamic Python3 interpreter

Patch 9.0.1710
Problem:    sidescrolloff and scrolloff options work slightly
            different than other global-local options
Solution:   Make it behave consistent for all global-local options

Patch 9.0.1711
Problem:    dead code in charset.c
Solution:   remove it

Patch 9.0.1712
Problem:    missing null check in object_clear()
Solution:   Add null check of cl

Patch 9.0.1713
Problem:    Github CI fails to load snd-dummy kernel module
Solution:   Make installation of linux-modules-extra optional

Patch 9.0.1714
Problem:    getcompletion() "cmdline" fails after :autocmd
Solution:   Use set_cmd_context() instead of set_one_cmd_context().

Patch 9.0.1715
Problem:    duplicate test in message_test.c
Solution:   Remove duplicate test and make functions static

Patch 9.0.1716
Problem:    Windows build with python 3.12 and clang fails
Solution:   Remove the PyBool_Type function pointer for python 3.12

Patch 9.0.1717
Problem:    virtcol2col returns last byte of a multi-byte char
Solution:   Make it return the first byte for a multi-byte char

Patch 9.0.1718
Problem:    dict-completion does not respect region
Solution:   respect selected region in dict completion

Patch 9.0.1719
Problem:    if_lua: crash for Lua functions invoked via MNV callbacks
Solution:   Use Lua registry rather than upvalues for udata cache

Patch 9.0.1720
Problem:    MNV9 class using wrong index for overridden method
Solution:   Use correct index for overridden method

Patch 9.0.1721
Problem:    Build failure on Windows with dynamic lua (after 9.0.1719)
Solution:   move definition further down in if_lua

Patch 9.0.1722
Problem:    wrong error messages when passing wrong types to count()
Solution:   fix it

Patch 9.0.1723
Problem:    Fix regression in {func} argument of reduce()
Solution:   pass function name as string again

Patch 9.0.1724
Problem:    mnv9class constructor argument type checking bug
Solution:   fix it

Patch 9.0.1725
Problem:    Wrong cursor position when clicking after concealed text
            with 'virtualedit'.
Solution:   Store virtual columns in ScreenCols[] instead of text
            columns, and always use coladvance() when clicking.

Patch 9.0.1726
Problem:    incorrect heights in win_size_restore()
Solution:   avoid restoring incorrect heights in win_size_restore()

Patch 9.0.1727
Problem:    minor problems with the teapot()
Solution:   remove the null check, update documentation

Patch 9.0.1728
Problem:    missing winid argument for virtcol()
Solution:   Add a {winid} argument to virtcol()

Patch 9.0.1729
Problem:    screenpos() wrong result with w_skipcol and cpoptions+=n
Solution:   Use adjust_plines_for_skipcol() instead of subtracting
            w_skipcol.

Patch 9.0.1730
Problem:    passing multiple patterns to runtime not working
Solution:   prepend prefix to each argument separately

Patch 9.0.1731
Problem:    blockwise Visual highlight not working with virtual text
Solution:   Reset the correct variable at the end of virtual selection and
            Check for double-width char inside virtual text.

Patch 9.0.1732
Problem:    mnvexpr: shadowing variable
Solution:   Rename local variable

Patch 9.0.1733
Problem:    CI: cannot cache linux-modules-extra
Solution:   Enable caching and reduce failed downloads

Patch 9.0.1734
Problem:    runtime completion fails for multiple args
Solution:   Make it work

Patch 9.0.1735
Problem:    Rename completion specific findex var
Solution:   Move "findex" static variable to xp_selected in expand_T

Patch 9.0.1736
Problem:    Github Actions times out after 20 minutes
Solution:   Increase the timeout to 25 minutes

Patch 9.0.1737
Problem:    Calling a base class method through an extended class fails
Solution:   Create lookup table for member index in the interface to
            to the member class implementing the interface

Patch 9.0.1738
Problem:    Duplicate code to reverse a string
Solution:   Move reverse_text() to strings.c and remove string_reverse().

Patch 9.0.1739
Problem:    leftover files in libvterm
Solution:   Fix cleaning of libvterm directory

Patch 9.0.1740
Problem:    segfault when reading invalid mnvinfo file
Solution:   Check the expected type in the mnvinfo file

Patch 9.0.1741
Problem:    No type checking in interfaces
Solution:   Implement member type check in mnv9 interfaces

Patch 9.0.1742
Problem:    Wrong curswant when clicking and the second cell of a
            double-width char.
Solution:   Don't copy virtcol of the first char to the second one.

Patch 9.0.1743
Problem:    Parameter of gui_gtk:gui_mch_browse incorrectly marked as
            UNUSED.
Solution:   Remove UNUSED flag.

Patch 9.0.1744
Problem:    Dead code in open_cmdwin()
Solution:   Remove it

Patch 9.0.1745
Problem:    Missing test coverage for blockwise Visual highlight with
            virtual that starts with a double-width char.
Solution:   Add a new virtual text to the test. Some other small fixes.

Patch 9.0.1746
Problem:    mnv9class compile error for char/char_u conversion
Solution:   Correctly cast to (char *)

Patch 9.0.1747
Problem:    screenpos() may cause unnecessary redraw.
Solution:   Don't unnecessarily reset VALID_WROW flag.

Patch 9.0.1748
Problem:    CI: cannot label issues automatically
Solution:   Create CI labeler

Patch 9.0.1749
Problem:    Text property highlight doesn't override a sign highlight over
            a tab character
Solution:   Let text_property override tab highlighting

Patch 9.0.1750
Problem:    CI: fails because of changed error messages
            (after: 9.0.1741)
Solution:   Adjust expected error messages

Patch 9.0.1751
Problem:    CI: labeler configuration not found
            (after 9.0.1748)
Solution:   set configuration path

Patch 9.0.1752
Problem:    CI: Coveralls is no longer used
Solution:   Remove .coveralls.yml

Patch 9.0.1753
Problem:    can't move to last non-blank char
Solution:   Make g<end> behave like that

Patch 9.0.1754
Problem:    still ci breakage (after 9.0.1741)
Solution:   fix remaining issue

Patch 9.0.1755
Problem:    CI still fails with sodium mlock error
Solution:   catch mlock failure

Patch 9.0.1756
Problem:    failing cursorline sign test
Solution:   only reset char attr, if cursorline
            option is not set

Patch 9.0.1757
Problem:    ex_class() function is too long
Solution:   refactor it

Patch 9.0.1758
Problem:    mnv9 no class identifiers in stack dumps
Solution:   Prefix class members in stack traces with the class name
            followed by a dot.

Patch 9.0.1759
Problem:    Visual highlight not working with cursor at end of screen line
            and 'showbreak'.
Solution:   Only update "vcol_prev" when drawing buffer text.

Patch 9.0.1760
Problem:    mnv9 class problem with new() constructor
Solution:   Don't allow a return type for the new() class constructor.

Patch 9.0.1761
Problem:    g<kEnd> behaves different from g<end>
Solution:   Make g<kEnd> behave like g<End>

Patch 9.0.1762
Problem:    Not able to get the virtual text property
Solution:   Make prop_list() return virtual text and alignment

Patch 9.0.1763
Problem:    crash when passing invalid buffer to undotree()
Solution:   Use get_buf_arg() instead of tv_get_buf_from_arg().

Patch 9.0.1764
Problem:    CI: label should not be set on all yml files
Solution:   only set it for specific yml files in .github

Patch 9.0.1765
Problem:    Error when cross-compiling MNV
Solution:   use AC_CHECK_SIZEOF to find sizeof(wchar_t)

Patch 9.0.1766
Problem:    Runtime: Missing QML support
Solution:   Add QML support to MNV

Patch 9.0.1767
Problem:    '.-' no allowed in highlight group names
Solution:   Allow dot and hyphen characters in highlight group names

Patch 9.0.1768
Problem:    Runtime: no support for bicep files
Solution:   Add filetype support for bicepparam

Patch 9.0.1769
Problem:    executable() ignoring symlinks on Windows
Solution:   resolve reparse points

Patch 9.0.1770
Problem:    lines disappear when modifying chars before virt text
Solution:   take virtual text property length into account

Patch 9.0.1771
Problem:    regex: combining chars in collections not handled
Solution:   Check for following combining characters for NFA and BT engine

Patch 9.0.1772
Problem:    Cursor is adjusted in window that did not change in size by
            'splitkeep'.
Solution:   Only check that cursor position is valid in a window that
            has changed in size.

Patch 9.0.1773
Problem:    cannot distinguish Forth and Fortran *.f files
Solution:   Add Filetype detection Code

Patch 9.0.1774
Problem:    no support for custom cmdline completion
Solution:   Add new mnvscript functions

Patch 9.0.1775
Problem:    Wrong comparison in mnv9type.c
Solution:   Change condition to false

Patch 9.0.1776
Problem:    No support for stable Python 3 ABI
Solution:   Support Python 3 stable ABI

Patch 9.0.1777
Problem:    patch 9.0.1771 causes problems
Solution:   revert it

Patch 9.0.1778
Problem:    if_py_both: code-style issue
Solution:   add space

Patch 9.0.1779
Problem:    Need more state() tests
Solution:   Add a few more tests for operator pending mode and register
            yank command

Patch 9.0.1780
Problem:    MNV9 type not defined during object creation
Solution:   Define type during object creation and not during class
            definition, parse multi-line member initializers, fix lock
            initialization

Patch 9.0.1781
Problem:    Problems when setting bin/paste option
Solution:   When setting binary/paste, remember that this also affects
            depending options, so that :verbose set returns the right
            location.

Patch 9.0.1782
Problem:    prop_list() does not return text_padding_left
Solution:   Store and return the text_padding_left value for text
            properties

Patch 9.0.1783
Problem:    Wrong display with wrapping virtual text or unprintable chars,
            'showbreak' and 'smoothscroll'.
Solution:   Don't skip cells taken by 'showbreak' in screen lines before
            "w_skipcol". Combined "n_skip" and "skip_cells".

Patch 9.0.1784
Problem:    redundant else in pum_set_selected()
Solution:   Remove it

Patch 9.0.1785
Problem:    wrong cursor position with 'showbreak' and lcs-eol
Solution:   Add size of 'showbreak' before when 'listchars' "eol" is used.
            Also fix wrong cursor position with wrapping virtual text on
            empty line and 'showbreak'.

Patch 9.0.1786
Problem:    MNV9: need instanceof() function
Solution:   Implement instanceof() builtin

Patch 9.0.1787
Problem:    Cannot build with latest luajit
Solution:   adjust sed regexp and don't expect '-' in version output

Patch 9.0.1788
Problem:    C4090 warnings in strings.c
Solution:   Add type casts

Patch 9.0.1789
Problem:    too early declaration of variable in pum_set_selected()
Solution:   Move declaration to where it is actually used

Patch 9.0.1790
Problem:    The Content-Type header is an optional header that some LSP
            servers struggle with and may crash when encountering it.
Solution:   Drop the Content-Type header from all messages, because we use
            the default value anyway.

Patch 9.0.1791
Problem:    No tests for the Termdebug plugin
Solution:   Add some simple tests for the Termdebug plugin

Patch 9.0.1792
Problem:    Normal mode "gM", "gj", "gk" commands behave incorrectly with
          virtual text.
Solution:   Use linetabsize() instead of linetabsize_str().

Patch 9.0.1793
Problem:    obsolete macros in configure script
Solution:   Remove those and start moving to autoconf 2.71

Patch 9.0.1794
Problem:    autoconf: not correctly detecting include dirs
Solution:   make use of python3 to generate includedirs

Patch 9.0.1795
Problem:    Indentation issues
Solution:   Fix code indentation issues.

Patch 9.0.1796
Problem:    MNV9 problems with null_objects
Solution:   MNV9 improve null_object usage

Patch 9.0.1797
Problem:    MNVball/Visual Basic filetype detection conflict
Solution:   runtime(vb): Improve MNVball and Visual Basic detection logic

Patch 9.0.1798
Problem:    The 'syntax' option has no completion.
Solution:   Add syntax option completion.

Patch 9.0.1799
Problem:    Russian menu translation can be improved
Solution:   update the Russian menu files

Patch 9.0.1800
Problem:    Cursor position still wrong with 'showbreak' and virtual text
            after last character or 'listchars' "eol".
Solution:   Remove unnecessary w_wcol adjustment in curs_columns(). Also
            fix first char of virtual text not shown at the start of a screen
            line.

Patch 9.0.1801
Problem:    MNV9 instanceof() fails in a def func
Solution:   allow Objects in compile time check

Patch 9.0.1802
Problem:    Multiline regex with Visual selection fails when Visual
            selection contains virtual text after last char.
Solution:   Only include virtual text after last char when getting full
            line length.

Patch 9.0.1803
Problem:    Cannot detect norg markup files
Solution:   Add norg markup language detection

Patch 9.0.1804
Problem:    MNV9: no support for private object methods
Solution:   Add support for private object/class methods

Patch 9.0.1805
Problem:    MNV9: problem compiling object method as function call arg
Solution:   After a object/class method call, remove the object/class from
            the stack.

Patch 9.0.1806
Problem:    MNV9: bogus error on export
Solution:   Don't error out when the export command is not executed

Patch 9.0.1807
Problem:    runtime: crystal scripts not recognised
Solution:   Filetype detect Crystal scripts by shebang line

Patch 9.0.1808
Problem:    Termdebug: Typo in Termdebug test
Solution:   fix the typos

Patch 9.0.1809
Problem:    Termdebug test flaky
Solution:   wait slightly longer

Patch 9.0.1810
Problem:    camel-case spelling has issues with digits
Solution:   Improve the camCase spell checking by taking digits
            and caps into account

Patch 9.0.1811
Problem:    still some issues with term_debug test
Solution:   Use WaitForAssert()

Patch 9.0.1812
Problem:    CI still fails with sodium_mlock error()
Solution:   Catch and ignore E1230 error in test_crypt

Patch 9.0.1813
Problem:    'linebreak' is incorrectly drawn after 'breakindent'.
Solution:   Don't include 'breakindent' size when already after it.

Patch 9.0.1814
Problem:    MNV9 no error on duplicate object member var
Solution:   detect duplicate members and error out

Patch 9.0.1815
Problem:    pango_coverage_unref() deprecated in pango > 1.51
Solution:   use g_object_unref() instead

Patch 9.0.1816
Problem:    configure: sed uses non-portable regex
Solution:   use '*' modifier instead of '\?' in regex
            for luajit version detection

Patch 9.0.1817
Problem:    configure: using obsolete AC_HEADER_STDC
Solution:   Remove it and re-create configure

Patch 9.0.1818
Problem:    dynamically linking perl is broken
Solution:   Fix all issues

Patch 9.0.1819
Problem:    Github CI too complex
Solution:   CI: Tidy up matrix

Patch 9.0.1820
Problem:    Rexx files may not be recognised
Solution:   Add shebang detection and improve disambiguation of *.cls
            files

Patch 9.0.1821
Problem:    MNV9 constructors are always static
Solution:   make the "static" keyword an error

Patch 9.0.1822
Problem:    MNV9: no check for duplicate members in extended classes
Solution:   Check for duplicate members in extended classes.
            Fix memory leak.

Patch 9.0.1823
Problem:    Autoconf 2.69 too old
Solution:   Migrate to Autoconf 2.71

Patch 9.0.1824
Problem:    MNV9: private members may be modifiable
Solution:   prevent modification for def function

Patch 9.0.1825
Problem:    Wrong cursor position with virtual text before a whitespace
            character and 'linebreak'.
Solution:   Always set "col_adj" to "size - 1" and apply 'linebreak' after
            adding the size of 'breakindent' and 'showbreak'.

Patch 9.0.1826
Problem:    keytrans() doesn't translate recorded key typed in a GUI
Solution:   Handle CSI like K_SPECIAL, like in mb_unescape()

Patch 9.0.1827
Problem:    xxd: no color support
Solution:   Add color support using xxd -R

Patch 9.0.1828
Problem:    Wrong cursor position with virtual text before double-width
            char at window edge.
Solution:   Check for double-width char before adding virtual text size.

Patch 9.0.1829
Problem:    MNV9 missing access-checks for private vars
Solution:   Use the proper check for private/readonly variable.  Access
            level for a member cannot be changed in a class implementing an
            interface.  Update the code indentation

Patch 9.0.1830
Problem:    MNV9: crash when accessing a null object
Solution:   Check accessing a NULL object in def function

Patch 9.0.1831
Problem:    MNV9: failing null test
Solution:   Use required public keyword

Patch 9.0.1832
Problem:    xxd: reporting wrong version (after 9.0.1827)
Solution:   Update version string

Patch 9.0.1833
Problem:    runtime files may execute code in current dir
Solution:   only execute, if not run from current directory

Patch 9.0.1834
Problem:    Some problems with xxd coloring
Solution:   Fix the following problems:

Patch 9.0.1835
Problem:    Perl interface has problems with load PL_current_context
Solution:   Fix Perl interface to load PL_current_context from library

Patch 9.0.1836
Problem:    Wrong display with "above" virtual text and 'linebreak' or
           'breakindent' and 'showbreak'.
Solution:   Exclude size of "above" virtual text when calculating them.

Patch 9.0.1837
Problem:    MNV9: class_member_type() can be optimized
Solution:   class_member_type() provides more information;
            safe an additional alloc()/free()

Patch 9.0.1838
Problem:    MNV9: Cannot modify class member vars from def function
Solution:   Add support for modifying class member variables from a def
            function

Patch 9.0.1839
Problem:    No Makefile rule to build cscope database
Solution:   Add rule

Patch 9.0.1840
Problem:    use-after-free in do_ecmd
Solution:   Verify oldwin pointer after reset_VIsual()

Patch 9.0.1841
Problem:    style: trailing whitespace in ex_cmds.c
Solution:   remove it

Patch 9.0.1842
Problem:    Need more accurate profiling
Solution:   Improve profiling results

Patch 9.0.1843
Problem:    xxd color test flaky
Solution:   Filter unneeded lines

Patch 9.0.1844
Problem:    doc helptags may not be up to date
Solution:   Add CI jobs to verify helptags are updated

Patch 9.0.1845
Problem:    xxd: Test_xxd_color start failing
Solution:   Revert changes to dump file

Patch 9.0.1846
Problem:    crash in fullcommand
Solution:   Check for typeval correctly

Patch 9.0.1847
Problem:    potential oob write in do_addsub()
Solution:   don't overflow buf2, check size in for loop()

Patch 9.0.1848
Problem:    buffer-overflow in mnv_regsub_both()
Solution:   Check remaining space

Patch 9.0.1849
Problem:    CI error on different signedness
Solution:   cast unsigned to int

Patch 9.0.1850
Problem:    MNV9: wrong line number where options set
Solution:   Set source line number earlier

Patch 9.0.1851
Problem:    Virtual text at a column causes 'breakindent' and 'showbreak'
            to be missing (after patch 9.0.1124).
Solution:   Add check for "tp_col" in another place where TP_FLAG_WRAP is
            checked.

Patch 9.0.1852
Problem:    i_CTRL-O does not reset Select Mode
Solution:   Reset select mode on CTRL-O in insert mode

Patch 9.0.1853
Problem:    CI error on different signedness in regexp.c
            (after patch 9.0.1848)
Solution:   Cast strlen() call to int

Patch 9.0.1854
Problem:    test_crash1() fails on CI
Solution:   don't run Screendump test, verify that it doesn't crash
            by running it through a shell command line, testing
            the exit value and concatenating success cmd using '&&'

Patch 9.0.1855
Problem:    mode() doesn't indicate command line for terminal
Solution:   make it return 'ct' for command-line from Terminal mode

Patch 9.0.1856
Problem:    issues with formatting positional arguments
Solution:   fix them, add tests and documentation

Patch 9.0.1857
Problem:    heap-use-after-free in is_qf_win()
Solution:   Check buffer is valid before accessing it

Patch 9.0.1858
Problem:    heap use after free in ins_compl_get_exp()
Solution:   validate buffer before accessing it

Patch 9.0.1859
Problem:    heap-use-after-free in bt_normal()
Solution:   check that buffer is still valid

Patch 9.0.1860
Problem:    CI: test_crash1() is flaky
Solution:   Wait a bit longer

Patch 9.0.1861
Problem:    xxd: issue when -R is specified several times
Solution:   Fix command line parsing

Patch 9.0.1862
Problem:    MNV9 Garbage Collection issues
Solution:   Class members are garbage collected early leading to
            use-after-free problems.  Handle the garbage
            collection of classes properly.

Patch 9.0.1863
Problem:    wrong format specifiers in e_aptypes_is_null_str_nr
Solution:   Fix the wrong format specifier

Patch 9.0.1864
Problem:    crash with bt_quickfix1_poc when cleaning up
            and EXITFREE is defined
Solution:   Test if buffer is valid in a window, else close
            window directly, don't try to access buffer properties

Patch 9.0.1865
Problem:    MNV9: garbage collection may cause crash
Solution:   validate that class members typeval is not null

Patch 9.0.1866
Problem:    Undo is synced after character find.
Solution:   Set no_u_sync when calling gotchars_nop().

Patch 9.0.1867
Problem:    MNV9: access to interface statics possible
Solution:   Prevent direct access to interface statics

Patch 9.0.1868
Problem:    test_crash still fails for circle ci
Solution:   give even more time to complete

Patch 9.0.1869
Problem:    Coverity warns about uninitialized var
Solution:   initialize it

Patch 9.0.1870
Problem:    MNV9: disassemble does not show static
Solution:   Show static flag

Patch 9.0.1871
Problem:    Github CI does not run i386 job
Solution:   Add a i386 architecture

Patch 9.0.1872
Problem:    CI: test_crash() fails on CI
Solution:   Skip test on BSD

Patch 9.0.1873
Problem:    heap-buffer-overflow in mnv_regsub_both
Solution:   Disallow exchanging windows when textlock is active

Patch 9.0.1874
Problem:    CI may fail in test_recover_empty_swap
Solution:   Set directory option

Patch 9.0.1875
Problem:    MNV9: improve test for disassemble + static
Solution:   Add a MNV9 script disassemble test for an interface with
            static members

Patch 9.0.1876
Problem:    MNV9: parsing commands with newlines wrong
Solution:   Accept a '\n' for parsing lists and command arguments

Patch 9.0.1877
Problem:    missing test for patch 9.0.1873
Solution:   add a test trying to exchange windows

Patch 9.0.1878
Problem:    tests running sh have problems
Solution:   Check that dash is installed

Patch 9.0.1879
Problem:    MNV9: incorrect duplicate class member detection
Solution:   Incorrect duplicate class member detection when variable names
            have the same prefix.  Not able to access class member variables
            using an object. Fix coding style issues

Patch 9.0.1880
Problem:    MNV9: Need more tests for inheritance
Solution:   Add access tests and fixes.

Patch 9.0.1881
Problem:    Test_crash fails on Mac
Solution:   Skip test on Mac

Patch 9.0.1882
Problem:    Trailing white space in tests
Solution:   Delete it

Patch 9.0.1883
Problem:    MNV9: Calling an interface method using a child object fails
Solution:   Search methods of parent class

Patch 9.0.1884
Problem:    Wrong order of arguments for error messages
Solution:   Reverse order or arguments for e_aptypes_is_null_nr_str

Patch 9.0.1885
Problem:    MNV9: no support for abstract methods
Solution:   Add support for defining abstract methods in an abstract class

Patch 9.0.1886
Problem:    Various Typos
Solution:   Fix Typos

Patch 9.0.1887
Problem:    MNV9: class members are accessible via object
Solution:   Disable class member variable access using an object

Patch 9.0.1888
Problem:    MNV9: Problem trying to invoke class method
Solution:   Lookup the class method insider other classes

Patch 9.0.1889
Problem:    MNV9 static tests fail
Solution:   Fix tests, make CI happy ;)

Patch 9.0.1890
Problem:    MNV9: lookup code for class/object repeated
Solution:   Refactor and make use of lookup functions

Patch 9.0.1891
Problem:    No runtime support for Mojo
Solution:   Add basic filetype and syntax plugins

Patch 9.0.1892
Problem:    CI: no FreeBSD 14 support
Solution:   Drop support for FreeBSD 12, add FreeBSD 14

Patch 9.0.1893
Problem:    CI: strptime test fails on BSD14
Solution:   Skip the test

Patch 9.0.1894
Problem:    CI: trailing white space in tests
Solution:   clean up the trailing white space

Patch 9.0.1895
Problem:    MNV9: finding method/member is inefficient
Solution:   Use lookups

Patch 9.0.1896
Problem:    "below" virtual text doesn't work with 'rightleft'.
Solution:   Use column from right border with 'rightleft'.

Patch 9.0.1897
Problem:    MNV9: confusing error with .= in compiled functions
Solution:   Check in error condition, if .= was attempted and in that case
            give a different error message.

Patch 9.0.1898
Problem:    MNV9: restrict access to static vars and methods
Solution:   Class members are accessible only from the class where they are
            defined.

Patch 9.0.1899
Problem:    potential buffer overflow in PBYTE macro
Solution:   Check returned memline length

Patch 9.0.1900
Problem:    Configure script uses non-portable == comparison
Solution:   Use the standard and portable "=" instead

Patch 9.0.1901
Problem:    win32: not correctly freeing environment
Solution:   After we call GetEnvironmentStringsW, we should call
            FreeEnvironmentStringsW

Patch 9.0.1902
Problem:    MNV9: Coverity complains about dead code
Solution:   Copy only object methods from the super class
            to a subclass when extending a class.  Fix
            Coverity warning.

Patch 9.0.1903
Problem:    Github Actions fails because snd-dummy modules missing
            in current runner images
Solution:   ignore modprobe error

Patch 9.0.1904
Problem:    Cirrus-CI fails because we have used all credits
Solution:   Remove FreeBSD 13.1 and MacOS M1

Patch 9.0.1905
Problem:    FEAT_FLOAT no longer defined
Solution:   Remove last existing FEAT_FLOAT ifdefs in
            message_test

Patch 9.0.1906
Problem:    MNV9: Interfaces should not support class methods and
            variables
Solution:   Make sure interface follow the interface specification

Patch 9.0.1907
Problem:    No support for liquidsoap filetypes
Solution:   Add liquidsoap filetype detection code

Patch 9.0.1908
Problem:    undefined behaviour upper/lower function ptrs
Solution:   Fix UBSAN error in regexp and simplify upper/lowercase
            modifier code

Patch 9.0.1909
Problem:    MNV9: problem calling class method from other class
Solution:   Fix this problem, fix readonly object access, update error
            messages.

Patch 9.0.1910
Problem:    Mac OS X: missing sound support on older versions
Solution:   Check Macro MAC_OS_X_VERSION_MIN_REQUIRED

Patch 9.0.1911
Problem:    MNV9: segfault with null object and instanceof()
Solution:   return early

Patch 9.0.1912
Problem:    Cirrus-CI running out of credits
Solution:   disable Cirrus-CI for now

Patch 9.0.1913
Problem:    if_python: undefined behaviour for function pointers
Solution:   Fix if_python undefined behavior for function pointer casts

Patch 9.0.1914
Problem:    MNV9: few issues when accessing object members
Solution:   When calling an object method, check for null object.
            Accessing a Dict object member doesn't work.

Patch 9.0.1915
Problem:    r_CTRL-C works differently in visual mode
Solution:   Make r_CTRL-C behave consistent in visual mode
            in terminal and Windows GUI

Patch 9.0.1916
Problem:    Crash when allocating large terminal screen
Solution:   Don't allow values > 1000 for terminal
            screen columns and rows

Patch 9.0.1917
Problem:    undefined behaviour with python function pointer
Solution:   correctly cast function pointers from void

Patch 9.0.1918
Problem:    No filetype detection for Authzed filetypes
Solution:   Detect the *.zed file extension as authzed filetype

Patch 9.0.1919
Problem:    Wrong curswant when clicking on empty line or with vsplits.
Solution:   Don't check for ScreenCols[] before the start of the window
            and handle empty line properly.

Patch 9.0.1920
Problem:    MNV9: cannot write public var in nested object
Solution:   Write variable in nested read-only object reference.
            Also test write fails.

Patch 9.0.1921
Problem:    not possible to use the jumplist like a stack
Solution:   Add the 'jumpoptions' setting to make the jumplist
            a stack.

Patch 9.0.1922
Problem:    LSP server request message is misinterpreted as a response message
Solution:   Check that the message does not have the "message" field

Patch 9.0.1923
Problem:    curswant wrong on click with 've' and 'wrap' set
Solution:   Add w_leftcol to mouse click column.

Patch 9.0.1924
Problem:    LSP server message still wrongly handled (after 9.0.1922)
Solution:   Handle 'method' messages properly, don't discard them, add
            tests.

Patch 9.0.1925
Problem:    if_python: still undefined behaviour with function pointer
Solution:   fix remaining problems

Patch 9.0.1926
Problem:    MNV9: not enough info in error message
Solution:   Add class name, change member to variable, quote names

Patch 9.0.1927
Problem:    patch 1916 (fixed terminal size) not optimal
Solution:   Add defines to make it easier changeable later

Patch 9.0.1928
Problem:    MNV9: constructor type checking bug
Solution:   Fix class constructor regression

Patch 9.0.1929
Problem:    runtime tests fail with tiny mnv
Solution:   check for tiny mnv, run runtime tests in CI
            even for tiny version

Patch 9.0.1930
Problem:    compiler warnings with clang-17
Solution:   Fix function prototypes and function pointer

Patch 9.0.1931
Problem:    make test_compilers fails on ubuntu
Solution:   set LC_ALL=C

Patch 9.0.1932
Problem:    MNV9: error when using null object constructor
Solution:   Check for a null object only when calling an object method

Patch 9.0.1933
Problem:    Can change the type of a v: variable using if_lua.
Solution:   Add additional handling of v: variables like :let.

Patch 9.0.1934
Problem:    bwipe fails after switching window from aucmd_win.
Solution:   Decrement b_nwindows after switching back to aucmd_win.

Patch 9.0.1935
Problem:    MNV9: not consistent error messages
Solution:   Make error messages more consistent. Use "variable" for
            (object/class) member

Patch 9.0.1936
Problem:    test: using wrong expected message in test_crypt
Solution:   make use of single quotes

Patch 9.0.1937
Problem:    missing test for mouse click + 'virtedit'
Solution:   Add test for clicking after eol with 'virtualedit' and wrapped
            line

Patch 9.0.1938
Problem:    multispace wrong when scrolling horizontally
Solution:   Update position in "multispace" or "leadmultispace" also in
            skipped chars. Reorder conditions to be more consistent.

Patch 9.0.1939
Problem:    still a problem when processing LSP RPC requests
Solution:   When processing async LSP RPC requests, compare sequence
            numbers only in response messages

Patch 9.0.1940
Problem:    wrong upstream version in libvterm README
Solution:   correct version to 839

Patch 9.0.1941
Problem:    Memory leak detected (after 9.0.1928)
Solution:   Free arg_objm in get_lambda_tv()

Patch 9.0.1942
Problem:    MNV9: execution stack invalidated with null object
Solution:   Check for a null object before adjusting the execution stack

Patch 9.0.1943
Problem:    CI not run with clang-17
Solution:   Update CI to use clang-17

Patch 9.0.1944
Problem:    MNV9: function instruction pointer invalidated
Solution:   Use the funcref index instead of the instruction pointer

Patch 9.0.1945
Problem:    MNV9: missing support for ro-vars in interface
Solution:   Support only read-only object variables in an interface,
            add additional checks when parsing class definitions.

Patch 9.0.1946
Problem:    filename expansion using ** in bash may fail
Solution:   Try to enable the globstar setting

Patch 9.0.1947
Problem:    Bash Expansion test fails on Windows/MacOS
Solution:   Disable Test_glob_extended_bash for now

Patch 9.0.1948
Problem:    MNV9: object variable "this." should only be used in
            constructor
Solution:   Disallow to this in normal object methods (other than
            constructors)

Patch 9.0.1949
Problem:    MNV9: allows reserved keywords as members
Solution:   Disallow reserved keywords, disallow
            duplicate object and class variables

Patch 9.0.1950
Problem:    MNV9: error codes spread out
Solution:   group them together and reserve 100
            more for future use

Patch 9.0.1951
Problem:    MNV9: hard to debug mnv9_class errors from CI
Solution:   Include the line number in assert_xxx() calls.  Include the
            entire error message in the tests.  Fix the indentation in the
            test file.  Add tags for new error codes.

Patch 9.0.1952
Problem:    MNV9: unused static field
Solution:   remove it and simplify code

Patch 9.0.1953
Problem:    Misplaced comment in errors.h
Solution:   Move it up

Patch 9.0.1954
Problem:    CI: change netrw label in labeller bot
Solution:   Rename it to 'plugin-netrw'

Patch 9.0.1955
Problem:    MNV9: lockvar issues with objects/classes
Solution:   fix `get_lhs()` object/class access and avoid `SEGV`,
            make error messages more accurate.

Patch 9.0.1956
Problem:    Custom cmdline completion skips original cmdline when pressing
            Ctrl-P at first match if completion function invokes glob().
Solution:   Move orig_save into struct expand_T.

Patch 9.0.1957
Problem:    termcap options should change on keyprotocol setting
Solution:   Apply termcap entries when 'keyprotocol' changes

Patch 9.0.1958
Problem:    cannot complete option values
Solution:   Add completion functions for several options

Patch 9.0.1959
Problem:    MNV9: methods parameters and types are covariant
Solution:   Support contra-variant type check for object method arguments
            (similar to Dart).

Patch 9.0.1960
Problem:    Make CI checks more strict
Solution:   Add -Wstrict-prototypes -Wmissing-prototypes to CI,
            fix uncovered problems

Patch 9.0.1961
Problem:    Cmdline completion for 'listchars' fields doesn't include
            "multispace" and "leadmultispace" (after 9.0.1958).
Solution:   Include "multispace" and "leadmultispace" in lcstab.

Patch 9.0.1962
Problem:    No support for writing extended attributes
Solution:   Add extended attribute support for linux

Patch 9.0.1963
Problem:    Configure script may not detect xattr correctly
Solution:   include sys/xattr instead of attr/xattr,
            make Test_write_with_xattr_support() test
            xattr feature correctly

Patch 9.0.1964
Problem:    xattr support fails to build on MacOS X
Solution:   Disable xattr support for MacOS X

Patch 9.0.1965
Problem:    wrong auto/configure script
Solution:   regenerate with autoconf 2.71

Patch 9.0.1966
Problem:    configure prints stray 6 when checking libruby
Solution:   redirect stdout to dev/null

Patch 9.0.1967
Problem:    xattr errors not translated
Solution:   mark for translation, consistently capitalize
            first letter.

Patch 9.0.1968
Problem:    cmdline completion should consider key option
Solution:   Disable cmdline completion for key option, slightly
            refactor how P_NO_CMD_EXPAND is handled

Patch 9.0.1969
Problem:    buffer-overflow in trunc_string()
Solution:   Add NULL at end of buffer

Patch 9.0.1970
Problem:    win32: high-dpi support can be improved
Solution:   implement WM_GETDPISCALEDSIZE

Patch 9.0.1971
Problem:    macOS: FEAT_SOUND guard too restrictive
Solution:   check for older macOS support properly

Patch 9.0.1972
Problem:    win32: missing '**' expansion test (after v9.0.1947)
Solution:   Add test for MS-Windows

Patch 9.0.1973
Problem:    Clean up cmdline option completion code
Solution:   Fix various minor problems

Patch 9.0.1974
Problem:    mnv9: using contra-variant type-checks (after v9.0.1959)
Solution:   Use invariant type checking instead

Patch 9.0.1975
Problem:    xattr: permission-denied errors on write
Solution:   ignore those errors

Patch 9.0.1976
Problem:    style: space before tab in optionstr.c
Solution:   remove the space

Patch 9.0.1977
Problem:    MNV9: object members can change type
Solution:   Check type during assignment to object/class var

Patch 9.0.1978
Problem:    No filetype detection for just files
Solution:   Detect just files (*.just, justfile, etc)

Patch 9.0.1979
Problem:    Cirrus CI disabled
Solution:   re-enable Cirrus CI

Patch 9.0.1980
Problem:    win32: issues with stable python ABI
Solution:   if_python3,win32: Fix Python3 stable ABI

Patch 9.0.1981
Problem:    Cannot scroll up in diff mode with many filler lines and zero
            'scrolloff'.
Solution:   Invalidate w_cline_row before calling comp_botline().

Patch 9.0.1982
Problem:    mnv9: clean up from v9.0.1955
Solution:   Fix a few remaining issues, improve error message

Patch 9.0.1983
Problem:    Scrolling non-current window using mouse is inconsistent
            depending on 'scrollbind'/'scrolloff' and different from GUI
            vertical scrollbar when 'cursorbind' is set.
Solution:   Don't move cursor in non-current windows for 'cursorbind' if
            cursor in the current window didn't move.

Patch 9.0.1984
Problem:    CI: Test_open_delay*() fails on FreeBSD 14
Solution:   Skip it on BSD

Patch 9.0.1985
Problem:    CI: codecov is intrusive
Solution:   disable codecov comments

Patch 9.0.1986
Problem:    MNV9: accepting type-annotations
Solution:   Reject type annotations outside of declarations.

Patch 9.0.1987
Problem:    win32: font-size calculation can be improved
Solution:   calculate font size before the window size

Patch 9.0.1988
Problem:    MNV9: potential use-after-free for class members
Solution:   Use the class-related grow array for storing the
            member type instead of using a temporary type
            list grow array

Patch 9.0.1989
Problem:    MNV9: double error message given
Solution:   Only give second error message, if there
             wasn't one given before

Patch 9.0.1990
Problem:    strange error number
Solution:   change error number,
            add doc tag for E1507

Patch 9.0.1991
Problem:    no cmdline completion for setting the font
Solution:   enable it on Win32 and GTK builds

Patch 9.0.1992
Problem:    segfault in exmode when redrawing
Solution:   skip gui_scroll when exmode_active

Patch 9.0.1993
Problem:    warning about unused function definition
Solution:   add ifdefs

Patch 9.0.1994
Problem:    inconsistent feature description
Solution:   delete old mentioned feature sets small and big

Patch 9.0.1995
Problem:    Invalid memory access when 'foldexpr' returns empty string.
Solution:   Check for NUL.

Patch 9.0.1996
Problem:    Cannot build with python312
Solution:   Define wrapper types and functions for python 3.12

Patch 9.0.1997
Problem:    Some unused code in move.c and string.c
Solution:   Remove it

Patch 9.0.1998
Problem:    xxd: cannot reverse a bit dump
Solution:   implement reversing the bit dump using -b -r

Patch 9.0.1999
Problem:    MNV9: some error messages can be improved
Solution:   Mention the defining class for variable access error message

Patch 9.0.2000
Problem:    MNV9: use-after-free in deep call stack
Solution:   Get the object pointer from execution stack

Patch 9.0.2001
Problem:    MNV9: segfault with islocked()
Solution:   Check that the lval pointer is not null for objects and
            class variables

Patch 9.0.2002
Problem:    MNV9: need cleanup of class related interface code
Solution:   Remove the unused class variable and class method related code
            for interfaces.

Patch 9.0.2003
Problem:    xxd: compilation warning
Solution:   initialize variables

Patch 9.0.2004
Problem:    Missing test file
Solution:   git-add the file to the repo

Patch 9.0.2005
Problem:    partially revert patch v9.0.1997
Solution:   add a comment, to make clear it's not used

Patch 9.0.2006
Problem:    MNV9: need more tests
Solution:   add additional disassembly tests

Patch 9.0.2007
Problem:    MNV9: covariant parameter types allowed when assigning
            functions
Solution:   Enforce invariant type check for arguments and return value
            when assigning a funcref

Patch 9.0.2008
Problem:    test: undofile left behind
Solution:   cleanup undofile

Patch 9.0.2009
Problem:    cmdline-completion for comma-separated options wrong
Solution:   Fix command-line expansions for options with filenames with
            commas

Patch 9.0.2010
Problem:    [security] use-after-free from buf_contents_changed()
Solution:   block autocommands

Patch 9.0.2011
Problem:    INI files not detected
Solution:   detect uppercase .INI as dosini files

Patch 9.0.2012
Problem:    MNV9: error message can be more accurate
Solution:   Fix the error messages

Patch 9.0.2013
Problem:    Unicode tables outdated
Solution:   Update Unicode tables to v15.1 (released 23.09.2023)

Patch 9.0.2014
Problem:    confusing ifdefs in if_<lang>.c
Solution:   refactor ifndefs to #ifdefs

Patch 9.0.2015
Problem:    MNV9: does not handle islocked() from a method correctly
Solution:   Handle islocked() builtin from a method.

Patch 9.0.2016
Problem:    MNV9: assignment operators don't work for class vars
Solution:   implement it

Patch 9.0.2017
Problem:    linebreak applies for leading whitespace
Solution:   only apply linebreak, once we have found non-breakat chars in
            the line

Patch 9.0.2018
Problem:    complete_info() returns wrong index
Solution:   Make order of 'info' in completion_info consistent

Patch 9.0.2019
Problem:    MNV9: no support for funcrefs
Solution:   Add support for object/class funcref members

Patch 9.0.2020
Problem:    MNV9: islocked() needs more work
Solution:   rework islocked() and remove sync_root
            from get_lval()

Patch 9.0.2021
Problem:    Coverity complains about change in charset (after v9.0.2017)
Solution:   check pointer t at index 0

Patch 9.0.2022
Problem:    When clicking in the middle of a TAB, getmousepos() returns
            the column of the next char instead of the TAB.
Solution:   Break out of the loop when the vcol to find is inside current
            char. Fix invalid memory access when calling virtcol2col() on
            an empty line.

Patch 9.0.2023
Problem:    need more tests for :cq
Solution:   Add more tests, including wraparound on linux

Patch 9.0.2024
Problem:    no filetype detection for Debian sources
Solution:   Add new deb822sources filetype

Patch 9.0.2025
Problem:    no cmdline completion for ++opt args
Solution:   Add cmdline completion for :e ++opt=arg and :terminal
            [++options]

Patch 9.0.2026
Problem:    win32: python3 dll loading can be improved
Solution:   Load DLL from registry path

Patch 9.0.2027
Problem:    MNV9: no support for bitwise operators in lambda funcs
Solution:   move "evaluate" assignment a bit up in order to decide
            to perform bitwise operations

Patch 9.0.2028
Problem:    confusing build dependencies
Solution:   clean them up, make them parallelizable

Patch 9.0.2029
Problem:    MNV9: no support for partials using call()
Solution:   Add support

Patch 9.0.2030
Problem:    no max callback recursion limit
Solution:   bail out, if max call recursion for callback functions
            has been reached.

Patch 9.0.2031
Problem:    `TextChangedI` can trigger on entering Insert mode if there
             was previously a change not in Insert mode.
Solution:   Make it trigger only when text is actually changed in Insert
            mode.

Patch 9.0.2032
Problem:    Cannot accurately get mouse clicking position when clicking on
            a TAB or with virtual text.
Solution:   Add a "coladd" field to getmousepos() result.

Patch 9.0.2033
Problem:    gcc overflow-warning for f_resolve
Solution:   use pointer p instead of pointer q[-1]

Patch 9.0.2034
Problem:    don't try to copy SMACK attribute, when none exist
Solution:   return early if SMACK extended attributes do not exist or
            if they are not supported

Patch 9.0.2035
Problem:    [security] use-after-free with wildmenu
Solution:   properly clean up the wildmenu when exiting

Patch 9.0.2036
Problem:    if_python: rework python3.12 build dependency
            (after 9.0.1996)
Solution:   use PyTuple_Size instead of inlining the Py_SIZE
            into the MNV code base

Patch 9.0.2037
Problem:    A few remaining cmdline completion issues with C-E/Y
Solution:   Fix cmdline completion fuzzy/Ctrl-E/Ctrl-Y/options when not
            used at the end

Patch 9.0.2038
Problem:    MNV9: object method funcref not cleaned up after use
Solution:   Clean up type stack after using object method funcref,
            remove now longer used ISN_DEFEROBJ instruction

Patch 9.0.2039
Problem:    completion shows current word after completion restart
Solution:   remove the word being completed after completion restart

Patch 9.0.2040
Problem:    trim(): hard to use default mask
Solution:   Use default 'mask' when it is v:none

Patch 9.0.2041
Problem:    trim(): hard to use default mask (partly revert v9.0.2040)
Solution:   use default mask when it is empty

Patch 9.0.2042
Problem:    Test_cq_zero_exmode fails without channel feature
Solution:   Make the test check the channel feature

Patch 9.0.2043
Problem:    MNV9: issue with funcref assignment and varargs
Solution:   Fix funcref type checking

Patch 9.0.2044
Problem:    MNV9: exceptions confuse deferred functions
Solution:   save and restore exception state when calling deferred
            functions

Patch 9.0.2045
Problem:    tests: checking for swap files takes time
Solution:   don't check for swap files  when test has been skipped

Patch 9.0.2046
Problem:    win32,python: warning that MS_WIN64 got re-defined
Solution:   Do not define MS_WIN64, as it is no longer used

Patch 9.0.2047
Problem:    perl: warning about inconsistent dll linkage
Solution:   suppress warning

Patch 9.0.2048
Problem:    python: uninitialized warning
Solution:   initialize 'minor' always

Patch 9.0.2049
Problem:    MNV9: not recognizing qualified class vars for infix ops
Solution:   Drop the class type from the stack before generating the
            CLASSMEMBER instruction

Patch 9.0.2050
Problem:    MNV9: crash with deferred function call and exception
Solution:   Save and restore exception state

Patch 9.0.2051
Problem:    MNV9: wrong error for non-existing object var
Solution:   mention object or class depending on whether
            the var is an object or class variable.

Patch 9.0.2052
Problem:    win32: using deprecated wsock32 api
Solution:   Use winsock2 (ws2_32) consistently

Patch 9.0.2053
Problem:    zig filetype detection test wrong
Solution:   Remove .zir pattern, add new test for .zon pattern

Patch 9.0.2054
Problem:    win32: iscygpty needs update
Solution:   Update iscygpty to the latest version, make use iswascii()
            API function

Patch 9.0.2055
Problem:    MNV9: non-consistent error messages
Solution:   make error messages more consistent with common structure

Patch 9.0.2056
Problem:    no digraph for quadruple prime
Solution:   add quadruple prime digraph using 4'

Patch 9.0.2057
Problem:    MNV9: no strict type checks for funcrefs varargs
Solution:   Perform strict type checking when declaring funcrefs
            with vararg declaration, add tests

Patch 9.0.2058
Problem:    tests: avoid error when no swap files exist
Solution:   use unlet! so that no error message is reported
            in case the variable does not exists

Patch 9.0.2059
Problem:    outstanding exceptions may be skipped
Solution:   When restoring exception state, process remaining outstanding
            exceptions

Patch 9.0.2060
Problem:    *.{gn,gni} files are not recognized
Solution:   Detect some as gn filetype (without adding an extra filetype)

Patch 9.0.2061
Problem:    not able to detect xkb filetypes
Solution:   Detect files below /u/s/X11/xkb as xkb files (without adding
            an extra filetype)

Patch 9.0.2062
Problem:    Janet files are not recognised
Solution:   Add filename and shebang detection (without
            adding an extra filetype plugin)

Patch 9.0.2063
Problem:    pacman hooks are detected as conf filetype
Solution:   make it consistent to pacman.conf and detect those
            hooks as confini

Patch 9.0.2064
Problem:    cannot use buffer-number for errorformat
Solution:   add support for parsing a buffer number using '%b' in
            'errorformat'

Patch 9.0.2065
Problem:    EXPAND flag set for filetype option
Solution:   Remove P_EXPAND flag from the 'filetype' option

Patch 9.0.2066
Problem:    xxd: corrupting files when reversing bit dumps
Solution:   handle reversing bit dump slightly differently

Patch 9.0.2067
Problem:    xxd: coloring was disabled on Cygwin
Solution:   don't include WIN32

Patch 9.0.2068
Problem:    [security] overflow in :history
Solution:   Check that value fits into int

Patch 9.0.2069
Problem:    possible to escape bracketed paste mode with Ctrl-C
Solution:   Do not handle Ctrl-C specially when key_protocol
            is in use, makes bracketed paste mode more robust

Patch 9.0.2070
Problem:    [security] disallow setting env in restricted mode
Solution:   Setting environment variables in restricted mode could
            potentially be used to execute shell commands. Disallow this.

Patch 9.0.2071
Problem:    objdump files not recognized
Solution:   detect *.objdump files, add a filetype plugin

Patch 9.0.2072
Problem:    MNV9: no nr2str conversion in list-unpack
Solution:   Generate 2STRING instruction to convert dict index to string

Patch 9.0.2073
Problem:    typo in quickfix.c comments
Solution:   fix them

Patch 9.0.2074
Problem:    Completion menu may be wrong
Solution:   Check for the original direction of the completion menu,
            add more tests, make it work with 'noselect'

Patch 9.0.2075
Problem:    TextChangedI may not always trigger
Solution:   trigger it in more cases: for insert/
            append/change operations, and when
            opening a new line,

Patch 9.0.2076
Problem:    MNV9: No support for type aliases
Solution:   Implement :type command

Patch 9.0.2077
Problem:    CI fails because of trailing whitespace in test
Solution:   Remove it

Patch 9.0.2078
Problem:    several problems with type aliases
Solution:   Check for more error conditions, add tests,
            fix issues

Patch 9.0.2079
Problem:    Not all Dart files detected
Solution:   Add shebang filetype detection for Dart

Patch 9.0.2080
Problem:    mnv9_script test too large
Solution:   split mnv9 type alias test into
            separate test file

Patch 9.0.2081
Problem:    With 'smoothscroll' set, "w_skipcol" is not reset when unsetting
            'wrap'. Resulting in incorrect calculation of the cursor position.
Solution:   Reset "w_skipcol" when unsetting 'wrap'.

Patch 9.0.2082
Problem:    test_channel may fail because of IPv6 config issues
Solution:   Catch and skip the test, if getaddrinfo() fails with
           'Address family not supported'

Patch 9.0.2083
Problem:    Perl: xsubpp may be in non-standard location
Solution:   Add --with-subpp configure option

Patch 9.0.2084
Problem:    MNV9: abstract static methods are possible
Solution:   Disallow abstract static methods

Patch 9.0.2085
Problem:    MNV9: abstract can be used in interface
Solution:   Disallow the use of abstract in an interface

Patch 9.0.2086
Problem:    code cleanup for option callbacks needed
Solution:   remove flag os_doskip, it's not necessary, as we can check,
            whether an error message was returned

Patch 9.0.2087
Problem:    build-failure in mnv9class
Solution:   reference correct error message,
            disable non-failing test

Patch 9.0.2088
Problem:    MNV9: still allows abstract static methods
            (after v9.0.2084, v9.0.2085 and v9.0.2087)
Solution:   Disallow abstract static methods

Patch 9.0.2089
Problem:    sound_playfile() fails when using powershell
Solution:   quote filename using doublequotes, don't escape filename,
            because it doesn't use the shell

Patch 9.0.2090
Problem:    complete_info() skips entries with 'noselect'
Solution:   Check, if first entry is at original text state

Patch 9.0.2091
Problem:    MNV9: cannot convert list to string using +=
            (after 9.0.2072)
Solution:   convert dict index to string later in compile_member()

Patch 9.0.2092
Problem:    tests: failure in test_arabic
Solution:   adjust the test for the changed arabic keymap

Patch 9.0.2093
Problem:    Unsupported option causes rest of modeline test to be skipped.
Solution:   Revert the change from patch 8.2.1432.

Patch 9.0.2094
Problem:    MNV9: need more assignment tests
Solution:   Add test for using different types in assignment, function
            arguments and return values

Patch 9.0.2095
Problem:    statusline may look different than expected
Solution:   do not check for highlighting of stl and stlnc characters

Patch 9.0.2096
Problem:    MNV9: confusing usage of private
Solution:   clarify and use protected keyword instead

Patch 9.0.2097
Problem:    No support for cypher files
Solution:   Add cypher filetype detection

Patch 9.0.2098
Problem:    No filetype support for xcompose files
Solution:   Add filetype detection

Patch 9.0.2099
Problem:    Terminal control codes¹ are sent even when silent
            mode is on, causing the terminal to clear up
Solution:   Block any terminal codes when silent mode is on

Patch 9.0.2100
Problem:    CI: test_Termdebug fails
Solution:   only test for a changed winlayout, if the window
            width actually changed

Patch 9.0.2101
Problem:    CI: test_termdebug may still fail
Solution:   use term_wait() to make it more robust

Patch 9.0.2102
Problem:    matchparen highlight not cleared in completion mode
Solution:   Clear matchparen highlighting in completion mode

Patch 9.0.2103
Problem:    recursive callback may cause issues on some archs
Solution:   Decrease the limit drastically to 20

Patch 9.0.2104
Problem:    wast filetype should be replaced by wat filetype
Solution:   start using the official wat filetype name

Patch 9.0.2105
Problem:    Skipcol is not reset when topline changed scrolling cursor to top
Solution:   reset skipcol

Patch 9.0.2106
Problem:    [security]: Use-after-free in win_close()
Solution:   Check window is valid, before accessing it

Patch 9.0.2107
Problem:    [security]: FPE in adjust_plines_for_skipcol
Solution:   don't divide by zero, return zero

Patch 9.0.2108
Problem:    [security]: overflow with count for :s command
Solution:   Abort the :s command if the count is too large

Patch 9.0.2109
Problem:    [security]: overflow in nv_z_get_count
Solution:   break out, if count is too large

Patch 9.0.2110
Problem:    [security]: overflow in ex address parsing
Solution:   Verify that lnum is positive, before subtracting from
            LONG_MAX

Patch 9.0.2111
Problem:    [security]: overflow in get_number
Solution:   Return 0 when the count gets too large

Patch 9.0.2112
Problem:    [security]: overflow in shift_line
Solution:   allow a max indent of INT_MAX

Patch 9.0.2113
Problem:    Coverity warns for another overflow in shift_line()
Solution:   Test for INT_MAX after the if condition, cast integer values
            to (long long) before multiplying.

Patch 9.0.2114
Problem:    overflow detection not accurate when adding digits
Solution:   Use a helper function

Patch 9.0.2115
Problem:    crash when callback function aborts because of recursiveness
Solution:   correctly initialize rettv

Patch 9.0.2116
Problem:    No test for defining sign without attribute
Solution:   Add test for defining sign without attributes

Patch 9.0.2117
Problem:    [security] use-after-free in qf_free_items
Solution:   only access qfpnext, if it hasn't been freed

Patch 9.0.2118
Problem:    [security]: avoid double-free
Solution:   Only fee plain_font, when it is not the same as bold_font

Patch 9.0.2119
Problem:    remove dead-condition in ex_class()
Solution:   remove the extra condition

Patch 9.0.2120
Problem:    un-used assignment in do_source_buffer_init
Solution:   Remove it

Patch 9.0.2121
Problem:    [security]: use-after-free in ex_substitute
Solution:   always allocate memory

Patch 9.0.2122
Problem:    [security]: prevent overflow in indenting
Solution:   use long long and remove cast to (int)

Patch 9.0.2123
Problem:    Problem with initializing the length of range() lists
Solution:   Set length explicitly when it shouldn't contain any items

Patch 9.0.2124
Problem:    INT overflow logic can be simplified
Solution:   introduce trim_to_int() function

Patch 9.0.2125
Problem:    File info disappears immediately when 'cmdheight' has just
            decreased due to switching tabpage and 'shortmess' doesn't
            contain 'o' or 'O'.
Solution:   Make sure msg_row isn't smaller than cmdline_row.

Patch 9.0.2126
Problem:    Unused assignments when checking the value of 'listchars'.
Solution:   Loop only once when just checking the value.  Add a test to
            check that this change doesn't cause double-free.

Patch 9.0.2127
Problem:    translation Makefiles can be improved
Solution:   Modified and extended po-related Makefiles and
            related files

Patch 9.0.2128
Problem:    No runtime files for SWIG filetypes
Solution:   Add syntax and filetype plugins for SWIG (Simplified Wrapper
            Interface Generator) description files.

Patch 9.0.2129
Problem:    [security]: use-after-free in call_dfunc()
Solution:   Refresh dfunc pointer

Patch 9.0.2130
Problem:    some errors with translation Makefiles
Solution:   fix issues

Patch 9.0.2131
Problem:    not all nushell files detected
Solution:   use *.nu to detect nushell files

Patch 9.0.2132
Problem:    Duplicate Netbeans Error Message
Solution:   Remove duplicate message

Patch 9.0.2133
Problem:    Cannot detect overstrike mode in Cmdline mode
Solution:   Make mode() return "cr" for overstrike

Patch 9.0.2134
Problem:    ml_get error when scrolling after delete
Solution:   mark topline to be validated in main_loop
            if it is larger than current buffers line
            count

Patch 9.0.2135
Problem:    No test for mode() when executing Ex commands
Solution:   Add some test cases and simplify several other test cases.
            Also add a few more test cases for ModeChanged.

Patch 9.0.2136
Problem:    MSVC errorformat can be improved
Solution:   parse error type and column number in MSVC errorformat

Patch 9.0.2137
Problem:    Can't detect angular & mustache filetypes
Solution:   Detect *.mustache as Mustache filetype;
            detect *.component.html as html.angular filetype

Patch 9.0.2138
Problem:    Overflow logic requires long long
Solution:   Define mnvlong_T data type to make life easier
            for porters

Patch 9.0.2139
Problem:    html.angular ft is problematic
Solution:   partly revert v9.0.2137

Patch 9.0.2140
Problem:    [security]: use-after-free in win-enter
Solution:   validate window pointer before calling win_enter()

Patch 9.0.2141
Problem:    [security]: buffer-overflow in suggest_trie_walk
Solution:   Check n before using it as index into bytes array

Patch 9.0.2142
Problem:    [security]: stack-buffer-overflow in option callback functions
Solution:   pass size of errbuf down the call stack, use snprintf()
            instead of sprintf()

Patch 9.0.2143
Problem:    [security]: buffer-overflow in ex_substitute
Solution:   clear memory after allocating

Patch 9.0.2144
Problem:    Text properties causes wrong line wrapping to be drawn.
Solution:   Find the index of the last text property that inserts text.

Patch 9.0.2145
Problem:    Wrong scrolling in Insert mode with 'smoothscroll' at the
            bottom of the window.
Solution:   Don't use set_topline() when 'smoothscroll' is set.

Patch 9.0.2146
Problem:    text-property without type errors when joining
Solution:   count all text-properties, with or without type
            before joining lines

Patch 9.0.2147
Problem:    Type check tests fail without the channel feature
Solution:   only run tests, when MNV was build with +channel

Patch 9.0.2148
Problem:    MNV does not detect pacman.log file
Solution:   Detect pacmanlogs and add syntax highlighting

Patch 9.0.2149
Problem:    [security]: use-after-free in exec_instructions()
Solution:   get tv pointer again

Patch 9.0.2150
Problem:    Using int for errbuflen in option funcs
Solution:   Use size_t for errbuflen in string option functions

Patch 9.0.2151
Problem:    'breakindent' is not drawn after diff filler lines.
Solution:   Correct check for whether 'breakindent' should be drawn.

Patch 9.0.2152
Problem:    Using type unknown for List/Dict containers
Solution:   Use 'any' instead

Patch 9.0.2153
Problem:    no support to build on OpenVMS
Solution:   Add OpenVMS X86_64 platform port

Patch 9.0.2154
Problem:    The options[] array is not sorted alphabetically.
Solution:   Sort it alphabetically.  Add a test.  Avoid unnecessary loop
            iterations in findoption().

Patch 9.0.2155
Problem:    MNV9: type not kept when assigning vars
Solution:   When assigning a List or a Dict value to a variable of type
            'any', keep the type

Patch 9.0.2156
Problem:    MNV9: can use typealias in an assignment
Solution:   Generate errors when class/typealias involved in the rhs of an
            assignment

Patch 9.0.2157
Problem:    MNV9: incorrectly parses :def func definitions
Solution:   check for more context when parsing function args

Patch 9.0.2158
Problem:    [security]: use-after-free in check_argument_type
Solution:   Reset function type pointer when freeing the function type
            list

Patch 9.0.2159
Problem:    screenpos() may crash with neg. column
Solution:   validate and correct column

Patch 9.0.2160
Problem:    instanceof() should use varargs as second arg
Solution:   Modify `instanceof()` to use varargs instead of list

Patch 9.0.2161
Problem:    MNV9: not able to use imported interfaces and classes
Solution:   Detect imported class/interfaces names correctly

Patch 9.0.2162
Problem:    MNV9: type documentation out-dated
Solution:   Update documentation, fix typo in type alias
            definition

Patch 9.0.2163
Problem:    MNV9: type can be assigned to list/dict
Solution:   Prevent assigning a `type` to a `list` or `dict`

Patch 9.0.2164
Problem:    MNV9: can use type a func arg/return value
Solution:   Check if using type as function argument or return value

Patch 9.0.2165
Problem:    MNV9: can simplify arg type checking code
Solution:   In `f_argcheck` array use `arg_any`, instead of NULL

Patch 9.0.2166
Problem:    Memory leak in Configure Script when checking GTK
Solution:   Free the allocated memory

Patch 9.0.2167
Problem:    MNV9-script object/class variable declarations use syntax
            that is inconsistent with the rest of the language.
Solution:   Use :var to declare object and class variables.

Patch 9.0.2168
Problem:    Moving tabpages on :drop may cause an endless loop
Solution:   Disallow moving tabpages on :drop when cleaning up the arglist
            first

Patch 9.0.2169
Problem:    MNV9: builtin funcs may accept a non-value
Solution:   Restrict builtin functions that accept `type`

Patch 9.0.2170
Problem:    MNV9: no support for const/final class/objects vars
Solution:   Support final and const object and class variables

Patch 9.0.2171
Problem:    The options[] array is still not sorted alphabetically
            (after: v9.0.2154), causing test failures
Solution:   Sort the remaining items

Patch 9.0.2172
Problem:    MNV9: compiling :defer may fail
Solution:   compile defer, when ctx_skip is not SKIP_YES

Patch 9.0.2173
Problem:    MNV9: MNV crashes when compiling a for statement with a
            non-existing type
Solution:   Error out when  lhs_type is not null

Patch 9.0.2174
Problem:    MNV9: segfault when assigning to type
Solution:   do not clear typeval, add missing patch number

Patch 9.0.2175
Problem:    Compiler warning for uninitialized var
Solution:   initialize variable to NULL

Patch 9.0.2176
Problem:    Compile error with Motif UI + mouse support (after v9.0.1262)
Solution:   Use correct oldval option pointer

Patch 9.0.2177
Problem:    Wrong cursor position when dragging out of window.
Solution:   Don't use ScreenCols[] when mouse is not in current window.

Patch 9.0.2178
Problem:    reg_executing() returns wrong result in :normal with range
            when 'showcmd' is set (after 8.2.4705).
Solution:   Reset "pending_end_reg_executing" when executing a register.

Patch 9.0.2179
Problem:    no filetype detection for execline scripts
Solution:   Add filetype detection for execline

Patch 9.0.2180
Problem:    POSIX function name in exarg struct causes issues
            on OpenVMS
Solution:   Rename getline member in exarg struct to ea_getline,
            remove isinf() workaround for VMS

Patch 9.0.2181
Problem:    MNV9: missing error messages
Solution:   Add one more error message

Patch 9.0.2182
Problem:    MNV9: need a way to reserve future extension
Solution:   reserve double underscore prefix for future use
            (Yegappan Lakshmanan)

Patch 9.0.2183
Problem:    Maximum callback depth is not configurable.
Solution:   Revert patch 9.0.2103.  Set 'maxfuncdepth' in test.
            (zeertzjq)

Patch 9.0.2184
Problem:    MNV9: inconsistent :type/:class messages
Solution:   Update the Messages (Ernie Rael)

Patch 9.0.2185
Problem:    Coverity complains about not checking return value
            in compare_isn_not_values (after 9.0.2184)
Solution:   cast return value to "(void)" to make intention clear

Patch 9.0.2186
Problem:    LTCG compile error on Win/ARM64 for `write_chars()`
Solution:   Explicitly initialise the storage to use data rather than BSS
            (Saleem Abdulrasool)

Patch 9.0.2187
Problem:    Visual selection isn't drawn with 'breakindent' when the line
            doesn't fit in the window (Jaehwang Jung)
Solution:   Adjust wlv->fromcol also for 'breakindent' (zeertzjq)

Patch 9.0.2188
Problem:    cursor wrong after { in single line buffer
            (Edwin Chan)
Solution:   do not place the cursor at the end for a single
            line buffer when moving backwards (Gary Johnson)

Patch 9.0.2189
Problem:    Wrong display when 'breakindentopt' contains "sbr" and
            'showbreak' and 'nobreakindent' are set.
Solution:   Always reset wlv->need_showbreak regardless of the values of
            'breakindent' and 'showbreak', as they aren't checked when
            setting wlv->need_showbreak (zeertzjq)

Patch 9.0.2190
Problem:    proto files need update
Solution:   re-generate them

==============================================================================
VERSION 9.2				*version-9.2* *version9.2* *mnv-9.2*

This section is about improvements made between version 9.1 and 9.2.

MNV9 script ~
-----------
Add support for internal builtin functions with mnv9 objects, see
|builtin-object-methods|

Enum support for MNV9 script |:enum|

Generic function support for MNV9 script |generic-functions|

Support for protected _new() method

Support for compiling all the methods in a MNV9 class using |:defcompile|.

Add support for object<{type}> as variable data type |mnv9-types|

Support for the |Tuple| data type in MNV script and MNV9 script.

Diff mode ~
---------
Include the "linematch" algorithm for the 'diffopt' setting.  This aligns
changes between buffers on similar lines improving the diff highlighting in
MNV

Improve the diff highlighting for changes within a line.  Configurable using
the "inline" sub option value for the 'diffopt' setting, with "inline:simple"
being added to the default "diffopt" value (but this does not change how diff
mode works).

The 'diffanchors' option specifies a comma-separated list of addresses in
a buffer that act as anchor points for splitting and independently diffing
buffer sections, improving diff alignment.  It is only used when 'diffopt'
includes "anchor" and all specified addresses must resolve in every buffer, or
else the anchors are ignored.

Completion~
----------
- New Insert-mode completion: |i_CTRL-X_CTRL-R| to complete words from
  registers.
- Completion in search contexts using |/|, |?|, |:g|, |:v| and |:mnvgrep|
  commands using 'wildchar'
- ":filetype" command completion and the "filetypecmd" completion type for
  |getcompletion()| have been included.
- Support for command-line completion of 'keymap' option values.
- Support for |fuzzy-matching| during |ins-completion| with the "fuzzy"
  values of the 'completeopt' setting.
- allow to complete shell commands and files using the new shellcmdline
  completion type using |:command-complete| and |getcmdcomplpat()|
- New option value for 'wildmode':
	"noselect"	- do not auto select an entry in the wildmenu
	"exacttext"	- show exact matches in wildmenu with search
			  completion
- New flags for 'complete':
	"F{func}"	- complete using given function
	"F"		- complete using 'completefunc'
	"o"		- complete using 'omnifunc'
- New option value for 'completeopt':
	"nosort"	- do not sort completion results
	"preinsert"	- highlight to be inserted values
	"nearest"	- sort completion results by distance to cursor
- new function |wildtrigger()| to trigger wildcard expansion
- Support for Autocompletion has been added |ins-autocompletion|

Platform specific~
-----------------
- Support for Wayland UI and support for the Wayland clipboard has been added
  |wayland|.

- Support for the XDG Desktop Specification |xdg-base-dir| has been added and
  the environment variable |$MYMNVDIR| is set to the users personal runtime
  directory ($HOME/.mnv or $HOME/.config/mnv on Linux, $HOME/mnvfiles on
  Windows).

- Python3 support in OpenVMS is now available.

- The Win32 GUI comes with better toolbar icons.

- Better fullscreen support for Haiku |os_haiku.txt|.

							*new-other-9.2*
Other new features ~
------------------
- Support for Super key mappings in GTK using <D-Key>.

- The new optional packages |package-comment|, |package-nohlsearch|,
  |package-hlyank|, |help-TOC|, |package-helpcurwin| and |package-osc52| are
  included.

- An interactive tutor plugin has been included |mnv-tutor-mode| and can be
  started via |:Tutor|.

- Support for translating messages in MNV script plugins using the |gettext()|
  and |bindtextdomain()| functions was included.

- Support highlighting the matched text and the completion kind for
  insert-mode completion and command-line completion in |ins-completion-menu|,
  see |complete-items|.

- A new vertical |tabpanel| window has been included which is a vertical
  'tabline'.

- The |dist#mnv9#Launch()| and |dist#mnv9#Open()| functions have been added to
  the |mnv-script-library| and decoupled from |netrw|.

- The new digraph "APPROACHES THE LIMIT" using ".=" has been added.

- Add the new default highlighting groups "Bold", "Italic" and "BoldItalic"
  for use in syntax scripts.

- |items()| function now supports Blob.

- The clipboard provider feature has been added |clipboard-providers|.

							*changed-9.2*
Changed~
-------

Default values: ~
- the default 'history' option value has been increased to 200 and removed
  from |defaults.mnv|
- the default 'backspace' option for MNV has been set to "indent,eol,start"
  and removed from |defaults.mnv|
- the default fontsize for the GTK builds of MNV (Windows and Unix) has been
  increased to 12pt to accommodate modern high-dpi monitors
- the default value of the 'keyprotocol' option has been updated and support
  for the ghostty terminal emulator (using kitty protocol) has been added
- Improved visual highlighting |hl-Visual|
- the default value for 'showcmd' is always enabled when using non-compatible
  mode (previously, it was off on UNIX systems) and consequently removed from
  |defaults.mnv|
- Improve the diff mode experience by updating the 'diffopt' default value to
  "internal,filler,closeoff,indent-heuristic,inline:char".
- the 'ruler' option value is always enabled when using non-compatible mode
  and removed from |defaults.mnv|

Completion: ~
- allow to complete directories from 'cdpath' for |:cd| and similar commands,
  add the "cd_in_path" completion type for e.g. |:command-complete| and
  |getcompletion()|
- allow to specify additional attributes in the completion menu (allows to
  mark deprecated attributes from LSP server) |complete-items|
- the completed word and completion type are provided when handling the
  |CompleteDone| autocommand in the |v:event| dictionary
- |complete_info()| returns the list of matches shown in the poppu menu via
  the "matches" key
- handle multi-line completion items as expected
- improved commandline completion for the |:hi| command
- allow to limit matches for the 'complete' sources by using the
  "{flag}^<limit>" notation
- 'smartcase' applies to completion filtering

Options: ~
- 'commentstring' is now available in all builds and no longer requires the
  |+folding| feature
- the default for 'commentstring' contains whitespace padding to have
  automatic comments look nicer |comment-install|
- 'completeopt' is now a |global-local| option.
- add 'cpoptions' flag "z" |cpo-z|, to disable some (traditional) vi
  behaviour/inconsistency (see |d-special| and |cw|).
- add 'cpoptions' flag "~" |cpo-~| to disable resolving symlinks on |:cd|
  commands
- new option values for 'fillchars':
	"trunc"		- configure truncation indicator, 'pummaxwidth'
	"truncrl"	- like "trunc" but in 'rl' mode, 'pummaxwidth'
	"tpl_vert"	- vertical separators for the 'tabpanel'
	"foldinner"	- character used inside the 'foldcolumn' for nested
			  fold levels
- 'grepformat' is now a |global-local| option.
- adjust for GTK3 dropping some mouse cursors 'mouseshape'
- 'nrformats' accepts the new "blank" suboption, to determine a signed or
  unsigned number based on whitespace in front of a minus sign.
- 'rulerformat' now supports the |stl-%!| item
- use 'smoothscroll' logic for CTRL-F / CTRL-B for pagewise scrolling
  and CTRL-D / CTRL-U for half-pagewise scrolling
- Setting 'nowrap' in a modeline could cause long lines to be hidden
  off-screen.  To make this visible, the listchars "extend" suboption is set
  to ">" by default, indicating text that extends beyond the window width.
- 'guioptions': New value |'go-C'| to style the title/caption bar on Windows 11
  (see also the below platform specific change).
- 'guioptions': Support darkmode on MS-Windows for menu and title bar using
  |'go-d'| (see also the below platform specific change).
- 'guioptions': New value |'go-s'| to support fullscreen on MS-Windows GUI
  (see also the below platform specific change).
- 'completepopup': Add more values to style popup windows.
- 'fsync' is now a |global-local| option.

Ex commands: ~
- allow to specify a priority when defining a new sign |:sign-define|
- |:bwipe| also wipes jumplist and tagstack data
- moving in the buffer list using |:bnext| and similar commands, behaves as
  documented and skips help buffers (if not run from a help buffer, else
  moves to the next/previous help buffer).
- |:keeppatterns| preserves the last substitute pattern when used with |:s|
- |:retab| accepts the new optional parameter -indentonly to only change
  whitespace in indented lines.

Functions: ~
- provide information about function arguments using the get(func, "arity")
  function |get()-func|
- |setqflist()| and |setloclist()| can optionally try to preserve the current
  selection in the quickfix list with the "u" action.
- allow to pass local MNV script variables to python interpreter |py3eval()|
- |getwininfo()| now also returns the "leftcol" and "status_height" properties
  for a window
- |v:stacktrace| The stack trace of the exception most recently caught and
  not finished
- Add the optional {opts} |Dict| argument to |getchar()| to control: cursor
  behaviour, return type and whether or not to simplify the returned key
- |chdir()| allows to optionally specify a scope argument
- |matchfuzzy()| and |matchfuzzypos()| use an improved fuzzy matching
  algorithm (same as fzy).
- |sha256()| also accepts a |Blob| as argument.
- |listener_add()| allows to register un-buffered listeners, so that changes
  are handled as soon as they happen.
- |redraw_listener_add()| and |redraw_listener_remove()| add/remove callbacks
  for redrawing events.

Plugins~
- |zip| plugin works with PowerShell Core.

Platform specific ~
- MS-Winodws: Paths like "\Windows" and "/Windows" are now considered to be
  absolute paths (to the current drive) and no longer relative.
- MS-Windows: The title bar follows the |hl-TitleBar| and |hl-TitleBarNC|
  highlighting group |gui-w32-title-bar| with |'go-C'|
- MS-Windows: Support darkmode for menu and title bar using |'go-d'|
- MS-Windows: MNV no longer searches the current directory for
  executables when running external commands; prefix a relative or absolute
  path if you want the old behavior |$NoDefaultCurrentDirectoryInExePath|.
- MS-Windows: New value |'go-s'| to support fullscreen on MS-Windows GUI

- macOS: increase default scheduler priority to TASK_DEFAULT_APPLICATION.

Others: ~
- the regex engines match correctly case-insensitive multi-byte characters
  (and apply proper case folding)
- the putty terminal is detected using an |TermResponse| autocommand in
  |defaults.mnv| and MNV switches to a dark background
- improve the |mnvtutor| and add a second chapter for more advanced tips
- the configure script will favor using GTK3 over GTK2 when auto-detecting the
  gui toolkit
- |gv| works in operator pending mode and does not abort
- The close button shown in the non-GUI 'tabline' will only be visible if the
  'mouse' option contains either "a" or any of the flags "n", "v", or "i".
- |C-indenting| handles compound literals.
- The digraphs "</" (LEFT-POINTING ANGLE BRACKET) and ">/" (RIGHT-POINTING
  ANGLE BRACKET) have been changed to represent LEFT ANGLE BRACKET and RIGHT
  ANGLE BRACKET to match the Unicode Miscellaneous Technical code chart from
  Unicode 16.
- Two additional digraphs have been added: LEFT ANGLE BRACKET "<[" and RIGHT
  ANGLE BRACKET "]>".
- Support for Unix domain sockets have been added for the clientserver
  feature, see |socketserver-clientserver|.
- |CmdlineLeave| sets |v:char| to the character that caused exiting the
  Command-line.
- |min()|/|max()| can handle all comparable data types.
- MNV triggers the |TermResponseAll| autocommand for any terminal OSC value.
- Support CTRL-B and CTRL-F in the |more-prompt|.


Not MNV related~
- Updated sponsorship documentation to replace references to ICCF with Kuwasha
  International Development Society as MNV's designated charity.

							*added-9.2*
Added ~
-----
Various syntax, indent and other plugins were added.

Functions: ~

|base64_decode()|	decode a base64 string into a blob
|base64_encode()|	encode a blob into a base64 string
|blob2str()|		convert a blob into a List of strings
|bindtextdomain()|	set message lookup translation base path
|cmdcomplete_info()|	get current cmdline completion info
|diff()|		diff two Lists of strings
|filecopy()|		copy a file {from} to {to}
|foreach()|		apply function to List items
|getcellpixels()|	get List of terminal cell pixel size
|getcmdcomplpat()|	Shell command line completion
|getcmdprompt()|	get prompt for input()/confirm()
|getcompletiontype()|	get command-line completion type
|getregion()|		get a region of text from a buffer
|getregionpos()|	get a list of positions for a region
|getstacktrace()|	get current stack trace of MNV scripts
|id()|			get unique identifier for a Dict, List, Object,
			Channel or Blob variable
|list2tuple()|		turn a List of items into a Tuple
|listener_add()|	add a callback to listen to changes
|matchbufline()|	all the matches of a pattern in a buffer
|matchstrlist()|	all the matches of a pattern in a List of strings
|ngettext()|		lookup single/plural message translation
|popup_setbuf()|	switch to a different buffer in a popup
|preinserted()|		whether preinserted text has been inserted during
			completion (see 'completeopt')
|redraw_listener_add()|	add callbacks to listen for redraws
|redraw_listener_remove()|  remove a redraw listener
|str2blob()|		convert a List of strings into a blob
|test_null_tuple()|	return a null tuple
|tuple2list()|		turn a Tuple of items into a List
|uri_decode()|		URI-decode a string
|uri_encode()|		URI-encode a string
|wildtrigger()|		trigger wildcard expansion


Autocommands: ~

|CmdlineLeavePre|	before preparing to leave the command line
|CursorMovedC|		after the cursor was moved in the command-line
|KeyInputPre|		before processing any key event in any mode
|SessionWritePost|	after writing the session file |:mksession|
|TabClosedPre|		before closing a |tabpage|.
|TermResponseAll|	after the terminal response to |t_RV| and others is
			received
|WinNewPre|		before creating a new window


Highlighting: ~

|hl-ComplMatchIns|	matched text of the currently inserted completion
|hl-DiffTextAdd|	added text within a changed line
|hl-MsgArea|		highlighting of the Command-line and messages area
|hl-PmenuBorder|	Popup menu: highlighting of popup border characters
|hl-PmenuMatch|		Popup menu: highlighting of matched text
|hl-PmenuMatchSel|	Popup menu: highlighting of matched text in selected
			line
|hl-PmenuShadow|	Popup menu: highlighting of the popup shadow
|hl-PreInsert|		highlighting for completion preinserted text
|hl-TabPanel|		|tabpanel|: not active tab page label
|hl-TabPanelFill|	|tabpanel|: filler space
|hl-TabPanelSel|	|tabpanel|: active tab page label
|hl-TitleBarNC|		Configure the inactive title/bar on MS-Windows 11
|hl-TitleBar|		Configure the active title/bar on MS-Windows 11

Commands: ~

|[r| and |]r|		to move the cursor to previous/next rare word

Ex-Commands: ~

|:clipreset|		choose a new method for accessing the clipboard
|:iput|			like |:put| but adjust indent
|:pbuffer|		Edit buffer [N] from the buffer list in the preview
			window
|:redrawtabpanel|	Force updating the 'tabpanel'.
|:uniq|			Deduplicate text in the current buffer.
|:wlrestore|		reinitialize the wayland compositor connection

Options: ~

'autocomplete'		Enable auto completion |ins-autocompletion|
'autocompletedelay'	Delay in msec before menu appears after typing
'autocompletetimeout'	initial decay timeout for autocompletion algorithm
'chistory'		Size of the quickfix stack |quickfix-stack|
'clipmethod'		How to access the clipboard
'completeitemalign'	Order of |complete-items| in Insert mode completion
			popup
'completetimeout'	initial decay timeout for CTRL-N and CTRL-P
'diffanchors'		list of {address} to force syncing of diffs
'eventignorewin'	autocommand events that are ignored in a window
'findfunc'		MNV function to obtain the results for a |:find|
			command
'lhistory'		Size of the location list stack |quickfix-stack|
'maxsearchcount'	Set the maximum number for search-stat |shm-S|
'messagesopt'		configure |:messages| and |hit-enter| prompt
'osctimeoutlen'		OSC terminator receive timeout
'pumborder'		define popup border and decorations
'pummaxwidth'		maximum width for the completion popup menu
'showtabpanel'		When to show the |tabpanel|
'tabclose'		Which tab page to focus after closing a tab page
'tabpanel'		Optional vertical panel for displaying tabpages
			|tabpanel|
'tabpanelopt'		Optional settings for the |tabpanel|
't_CF'			Support for alternate font highlighting terminal code
't_xo'			Terminal uses XON/XOFF handshaking (e.g. vt420)
'winfixbuf'		Keep buffer focused in a window
'wlseat'		Specify Wayland seat to use for the |wayland| feature
'wlsteal'		Steal focus to access the |wayland| clipboard
'wltimeoutlen'		Specify the connection timeout for the |wayland|
			compositor

MNV Variables: ~
|v:clipmethod|		The current 'clipmethod'.
|v:clipproviders|	A dictionary containing clipboard providers
			configuration |clipboard-providers|.
|v:stacktrace|		The most recent caught exception.
|v:t_enum|		Value of |enum| type.
|v:t_enumvalue|		Value of |enumvalue|.
|v:t_tuple|		Value of |Tuple| type.
|v:termda1|		The escape sequence returned for the primary device
			attribute query (DA1).
|v:termosc|		The most recent received OSC response.
|v:mnv_did_init|	Set once MNV finishes startup initialization.
|v:wayland_display|	The name of the Wayland display MNV is connected to.

MNV Arguments: ~
|-Y|			Do not connect to the |wayland| compositor.
|--clientserver|	Specify backend for clientserver functionality.

Configure Switches: ~
--with-wayland			Enable the |wayland| feature.
--enable-wayland-focus-steal	Enable the |wayland-focus-steal| feature.
--enable-socketserver		Enable the |socketserver-clientserver|
				feature.

==============================================================================
INCOMPATIBLE CHANGES					*incompatible-9.2*

Improved/Different MS-Windows mapping support
|w32-experimental-keycode-trans-strategy|

==============================================================================
COMPILE TIME CHANGES					*compile-changes-9.2*

Support for building with Ruby 3.3.

Support for building MNV 9 in z/OS (MVS).

Clean-up old MS-Windows code.

==============================================================================
PATCHES						*patches-9.2* *bug-fixes-9.2*
						*patches-after-9.1*

The list of patches that got included since 9.1.0.  This includes all the new
features, but does not include runtime file changes (syntax, indent, ftplugin,
documentation, etc.)

Note: authorship and the list of changed files is left out and only visible
through `git log` for each commit.

Patch 9.1.0001
Problem:  When closing the current window (or when moving it to a tabpage),
          the previous window may refer to the new current window (`winnr() ==
          winnr('#')`) if that window is selected as the new current window.
Solution: Set `prevwin = NULL` when switching away from an invalid `curwin`
          and the target window was the `prevwin`. (Sean Dewar)

Patch 9.1.0002
Problem:  a closing fold expression may unexpectedly start a new fold when it
          should end a fold (reported by Shota Nozaki)
Solution: if a fold hasn't started yet, do not immediately start a new fold
          with level 1 (Shota Nozaki)

Patch 9.1.0003
Problem:  Cannot build against Ruby 33 dynamically
Solution: Ruby 33 removed transient heap, so do not use rb_ary_transient
          anymore, NoMethodError format changed, so update test for expected
          error message (Isao Sato)

Patch 9.1.0004
Problem:  reloading colorscheme when not changing 'background'
Solution: Check, if the background option value actually changed,
          if not, return early.

Patch 9.1.0005
Problem:  OpenVMS build does not support python3 and xterm_save
Solution: Enable python3 + xterm_save feature, fix style issues
          (Zoltan Arpadffy)

Patch 9.1.0006
Problem:  is*() and to*() function may be unsafe
Solution: Add SAFE_* macros and start using those instead
          (Keith Thompson)

Patch 9.1.0007
Problem:  can select empty inner text blocks
          (laurentalacoque)
Solution: make selecting empty inner text blocks an error textobjects: Make
          selecting inner empty blocks an error

Patch 9.1.0008
Problem:  NSIS installer includes syntax test dumps
          (Yegappan Lakshmanan)
Solution: Exclude syntax/testdir when creating the NSIS installer

Patch 9.1.0009
Problem:  Cannot easily get the list of matches
Solution: Add the matchstrlist() and matchbufline() MNV script functions
          (Yegappan Lakshmanan)

Patch 9.1.0010
Problem:  Keymap completion is not available
Solution: Add keymap completion (Doug Kearns)

Patch 9.1.0011
Problem:  regexp cannot match combining chars in collection
Solution: Check for combining characters in regex collections for the
          NFA and BT Regex Engine

Patch 9.1.0012
Problem:  regression with empty inner blocks introduced
          (after v9.1.0007)
Solution: Set correct cursor position, Check for visual mode
          being active (Maxim Kim)

Patch 9.1.0013
Problem:  Modula2 filetype support lacking
Solution: Improve the Modula-2 runtime support, add additional modula2
          dialects, add compiler plugin, update syntax highlighting,
          include syntax tests, update Makefiles (Doug Kearns)

Patch 9.1.0014
Problem:  incorrect use of W_WINROW in edit.c
Solution: compare against curwin->w_height instead Remove incorrect use of
          W_WINROW

Patch 9.1.0015
Problem:  i_CTRL-R- no longer works in replace mode
Solution: delete characters in replace mode before putting, add a test, add a
          bit warning into the documentation, that i_CTRL-R-P/O is not
          supported in Replace mode for now

Patch 9.1.0016
Problem:  default diff highlighting is too noisy
Solution: Link diff highlighting groups to new Added/Removed/Changed, revert
          previous change (Romain Lafourcade)

Patch 9.1.0017
Problem:  use-after-free in eval1_emsg() when an empty line follows a lambda
          (by @yu3s)
Solution: only set evalarg->eval_using_cmdline = FALSE when the *arg pointer
          is not null

Patch 9.1.0018
Problem:  use of #if instead of #ifdef
Solution: use correct form of #ifdef

Patch 9.1.0019
Problem:  cmdline may disappear when changing 'cmdheight'
          (after Patch 9.0.0190, @markonm)
Solution: always re-calculate the old_p_ch value, not only
          when cmdline_row was higher than expected

Patch 9.1.0020
Problem:  MNV9: cannot compile all methods in a class
Solution: Support compiling all the methods in a class using :defcompile
          (Yegappan Lakshmanan)

Patch 9.1.0021
Problem:  i_CTRL-R- doesn't work for multibyte chars in Replace mode,
          Coverity complains missing return value for u_save_cursor()
Solution: Use mb_charlen() and del_chars() instead, handle failure mode
          for u_save_cursor() correctly (@zeertzjq)

Patch 9.1.0022
Problem:  Coverity complains about improper use of negative value
Solution: Add a condition to validate that keytyped is larger or equal
          to 0

Patch 9.1.0023
Problem:  xxd: few problems with EBCDIC for z/OS (MVS)
Solution: Fix xxd build and support ASCII and UTF-8 on z/OS (MVS)
          natively, add MVS guard checks with __CHARSET_LIB,
          support $LIBS in the Makefile (Igor Todorovski)

Patch 9.1.0024
Problem:  z/OS (MVS) support can be improved
Solution: set UTF-8 as the default encoding for z/OS

Patch 9.1.0025
Problem:  A few typos in tests and justify.mnv
Solution: fix them

Patch 9.1.0026
Problem:  win32: Windows default font lacking (@clach04)
Solution: Improve default font (Ken Takata)

Patch 9.1.0027
Problem:  MNV is missing a foreach() func
Solution: Implement foreach({expr1}, {expr2}) function, which applies {expr2}
          for each item in {expr1} without changing it (Ernie Rael)

Patch 9.1.0028
Problem:  win32: Ctrl-D cannot be used to close a pipe
Solution: Properly detect Ctrl-D when reading from a pipe
          (GuyBrush)

Patch 9.1.0029
Problem:  Cannot act on various terminal response codes
Solution: Add the TerminalResponseAll autocommand
          (Danek Duvall)

Patch 9.1.0030
Problem:  Cannot use terminal alternate fonts (PMunch)
Solution: Support terminal alternate fonts using CSI SGR 10-20 and t_CF code
          (PMunch)

Patch 9.1.0031
Problem:  Link Error on Windows
Solution: Add ifdef HAVE_TGETENT for term_strings_not_set()

Patch 9.1.0032
Problem:  MS-Windows installer misses keymaps (Maxim Kim)
Solution: Include keymaps in the installer archive (Ken Takata)

Patch 9.1.0033
Problem:  Insert mode not stopped if an autocommand modifies a hidden
          buffer while closing a prompt buffer.
Solution: Don't set b_prompt_insert if stop_insert_mode is already set.
          (zeertzjq)

Patch 9.1.0034
Problem:  Window may unexpectedly scroll when 'scrollbind' is set
          and setting a buffer-local option using setbufvar() (Boris Staletic)
Solution: Save and restore the windows topline before opening the
          popup window.

Patch 9.1.0035
Problem:  i_CTRL-] triggers InsertCharPre
Solution: Return if CTRL-] is received. InsertCharPre is supposed to be only
          used for chars to be inserted but i_CTRL-] triggers expansion and is
          not inserted into the buffer (altermo)

Patch 9.1.0036
Problem:  MS-Windows: Warning about unused variable
          (after 9.1.0030, John Marriott)
Solution: Adjust #ifdef and test for HAVE_TGETENT (John Marriott)

Patch 9.1.0037
Problem:  Calling get_breakindent_win() repeatedly when computing virtual
          column, and get_breakindent_win() does a STRCMP() on the whole line
          since Patch 9.0.0016.
Solution: Cache the result, since the line doesn't change.
          (zeertzjq)

Patch 9.1.0038
Problem:  Unnecessary loop in getvcol().
Solution: Compare next char position with pos->col directly (zeertzjq).

Patch 9.1.0039
Problem:  too vague errors for 'listchars'/'fillchars'
Solution: Include the field name in error message (zeertzjq).

Patch 9.1.0040
Problem:  Modifying a hidden buffer still interferes with prompt buffer mode
          changes.
Solution: Save and restore b_prompt_insert (zeertzjq).

Patch 9.1.0041
Problem:  xxd -i may generate incorrect C statements (Kuratius)
Solution: xxd: Make size type returned by -i option compatible with C standard
          by using type size_t instead of unsigned int (Kuratius)

Patch 9.1.0042
Problem:  Missing test for Chuck filetype after (Christian Clason)
Solution: Add a filetype test

Patch 9.1.0043
Problem:  ml_get: invalid lnum when :s replaces visual selection (@ropery)
Solution: substitute may decrement the number of lines in a buffer, so
          validate, that the bottom lines of the visual selection
          stays within the max buffer line

Patch 9.1.0044
Problem:  po Makefiles can be improved
Solution: Improve the style of the Makefiles, update Makefile variables,
          update documentation (RestorerZ)

Patch 9.1.0045
Problem:  --remote-silent applies the wildignore option to each argument,
          which may result in "E479: No match" (hebaronson)
Solution: temporarily reset 'wildignore' setting when building the :drop
          command

Patch 9.1.0046
Problem:  :drop does not re-use empty buffer (Rocco Mao)
Solution: Make :drop re-use an empty buffer (Rocco Mao)

Patch 9.1.0047
Problem:  Things that temporarily change/restore curwin/buf (e.g: win_execute,
          some autocmds) may break assumptions that curwin/buf is the cmdwin
          when "cmdwin_type != 0", causing issues.
Solution: Expose the cmdwin's real win/buf and check that instead. Also try to
          ensure these variables are NULL if "cmdwin_type == 0", allowing them
          to be used directly in most cases without checking cmdwin_type.
          (Sean Dewar).

Patch 9.1.0048
Problem:  Autocmds triggered from opening the cmdwin (in win_split and
          do_ecmd) can cause issues such as E199, as the current checks
          are insufficient.
Solution: Commands executed from the cmdwin apply to the old curwin/buf, so
          they should be kept in a "suspended" state; abort if they've
          changed. Also abort if cmdwin/buf was tampered with, and check that
          curwin is correct. Try to clean up the cmdwin buffer (only if hidden
          and non-current to simplify things; the same approach is used when
          closing cmdwin normally), and add a beep. (Sean Dewar)

Patch 9.1.0049
Problem:  E95 is possible if a buffer called "[Command Line]" already exists
          when opening the cmdwin. This can also happen if the cmdwin's buffer
          could not be deleted when closing.
Solution: Un-name the cmdwin buffer, and give it a special name instead,
          similar to what's done for quickfix buffers and for unnamed prompt
          and scratch buffers. As a result, BufFilePre/Post are no longer
          fired when opening the cmdwin. Add a "command" key to the dictionary
          returned by getbufinfo() to differentiate the cmdwin buffer instead.
          (Sean Dewar)

Patch 9.1.0050
Problem:  Win32 Keyboard handling is sub-optimal and has many issues with
          international keyboards (risa2000) (after v8.2.4807)
Solution: soft-rollback the change, allow the user to select a suitable
          key-translation strategy (Anton Sharonov)

Patch 9.1.0051
Problem:  MS-Windows: Key event test fail (after 9.1.0050)
Solution: Catch Interrupt and return Ctrl-C

Patch 9.1.0052
Problem:  Patch 9.1.0041 causes regressions for users (Gleb
          Fotengauer-Malinovskiy)
Solution: Revert 9.1.0041 and restore old behaviour

Patch 9.1.0053
Problem:  MS-Windows: Key event test still fails
Solution: Catch more interrupts (after 9.1.0051)

Patch 9.1.0054
Problem:  'linebreak' may still apply to leading whitespace (VanaIgr)
Solution: Compare pointers instead of virtual columns (zeertzjq).

Patch 9.1.0055
Problem:  formatting long lines is slow (kawaii-Code)
Solution: optimize gq (internal_format) for long lines (kawaii-Code)

Patch 9.1.0056
Problem:  Incorrect number of trailing spaces inserted for multibyte
          characters when pasting a blockwise register in blockwise visual
          mode (VanaIgr)
Solution: Skip over trailing UTF-8 bytes when computing the number of trailing
          spaces (VanaIgr)

Patch 9.1.0057
Problem:  MS-Windows: Key event test still fails
Solution: Skip testing CTRL-C, since it causes an Interrupt which causes a
          test failure (after 9.1.0053)

Patch 9.1.0058
Problem:  Cannot map Super Keys in GTK UI (Casey Tucker)
Solution: Enable Super Key mappings in GTK using <D-Key> (Casey Tucker)

Patch 9.1.0059
Problem:  No event is triggered before creating a window
Solution: Add the WinNewPre event (Sergey Vlasov).

Patch 9.1.0060
Problem:  Recorded register cannot be translated using keytrans() when it
          involves character search (iddqd505)
Solution: Record a K_IGNORE instead of a K_NOP (zeertzjq).

Patch 9.1.0061
Problem:  UX of visual highlighting can be improved
Solution: Improve readibility of visual highlighting, by setting better
          foreground and background colors

Patch 9.1.0062
Problem:  Internal error when :luado/perldo/pydo etc delete lines
Solution: Test that the line is still valid line number (zeertzjq).

Patch 9.1.0063
Problem:  GTK code can be improved
Solution: Improve GTK code for initial Wayland support (lilydjwg).

Patch 9.1.0064
Problem:  No Wayland support
Solution: Add Wayland UI support (lilydjwg).

Patch 9.1.0065
Problem:  Segfault with CompleteChanged autocommand (markonm)
Solution: Test match->cp_prev for being NULL before accessing it

Patch 9.1.0066
Problem:  gcc complains about use of uninitialized var (Tony Mechelynck, after
          9.1.0064)
Solution: initialize button to silence gcc

Patch 9.1.0067
Problem:  gcc still complains about use of uninitialized var (Tony Mechelynck,
          after 9.1.0064/9.1.0066)
Solution: This time init the correct variable

Patch 9.1.0068
Problem:  Visual highlighting can still be improved
Solution: Update Visual highlighting for 8 color terminals, use uniform grey
          highlighting for dark and light bg (Maxim Kim)

Patch 9.1.0069
Problem:  ScreenLines may not be correctly initialized, causing hang
          (Olaf Seibert, after 9.0.0220)
Solution: always initialize ScreneLines when allocating a screen (Olaf
          Seibert)

Patch 9.1.0070
Problem:  CI: testsuite not run on M1 Mac
Solution: Make it run on gh runners for M1, disable failing tests for now,
          until we figure the problem with the failings tests out (rhysd)

Patch 9.1.0071
Problem:  Need a diff() MNV script function
Solution: Add the diff() MNV script function using the xdiff internal diff
          library, add support for "unified" and "indices" mode (Yegappan
          Lakshmanan).

Patch 9.1.0072
Problem:  Not able to build without FEAT_DIFF (John Marriott, after 9.1.0071)
Solution: Adjust #ifdefs (Yegappan Lakshmanan)

Patch 9.1.0073
Problem:  Looping over modifier_keys_table[] unnecessarily with only
          MOD_MASK_ALT or MOD_MASK_CMD, as modifier_keys_table[] only contains
          MOD_MASK_SHIFT and MOD_MASK_CTRL, and the loop won't do anything.
Solution: Remove MOD_MASK_ALT and MOD_MASK_CMD from the condition (zeertzjq).

Patch 9.1.0074
Problem:  did_set_breakat() should be in optionstr.c as 'breakat' is a string
          option.
Solution: Move did_set_breakat() to optionstr.c (zeertzjq).

Patch 9.1.0075
Problem:  insert completion not correct when adding new leader
Solution: Reset compl_curr_match to compl_shown_match (glepnir).

Patch 9.1.0076
Problem:  luau config file not detected (lopy)
Solution: Detect it as jsonc (lopy)

Patch 9.1.0077
Problem:  The call to redraw_for_cursorline() in nv_mousescroll() is
          unnecessary because redraw_for_cursorline() only sets redraw type to
          UPD_VALID, and all code paths in do_mousescroll() already set redraw
          type to at least UPD_VALID.
Solution: Remove call to redraw_for_cursorline() in nv_mousescroll()
          (zeertzjq).

Patch 9.1.0078
Problem:  GTK3: using wrong style for pre-edit area
Solution: remove the widget name, adjust css (lilydjwg).

Patch 9.1.0079
Problem:  LineNrAbove and LineNrBelow background wrong on wrapped lines.
Solution: Update number column also for wrapped part of a line (zeertzjq).

Patch 9.1.0080
Problem:  unexpected error for modifying final list using += operator
          (Ernie Rael)
Solution: Allow List value modification of a final variable using +=
          operator (Yegappan Lakshmanan)

Patch 9.1.0081
Problem:  X11 mouse-scrolling stutters (Ron Aaron, after 9.1.0064)
Solution: Handle GDK_SCROLL_SMOOTH fractional distance events
          (lilydjwg)

Patch 9.1.0082
Problem:  Redrawing can be improved when deleting lines with 'cursorline'.
Solution: Use smarter invalidation and adjustment.  Remove unnecessary
          UPD_VALID as it is already set at the top of the loop.  Make the
          test for #4862 fail without the fix (zeertzjq).

Patch 9.1.0083
Problem:  Redrawing can be improved when inserting/deleting lines with
          'number'.
Solution: Only redraw the number column of lines below changed lines. Add a
          test as this wasn't previously tested (zeertzjq).

Patch 9.1.0084
Problem:  Visual hl wrong when it ends before multibyte 'showbreak' (lacygoil)
Solution: Use vcol_sbr instead of adding n_extra (zeertzjq).

Patch 9.1.0085
Problem:  X11 scroll size changes after accessing clipboard (Ernie Rael)
Solution: use GDK_SCROLL_MASK for X11 and GDK_SMOOTH_SCROLL_MASK for
          Wayland (lilydjwg).

Patch 9.1.0086
Problem:  Problem when scrolling using slow touchpads scroll event
Solution: Better ways to determine if a smooth scroll has ended (when
          available) (lilydjwg).

Patch 9.1.0087
Problem:  Restore lastused_tabpage too early in do_arg_all() function it
          will change later in the function.
Solution: Restore lastused_tabpage a bit later, when being done with
          tabpages (glepnir).

Patch 9.1.0088
Problem:  TextChanged not triggered for :norm! commands (machakann, after
          v9.0.2031)
Solution: Only reset curbuf->b_last_changedtick if TextChangedI was triggered
          in insert mode (and not blocked)

Patch 9.1.0089
Problem:  qsort() comparison functions should be transitive
Solution: Do not subtract values, but rather use explicit comparisons
          Improve qsort() comparison functions

Patch 9.1.0090
Problem:  Assigning wrong colors when parsing terminal OSC response
Solution: Correctly assign Green and Blue from the terminal response
          (Maxim Kim)

Patch 9.1.0091
Problem:  Syntax test fails when run with non C locale
Solution: Run syntax tests with C locale, clean up Xtestscript file,
          strip environment variables from GetMNVCommand() (h-east).

Patch 9.1.0092
Problem:  Compiler warning for missing type in scroll_event() (chdiza)
Solution: Declare display_type explicitly as integer

Patch 9.1.0093
Problem:  Still a qsort() comparison function fuzzy_match_item_compare()
          that returns result of subtraction (after 9.1.0089).
Solution: Use an explicit comparison instead of subtraction (zeertzjq).

Patch 9.1.0094
Problem:  xxd: buffer-overflow when writing color output
Solution: properly account for the color escape sequences and adjust LLEN
          macro (Goffredo Baroncelli)

Patch 9.1.0095
Problem:  tests: test_restricted() fails (after: v9.1.0091)
Solution: Add a space before the pipecmd and the actual MNV command to run

Patch 9.1.0096
Problem:  diff() function uses 'diffexpr' (rickhowe)
Solution: Make diff() always use internal diff(), add support for unified diff
          context length, sort diff() options in help (Yegappan Lakshmanan)

Patch 9.1.0097
Problem:  'breakindent' behaves inconsistently with 'list' and splits.
Solution: Use 'listchars' from the correct window and handle caching properly.
          Move cheaper comparisons to the top (zeertzjq).

Patch 9.1.0098
Problem:  CompletionChanged not triggered when new leader added causing
          no matching item in the completion menu
Solution: When completion is active but no items matched still trigger
          CompletChanged event (glepnir).

Patch 9.1.0099
Problem:  Not able to use diff() with 'diffexpr' (rickhowe, after v9.1.0096)
Solution: Use a default context length of 0, update diff() help text,
          add a test for using diff() with 'diffexpr' (Yegappan Lakshmanan).

Patch 9.1.0100
Problem:  When undoing with 'spell', redrawWinline() is called after
          changed_lines(), while later win_update() sets redraw type to
          UPD_NOT_VALID, even though w_redraw_top and w_redraw_bot are
          still valid.
Solution: Only set redraw type to UPD_NOT_VALID when inserting/deleting
          lines after parts of window has pending redraw, i.e., when
          changed_lines() is called after redrawWinline() (zeertzjq).

Patch 9.1.0101
Problem:  upper-case of ß should be U+1E9E (CAPITAL LETTER SHARP S)
          (fenuks)
Solution: Make gU, ~ and g~ convert the U+00DF LATIN SMALL LETTER SHARP S (ß)
          to U+1E9E LATIN CAPITAL LETTER SHARP S (ẞ), update tests
          (glepnir)

Patch 9.1.0102
Problem:  settabvar() may change the last accessed tabpage.
Solution: Save and restore lastused_tabpage (zeertzjq).

Patch 9.1.0103
Problem:  'breakindentopt' "min" works incorrectly with 'signcolumn'.
Solution: Use win_col_off() and win_col_off2() (zeertzjq).

Patch 9.1.0104
Problem:  Linking fails with -lto because of PERL_CFLAGS (Zoltan Toth)
Solution: Filter out -flto argument from Perl CFLAGS.

Patch 9.1.0105
Problem:  Style: typos found
Solution: correct them (zeertzjq).

Patch 9.1.0106
Problem:  Visual highlight hard to read with 'termguicolors' (Maxim Kim)
Solution: Set Visual GUI foreground to black (with background=light)
          and lightgrey (with background=dark) (Maxim Kim).

Patch 9.1.0107
Problem:  CI: Fix MacOS-14 tests (after 9.1.0070)
Solution: Re-enable sound tests by granting Mic access, disable
          Test_diff_screen because of buggy MacOS diff (non GNU version),
          re-enable Test_term_gettitle() (Yee Cheng Chin)

Patch 9.1.0108
Problem:  filetype: no support for dtso files
Solution: Add detection for *.dtso files as dts file type (Markus
          Schneider-Pargmann)

Patch 9.1.0109
Problem:  filetype: no support for its files
Solution: Add detection for *.its files as dts file type (Brandon Maier)

Patch 9.1.0110
Problem:  No support for Config.in filetype
Solution: filetype: add 'Config.in' filetype detection

Patch 9.1.0111
Problem:  filetype: no support for bats files
Solution: Add .bats filetype support

Patch 9.1.0112
Problem:  When the quickfix buffer has been modified an autocommand may
          invalidate the undo stack (kawarimidoll)
Solution: When clearing the quickfix buffer, also wipe the undo stack

Patch 9.1.0113
Problem:  duplicate code when cleaning undo stack
Solution: refactor undo cleanup into a single public function

Patch 9.1.0114
Problem:  Setting some options changes curswant unnecessarily.
Solution: Add a P_HLONLY flag that prevents changing curswant (zeertzjq).

Patch 9.1.0115
Problem:  Using freed memory with full tag stack and user data
          (Konstantin Khlebnikov)
Solution: Clear the user data pointer of the newest entry (zeertzjq,
          Konstantin Khlebnikov).

Patch 9.1.0116
Problem:  win_split_ins has no check for E36 when moving an existing
          window
Solution: check for room and fix the issues in f_win_splitmove()
          (Sean Dewar)

Patch 9.1.0117
Problem:  win_splitmove fires WinNewPre and possibly WinNew when moving
           windows, even though no new windows are created.
Solution: Don't fire WinNew and WinNewPre when inserting an existing window,
          even if it isn't the current window. Improve the accuracy of related
          documentation. (Sean Dewar)

Patch 9.1.0118
Problem:  saving and restoring all frames to split-move is overkill now
          that WinNewPre is not fired when split-moving.
Solution: defer the flattening of frames until win_split_ins begins
          reorganising them, and attempt to restore the layout by undoing our
          changes. (Sean Dewar)

Patch 9.1.0119
Problem:  can switch windows while textlocked via f_win_gotoid and
          f_win_splitmove (which also allows switching in the cmdwin).
Solution: Check text_or_buf_locked in f_win_splitmove() (Sean Dewar)

Patch 9.1.0120
Problem:  hard to get visual region using MNV script
Solution: Add getregion() MNV script function (Shougo Matsushita, Jakub
          Łuczyński)

Patch 9.1.0121
Problem:  infinite loop in win_update with 'smoothscroll' set when
          window width is equal to textoff, or signed integer overflow
          if smaller.
Solution: Don't revalidate wp->w_skipcol in that case, as no buffer text
          is being shown. (Sean Dewar)

Patch 9.1.0122
Problem:  Some minor issues with the getregion() function
Solution: Fix examples in the help, use OP_NOP op_type and MBLOCK
          as motion_type in f_getreg(), update mnv syntax to for getregion()
          (Maxim Kim)

Patch 9.1.0123
Problem:  MS-Windows: system() may deadlock when calling binaries that
          expect stdin
Solution: Ignore the SHELL_EXPAND flag (GuyBrush)

Patch 9.1.0124
Problem:  Virtual text with text_align 'right'/'below' wasn't being used when
          a non-virtual text property overlaps with the end of the line. This
          was because the non-virtual text property had a higher priority,
          preventing the virtual text from being used.
Solution: Fix the sorting of text properties so virtual text properties have a
          higher priority than non-virtual text properties (Dylan
          Thacker-Smith).

Patch 9.1.0125
Problem:  unused init of text_prop_idxs in win_line
Solution: Remove it, fix typo (Dylan Thacker-Smith).

Patch 9.1.0126
Problem:  Internal error when passing mark in another buffer to getregion().
Solution: Don't allow marks in another buffer (zeertzjq)

Patch 9.1.0127
Problem:  Naming a non-pointer variable "oap" is strange.
Solution: Rename it to "oa". Also prevent using freed memory in case of memory
          allocation failure (zeertzjq).

Patch 9.1.0128
Problem:  win_gotoid() checks for textlock and other things when switching
          to a window that is already current (after v9.1.0119)
Solution: return early with success when attempting to switch to curwin
          (Sean Dewar)

Patch 9.1.0129
Problem:  Virtual text with text_wrap 'wrap' was effectively being truncated
          by a break conditional on the EOL list character being added to the
          screen line. (BigPeet)
Solution: Remove the condition that was leading to the early break and instead
          fix a similar but incorrectly written outer condition that checks if
          there is more to add at the end of the screen line. (Dylan
          Thacker-Smith)

Patch 9.1.0130
Problem:  heap-use-after-free in win_splitmove if Enter/Leave autocommands
          from win_split_ins immediately closes "wp".
Solution: check that "wp" is valid after win_split_ins (Sean Dewar).

Patch 9.1.0131
Problem:  buffer-completion code too complicated and does not always find all
          matches (irisjae)
Solution: do not try to anchor pattern to beginning of line or
          directory-separator, always return all matches

Patch 9.1.0132
Problem:  using "C" and 've=all' set, doesn't include composing chars when
          changing a line, keeps the composing chars for whatever is typed
          afterwards.
Solution: Use mb_head_off() and mb_ptr2len() instead of mb_tail_off().
          (zeertzjq)

Patch 9.1.0133
Problem:  font ligatures don't render correctly in the Win32 GUI-version of
          gmnv even when set rop=type:directx is used. Setting guiligatures
          also doesn't make any difference. This leads to broken font
          ligatures when the cursor passes through them. It does not recover
          from this, and they remain broken until you re-render the whole
          buffer (e.g. by using Ctrl+L).
Solution: The problem is that we only re-draw the current and previous
          character in gui_undraw_cursor() and only have the special case for
          GTK when it comes to rendering ligatures. So let's enable
          gui_adjust_undraw_cursor_for_ligatures() to also happen for Win32
          GUI if guiligatures is setup correctly (all this does is expand the
          range of gui_undraw_cursor() with ligature characters).

Patch 9.1.0134
Problem:  Test_term_gettitle() is flaky on MacOS 14 and Github runners
Solution: Skip the test on Github CI

Patch 9.1.0135
Problem:  Insufficient testing for 'delcombine'.
Solution: Add test for both Normal and Insert modes without Arabic (zeertzjq).

Patch 9.1.0136
Problem:  MNV9: need more test for exists()
Solution: Add test for exists() with class/objct variables and methods
          (Yegappan Lakshmanan)

Patch 9.1.0137
Problem:  <Del> in cmdline mode doesn't delete composing chars
Solution: Use mb_head_off() and mb_ptr2len() (zeertzjq).

Patch 9.1.0138
Problem:  too many STRLEN calls when getting a memline
Solution: Optimize calls to STRLEN(), add a few functions in memline.c
          that return the byte length instead of relying on STRLEN() (John
          Marriott).

Patch 9.1.0139
Problem:  MS-Windows: ligatures map cleared on startup
Solution: Don't clear the ligatures_map, if the guiligatures option has
          already been set (Erik S. V. Jansson)

Patch 9.1.0140
Problem:  The cursor screen row was incorrectly being calculated when the
          cursor follows a 1 character text_align 'below' virtual text line,
          resulting in the cursor being shown on the wrong line. This was
          caused by a cell size of 2 instead of 1 being used for the EOL
          character, which propagated to the calculation of space for putting
          the 'below' virtual text on its own line. (rickhowe)
Solution: Fix the size used for the EOL character in calculating the cursor's
          screen position (Dylan Thacker-Smith).

Patch 9.1.0141
Problem:  Put in Visual mode wrong if it replaces fold marker.
Solution: Temporarily disable folding during put in Visual mode (zeertzjq).

Patch 9.1.0142
Problem:  getregion() can be improved (after v9.1.120)
Solution: change getregion() implementation to use pos as lists and one
          optional {opt} dictionary (Shougo Matsushita)

Patch 9.1.0143
Problem:  [security]: autocmd cause use-after-free in set_curbuf()
          (kawarimidoll)
Solution: check side-effect of BufLeave autocommand, when the number
          of windows changed, close windows containing buffers that will
          be wiped, if curbuf changed unexpectedly make sure b_nwindows
          is decremented otherwise it cannot be wiped

Patch 9.1.0144
Problem:  getregion() needs more tests
Solution: Run the getregion() test in both the legacy and MNV9 contexts
          (Yegappan Lakshmanan)

Patch 9.1.0145
Problem:  the amount of available space (v:echospace) on the command line is
          not correct when showcmdloc is drawn into the statusline or tabline.
Solution: only add SHOWCMD_COLS to the shown command column when 'showcmdloc'
          is set to last (Sam-programs)

Patch 9.1.0146
Problem:  v:echospace wrong after setting invalid value to 'showcmdloc'.
Solution: Only call comp_col() if value is valid (zeertzjq).

Patch 9.1.0147
Problem:  Cannot keep a buffer focused in a window (Amit Levy)
Solution: Add the 'winfixbuf' window-local option (Colin Kennedy).

Patch 9.1.0148
Problem:  MNV9: can't call internal methods with objects
Solution: Add support for empty(), len() and string() function calls for
          objects (Yegappan Lakshmanan)

Patch 9.1.0149
Problem:  qf_goto_win_with_qfl_file may check if prevwin has 'winfixbuf'
          set without checking if it's valid first.
Solution: Reverse the condition. Add a test, a modeline, and a missing
          CheckFeature. (Searn Dewar)

Patch 9.1.0150
Problem:  several minor 'winfixbuf' issues exist, mostly relating to the
          quickfix list
Solution: address them and adjust tests. Retab and reflow a few things too.
          (Sean Dewar)

Patch 9.1.0151
Problem:  ml_get_buf_len() does not consider text properties (zeertzj)
Solution: Store text length excluding text properties length
          in addition in the memline

Patch 9.1.0152
Problem:  Coverity complains about ignoring return value of win_split()
          (after v9.1.150)
Solution: Check if win_split() failed, add winfixbuf.res to Makefile

Patch 9.1.0153
Problem:  Text properties corrupted with fo+=aw and backspace
Solution: Allocate line and move text properties (zeertzjq).

Patch 9.1.0154
Problem:  shm=F not respected when reloading buffer with 'autoread'
Solution: Check SHM_FILEINFO in buf_check_timestamp() (Shougo Matsushita).

Patch 9.1.0155
Problem:  can only call getregion() for current buffer
Solution: Allow to retrieve selections from different buffers (Shougo
          Matsushita).

Patch 9.1.0156
Problem:  may not be clear why failing to split causes an ":Xdo" command to
          abort if 'wfb' is set.
Solution: Do not return immediately if win_split fails, so E1513 is still
          given. Expect both errors in the test. Also fix tests to pass CI
          (Sean Dewar).

Patch 9.1.0157
Problem:  Duplicate assignment in f_getregion().
Solution: Remove the duplicate assignment.  Also improve getregion() docs
          wording and fix an unrelated typo (zeertzjq).

Patch 9.1.0158
Problem:  'shortmess' "F" flag doesn't work properly with 'autoread'
          (after 9.1.0154)
Solution: Hide the file info message instead of the warning dialog
          (zeertzjq)

Patch 9.1.0159
Problem:  Crash in WinClosed after BufUnload closes other windows
Solution: Don't trigger WinClosed if the buffer is NULL (zeertzjq).


Patch 9.1.0160
Problem:  Add support for using a class type of itself in an object method
          (thinca)
Solution: MNV9: Add support for using a class type of itself in an
          object method (Yegappan Lakshmanan)

Patch 9.1.0161
Problem:  expand() removes a slash after an environment variable that ends
          with a colon on Windows.
Solution: Check the correct char for a colon (zeertzjq)

Patch 9.1.0162
Problem:  Problem with writing extended attributes on failure
Solution: Change return type to ssize_t and check listxattr's return
          value correctly on failure (Paul Tagliamonte)

Patch 9.1.0163
Problem:  Calling STRLEN() to compute ml_line_textlen when not needed.
Solution: Use 0 when STRLEN() will be required and call STRLEN() later.
          (zeertzjq)

Patch 9.1.0164
Problem:  Internal error or crash when passing invalid position to
          getregion().
Solution: Give an error for invalid position (zeertzjq).

Patch 9.1.0165
Problem:  MNV9: Importing an autoload imported script fails
          (Song-Tianxiang)
Solution: Return the script ID in this case (Yegappan Lakshmanan).

Patch 9.1.0166
Problem:  Internal error with blockwise getregion() in another buffer
Solution: Also change curwin->w_buffer when changing curbuf (zeertzjq).

Patch 9.1.0167
Problem:  Changing buffer in another window using win_execute() causes
          it to show matchparen (after 9.0.0969).
Solution: Delay highlighting with SafeState in BufWinEnter (zeertzjq).

Patch 9.1.0168
Problem:  too many STRLEN() calls
Solution: Make use of ml_get_len() calls instead (John Marriott).

Patch 9.1.0169
Problem:  current window number returned by tabpagewinnr may be outdated when
          called from win_execute for the original tabpage.
Solution: update the original tabpage's tp_curwin in switch_win; use
          {un}use_tabpage instead. Don't do it in restore_win to ensure
          tp_curwin of the temporarily visited tabpage is unchanged from
          switch_win visiting it, as before. (Sean Dewar)

Patch 9.1.0170
Problem:  more places exist where curwin == prevwin, and it may even be
          expected in some cases.
Solution: revert v9.1.0001, but document that it's possible instead.
          (Sean Dewar)

Patch 9.1.0171
Problem:  small improvements can be made to split-move related functions.
Solution: apply them (Sean Dewar):

Patch 9.1.0172
Problem:  More code can use ml_get_buf_len() instead of STRLEN().
Solution: Change more STRLEN() calls to ml_get_buf_len().  Also do not
          set ml_line_textlen in ml_replace_len() if "has_props" is set,
          because "len_arg" also includes the size of text properties in
          that case (zeertzjq).

Patch 9.1.0173
Problem:  msgfmt ver. 0.22 forcibly converts text to UTF-8
Solution: use '--no-convert' if msgfmt supports it. Add a configure
          check for the msgfmt version (RestorerZ).

Patch 9.1.0174
Problem:  'cursorline' and 'wincolor' highlight missing with concealed and
          wrapped lines.
Solution: Apply 'cursorline' and 'wincolor' highlight to boguscols.
        (zeertzjq)

Patch 9.1.0175
Problem:  winframe functions incorrectly recompute window positions if
          the altframe wasn't adjacent to the closed frame, which is
          possible if adjacent windows had 'winfix{width,height}' set.
Solution: recompute for windows within the parent of the altframe and
          closed frame. Skip this (as before) if the altframe was
          top/left, but only if adjacent to the closed frame, as
          positions won't change in that case. Also correct the return
          value documentation for win_screenpos. (Sean Dewar)

Patch 9.1.0176
Problem:  Cursor column wrong with 'virtualedit' and conceal.
Solution: Correct cursor column at end of line if never reached (zeertzjq).

Patch 9.1.0177
Problem:  Coverity reports dead code.
Solution: Remove the dead code. Also fix a mistake in ml_get_pos_len()
          and update some comments (zeertzjq).

Patch 9.1.0178
Problem:  E1513 might be confusing (Christoph Thoma)
Solution: Reword error message, fix test to not depend on the actual message.

Patch 9.1.0179
Problem:  'wincolor' highlight missing with "below" virtual text.
Solution: Subtract n_attr_skip from n_attr.  Combine 'wincolor' with other
          highlights when 'nowrap' is set (zeertzjq).

Patch 9.1.0180
Problem:  Cursor pos wrong when double-width chars are concealed.
Solution: Advance one more virtual column for a double-width char. Run some
          tests with both 'wrap' and 'nowrap' (zeertzjq).

Patch 9.1.0181
Problem:  no overflow check for string formatting
Solution: Check message formatting function for overflow (Chris van Willegen).

Patch 9.1.0182
Problem:  Can define function with invalid name inside 'formatexpr'.
Solution: Use goto instead of checking for did_emsg later (zeertzjq).

Patch 9.1.0183
Problem:  Wrong display or screenpos() result when toggling diff mode.
Solution: Reset w_skipcol when disabling 'wrap'.  Reset w_leftcol when
          enabling 'wrap' (zeertzjq).

Patch 9.1.0184
Problem:  Cursor position wrong when clicking with conceal and wrap.
Solution: Use the virtual column of the last char for ScreenCols[] in
          boguscols.  Remove use of MAXCOL in ScreenCols[].  Rename
          third argument of wlv_screen_line() to "clear_end" as that's
          clearer what it does (zeertzjq).

Patch 9.1.0185
Problem:  'wincolor' highlight missing with 'rightleft', "below" virtual
          text and 'nowrap'.
Solution: Handle 'rightleft' in draw_screen_line() (zeertzjq).

Patch 9.1.0186
Problem:  Wrong cursor position when clicking after end of line with
          'rightleft', 'virtualedit' and conceal.
Solution: Set values in ScreenCols[] also with SLF_RIGHTLEFT.  Also fix
          off-by-one cursor position with 'colorcolumn' (zeertzjq).

Patch 9.1.0187
Problem:  Dafny files are not recognized.
Solution: Recognize *.dfy files as filetype "dafny" (zeertzjq).

Patch 9.1.0188
Problem:  Vento files are not recognized.
Solution: Recognize *.vto files as filetype "vento" (wrapperup)

Patch 9.1.0189
Problem:  Memory leak with "above" virtual text and 'relativenumber'.
Solution: Free "text_props" and "text_prop_idxs" before returning.
          Also fix off-by-one error causing line number to be drawn
          beyond end of window (zeertzjq).

Patch 9.1.0190
Problem:  complete_info() returns wrong order of items (after v9.0.2018)
Solution: Revert Patch v9.0.2018 (Girish Palya)

Patch 9.1.0191
Problem:  Installer does not remove all files
Solution: Update installer and delete all files on uninstall update Sodium
          library dependency, update Readme (RestorerZ)

Patch 9.1.0192
Problem:  :drop tries to :rewind the argumentlist, which results in E37
          (after v9.1.0046)
Solution: Instead of calling ex_rewind(), call open_buffer() only when
          re-using the initial empty buffer

Patch 9.1.0193
Problem:  May leak memory in completion when ga_grow() fails.
Solution: Free "wca" when ga_grow() fails (zeertzjq).

Patch 9.1.0194
Problem:  gcc complains about uninitialized var (Tony Mechelynck)
Solution: Initialize to NULL

Patch 9.1.0195
Problem:  memleak with ex_drop(), NULL dereference (zeertzjq)
Solution: Revert back to ex_rewind(), use curbuf instead of buf

Patch 9.1.0196
Problem:  filetype: support for gnuplot files is lacking
Solution: Also detect *.gnuplot files (RobbiZ98).

Patch 9.1.0197
Problem:  MNV9: problem evaluating negated boolean logic (lxhillwind)
Solution: Don't clear the first value on short circuit evaluation
          (Yegappan Lakshmanan)

Patch 9.1.0198
Problem:  MNV9: compound operators broken for lambdas in an object
          (girishji)
Solution: When using an object from the outer scope, use the LOADOUTER
          instruction to load the object (Yegappan Lakshmanan).

Patch 9.1.0199
Problem:  Not enough tests for the slice() function.
Solution: Test with multibyte chars, and in both Legacy and MNV9 script.
          Update docs to be clearer about how it treats composing chars
          (zeertzjq).

Patch 9.1.0200
Problem:  `gj`/`gk` was updating the desired cursor virtual column to
          the outer virtual text, even though the actual cursor position
          was moved to not be on the virtual text, leading the need to
          do an extra `gj`/`gk` to move past each virtual text line (rickhowe).
Solution: Exclude the outer virtual text when getting the line length
          for moving the cursor with `gj`/`gk`, so that no extra movement is
          needed to skip over virtual text lines (Dylan Thacker-Smith).

Patch 9.1.0201
Problem:  `gM` would include outer virtual text and its padding when
          getting the line length used to calculate the middle of the
          line, putting the cursor much closer to virtual text lines.
Solution: Exclude outer virtual text in getting the line length for
          `gM`, so that virtual text doesn't influence where the cursor
          is moved to (Dylan Thacker-Smith).

Patch 9.1.0202
Problem:  leaking memory in add_user() (LuMingYinDetect)
Solution: Free user_copy pointer instead of the user ptr

Patch 9.1.0203
Problem:  build-error on GNU HURD
Solution: Define _XOPEN_SOURCE like for Android and Cygwin
          (James McCoy)

Patch 9.1.0204
Problem:  Backspace inserts spaces with virtual text and 'smarttab'.
Solution: Ignore virtual text and wrapping when backspacing (zeertzjq).

Patch 9.1.0205
Problem:  Cannot use modifiers before :-Ntabmove.
Solution: Check backwards from the command instead of checking from the start
          of the command line. Slightly adjust docs to make them more
          consistent (zeertzjq).

Patch 9.1.0206
Problem:  unused display_text_first boolean var in win_line()
Solution: Remove unused display_text_first boolean variable
          (Dylan Thacker-Smith)

Patch 9.1.0207
Problem:  No autocommand when writing session file
Solution: Add SessionWritePost autocommand (Colin Kennedy).

Patch 9.1.0208
Problem:  winfixbuf does not allow to re-edit current buffer
          (Tim Pope, after v9.1.0147)
Solution: Explicitly allow :e even when 'winfixbuf' is set,
          since it just re-loads the current buffer (Colin Kennedy).

Patch 9.1.0209
Problem:  leaking memory in exe_newdict() on error (LuMingYinDetect)
Solution: free allocated dict if GA_GROW_FALIS()

Patch 9.1.0210
Problem:  Motif: leaking memory when mui_mch_dialog() fails (LuMingYinDetect)
Solution: When allocating the label using the XmStringCreateLtoR()
          function fails, before returning also free the allocated
          buttons pointer.

Patch 9.1.0211
Problem:  Page-wise scrolling with Ctrl-F/Ctrl-B implements it's own logic to
          change the topline and cursor. In doing so, skipcol is not handled
          properly for 'smoothscroll', and virtual lines.
Solution: Re-use the logic from Ctrl-E/Ctrl-Y while staying backward
          compatible as much as possible.

Patch 9.1.0212
Problem:  CI: MS-Windows fails in test_winfixbuf (after v9.1.208)
Solution: Skip Ms-Windows for now, fix style

Patch 9.1.0213
Problem:  CI: MS-Windows fails in test_winfixbuf (after v9.1.208)
Solution: Instead of skipping the test, write the file so it exists on disk,
          to verify that MS-Windows short filename expansion is successful.
          (Sean Dewar)

Patch 9.1.0214
Problem:  Duplicate condition in win_lbr_chartabsize().
Solution: Remove the duplicate condition, as it's already checked above.
          (zeertzjq)

Patch 9.1.0215
Problem:  Page-wise scrolling with Ctrl-D/Ctrl-U implements
          it's own logic to change the topline and cursor.
          More logic than necessary for scrolling with Ctrl-F/Ctrl-B
          was removed in Patch 9.1.0211.
Solution: Re-use the logic from Ctrl-E/Ctrl-Y/Ctrl-F/Ctrl-B while
          staying backward compatible as much as possible.
          Restore some of the logic that determined how many lines will
          be scrolled (Luuk van Baal)

Patch 9.1.0216
Problem:  Error on exit with EXITFREE and 'winfixbuf'.
Solution: Handle DT_FREE before checking for 'winfixbuf' (zeertzjq).

Patch 9.1.0217
Problem:  regexp: verymagic cannot match before/after a mark
Solution: Correctly check for the very magic check (Julio B)

Patch 9.1.0218
Problem:  Unnecessary multiplications in backspace code, as "col / ts * ts" is
          the same as "col - col % ts".
Solution: Change "col / ts * ts" to "col - col % ts".  Adjust the loop
          and the comments ins_bs() to be easier to understand.  Update
          tests to reset 'smarttab' properly (zeertzjq).

Patch 9.1.0219
Problem:  No enum support
Solution: Implement enums for MNV9 script (Yegappan Lakshmanan)

Patch 9.1.0220
Problem:  Typos in code and tests.
Solution: Fix typos (zeertzjq).

Patch 9.1.0221
Problem:  The if branch to set `text_prop_follows` was both checking if
          it was at the end of the buffer text line or if it was at the
          end of the screen line, but the former being true skipped
          a guard condition in the latter to only consider 'below'
          virtual text to follow. `text_prop_follows` being improperly
          set caused it to skip a conditional block to break at the end
          as well as one to move `ptr` to the end of the text line,
          while repeated for each following line of the window.
Solution: Move the check for whether 'below' virtual text should follow
          so it is also used when at the end of the buffer text line.
          (Dylan Thacker-Smith)

Patch 9.1.0222
Problem:  When a line is truncated just before 'after'/'right' virtual
          text and the line also has 'below' virtual text, then the
          'below' virtual text would not be displayed, depending on the
          order these text properties were added.
Solution: In the loop to make text properties active, skip instead of
          break for 'after'/'right' virtual text properties that are
          ignored due to truncation, so following 'below' text properties can
          still be made active. Similarly, a loop is needed to determine if a
          text property follows at the end of the screen. (Dylan
          Thacker-Smith)

Patch 9.1.0223
Problem:  There are two dense conditions with duplication that needs to
          be kept in sync between the while loop break condition and the
          condition to skip certain text properties.
Solution: Refactor the loop by moving while loop conditions into the body of
          the while loop so they can be shared with skip conditions. `break`
          and an `active` variable are used to handle the outcome of these
          merged conditions (Dylan Thacker-Smith).

Patch 9.1.0224
Problem:  If a line has "right" & "below" virtual text properties, where the
          "below" property may be stored first due to lack of ordering between
          them, then the line height is calculated to be 1 more and causes the
          cursor to far over the line.
Solution: Remove some unnecessary setting of a `next_right_goes_below = TRUE`
          flag for "below" and "above" text properties. (Dylan Thacker-Smith)

Patch 9.1.0225
Problem:  test_matchparen not run in CI
Solution: add test_matchparen.res to NEW_TESTS_RES in Makefile, update changed
          highlighting dump from v9.1.61

Patch 9.1.0226
Problem:  Not able to assign enum values to an enum static variable
          (zzzyxwvut)
Solution: Make it work (Yegappan Lakshmanan)

Patch 9.1.0227
Problem:  Recording may still be wrong in Select mode (after 8.2.3993).
Solution: Make sure a character isn't split between two buffer blocks
          (zeertzjq).

Patch 9.1.0228
Problem:  Two unrelated things are tested by a single test.
Solution: Split it into two, restoring the old Test_brace_single_line().
          Add missing cleanup to some tests (zeertzjq).

Patch 9.1.0229
Problem:  Error E877 is not translated (RestorerZ)
Solution: Declare the error with N_ to mark it as translatable, add _()
          around the error message in regexp_nfa.c

Patch 9.1.0230
Problem:  TextChanged autocommand not triggered under some circumstances
          (Sergey Vlasov)
Solution: Trigger TextChanged when TextChangedI has not been triggered

Patch 9.1.0231
Problem:  Filetype may be undetected when a SwapExists autocommand sets
          filetype in another buffer.
Solution: Make filetype detection state buffer-specific.  Also fix a
          similar problem for 'modified' (zeertzjq).

Patch 9.1.0232
Problem:  Conceal test fails when rightleft feature is disabled.
Solution: Skip test if rightleft feature is missing (Julio B).

Patch 9.1.0233
Problem:  MNV9: string() output of enum is problematic
Solution: Make string() output for an enum consistent with that of a
          regular object (Yegappan Lakshmanan).

Patch 9.1.0234
Problem:  filetype: support for Intel HEX files is lacking
Solution: Add more file extensions that are typical for Intel HEX files
          (Wu, Zhenyu)

Patch 9.1.0235
Problem:  filetype: supertux files are not recognized
Solution: Supertux uses lisp to store hotkeys in config and game stage
          information, so add a pattern for supertux files (Wu, Zhenyu).

Patch 9.1.0236
Problem:  filetype: texlua files are not recognized
Solution: Add '*.tlu' pattern for texlua files (Wu, Zhenyu)

Patch 9.1.0237
Problem:  filetype: mplstyle files are not recognized
Solution: Detect '*.mplstyle' files as yaml (Wu, Zhenyu)

Patch 9.1.0238
Problem:  filetype: jupyterlab and sublime config are not recognized
Solution: Detect jupyterlab and sublime config files as json (Wu, Zhenyu).

Patch 9.1.0239
Problem:  filetype: gnuplot history files are not recognised
Solution: detect .gnuplot_history files as gnuplot (Wu, Zhenyu).

Patch 9.1.0240
Problem:  filetype: some python tools config files are not recognized
Solution: Detect config files for setuptools, pudb, coverage as dosini
          (Wu, Zhenyu)

Patch 9.1.0241
Problem:  filetype: mysql history files are not recognized
Solution: Detect .mysql_history as mysql (Wu, Zhenyu).

Patch 9.1.0242
Problem:  filetype: octave history files are not recognized
Solution: Detect octave/history files as octave (Wu, Zhenyu).

Patch 9.1.0243
Problem:  filetype: netrw history file is not recognized
Solution: Detect .netrwhist as mnv files (Wu, Zhenyu).

Patch 9.1.0244
Problem:  filetype: bash history files are not recognized
Solution: detect .bash-history and .bash_history files as bash (Wu, Zhenyu).

Patch 9.1.0245
Problem:  filetype: zsh theme, history and zunit files are not
          recognized.
Solution: Detect '.zsh_history', '*.zsh-theme' and '*.zunit' as zsh
          (Wu, Zhenyu)

Patch 9.1.0246
Problem:  filetype: fontconfig files are not recognized
Solution: detect 'fonts.conf' as xml (Wu, Zhenyu).

Patch 9.1.0247
Problem:  filetype: bundle config files are not recognized
Solution: Detect '*/.bundle/config' as yaml (Wu, Zhenyu).

Patch 9.1.0248
Problem:  filetype: yarn lock files are not recognized
Solution: Detect 'yarn.lock' files as yaml (Wu, Zhenyu).

Patch 9.1.0249
Problem:  filetype: rock_manifest and config.ld files are not recognized
Solution: Detect 'rock_manifest' and 'config.ld' as lua (Wu, Zhenyu).

Patch 9.1.0250
Problem:  filetype: ldscripts cannot be recognized
Solution: Detect '*/ldscripts/*' as ld (Wu, Zhenyu).

Patch 9.1.0251
Problem:  Filetype test fails.
Solution: Move detection by name before detection by extension.
          Improve TextChanged test and remove wrong test and fix
          a typo in a comment (zeertzjq).

Patch 9.1.0252
Problem:  MNV9: segfault with static in super class (Ernie Rael)
Solution: When initializing lhs, use the correct class where a class
          variable is defined (Yegappan Lakshmanan)

Patch 9.1.0253
Problem:  filetype: typespec files are not recognized
Solution: Detect '*.tsp' files as typespec (Hilmar Wiegand)

Patch 9.1.0254
Problem:  [security]: Heap buffer overflow when calling complete_add()
          in the first call of 'completefunc'
Solution: Call check_cursor() after calling 'completefunc' (zeertzjq).

Patch 9.1.0255
Problem:  MNV9: no indication of script nr in stack trace of classes
Solution: Prefix the class name with the script name in the stack trace.
          (Ernie Rael)

Patch 9.1.0256
Problem:  Finding autocmd events is inefficient
Solution: Use binary search to find events, cache last found events,
          avoid use of strlen(), add SessionWritePost autocmd, fix
          test_codestyle and avoid endless loop (John Marriott).

Patch 9.1.0257
Problem:  MNV9: :call may not find imported class members (mityu)
Solution: Set the typval of an imported lval variable correctly
          (Yegappan Lakshmanan)

Patch 9.1.0258
Problem:  Support for 'smoothscroll' in (half-)page scrolling
          broke backward compatibility and can be made to work better.
          (after v9.1.215)
Solution: Restore the previous cursor and end-of-buffer behavior for
          half-page scrolling and improve 'smoothscroll' support.
          (Luuk van Baal)

Patch 9.1.0259
Problem:  Normal mode TextChanged isn't tested properly.
Solution: Combine Test_Changed_ChangedI() and Test_Changed_ChangedI_2()
          and also run it on Windows. Fix a typo in main.c (zeertzjq).

Patch 9.1.0260
Problem: "zb" does not reveal filler lines at the start of a buffer.
         Scrolled cursor position with 'smoothscroll' is unpredictable,
         and may reset skipcol later if it is not visible (after v9.1.258)
Solution: Replace confusing for loop that reaches final control value too
          early with while loop. Set "w_curswant" accordingly so cursor
          will be placed in visible part of topline (Luuk van Baal).

Patch 9.1.0261
Problem:  MNV9: protected class and funcrefs accessible outside the class
          (Aliaksei Budavei)
Solution: Check if class and object funcrefs are protected
          (Yegappan Lakshmanan)

Patch 9.1.0262
Problem:  Test for TextChanged is flaky with ASAN.
Solution: Wait for the file to be non-empty (zeertzjq).

Patch 9.1.0263
Problem:  MNV9: Problem with lambda blocks in enums and classes
          (Aliaksei Budavei)
Solution: Support evaluating lambda blocks from a string, skip over
          comments (Yegappan Lakshmanan)

Patch 9.1.0264
Problem:  libgpm may delete some signal handlers
Solution: Restore these signal handlers after calling gpm (Julio B).

Patch 9.1.0265
Problem:  console dialog cannot save unnamed buffers
Solution: Set bufname before save (glepnir). Define dialog_con_gui
          to test for GUI+Console dialog support, use it to skip
          the test when the GUI feature has been defined.

Patch 9.1.0266
Problem:  filetype: earthfile files are not recognized
Solution: Detect 'Earthfile' as earthfile (Gaëtan Lehmann).

Patch 9.1.0267
Problem:  File name entered in GUI dialog is ignored (after v9.1.0265)
Solution: Only set file name to "Untitled" if GUI dialog didn't set it.
          (zeertzjq)

Patch 9.1.0268
Problem:  Two tests in test_filechanged.mnv are slow.
Solution: Sleep for shorter if the +nanotime feature is available (zeertzjq).

Patch 9.1.0269
Problem:  Test for TextChanged is still flaky with ASAN.
Solution: Don't index the result of readfile() (zeertzjq).

Patch 9.1.0270
Small fixes to a few issues:
Problem:  MNV9: funcref pointer pt leaks, when function is not found
Solution: Free funcref pointer in case of error (
Problem:  memory leak of crypt state pointer allocation fails
Solution: free crypt state pointer properly (
Problem:  MNV9: Leaking memory when compiling dict fails
Solution: Free the memory in case of error (
Problem:  Coverity complains about derefencing obj_members pointer
          (after v9.1.0261)
Solution: Verify that obj_members ptr is non-null before accessing it

Patch 9.1.0271
Problem:  CI sound test aborts with undefined variable
Solution: initialize g:result in test_sound.mnv

Patch 9.1.0272
Problem:  Autocommand may change currect directory after :tcd and :lcd.
Solution: Also clear tp_localdir and w_localdir when using aucmd_win.
          (zeertzjq)

Patch 9.1.0273
Problem:  filetype: keymap files are not recognized
Solution: Detect '*.keymap' files as Device Tree Files (0xadk).

Patch 9.1.0274
Problem:  MS-Windows: a few compiler warnings
Solution: Change variable types to resolve compiler warnings (Mike Williams)

Patch 9.1.0275
Problem:  filetype: R history files are not recognized
Solution: Detect '.Rhistory' files as r filetype (Wu, Zhenyu).

Patch 9.1.0276
Problem:  No pandoc syntax support
Solution: Add pandoc syntax and compiler plugins (Wu, Zhenyu, Konfekt).

Patch 9.1.0277
Problem:  Cannot highlight the Command-line
Solution: Add the MsgArea highlighting group (Shougo Matsushita).

Patch 9.1.0278
Problem:  filetype: zathurarc files not recognized
Solution: Detect '.zathurarc' files as zathurarc filetype,
          add zathurarc filetype (Wu, Zhenyu)

Patch 9.1.0279
Problem:  filetype: roc files are not recognized
Solution: Detect '*.roc' files as roc filetype,
          add a basic filetype plugin (nat-418)

Patch 9.1.0280
Problem:  Logic to make sure cursor is in visible part of the screen after
          scrolling the text with 'smoothscroll' is scattered, asymmetric
          and contains bugs.
Solution: Adjust and create helper function for 'smoothscroll' cursor logic.
          (Luuk van Baal)

Patch 9.1.0281
Problem:  CI: fails Test_compiler_completion
Solution: Add pandoc compiler

Patch 9.1.0282
Problem:  Finding highlighting attributes is inefficient
Solution: Use binary search to find highlighting attributes and color
          names (John Marriott)

Patch 9.1.0282
Problem:  Wrong doc style for pandoc syntax description,
          Test_diff_eob_halfpage() may fail depending on screen size, using
          braces in highlight.c when not necessary
Solution: Fix pandoc documentation, make sure the window for the test has 7
          lines, remove the braces.

Patch 9.1.0284
Problem:  make testclean is not able to delete failed screendumps.
Solution: Remove the "failed" directory when necessary (Julio B).

Patch 9.1.0285
Problem:  Problems with cursor position when scrolling half a page.
Solution: Rework the cursor logic. (Luuk van Baal)

Patch 9.1.0286
Problem:  MNV9: E1027 with defcompile for abstract methods with
          non-void return types, but still compiles it (zzzyxwvut)
Solution: Don't compile abstract methods (Yegappan Lakshmanan).

Patch 9.1.0287
Problem:  MNV9: comment may be treated as heredoc start (Ernie Rael).
Solution: Use skip_var_list() instead of find_name_end() (zeertzjq).

Patch 9.1.0288
Problem:  MS-Windows: compiler warning for size_t to int conversion
          (after  v9.1.0282)
Solution: Use size_t instead of int in highlight_set_termgui_attr
          (Mike Williams).

Patch 9.1.0289
Problem:  filetype: some TeX files are not recognized
Solution: Add more patterns for TeX files and inspect a few more files for
          being TeX files (Wu, Zhenyu).

Patch 9.1.0290
Problem:  filetype: xilinx files are not recognized
Solution: Add a few xilinx specific file patterns, inspect lpr files for being
          xml/pascal (Wu, Zhenyu)

Patch 9.1.0291
Problem:  filetype: libreoffice config files are not recognized
Solution: Detect Libreoffice config fils as xml/dosini (Wu, Zhenyu).

Patch 9.1.0292
Problem:  filetype: XDG mimeapps.list file is not recognized
Solution: Detect mimeapps.list as dosini filetype (Wu, Zhenyu).

Patch 9.1.0293
Problem:  filetype: lxqt config files are not recognized
Solution: Detect {lxqt,screengrab}/*.conf files as dosini,
          fix failing filetype test for */tex/latex/**.cfg (Wu, Zhenyu).

Patch 9.1.0294
Problem:  plines_m_win() does not take into account it's "limit_winheight"
          argument for filler lines below the last line of the buffer.
          (after v9.1.0280)
Solution: Check window height when "limit_winheight" is TRUE (Luuk van Baal).

Patch 9.1.0295
Problem:  filetype: pip config files are not recognized
Solution: detect pip.conf as dosini filetype (Wu, Zhenyu).

Patch 9.1.0296
Problem:  Regex engines do not handle case-folding well
Solution: Correctly calculate byte length of characters to skip

Patch 9.1.0297
Problem:  Patch 9.1.0296 causes too many issues (Tony Mechelynck, @chdiza, CI)
Solution: Back out the change for now

Patch 9.1.0298
Problem:  MS-Windows: GETTEXT_PATH hard-coded in src/po/Make_mvc.mak
Solution: Add IFNDEF/ENDIF around the definition of GETTEXT_PATH
          (Cthulhux)

Patch 9.1.0299
Problem:  MNV9: return type not set for a lambda assigned to script var
          (Ernie Rael)
Solution: Correctly determine the return type (Yegappan Lakshmanan).

Patch 9.1.0300
Problem:  Missing test for what Patch v9.1.0285 fixes
Solution: Add a test for cursor movement at buffer boundaries (Luuk van Baal).

Patch 9.1.0301
Problem:  MNV9: heredoc start may be recognized in string.
Solution: Don't skip to closing bracket for invalid list assignment.
          (zeertzjq)

Patch 9.1.0302
Problem:  filetype: blueprint files are not recognized
Solution: Detect '*.bp' files as blueprint files, add a minimal filetype
          plugin (Bruno Belanyi)

Patch 9.1.0303
Problem:  filetype: some protocol buffer files not recognized
Solution: Detect '*.textproto', '*.textpb', '*.txtpb' as pbtxt files
          (Bruno Belanyi)

Patch 9.1.0304
Problem:  filetype: cgdb config file is not recognized
Solution: Detect cgdbrc files as cgdbrc filetype (Wu, Zhenyu).

Patch 9.1.0305
Problem:  filetype: some history files are not recognized
Solution: Add some history patterns to filetype.mnv (Wu, Zhenyu).

Patch 9.1.0306
Problem:  filetype: x11vnc config file is not recognized
Solution: Detect '.x11vncrc' as conf filetype (Wu, Zhenyu).

Patch 9.1.0307
Problem:  filetype: texdoc config files is not recognized
Solution: Detect 'texdoc.cnf' as conf filetype (Wu, Zhenyu).

Patch 9.1.0308
Problem:  configure: msgfmt hardcoded (after v9.1.0173)
Solution: use $MSGFMT instead of msgfmt in configure script,
          regenerate the configure script (Vladimír Marek).

Patch 9.1.0309
Problem:  crash when 'textwidth' > MAX_INT (after vv9.1.0055)
          (Zoltan Balogh)
Solution: limit textwidth to MAX_INT

Patch 9.1.0310
Problem:  Filler lines not checked properly in get_scroll_overlap().
Solution: Add missing parentheses (zeertzjq).

Patch 9.1.0311
Problem:  Some config files are not recognized
Solution: Add some patterns for chktex, ripgreprc and ctags config files.

Patch 9.1.0312
Problem:  heredocs are not supported for :commands (@balki)
Solution: Add heredoc support (Yegappan Lakshmanan).

Patch 9.1.0313
Problem:  Crash when using heredoc with comment in command block.
Solution: Handle a newline more like the end of the line, fix coverity
          warning (zeertzjq).

Patch 9.1.0314
Problem:  MNV9: Can define a class in a function (Doug Kearns)
Solution: Give an error for a class defined in a function, slightly reword
          some public error messages (Yegappan Lakshmanan).

Patch 9.1.0315
Problem:  filetype: a few more dosini files are not recognized
Solution: Detect wakatime, reply config files, flatpak, nfs config files
          and a few more python tools as dosini (or toml) (Wu, Zhenyu).

Patch 9.1.0316
Problem:  filetype: some sh and confini files not recognized
Solution: Detect neofetch, '.xprofile', XDG-User-Dirs files, paru and makepkg
          config files (Wu, Zhenyu).

Patch 9.1.0317
Problem:  filetype: matplotlibrc files are not recognized
Solution: Detect 'matplotlibrc' file as yaml filetype (Wu, Zhenyu).

Patch 9.1.0318
Problem:  filetype: translate shell config files are not recognized
Solution: Detect 'init.trans', 'translate-shell' and '.trans' files as
          clojure (Wu, Zhenyu)

Patch 9.1.0319
Problem:  Using heredoc in string not tested with :execute.
Solution: Test with both :execute and execute() (zeertzjq).

Patch 9.1.0320
Problem:  Wrong cursor position after using setcellwidths().
Solution: Invalidate cursor position in addition to redrawing (zeertzjq).

Patch 9.1.0321
Problem:  When used terminal with XON/XOFF flow control, mnv tries to
          still make CTRL-S mapping available, which results in severe
          screen corruption, especially on large redraws, and even
          spurious inputs (John Tsiombikas)
Solution: Disallow CTRL-S mapping if such terminal is recognized.
          Don't remove IXON from the bitmask inversion (Anton Sharonov).

Patch 9.1.0322
Problem:  filetype: some mail tools not recognized
Solution: Detect '.mbsncrc' as conf, '.msmtprc' as msmtp and '.notmuch-config'
          as ini filetype (Shane-XB-Qian)

Patch 9.1.0323
Problem:  filetype: cabal config files may not be recognized
Solution: Change filetype pattern to '*/{,.}cabal/config' (Wu Zhenyu).

Patch 9.1.0324
Problem:  filetype: some json files are not recognized
Solution: Detect '.jscsrc' and '.vsconfig' as jsonc filetype (Wu, Zhenyu).

Patch 9.1.0325
Problem:  filetype: CMakeCache.txt files not recognized
Solution: Detect 'CMakeCache.txt' files as cmakecache filetype, include basic
          syntax script for cmakecache (Wu, Zhenyu, @bfrg)

Patch 9.1.0326
Problem:  filetype: some requirements files are not recognized
Solution: Detect '*-requirements.txt', 'constraints.txt', 'requirements.in',
          'requirements/*.txt' and 'requires/*.txt' as requirements filetype,
          include pip compiler, include requirements filetype and syntax
          plugin (Wu, Zhenyu, @raimon49).

Patch 9.1.0327
Problem:  No support for using $XDG_CONFIG_HOME
Solution: optionally source $XDG_CONFIG_HOME/mnv/mnvrc (Luca Saccarola).

Patch 9.1.0328
Problem:  CI fails with t_?? test
Solution: use assert_match instead of assert_equal and test only until t_xo,
          depending on system there may be several more termcap codes coming

Patch 9.1.0329
Problem:  String interpolation fails for Dict type
Solution: Support Dict data type properly, also support :put =Dict
          (without having to convert it to string() first)
          (Yegappan Lakshmanan).

Patch 9.1.0330
Problem:  v9.1.0327 contains an unrelated change
Solution: Revert back $USR_MNVRC_FILE to $HOME instead of ~

Patch 9.1.0331
Problem:  make install does not install all files (Nick Jensen)
Solution: Adjust the Makefile rule to install and uninstall cargo and
          rust directories (Matt Hammerly)

Patch 9.1.0332
Problem:  tests: some assert_equal() calls have wrong order of args
Solution: Correct the order (zeertzjq).

Patch 9.1.0333
Problem:  tests: test_xdg fails on the appimage repo
Solution: compare only the last 30 right characters of $MYMNVRC

Patch 9.1.0334
Problem:  No test for highlight behavior with 'ambiwidth'.
Solution: Add a screendump test for 'ambiwidth' with 'cursorline'.
          (zeertzjq)

Patch 9.1.0335
Problem:  String interpolation fails for List type
Solution: use implicit string(list) for string interpolation and :put =
          (Yegappan Lakshmanan)

Patch 9.1.0336
Problem:  tests: typo in test_xdg
Solution: fix typo (Diego Viola)

Patch 9.1.0337
Problem:  Missing entry for XDG mnvrc file in :version
Solution: Add 4th user mnvrc entry to :version output (Diego Viola)

Patch 9.1.0338
Problem:  MNV9: import through symlinks not correctly handled
Solution: Check for script being a symlink but only once (Ernie Rael)

Patch 9.1.0339
Problem:  tests: xdg test uses screen dumps
Solution: Convert screen dump to normal test (Yegappan Lakshmanan)

Patch 9.1.0340
Problem:  Error with matchaddpos() and empty list (@rickhow)
Solution: Return early for an empty list

Patch 9.1.0341
Problem:  a few memory leaks are found (LuMingYinDetect)
Solution: properly free the memory

Patch 9.1.0342
Problem:  tests: test_taglist fails when 'helplang' contains non-english
Solution: Allow 1 or 2 tagfiles for now (Julio B)

Patch 9.1.0343
Problem:  'showcmd' is wrong for partial mapping with multibyte char,
          and isn't very readable with modifyOtherKeys.
Solution: Decode multibyte char and merge modifiers into the char.
          (zeertzjq)

Patch 9.1.0344
Problem:  Cursor wrong after using setcellwidth() in terminal (mikoto2000)
Solution: output additional spaces, so the behaviour matches the GUI
          (mikoto2000)

Patch 9.1.0345
Problem:  gmnvrc not sourced from XDG_CONFIG_HOME (after v9.1.0327)
Solution: Also try to source from ~/.config/mnv/gmnvrc and
          $XDG_CONFIG_HOME/mnv/gmnvrc (Maxim Kim)

Patch 9.1.0346
Problem:  Patch v9.1.0338 fixed sourcing a script with import
Solution: Add test `import './file.mnv' and verify it works with `:source`
          so it does not regress (Ernie Rael)

Patch 9.1.0347
Problem:  A few typos in test_xdg when testing gmnvrc
Solution: Fix them (Diego Viola)

Patch 9.1.0348
Problem:  X11 does not ignore smooth scroll event (laniakea64)
Solution: Correctly ignore unwanted smooth scroll events on X11 (lilydjwg)

Patch 9.1.0349
Problem:  MNV9: need static type for typealias
Solution: Refactor the typval2type() function and add a static type for
          typealias (Yegappan Lakshmanan)

Patch 9.1.0350
Problem:  tests: test_mnv9_dissamble may fail
Solution: Instead of hard-coding the lambda number, accept just any number
          (Julio B)

Patch 9.1.0351
Problem:  No test that completing a partial mapping clears 'showcmd'.
Solution: Complete partial mappings in Test_showcmd_part_map() instead
          of using :echo.  Adjust some comments (zeertzjq).

Patch 9.1.0352
Problem:  Finding cmd modifiers and cmdline-specials is inefficient
Solution: Use binary search to find ex command modifiers and
          cmdline-special characters and reduce the number of strlen()
          (John Marriott)

Patch 9.1.0353
Problem:  tests: Test_autoload_import_relative_compiled fails on Windows
Solution: Disable on Windows for now, add missing :bw for clean-up (Ernie Rael)

Patch 9.1.0354
Problem:  runtime(uci): No support for uci file types (Wu, Zhenyu)
Solution: include basic uci ftplugin and syntax plugins (Colin Caine)

Patch 9.1.0355
Problem:  filetype: flake.lock files are not recognized
Solution: Detect 'flake.lock' as json filetype (Riley Bruins)

Patch 9.1.0356
Problem:  MS-Windows: --remote may change working directory when
          'shellslash' is set
Solution: normalize directory separators on MS-Windows

Patch 9.1.0357
Problem:  Page scrolling does not always place the cursor at the top or
          bottom of the window (Mathias Rav)
Solution: Place the cursor at the top or bottom of the window (Luuk van Baal)

Patch 9.1.0358
Problem:  wrong drawing in GUI with setcellwidth() (after v9.1.0344)
Solution: move gui.in_use condition (h-east).

Patch 9.1.0359
Problem:  MS-Windows: Relative import in a script sourced from a buffer
          doesn't work (Ernie Rael)
Solution: Set a filename, so that we are not trying to use
          script-relative filename (Yegappan Lakshmanan)

Patch 9.1.0360
Problem:  MNV9: does not handle autoloaded variables well
Solution: Better handle script-level exported variable references from
          autoload files (Ernie Rael).

Patch 9.1.0361
Problem:  MNV9: mnv9type.c is too complicated
Solution: Refactor a few functions in mnv9type.c (Yegappan Lakshmanan)

Patch 9.1.0362
Problem:  expanding rc config files does not work well
          (Michał Sieroń, after v9.1.0327)
Solution: initialize chartab option, required to expand
          evironment variables

Patch 9.1.0363
Problem:  tests: test_winfixbuf is a bit slow
Solution: use defer if possible, reset hidden option, use --not-a-term
          when starting MNV using system() (Yegappan Lakshmanan)

Patch 9.1.0364
Problem:  tests: test_mnv9_builtin is a bit slow
Solution: source tests from a buffer instead of writing and sourcing a file
          (Yegappan Lakshmanan)

Patch 9.1.0365
Problem:  Crash when typing many keys with D- modifier (after 9.1.0227).
Solution: Don't treat a 0x80 byte inside a special sequence as the start
          of a special sequence (zeertzjq).

Patch 9.1.0366
Problem:  filetype: ondir files are not recognized
Solution: Detect '.ondirrc' as ondir filetype (Jon Parise)

Patch 9.1.0367
Problem:  compile_def_function is too long
Solution: Move out the code to compile the body of a function
          (Yegappan Lakshmanan)

Patch 9.1.0368
Problem:  MS-Windows: Hard to define the MNV Patchlevel with leading
          zeroes for the installer
Solution: re-define MNV_VERSION_PatchLEVEL_STR with leading zeroes,
          interpret Patchlevel as decimal in Make_mvc.mak (RestorerZ)

Patch 9.1.0369
Problem:  MNV9: problem when importing autoloaded scripts
Solution: In `:def` handle storing to mnv9 autoload export (Ernie Rael)

Patch 9.1.0370
Problem:  MS-Windows: Patch number is zero in installer (jonathan-b-wiebe)
Solution: Set MNV_VERSION_PatchLEVEL, fix a few typos in the installer
          (RestorerZ)

Patch 9.1.0371
Problem:  MNV9: compile_def_function() still too long
Solution: Refactor the code into separate functions (Yegappan Lakshmanan).

Patch 9.1.0372
Problem:  Calling CLEAR_FIELD() on the same struct twice.
Solution: Remove the second CLEAR_FIELD().  Move the assignment of
          cookie.sourceing_lnum (zeertzjq).

Patch 9.1.0373
Problem:  ops.c code uses too many strlen() calls
Solution: Refactor code and remove more strlen() calls (John Marriott).

Patch 9.1.0374
Problem:  When :edit an existing buffer, line('w$') may return a wrong result.
Solution: Reset w_valid in curwin_init() (Jaehwang Jung)

Patch 9.1.0375
Problem:  tests: 1-second delay after Test_BufEnter_botline()
          (after v9.1.0374)
Solution: Wipe the created buffers (zeertzjq).

Patch 9.1.0376
Problem:  MNV9: Trailing commands after class/enum keywords ignored
Solution: Remove EX_TRLBAR keyword from command definition
          (Yegappan Lakshmanan)

Patch 9.1.0377
Problem:  formatting text wrong when 'breakindent' is set (Gary Johnson)
Solution: Temporarily disable 'breakindent' option when formatting text, so
          that the breakindent is not wrongly taken into account for the line
          length

Patch 9.1.0378
Problem:  MNV9: no comments allowed after class vars
          (Christian Robinson, after 9.1.376)
Solution: Allow trailing comments after class vars (Yegappan Lakshmanan).

Patch 9.1.0379
Problem:  There are a few typos
Solution: Fix them (zeertzjq).

Patch 9.1.0380
Problem:  Calculating line height for unnecessary amount of lines with
          half-page scrolling (zhscn, after 9.1.0280)
Solution: Replace "limit_winheight" argument with higher resolution
          "max" argument to which to limit the calculated line height
          in plines_m_win() to (Luuk van Baal).

Patch 9.1.0381
Problem:  cbuffer and similar quickfix and locationlist commands don't
          accept a range, even so it is documented they should
          (ilan-schemoul, after 8.1.1241)
Solution: Define ex commands with ADDR_LINES instead of ADDR_OTHER

Patch 9.1.0382
Problem:  Kbuild files are not recognized.
Solution: Detect Kbuild files as make files (Bruno Belanyi).

Patch 9.1.0383
Problem:  filetype: .out files recognized as tex files
Solution: Do not set an explicit filetype until it is clear what this
          should be (shane.xb.qian)

Patch 9.1.0384
Problem:  tests: vt420 terminfo entry may not be found (Shane-XB-Qian)
Solution: check existence of terminfo vt420 and infocmp command

Patch 9.1.0385
Problem:  MNV9: crash with null_class and null_object (Aliaksei Budavei)
Solution: Handle null_class and null_object correctly (Yegappan Lakshmanan).

Patch 9.1.0386
Problem:  filetype: stylus files not recognized
Solution: Detect '*.styl' and '*.stylus' as stylus filetype,
          include indent, filetype and syntax plugin (Philip H)

Patch 9.1.0387
Problem:  MNV9: null value tests not sufficient
Solution: Add a more comprehensive test for null values (Yegappan Lakshmanan).

Patch 9.1.0388
Problem:  cursor() and getregion() don't handle v:maxcol well.
Solution: Add special handling for v:maxcol like setpos() does (zeertzjq).

Patch 9.1.0389
Problem:  filetype: templ files are not recognized
Solution: Detect '*.templ' files as filetype templ (Tristan Knight).

Patch 9.1.0390
Problem:  filetype: inko files are not recognized
Solution: Detect '*.inko' as ink filetype (Yorick Peterse).

Patch 9.1.0391
Problem:  MNV9: could improve testing (Ernie Rael)
Solution: Support defcompile for test_override() to improve testing
          (Yegappan Lakshmanan)

Patch 9.1.0392
Problem:  tests: MNV9 debug tests may be flaky (Shane-XB-Qian)
Solution: Give a few more lines so that line-wrapping won't
          cause a hit-enter prompt

Patch 9.1.0393
Problem:  'viewdir' not respecting $XDG_CONFIG_HOME (Danilo Rezende,
          after v9.1.327)
Solution: adjust 'viewdir' option when enabling XDG config mode

Patch 9.1.0394
Problem:  Cannot get a list of positions describing a region
          (Justin M. Keyes, after v9.1.0120)
Solution: Add the getregionpos() function (Shougo Matsushita)

Patch 9.1.0395
Problem:  regionpos may leak memory on error, coverity
          complains about dereferencing Null pointer
Solution: free all list pointers (after v9.1.394),
          return early if buflist_findnr() returns NULL

Patch 9.1.0396
Problem:  jj files are not recognized
Solution: recognize '*.jjdescription' files as jj filetype (Gregory Anders)

Patch 9.1.0397
Problem:  Wrong display with 'smoothscroll' when changing quickfix list.
Solution: Reset w_skipcol when replacing quickfix list (zeertzjq).

Patch 9.1.0398
Problem:  MNV9: imported vars are not properly type checked
Solution: Check the imported variable type properly (Yegappan Lakshmanan).

Patch 9.1.0399
Problem:  block_editing errors out when using del (@Jamarley)
Solution: Change ins_len from size_t to int and properly check that it doesn't
          become negative

Patch 9.1.0400
Problem:  MNV9: confusing error message for unknown type (Doug Kearns)
Solution: For an unknown type, display only the type name in the error
          message (Yegappan Lakshmanan).

Patch 9.1.0401
Problem:  filetype: zsh module files are not recognized
Solution: Detect '*.mdh' and '*.epro' as C filetype, '*.mdd' as zsh
          filetype, determine zsh-modules '*.pro' from from it's content
          (Wu, Zhenyu)

Patch 9.1.0402
Problem:  filetype: mdd files detected as zsh filetype
Solution: detect '*.mdd' files as sh filetype, add links to reference
          documentation (Wu, Zhenyu)

Patch 9.1.0403
Problem:  MNV9: not able to import file from start dir (Danielle McLean)
Solution: Allow to import from start directory (Yegappan Lakshmanan).

Patch 9.1.0404
Problem:  [security] xxd: buffer-overflow with specific flags
Solution: Correctly calculate the required buffer space (Lennard Hofmann).

Patch 9.1.0405
Problem:  tests: xxd buffer overflow fails on 32-bit
Solution: Skip test on 32-bit architecture

Patch 9.1.0406
Problem:  Divide by zero with getmousepos() and 'smoothscroll'.
Solution: Don't compute skip_lines when width1 is zero (zeertzjq).

Patch 9.1.0407
Problem:  No scrolling happens with half-page scrolling with line
          filling entire window when 'smoothscroll' is disabled.
          (Mathias Rav, after v9.1.0285)
Solution: Adjust amount to move cursor by so that it is moved the same
          number of lines as was scrolled, even when scrolling different
          number of lines than requested with 'nosmoothscroll'.

Patch 9.1.0408
Problem:  configure fails on Fedora when including perl (chesheer-smile)
Solution: Filter out -spec=<path> from $LIBS and $LDFLAGS to avoid
          linking relocation errors for unrelated autoconf tests.

Patch 9.1.0409
Problem:  too many strlen() calls in the regexp engine
Solution: refactor code to retrieve strlen differently, make use
          of bsearch() for getting the character class (John Marriott).

Patch 9.1.0410
Problem:  warning about uninitialized variable (Tony Mechelynck, after
          v9.1.0409)
Solution: initialize variable (John Marriott)

Patch 9.1.0411
Problem:  too long functions in eval.c
Solution: refactor functions (Yegappan Lakshmanan)

Patch 9.1.0412
Problem:  typo in regexp_bt.c in DEBUG code, causing compile error (@kfleong7,
          after v9.1.0409)
Solution: Replace bulen by buflen

Patch 9.1.0413
Problem:  smoothscroll may cause infinite loop, with very narrow windows
          (Jaehwang Jung, after v9.1.0280)
Solution: Check for width1 being negative, verify that win_linetabsize does
          not overflow

Patch 9.1.0414
Problem:  Unable to leave long line with 'smoothscroll' and 'scrolloff'.
          Corrupted screen near the end of a long line with 'scrolloff'.
          (Ernie Rael, after 9.1.0280)
Solution: Only correct cursor in case scroll_cursor_bot() was not itself
          called to make the cursor visible. Avoid adjusting for
          'scrolloff' beyond the text line height (Luuk van Baal)

Patch 9.1.0415
Problem:  Some functions are not tested
Solution: Add a few more tests, fix a few minor problems (Yegappan Lakshmanan)

Patch 9.1.0416
Problem:  some screen dump tests can be improved (after 9.1.0414)
Solution: Make sure screen state changes properly and is captured in the
          screen dumps (Luuk van Baal)

Patch 9.1.0417
Problem:  if_py: find_module has been removed in Python 3.12.0a7 (@Ghost-LZW)
Solution: Do not include find_module for Python >= 3.12.0a7

Patch 9.1.0418
Problem:  Cannot move to previous/next rare word (Colin Kennedy)
Solution: Add the ]r and [r motions (Christ van Willegen)

Patch 9.1.0419
Problem:  eval.c not sufficiently tested
Solution: Add a few more additional tests for eval.c (Yegappan Lakshmanan).

Patch 9.1.0420
Problem:  :browse oldfiles prompts even with single entry
Solution: Do not prompt, but edit the file directly, also when using :filter
          /pat/ browse oldfiles

Patch 9.1.0421
Problem:  filetype: hyprlang files are not recognized
Solution: Recognize 'hypr{land,paper,idle,lock}.conf' files
          as 'hyprlang' filetype, add hyprlang ftplugin (Riley Bruins)

Patch 9.1.0422
Problem:  function echo_string_core() is too long
Solution: Refactor into several smaller functions (Yegappan Lakshmanan).

Patch 9.1.0423
Problem:  getregionpos() wrong with blockwise mode and multibyte.
Solution: Use textcol and textlen instead of start_vcol and end_vcol.
          Handle coladd properly (zeertzjq).

Patch 9.1.0424
Problem:  filetype: slint files are not recognized
Solution: Detect '*.slint' files as slint filetype, include basic sling
          filetype plugin (Riley Bruins)

Patch 9.1.0425
Problem:  filetype: purescript files are not recognized
Solution: Recognize '*.purs' files as purescript filetype, include basic
          purescript filetype plugin (Riley Bruins)

Patch 9.1.0426
Problem:  too many strlen() calls in search.c
Solution: Refactor code and remove more strlen() calls,
          use explicit variable to remember strlen (John Marriott)

Patch 9.1.0427
Problem:  tests: some issues with termdebug mapping test
Solution: Use assert_{true,false} if suitable, change
          order of expected and actual arguments in assert() calls.
          (Ken Takata)

Patch 9.1.0428
Problem:  Tag guessing leaves wrong search history with very short names
          (after 9.1.0426).
Solution: Use the correct variable for pattern length (zeertzjq).

Patch 9.1.0429
Problem:  Coverity complains about eval.c refactor (after v9.1.0422)
Solution: Check that buf is not used un-initialized, add explicit conditions
          for save and restore of copyID

Patch 9.1.0430
Problem:  getregionpos() doesn't handle one char selection.
Solution: Handle startspaces differently when is_oneChar is set.
          Also add a test for an exclusive charwise selection with
          multibyte chars (zeertzjq)

Patch 9.1.0431
Problem:  eval.c is too long
Solution: Move garbage collection code to new gc.c file (Yegappan Lakshmanan).

Patch 9.1.0432
Problem:  Ancient XPM preprocessor hack may cause build errors.
Solution: Simplify XPM includes and get rid of complicated #ifdef magic
          (Drew Vogel).

Patch 9.1.0433
Problem:  Wrong yanking with exclusive selection and virtualedit=all,
          and integer overflow when using getregion() on it.
Solution: Set coladd when decreasing column and 'virtualedit' is active.
          Add more tests for getregion() with 'virtualedit' (zeertzjq).

Patch 9.1.0434
Problem:  make errors trying to access autoload/zig
Solution: Remove autoload/zig from Makefile, adjust Filelist (Derek Schrock).

Patch 9.1.0435
Problem:  filetype: cygport files are not recognized
Solution: Recognize '*.cygport' files as sh filetype (Ken Takata).

Patch 9.1.0436
Problem:  Crash when using '?' as separator for :s and pattern contains
          escaped '?'s (after 9.1.0409).
Solution: Always compute startplen. (zeertzjq).

Patch 9.1.0437
Problem:  Motif requires non-const char pointer for XPM data shared with
          GTK (Tony Mechelynck, after v9.1.0432)
Solution: Cast non-const to const char pointer for GTK (Drew Vogel).

Patch 9.1.0438
Problem:  Wrong Ex command executed when :g uses '?' as delimiter and
          pattern contains escaped '?'.
Solution: Don't use "*newp" when it's not allocated (zeertzjq).

Patch 9.1.0439
Problem:  Cannot filter the history
Solution: Implement :filter :history

Patch 9.1.0440
Problem:  function get_lval() is too long
Solution: factor out the get_lval_subscript() function (Yegappan Lakshmanan).

Patch 9.1.0441
Problem:  getregionpos() can't properly indicate positions beyond eol.
Solution: Add an "eol" flag that enables handling positions beyond end
          of line like getpos() does (zeertzjq).

Patch 9.1.0442
Problem:  hare runtime files outdated
Solution: runtime(hare): update hare.mnv to match upstream (Amelia Clarke).

Patch 9.1.0443
Problem:  Can't use a blockwise selection with a width for getregion().
Solution: Add support for blockwise selection with width like the return
          value of getregtype() or the "regtype" value of TextYankPost
          (zeertzjq).

Patch 9.1.0444
Problem:  Not enough tests for getregion() with multibyte chars.
Solution: Add a few more tests (zeertzjq).

Patch 9.1.0445
Problem:  Coverity warning after 9.1.0440
Solution: Fix Coverity warning, add a test and reduce the calls to clear_tv()
          (Yegappan Lakshmanan).

Patch 9.1.0446
Problem:  getregionpos() behaves inconsistently for a partly-selected
          multibyte char.
Solution: Always use column of the first byte for a partly-selected
          multibyte char (zeertzjq).

Patch 9.1.0447
Problem:  completion may be wrong when deleting all chars
Solution: Reset compl_shown_match

Patch 9.1.0448
Problem:  compiler warning in eval.c (after v9.1.0429)
Solution: Refactor code (Yegappan Lakshmanan)

Patch 9.1.0449
Problem:  MS-Windows: Compiler warnings
Solution: Resolve size_t to int warnings

Patch 9.1.0450
Problem:  eval.c code too complex
Solution: Refactor eval6() and eval9() functions into several smaller
          functions (Yegappan Lakshmanan)

Patch 9.1.0451
Problem:  No test for escaping '<' with shellescape()
Solution: Add a test.  Use memcpy() in code to make it easier to
          understand.  Fix a typo (zeertzjq).

Patch 9.1.0452
Problem:  Configure checks for libelf unnecessarily
Solution: Remove configure check (youcai)

Patch 9.1.0453
Problem:  filetype: rasi files are not recognized
Solution: Regonize '*.rasi' files as rasi filetype, include a filetype and
          syntax plugin (Pierrick Guillaume)

Patch 9.1.0454
Problem:  minor issues in test_filetype with rasi test (after 9.1.0453)
Solution: Re-sort test_filetype, fix wrong syntax.txt help tags

Patch 9.1.0455
Problem:  MS-Windows: compiler warning for size_t to int conversion
Solution: Add a few type casts to resolve warning on Windows (Mike Williams).

Patch 9.1.0456
Problem:  Left shift is incorrect with vartabstop and shiftwidth=0
Solution: Make tabstop_at() function aware of shift direction
          (Gary Johnson)

Patch 9.1.0457
Problem:  tests: test_gui fails on Wayland (after: 9.1.0064, Gary Johnson)
Solution: Drop the "empty($WAYLAND_DISPLAY)" condition in the test

Patch 9.1.0458
Problem:  Coverity complains about division by zero
Solution: Check explicitly for sw_val being zero
          Shouldn't happen, since tabstop value should always be larger than
          zero. So just add this as a safety measure.

Patch 9.1.0459
Problem:  MNV9: import autoload does not work with symlink (Olivier Dormond)
Solution: Set sn_autoload_prefix in check_script_symlink (nwounkn)

Patch 9.1.0460
Problem:  filetype: lintstagedrc files are not recognized
Solution: Recognize '.lintstagedrc' files as json filetype (İlyas Akın).

Patch 9.1.0461
Problem:  too many strlen() calls in drawline.c
Solution: Refactor code to avoid strlen() (John Marriott).

Patch 9.1.0462
Problem:  eval5() and eval7 are too complex
Solution: Refactor eval5() and eval7() in eval.c (Yegappan Lakshmanan).

Patch 9.1.0463
Problem:  no fuzzy-matching support for insert-completion
Solution: Enable insert-mode completion with fuzzy-matching
          using :set completopt+=fuzzy (glepnir).

Patch 9.1.0464
Problem:  No whitespace padding in commentstring option in ftplugins
Solution: Change default to include whitespace padding, update
          existing filetype plugins with the new default value (Riley Bruins)

Patch 9.1.0465
Problem:  missing filecopy() function
Solution: Implement filecopy() MNV script function (Shougo Matsushita).

Patch 9.1.0466
Problem:  Missing comments for fuzzy completion (after 9.1.0463)
Solution: Add more comments, adjust indentation slightly (glepnir).

Patch 9.1.0467
Problem:  typos in some comments (after v9.1.0466)
Solution: Fix comments (zeertzjq).

Patch 9.1.0468
Problem:  GmnvExt does not consult HKEY_CURRENT_USER
Solution: Make GmnvExt first consult HKEY_CURRENT_USER and then fall
          back to HKEY_LOCAL_MACHINE to find gmnv (David Wagner)

Patch 9.1.0469
Problem:  Cannot have buffer-local value for 'completeopt' (Nick Jensen).
Solution: Make 'completeopt' global-local (zeertzjq).

Patch 9.1.0470
Problem:  tests: Test_ColonEight_MultiByte() fails on MS-Windows
Solution: Mark test as flaky

Patch 9.1.0471
Problem:  Crash when using autocmd_get() after removing event inside
          autocmd (Sergey Vlasov)
Solution: Check that the pattern is NULL (zeertzjq).

Patch 9.1.0472
Problem:  Inconsistencies between functions for option flags.
Solution: Consistently use "unsigned int" as return type and rename
          get_bkc_value() to get_bkc_flags() (zeertzjq).

Patch 9.1.0473
Problem:  term_start() does not clear vertical modifier
Solution: Clear the flag after splitting the window (Yegappan Lakshmanan).

Patch 9.1.0474
Problem:  CI: Test_ColonEight() fails on github runners (Ken Takata)
Solution: Run the test for files on the C: drive, where dos shortnames
          are still enabled, refactor the tests to use a single setup
          function for the preparation.

Patch 9.1.0475
Problem:  cmod_split modifier is always reset in term_start()
Solution: Only clear the WSP_VERT flag, if it is not already in
          cmdmod.cmod_split (Yegappan Lakshmanan).

Patch 9.1.0476
Problem:  Cannot see matched text in popup menu
Solution: Introduce 2 new highlighting groups: PmenuMatch and
          PmenuMatchSel (glepnir).

Patch 9.1.0477
Problem:  block_editing errors out when using <enter>
          (Ali Rizvi-Santiago, after v9.1.0274)
Solution: Change ins_len from size_t to int so that the test
          if ins_len is negative actually works properly.

Patch 9.1.0478
Problem:  Potential deref of NULL pointer in fuzzy_match_str_with_pos()
          on cleanup (after v9.1.0476)
Solution: Only free the pointer if it is non-NULL (glepnir).

Patch 9.1.0479
Problem:  fuzzy_match_str_with_pos() does unnecessary list operations.
Solution: Use fuzzy_match() directly (zeertzjq).

Patch 9.1.0480
Problem:  fuzzy string matching executed when not needed
Solution: When no leader is available, can skip fuzzy logic, so return
          early (glepnir).

Patch 9.1.0481
Problem:  MNV9: term_getjob() throws an exception on error
Solution: Return null_job instead, when there is no job (Ernie Rael).

Patch 9.1.0482
Problem:  termdebug plugin needs more love
Solution: start with some more MNV9 refactoring to improve maintenance and
          readability (Ubaldo Tiberi).

Patch 9.1.0483
Problem:  glob() not sufficiently tested
Solution: Add more tests for directory containing [] chars.

Patch 9.1.0484
Problem:  Sorting of completeopt+=fuzzy is not stable.
Solution: Compare original indexes when scores are the same (zeertzjq).

Patch 9.1.0485
Problem:  Matched text shouldn't be highlighted in "kind" and "menu".
Solution: Pass hlf_T instead of the attribute.  Fix indent (zeertzjq).

Patch 9.1.0486
Problem:  filetype: Snakemake files are not recognized
Solution: Detect '*.smk' and Snakefile files as snakemake filetype
          (Riley Bruins)

Patch 9.1.0487
Problem:  completed item not update on fuzzy completion
Solution: Reset compl_shown_match when at original match position (glepnir).

Patch 9.1.0488
Problem:  Wrong padding for pum "kind" with 'rightleft'.
Solution: Fix off-by-one error (zeertzjq).

Patch 9.1.0489
Problem:  default completion may break with fuzzy
Solution: Check that completion_match_array is not null (glepnir).

Patch 9.1.0490
Problem:  minor style problems with Patch 9.1.0487
Solution: use shown_compl instead of after_first_compl variable (glepnir).

Patch 9.1.0491
Problem:  Cmdline pum doesn't work properly with 'rightleft'.
Solution: Don't use curwin->w_p_rl in cmdline mode in pum_redraw().  Use
          a static variable since pum_may_redraw() may be called in any
          mode.  Also correct position of other popups with 'rightleft'
          (zeertzjq).

Patch 9.1.0492
Problem:  MNV-script files may not be recognised
Solution: Add shebang line detection (Doug Kearns)

Patch 9.1.0493
Problem:  Test for Patch 9.1.0489 doesn't fail without the fix.
Solution: Use "!" flag of feedkeys() so that ex_normal_busy is not set
          and ins_compl_check_keys() is not skipped (zeertzjq).

Patch 9.1.0494
Problem:  Wrong matched text highlighted in pum with 'rightleft'.
Solution: Match using the original text instead of the reversed text
          (zeertzjq).

Patch 9.1.0495
Problem:  Matched text isn't highlighted in cmdline pum.
Solution: Use cmdline completion pattern in cmdline mode (zeertzjq).

Patch 9.1.0496
Problem:  matched text is highlighted case-sensitively
Solution: Use MB_STRNICMP, update highlighting when the base changes (glepnir)

Patch 9.1.0497
Problem:  termdebug can be further improved
Solution: Refactor save/restore, update docs, add a new save/restore test
          (Ubaldo Tiberi).

Patch 9.1.0498
Problem:  getcmdcompltype() interferes with cmdline completion.
Solution: Don't set expand context when it's already set (zeertzjq).

Patch 9.1.0499
Problem:  MS-Windows: doesn't handle symlinks properly (Timothy Madden)
Solution: Implement lstat() on MS-Windows (LemonBoy).

Patch 9.1.0500
Problem:  cannot switch buffer in a popup (Yggdroot)
Solution: Add popup_setbuf() function.

Patch 9.1.0501
Problem:  too complicated mapping restore in termdebug
Solution: Simplify unmapping logic, add a few more tests (Ubaldo Tiberi).

Patch 9.1.0502
Problem:  MS-Windows: too much legacy code
Solution: Clean up old code (Ken Takata).

Patch 9.1.0503
Problem:  cannot use fuzzy keyword completion (Maxim Kim)
Solution: Add the "fuzzycollect" value for the 'completeopt'
          setting, to gather matches using fuzzy logic (glepnir).

Patch 9.1.0504
Problem:  inner-tag textobject confused about ">" in attributes
Solution: Skip over quoted '>' when determining the start position

Patch 9.1.0505
Problem:  filetype: Faust files are not recognized
Solution: Detect '*.lib' files as Faust filetype, add detection for
          '*.dsp' files (Faust or Make), remove '*.lib' from Cobol
          filetype (PowerUser64)

Patch 9.1.0506
Problem:  filetype: .envrc & .prettierignore not recognized
Solution: Detect '.envrc' as shell and '.prettierignore' as gitignore
          filetype (Tyler Miller)

Patch 9.1.0507
Problem:  hard to detect cursor movement in the command line
Solution: Add the CursorMovedC autocommand (Shougo Matsushita).

Patch 9.1.0508
Problem:  termdebug plugin can be further improved
Solution: Add sanity-check, timeout config, change vars to bool
          update docs, add more tests (Ubaldo Tiberi).

Patch 9.1.0509
Problem:  not possible to translate MNV script messages (RestorerZ)
Solution: Implement bindtextdomain() and gettext() to support MNV script
          message translations (Christ van Willegen).

Patch 9.1.0510
Problem:  CI: test_gettext fails on MacOS14 + MSVC Win (after v9.1.0509)
Solution: Skip the test for now.

Patch 9.1.0511
Problem:  CursorMovedC triggered wrongly with setcmdpos() (after v9.1.0507)
Solution: Remove the premature triggering.  Also don't trigger when
          cursor didn't move (zeertzjq).

Patch 9.1.0512
Problem:  Mode message for spell completion doesn't match allowed keys
          (Kyle Kovacs)
Solution: Show "^S" instead of "s" (zeertzjq).

Patch 9.1.0513
Problem:  MNV9: segfault with object comparisons
Solution: Increment recusive_cnt before calling typval_compare_object()
          (Ernie Rael)

Patch 9.1.0514
Problem:  MNV9: issue with comparing objects recursively (Yinzuo Jiang)
Solution: only set recursive == TRUE, when called from tv_equal(), not
          from typeval_compare_object(), refactor code into object_equal()
          function (LemonBoy).

Patch 9.1.0515
Problem:  MNV9: segfault in object_equal()
Solution: Test for object pointer being NULL, before dereferencing them
          (Ernie Rael).

Patch 9.1.0516
Problem:  need more tests for nested dicts and list comparision
Solution: Add tests for comparing deeply nested List/Dict values
          (Yegappan Lakshmanan).

Patch 9.1.0517
Problem:  MS-Windows: too long lines in Make_mvc.mak
Solution: Wrap long lines in Make_mvc.mak (Ken Takata).

Patch 9.1.0518
Problem:  initialize the random buffer can be improved
Solution: Refactor init_srand() function, move machine-specific parts to
          os_mswin and os_unix, implement a fallback for Windows 10 and
          later (LemonBoy).

Patch 9.1.0519
Problem:  MS-Windows: libvterm compilation can be optimized
Solution: Enable batch inference for libvterm (Ken Takata).

Patch 9.1.0520
Problem:  MNV9: incorrect type checking for modifying lists
Solution: Correctly assign the member declared types and generate
          typechecks, add disassembly test (LemonBoy).

Patch 9.1.0521
Problem:  if_py: _PyObject_CallFunction_SizeT is dropped in Python 3.13
Solution: define PyObject_CallFunction for Python >= 3.13 (Yaakov Selkowitz).

Patch 9.1.0522
Problem:  MNV9: string(object) hangs for recursive references
Solution: Handle recursive objects specifically, add a hang test and a
          compare test (Ernie Rael)

Patch 9.1.0523
Problem:  MNV9: cannot downcast an object (Ernie Rael)
Solution: Fix class downcasting issue (LemonBoy).

Patch 9.1.0524
Problem:  the recursive parameter in the *_equal functions can be removed
Solution: Remove the recursive parameter in dict_equal(), list_equal()
          object_equal and tv_equal(). Use a comparison of the static
          var recursive_cnt == 0 to determine whether or not tv_equal()
          has been called recursively (Yinzuo Jiang).

Patch 9.1.0525
Problem:  Right release selects immediately when pum is truncated.
Solution: Use pum_height instead of pum_size when checking click row.
          Don't place it above mouse row when there is more space below.
          (zeertzjq)

Patch 9.1.0526
Problem:  Cursor is moved to bottom of window trying to pagescroll when
          already at the start of the buffer (Asheq Imran, after v9.1.0357)
Solution: Don't move cursor when buffer content did not move (Luuk van Baal).

Patch 9.1.0527
Problem:  inconsistent parameter in Makefiles for MNV executable
Solution: consistently use $MNVPROG across all Makefiles (RestorerZ).

Patch 9.1.0528
Problem:  spell completion message still wrong in translations
          (after 9.1.0512)
Solution: Update translation files with the new message (Kyle Kovacs).

Patch 9.1.0529
Problem:  silent! causes following try/catch to not work (Malcolm Rowe)
Solution: consider emsg_silent in handle_did_throw() and do not abort
          evaluation flow for :silent! (LemonBoy).

Patch 9.1.0530
Problem:  xxd: MSVC warning about non-ASCII character
Solution: Specify source-charset:utf-8 in Makefile (Ken Takata).

Patch 9.1.0531
Problem:  resource leak in mch_get_random() (after v9.1.0518)
Solution: close file descriptor after reading successfully from /dev/urandom

Patch 9.1.0532
Problem:  filetype: Cedar files not recognized
Solution: Detect '*.cedar' files as cedar filetype (Riley Bruins).

Patch 9.1.0533
Problem:  MNV9: need more tests for nested objects equality
Solution: Add more tests (Ernie Rael).

Patch 9.1.0534
Problem:  completion wrong with fuzzy when cycling back to original
          (Quan Nguyen)
Solution: Reset show_match_ok when cp_score is zero (glepnir).

Patch 9.1.0535
Problem:  newline escape wrong in ex mode (Konrad Schwarz)
Solution: Partly revert Patch 7.3.014, remove backslash in front of a
          newline when not in prompt mode in ex line mode (Mohamed Akram).

Patch 9.1.0536
Problem:  filetype: zone files are not recognized (rpdprd)
Solution: Detect '*.zone' files as bindzone filetype.

Patch 9.1.0537
Problem:  signed number detection for CTRL-X/A can be improved (Chris Patuzzo)
Solution: Add the new "blank" value for the 'nrformat' setting. This will make
          MNV assume a signed number only if there is a blank in front of the
          sign (distobs).

Patch 9.1.0538
Problem:  not possible to assign priority when defining a sign
          (Mathias Fußenegger)
Solution: Add the priority argument for the :sign-define ex command and
          the sign_define() function (LemonBoy).

Patch 9.1.0539
Problem:  Not enough tests for what v9.1.0535 fixed
Solution: Add another test for ex-mode.

Patch 9.1.0540
Problem:  Unused assignment in sign_define_cmd()
Solution: Remove the assignment.  Also document the "priority" flag of
          sign_define() (zeertzjq).

Patch 9.1.0541
Problem:  failing test with MNV configured without channel
Solution: In the test Test_null_values() verify that the 'channel' and
          'job' feature is present in MNV. (Dominique Pellé).

Patch 9.1.0542
Problem:  MNV9: confusing string() output for object functions
Solution: improve the output for object functions (Ernie Rael).

Patch 9.1.0543
Problem:  Behavior of CursorMovedC is strange.
Solution: Also trigger when the cmdline has changed (zeertzjq).

Patch 9.1.0544
Problem:  filetype: ldapconf files are not recognized
Solution: Detect '.ldaprc', 'ldap.conf' and 'ldaprc' files as ldapconf
          filetype, include a simple ldapconf ftplugin file (Riley Bruins).

Patch 9.1.0545
Problem:  MSVC conversion warning (LemonBoy, after 9.1.0522)
Solution: Use size_t instead of int, fix style of casts (Ernie Rael).

Patch 9.1.0546
Problem:  mnv-tiny fails on CTRL-X/CTRL-A (Rob Foehl, after 9.1.0172)
Solution: Move #ifdefs, so that after changing the line in del_bytes,
          the cached textlen value is invalidated.

Patch 9.1.0547
Problem:  No way to get the arity of a MNV function (Austin Ziegler)
Solution: Enhance get() MNV script function to return the function
          argument info using get(func, "arity") (LemonBoy).

Patch 9.1.0548
Problem:  it's not possible to get a unique id for some vars
Solution: Add the id() MNV script function, which returns a unique
          identifier for object, dict, list, job, blob or channel
          variables (Ernie Rael).

Patch 9.1.0549
Problem:  fuzzycollect regex based completion not working as expected
Solution: Revert Patch v9.1.0503 (glepnir).

Patch 9.1.0550
Problem:  filetype: antlr4 files are not recognized
Solution: Detect '*.g4' as antlr4 filetype, include a simple antlr4
          syntax and filetype plugin (Yinzuo Jiang).

Patch 9.1.0551
Problem:  filetype: htmlangular files are not properly detected
Solution: Use the new htmlangular filetype for angular files, because
          since angular v17, those are no longer valid HTML files
          (Dennis van den Berg).

Patch 9.1.0552
Problem:  No test for antlr4 filetype (after 9.1.0550)
Solution: Add a simple filename test.

Patch 9.1.0553
Problem:  filetype: *.mcmeta files are not recognized
Solution: Detect '*.mcmeta' files as json filetype (Tomodachi94).

Patch 9.1.0554
Problem:  :bw leaves jumplist and tagstack data around (Paul "Joey" Clark)
Solution: Wipe jumplist and tagstack references to the wiped buffer
          (LemonBoy).

Patch 9.1.0555
Problem:  filetype: angular ft detection is still problematic (after 9.1.0551)
Solution: Detect htmlangular filetype only by inspecting the content,
          do not try to determine it from a generic name like
          '*.component.html'.

Patch 9.1.0556
Problem:  :bwipe doesn't remove file from jumplist and tagstack of other
          tabpages. Time complexity of mark_forget_file() is O(n^2) when
          removing all entries (after v9.1.0554)
Solution: Use FOR_ALL_TAB_WINDOWS().  Start the loops over the arrays
          from the end instead of the start (zeertzjq).

Patch 9.1.0557
Problem:  moving in the buffer list doesn't work as documented
          (SenileFelineS)
Solution: Skip non-help buffers, when run from normal buffers, else
          only move from help buffers to the next help buffer (LemonBoy).

Patch 9.1.0558
Problem:  filetype: prolog detection can be improved
Solution: Improved the Prolog file detection regex and added tests for
          all cases (igna_martinoli).

Patch 9.1.0559
Problem:  translation of mnv scripts can be improved (after v9.1.0509)
Solution: improve documentation, add tests, include missing
          libraries for the Windows CI (RestorerZ).

Patch 9.1.0560
Problem:  bindtextdomain() does not indicate an error (after v9.1.509)
Solution: return false on failure (OOM) (Chris van Willegen).

Patch 9.1.0561
Problem:  netbeans: variable used un-initialized (Coverity) (after v9.1.0557)
Solution: Properly initialize exarg_T struct for use with netbeans
          The actual exarg.cmdidx doesn't really matter, but let's use
          something, that is not affected by the recent changes (going through
          the buffer list) and use CMD_USER.

Patch 9.1.0562
Problem:  tests: inconsistency in test_findfile.mnv, it saves and restores
          'shellslash', but doesn't actually set it
Solution: Set shellslash explicitly (zeertzjq).

Patch 9.1.0563
Problem:  Cannot process any Key event.
Solution: Add the KeyInputPre autocmd (Shougo Matsushita).

Patch 9.1.0564
Problem:  id() can be made faster
Solution: don't use printf(), use clever shift of pointer (Ernie Rael).

Patch 9.1.0565
Problem:  Stop directory doesn't work properly in 'tags' (Jesse Pavel).
Solution: Also move the stop directory forward by one byte (zeertzjq).

Patch 9.1.0566
Problem:  Stop directory in findfile() doesn't work properly without a
          trailing slash.
Solution: Always use fnamencmp(), not fnamecmp().

Patch 9.1.0567
Problem:  Cannot use relative paths as findfile() stop directories.
Solution: Change a relative path to an absolute path (zeertzjq).

Patch 9.1.0568
Problem:  Cannot expand paths from 'cdpath' setting (Daniel Hahler)
Solution: Implement 'cdpath' completion, add the new 'dir_in_path'
          completion type (LemonBoy).

Patch 9.1.0569
Problem:  fnamemodify() treats ".." and "../" differently.
Solution: Expand ".." properly like how "/.." is treated in 8.2.3388
          (zeertzjq).

Patch 9.1.0570
Problem:  tests: test_gettext_make can be improved (after v9.1.0559)
Solution: Improve the test (Ken Takata).

Patch 9.1.0571
Problem:  tests: Test_gui_lowlevel_keyevent is flaky
Solution: Mark as flaky (Ken Takata).

Patch 9.1.0572
Problem:  cannot specify tab page closing behaviour (Gianluca Pacchiella).
Solution: Add the 'tabclose' option (LemonBoy).

Patch 9.1.0573
Problem:  ex: no implicit print for single addresses
Solution: Explicitly print even during single addresses, as requested by POSIX
          (Mohamed Akram)

Patch 9.1.0574
Problem:  ex: wrong handling of commands after bar
Solution: for :append, :insert and :change use the text after the bar as input
          for those commands. This is what POSIX requests (Mohamed Akram).

Patch 9.1.0575
Problem:  Wrong comments in alt_tabpage() (after v9.1.0572)
Solution: Correct the comments (zeertzjq).

Patch 9.1.0576
Problem:  tests: still an issue with test_gettext_make (after v9.1.0570)
Solution: Compare the getenv() output against v:null to verify
          that $GETTEXT_PATH was set or not (Ken Takata).

Patch 9.1.0577
Problem:  Unnecessary checks for v:sizeoflong in test_put.mnv.  They are
          no longer necessary as Patch 8.2.3661 has changed the count to
          be within 32-bit integer limit.
Solution: Remove the checks (zeertzjq).

Patch 9.1.0578
Problem:  no tests for :Tohtml
Solution: Add two basic tests (Yinzuo Jiang).

Patch 9.1.0579
Problem:  Ex command is still executed after giving E1247.
Solution: Indicate the error properly and set cmd to NULL (zeertzjq).

Patch 9.1.0580
Problem:  An :lmap mapping for a printable keypad key is not applied
          when typing it in Select mode.
Solution: Change keypad key to ASCII after setting vgetc_char (zeertzjq).

Patch 9.1.0581
Problem:  style: Various lines are indented inconsistently
Solution: Retab these lines and correct some comments (zeertzjq).

Patch 9.1.0582
Problem:  Printed line no longer overwrites colon when pressing Enter in
          Ex mode (after 9.1.0573).
Solution: Restore the behavior of pressing Enter in Ex mode (zeertzjq).

Patch 9.1.0583
Problem:  filetype: *.pdf_tex files are not recognized
Solution: Detect '*.pdf_tex' files as tex filetype (Jonas Dujava).

Patch 9.1.0584
Problem:  Warning about redeclaring f_id() non-static
Solution: Declare f_id() static (John Marriott).

Patch 9.1.0585
Problem:  tests: test_cpoptions leaves swapfiles around
Solution: Use :bw! instead of :close!

Patch 9.1.0586
Problem:  ocaml runtime files are outdated
Solution: Sync those files with the upstream repo, detect a few more ocaml
          files (Yinzuo Jiang).

Patch 9.1.0587
Problem:  tests: Test_gui_lowlevel_keyevent is still flaky (after v9.1.0571)
Solution: Skip generating key event for Ctrl-C, remove the test_is_flaky
          variable again (Ken Takata).

Patch 9.1.0588
Problem:  The maze program no longer compiles on newer clang
Solution: Use ANSI C function definition for main() (Mohamed Akram).

Patch 9.1.0589
Problem:  vi: d{motion} and cw command work differently than expected
Solution: add new cpo-z flag to make the behaviour configurable

Patch 9.1.0590
Problem:  MNV9: crash when accessing getregionpos() return value.
Solution: Correct the return type (zeertzjq).

Patch 9.1.0591
Problem:  filetype: *.wl files are not recognized
Solution: Detect '*.wl' files as Mathematica package files (Jonas Dujava).

Patch 9.1.0592
Problem:  filetype: Mediawiki files are not recognized
Solution: detect "*.mw" and "*.wiki" as mediawiki filetype,
          include basic syntax and filetype plugins (AvidSeeker).

Patch 9.1.0593
Problem:  filetype: Asymptote files are not recognized
Solution: detect '*.asy' files as asy filetype, include ftplugin and syntax
          plugin (AvidSeeker).

Patch 9.1.0594
Problem:  Unnecessary redraw when setting 'winfixbuf'.
Solution: Remove P_RWIN flag (zeertzjq).

Patch 9.1.0595
Problem:  make errors out with the po Makefile
          (yanivshlom, after v9.1.0558)
Solution: Set variables differently (RestorerZ).

Patch 9.1.0596
Problem:  filetype: Debian devscripts config files are not recognized
Solution: detect devscripts.conf and .devscripts files as sh filetype
          (sourced by /bin/sh).

Patch 9.1.0597
Problem:  KeyInputPre cannot get the (unmapped typed) key (after v9.1.0563)
Solution: Add the "typedchar" property to the v:event dict
          (Shougo Matsushita).

Patch 9.1.0598
Problem:  fuzzy completion does not work with default completion
Solution: Make it work (glepnir).

Patch 9.1.0599
Problem:  Termdebug: still get E1023 when specifying arguments and using
          a prompt buffer.
Solution: Use empty() instead of len().  Add a test.  Fix wrong order of
          arguments to assert_equal() in Test_termdebug_basic() (zeertzjq).

Patch 9.1.0600
Problem:  unused function typval_compare_class() and error constants
Solution: Remove function typval_compare_class() and ifdef out
          unused error constants (Dominique Pellé).

Patch 9.1.0601
Problem:  Wrong cursor position with 'breakindent' when a double-width
          character doesn't fit in a screen line (mikoto2000)
Solution: Include the width of the 'breakindent' properly (zeertzjq).

Patch 9.1.0602
Problem:  filetype: Prolog detection can be improved
Solution: Update the prolog detection regex (igna_martinoli).

Patch 9.1.0603
Problem:  Pattern detection for Dracula language uses "*lvs" and "*lpe".
          as there is no dot, those are not treated as extensions which
          they should (judging by 'runtime/syntax/dracula.mnv' and
          common sense).
Solution: Use "*.lvs" and "*.lpe" patterns (Evgeni Chasnovski).

Patch 9.1.0604
Problem:  popup_filter during Press Enter prompt seems to hang
Solution: Return early, when need_wait_return is set (Ernie Rael).

Patch 9.1.0605
Problem:  internal error with fuzzy completion (techntools)
Solution: Only fuzzy complete the pattern after directory separator
          (glepnir)

Patch 9.1.0606
Problem:  tests: generated files may cause failure in test_codestyle
Solution: Exclude OLE-related generated files from style checks (Ken Takata).

Patch 9.1.0607
Problem:  termdebug: uses inconsistent style
Solution: termdebug: deprecate numeric values for v:true/false, fix white
          space style in the plugin (Ubaldo Tiberi).

Patch 9.1.0608
Problem:  Coverity warns about a few potential issues
Solution: Fix those issues (see details below)

Patch 9.1.0609
Problem:  outdated comments in Makefile
Solution: Update outdated comments, update rule for mnvtags (Shane Harper).

Patch 9.1.0610
Problem:  filetype: OpenGL Shading Language files are not detected
Solution: Detect various file extensions as GLSL filetype, include
          indent and syntax script, do no longer recognize '*.comp'
          as Mason filetype (Gregory Anders).

Patch 9.1.0611
Problem:  Ambiguous mappings not correctly resolved with modifyOtherKeys
Solution: Check for termcode when an upper case mapping is received and
          does not match (Oleg Goncharov).

Patch 9.1.0612
Problem:  filetype: deno.lock file not recognized
Solution: detect 'deno.lock' as json filetype (カワリミ人形).

Patch 9.1.0613
Problem:  tests: termdebug test may fail and leave temp file around
          (Dominique Pellé)
Solution: Only run balloon_show() if the function exists, validate
          termdebug is running using the g: termdebug_is_running var,
          use defer to delete temporary files.

Patch 9.1.0614
Problem:  MNV syntax file changes to :set command highlighting render
          some test dump files invalid (zeertzjq)
Solution: Regenerate the affected dump files (Doug Kearns).

Patch 9.1.0615
Problem:  Unnecessary STRLEN() in make_percent_swname()
Solution: Pass the end of "dir" to make_percent_swname() (zeertzjq).

Patch 9.1.0616
Problem:  filetype: Make syntax highlighting off for MS Makefiles
Solution: Try to detect MS Makefiles and adjust syntax rules to it.
          (Ken Takata)

Patch 9.1.0617
Problem:  Cursor moves beyond start of a folded range at the end of a buffer.
Solution: Move cursor to start of fold when going beyond end of buffer.
          Check that cursor moved to detect FAIL in outer cursor function.
          (Luuk van Baal)

Patch 9.1.0618
Problem:  cannot mark deprecated attributes in completion menu
Solution: Add hl_group to the Dictionary of supported completion fields
          (glepnir).

Patch 9.1.0619
Problem:  tests: test_popup fails (after v9.1.0618)
Solution: Correct test, move combining extra attributes to
          pum_compute_text_attrs() (glepnir).

Patch 9.1.0620
Problem:  MNV9: segfauls with null objects (after v9.1.0219)
Solution: Check object pointer being NULL (Ernie Rael).

Patch 9.1.0621
Problem:  MS-Windows: startup code can be improved
Solution: Re-work and optimize win32 startup code (Ken Takata).

Patch 9.1.0622
Problem:  MS-Windows: mingw-build can be optimized
Solution: Use --gc-sections to reduce the size of the executable
          (Ken Takata)

Patch 9.1.0623
Problem:  Mingw: warnings when trying to delete non-existing files
Solution: Use "rm -f" instead of "rm" to suppress errors for
          non-existing files (Ken Takata)

Patch 9.1.0624
Problem:  ex command modifiers are not found (Ingo Karkat, after v9.1.0352)
Solution: Partly revert Patch v9.1.0352, ignore :{ and :}

Patch 9.1.0625
Problem:  tests: test output all translated messages for all
          translations
Solution: Redirect the output of check.mnv to /dev/null, it's not that
          useful.

Patch 9.1.0626
Problem:  MNV9: need more tests with null objects (after v9.1.0620)
Solution: add one more test with null_object (Ernie Rael).

Patch 9.1.0627
Problem:  MinGW: build-error when COVERAGE is enabled
          (after v9.1.0621)
Solution: Fix regressions in v9.1.0621 and v9.1.0622 (Ken Takata).

Patch 9.1.0628
Problem:  MinGW: coverage files are not cleaned up
Solution: Adjust clean rule to remove the coverage files (Ken Takata).

Patch 9.1.0629
Problem:  Rename of pum hl_group is incomplete in source.
Solution: Also rename the test function.  Rename to user_hlattr in code
          to avoid confusion with pum_extra.  Add test with matched text
          highlighting (zeertzjq).

Patch 9.1.0630
Problem:  MS-Windows: build fails with MNVDLL and mzscheme
Solution: Define scheme_register_tls_space() inside gmnv.exe
          and refer to it from the dll (Ken Takata).

Patch 9.1.0631
Problem:  wrong completion list displayed with non-existing dir + fuzzy
          completion (kawarimidoll)
Solution: clear list of matches, if leader did not use fuzzy match (glepnir).

Patch 9.1.0632
Problem:  MS-Windows: Compiler Warnings
Solution: Fix the warnings (Ken Takata).

Patch 9.1.0633
Problem:  Compilation warnings with `-Wunused-parameter`
Solution: Add the `UNUSED` macro where needed, and remove some
          superfluous ones (Dominique Pellé).

Patch 9.1.0634
Problem:  Ctrl-P not working by default (Jesse Pavel, after v9.1.0598)
Solution: Revert part of v9.1.0598 and set cur_match_pos
          correctly according to compl_dir_forward().

Patch 9.1.0635
Problem:  filetype: SuperHTML template files not recognized
Solution: Update the filetype detection code to detect '*.shtml' either
          as HTML (Server Side Includes) or SuperHTML (template files)
          (EliSauder).

Patch 9.1.0636
Problem:  filetype: ziggy files are not recognized
Solution: detect '*.ziggy' files as ziggy filetype,
          detect '*.ziggy-schema' files as ziggy-schema filetype (EliSauder).

Patch 9.1.0637
Problem:  MS-Windows: Style issues in MSVC Makefile
Solution: Fix style issues, simplify logic (Ken Takata).

Patch 9.1.0638
Problem:  E1510 may happen when formatting a message (after 9.1.0181).
Solution: Only give E1510 when using typval (zeertzjq).

Patch 9.1.0639
Problem:  channel timeout may wrap around
Solution: Correct timeout calculation when GetTickCount() wraps around
          (Ken Takata).

Patch 9.1.0640
Problem:  Mingw: Makefile can be improved
Solution: Reduce nesting level, directly check if the '-Wl,--entry'
          option is required (Ken Takata).

Patch 9.1.0641
Problem:  MS-Windows: OLE enabled in console version, may cause hang
          (Linda_pp)
Solution: Disable OLE for console version (Ken Takata).

Patch 9.1.0642
Problem:  Check that mapping rhs starts with lhs doesn't work if lhs is
          not simplified.
Solution: Keep track of the mapblock containing the alternative lhs and
          also compare with it (zeertzjq).

Patch 9.1.0643
Problem:  terminal: cursor may end up on invalid position after reducing
          the scrollback lines (user202729)
Solution: After reducing the scrollback size, check the cursor position,
          making sure it does not end up on an invalid line.

Patch 9.1.0644
Problem:  Unnecessary STRLEN() when applying mapping (after v9.1.0642).
Solution: Use m_keylen and mnv_strnsave() (zeertzjq).

Patch 9.1.0645
Problem:  regex: wrong match when searching multi-byte char case-insensitive
          (diffsetter)
Solution: Apply proper case-folding for characters and search-string

Patch 9.1.0646
Problem:  MNV9: imported function may not be found
Solution: Try to find the function by name (Ernie Rael).

Patch 9.1.0647
Problem:  [security] use-after-free in tagstack_clear_entry (Suyue Guo).
Solution: Instead of manually calling mnv_free() on each of the tagstack
          entries, let's use tagstack_clear_entry(), which will
          also free the stack, but using the MNV_CLEAR macro, which prevents a
          use-after-free by setting those pointers to NULL.

Patch 9.1.0648
Problem:  [security] double-free in dialog_changed() (SuyueGuo)
Solution: Only clear pointer b_sfname pointer, if it is different than the
          b_ffname pointer.  Don't try to free b_fname, set it to NULL
          instead.

Patch 9.1.0649
Problem:  Wrong comment for "len" argument of call_simple_func().
Solution: Remove the "or -1 to use strlen()".  Also change its type to
          size_t to remove one cast. (zeertzjq).

Patch 9.1.0650
Problem:  Coverity warning in cstrncmp() (after v9.1.0645).
Solution: Change the type of n2 to int (zeertzjq).

Patch 9.1.0651
Problem:  ex: trailing dot is optional for :g and :insert/:append
Solution: Don't break out early, when the next command is empty
          (Mohamed Akram).

Patch 9.1.0652
Problem:  too many strlen() calls in syntax.c
Solution: refactor code to reduce the number or strlen() calls, get rid of
          un-used SYN_NAMELEN macro (John Marriott).

Patch 9.1.0653
Problem:  Patch v9.1.0648 not completely right (zeertzjq)
Solution: Remove always true condition.

Patch 9.1.0654
Problem:  completion does not respect completeslash with fuzzy (egesip)
Solution: Change path separator on Windows, depending on 'completeslash'
          option value (glepnir).

Patch 9.1.0655
Problem:  filetype: goaccess config file not recognized
Solution: Detect 'goaccess.conf' as goaccess filetype, also
          include a basic syntax and ftplugin (Adam Monsen)

Patch 9.1.0656
Problem:  MS-Windows: MSVC Makefile CPU handling can be improved
Solution: Update Makefile and also remove some old code (Ken Takata).

Patch 9.1.0657
Problem:  MS-Windows: MSVC build time can be optimized
Solution: Stop using Powershell, show detected version, read _MSC_VER
          and _MSC_FULL_VER in a single cl execution. (Ken Takata).

Patch 9.1.0658
Problem:  Coverity warns about dereferencing NULL pointer.
Solution: Bail out if mnv_strrchr() returns NULL (zeertzjq).

Patch 9.1.0659
Problem:  MS-Windows: MSVC Makefile is a bit hard to read (after v9.1.0657).
Solution: Indent the if/else statements to improve readability (Ken Takata).

Patch 9.1.0660
Problem:  MS-Windows: Shift-Insert does not work on old conhost
          (Nick Jensen, after 9.0.1146)
Solution: Handle Shift-Insert specifically (Christian Plewright).

Patch 9.1.0661
Problem:  the zip plugin is not tested.
Solution: Include tests (Damien).

Patch 9.1.0662
Problem:  filecopy() may return wrong value when readlink() fails.
Solution: Set ret to -1 so that 0 is returned when readlink() fails
          (zeertzjq).

Patch 9.1.0663
Problem:  tests: zip test still resets 'shellslash' option
Solution: Remove resetting the 'shellslash' option, the zip plugin should now
          be able to handle this options.

Patch 9.1.0664
Problem:  MS-Windows: console mnv did not switch back to main screen on
          exit
Solution: switch back to main screen on exit (Ken Takata).

Patch 9.1.0665
Problem:  Locked variable can be changed in a :for loop.
Solution: Always do a full permission check on the first loop iteration
          where ASSIGN_DECL is not set (zeertzjq).

Patch 9.1.0666
Problem:  assert_equal() doesn't show multibyte string correctly
Solution: Properly advance over a multibyte char (zeertzjq).

Patch 9.1.0667
Problem:  Some other options reset curswant unnecessarily when set.
          (Andrew Haust)
Solution: Don't reset curswant when setting 'comments', 'commentstring'
          or 'define' (zeertzjq).

Patch 9.1.0668
Problem:  build-error with python3.12 and stable ABI (zdohnal)
Solution: Add type casts, define Py_INCREF for Python3.12 and higher
          (Ken Takata).

Patch 9.1.0669
Problem:  stable python ABI not used by default
Solution: Enable stable python ABI v3.8 when building with python3/dyn
          by default, update the default Python3 version to 3.8 for
          MS-Windows (Ken Takata).

Patch 9.1.0670
Problem:  po file encoding fails on *BSD during make
Solution: Instead of using `$<` make use of variable `$?` which should
          be equivalent when the rule is dependent on only a single
          file (RestorerZ).

Patch 9.1.0672
Problem:  marker folds may get corrupted on undo (Yousef Mohammed)
Solution: When adjusting folds, make sure that line1 is the lower limit
          and line2 is the upper line limit. In particular, line2 should
          not be able to get smaller than line1.

Patch 9.1.0673
Problem:  MNV9: too recursive func calls when calling super-class method
          with non-overridden super-call methods. (Aliaksei Budavei)
Solution: Use interface method, when super is to be used (Ernie Rael)

Patch 9.1.0674
Problem:  MNV9: compiling abstract method fails because of missing
          return (Aliaksei Budavei)
Solution: Don't require a return statement for an abstract method when
          compiling (Ernie Rael).

Patch 9.1.0675
Problem:  Patch v9.1.0674 causes problems
Solution: Revert it for now.

Patch 9.1.0676
Problem:  style issues with man pages
Solution: Update man pages and test_xxd.mnv, since it uses
          the xxd man page (RestorerZ)

Patch 9.1.0677
Problem:  :keeppatterns does not retain the substitute pattern
          for a :s command
Solution: Preserve the last substitute pattern when used with the
          :keeppatterns command modifier (Gregory Anders).

Patch 9.1.0678
Problem:  [security]: use-after-free in alist_add() (SuyueGuo)
Solution: Lock the current window, so that the reference to
          the argument list remains valid.

Patch 9.1.0679
Problem:  Rename from w_closing to w_locked is incomplete (after 9.1.0678).
Solution: Rename remaining occurrences of w_closing to w_locked and
          update comments (zeertzjq).

Patch 9.1.0680
Problem:  VMS does not have defined uintptr_t
Solution: Add type definitions (Zoltan Arpadffy).

Patch 9.1.0681
Problem:  tests: Analyzing failed screendumps is hard
Solution: Facilitate the viewing of rendered screendumps under src/
          add some documentation on how to use the viewdumps.mnv
          script (Aliaksei Budavei)

Patch 9.1.0682
Problem:  MNV9: Segfault with uninitialized funcref (Daniel Viberg)
Solution: Check the Funcref for being Null before trying to access it
          (Ernie Rael).

Patch 9.1.0683
Problem:  mode() returns wrong value with <Cmd> mapping
Solution: Change decision priority of VIsual_active and move visual mode a bit
          further down (kuuote)

Patch 9.1.0684
Problem:  completion is inserted on Enter with "noselect" (Carman Fu)
Solution: Check noselect before update compl_shown_match (glepnir).

Patch 9.1.0685
Problem:  too many strlen() calls in usercmd.c
Solution: Refactor code to reduce the number or strlen() calls (John Marriott)

Patch 9.1.0686
Problem:  zip-plugin has problems with special characters (user202729)
Solution: Escape '*?[\' on Unix and handle those chars a bit differently on
          MS-Windows, add a test, check before overwriting files.

Patch 9.1.0687
Problem:  Makefile may not install desktop files
Solution: Check for "$(DESTDIR)$(DATADIR)" instead of just "$DESTDIR",
          which is usually not defined, add uninstall rules for the
          icons and the desktop files.

Patch 9.1.0688
Problem:  MNV9: dereferences NULL pointer in check_type_is_value() (Suyue Guo)
Solution: Verify that the pointer is not Null.

Patch 9.1.0689
Problem:  buffer-overflow in do_search() with 'rightleft' (SuyueGuo)
Solution: After reversing the text (which allocates a new buffer),
          re-calculate the text length.

Patch 9.1.0690
Problem:  cannot set special highlight kind in popupmenu
Solution: Add kind_hlgroup item to complete function (glepnir).

Patch 9.1.0691
Problem:  python3: stable-abi may cause segfault on Python 3.11
          (Audrius Kažukauskas, after v9.1.0668)
Solution: Do not enable the stable Python ABI by default, only when used
          with --with-python3-stable-abi argument is given

Patch 9.1.0692
Problem:  Wrong patlen value in ex_substitute() (after 9.1.0426).
Solution: Compute patlen after finding end separator (zeertzjq).

Patch 9.1.0693
Problem:  Configure doesn't show result when not using python3 stable
          abi (after v9.1.0691)
Solution: Add back AC_MSG_RESULT() (Ken Takata).

Patch 9.1.0694
Problem:  The matchparen plugin is slow on a long line.
Solution: Don't use a regexp to get char at and before cursor (zeertzjq).

Patch 9.1.0695
Problem:  tests: test_crash leaves Untitled file around
Solution: Cleanup at the end of the test_crash.mnv test file.

Patch 9.1.0696
Problem:  installing runtime files fails when using SHADOWDIR
Solution: Revert part of v9.1.0609, since runtime/doc/Makefile's default
          value for MNVPROG does not work if mnv was built in a SHADOWDIR.
          (James McCoy)

Patch 9.1.0697
Problem:  heap-buffer-overflow in ins_typebuf (SuyueGuo)
Solution: When flushing the typeahead buffer, validate that there is enough
          space left

Patch 9.1.0698
Problem:  tests: "Untitled" file not removed when running Test_crash1_3 alone
          with TEST_FILTER (after v9.1.0695)
Solution: Use a TearDown function instead of another test (zeertzjq).

Patch 9.1.0699
Problem:  "dvgo" is not always an inclusive motion (Iain King-Speir)
Solution: Initialize the inclusive flag to false.

Patch 9.1.0700
Problem:  possible crash with 2byte encoding and glob2regpat()
Solution: Skip over character, if it is multi-byte character.

Patch 9.1.0701
Problem:  crash with NFA regex engine when searching for composing chars
          (SuyueGuo)
Solution: When there is no composing character, break out of the loop
          and check that out1 state is not null.

Patch 9.1.0702
Problem:  Patch 9.1.0700 broke CI
Solution: Revert for now.

Patch 9.1.0703
Problem:  possible crash with 2-byte encoding and glob2regpat()
          (after v9.1.0700, v9.1.0702)
Solution: Include both bytes for a multi-byte character for an
          escaped character.

Patch 9.1.0704
Problem:  inserting with a count is inefficient
Solution: Disable calculation of the cursor position and topline, if a
          count has been used (Ken Takata).

Patch 9.1.0705
Problem:  Sorting of fuzzy filename completion is not stable
Solution: Compare indexes when scores are equal.  Fix some typos (zeertzjq).

Patch 9.1.0706
Problem:  tests: test_gettext fails when using shadow dir
Solution: Link the ru_RU directory into the shadow testdir (James McCoy).

Patch 9.1.0707
Problem:  [security]: invalid cursor position may cause a crash
          (after v9.1.0038)
Solution: Set cursor to the last character in a line, if it would
          otherwise point to beyond the line; no tests added, as it
          is unclear how to reproduce this.

Patch 9.1.0708
Problem:  Window is updated with potentially invalid skipcol in recursive
          window update path. I.e. cursor outside of visible range in
          large line that does not fit.
Solution: Make sure it is valid (Luuk van Baal).

Patch 9.1.0709
Problem:  GUIEnter not found in Turkish locale (James McCoy)
Solution: Explicitly compare autocommand events by ASCII value and
          ignoring locale, because according to the documentation,
          events are case insensitive.

Patch 9.1.0710
Problem:  when a popup window covers the command line,
          the command line is not completely cleared on popup_hide() (yu3s)
Solution: Check if the popup window covers the command line and if it
          does, set the clear_cmdline flag.

Patch 9.1.0711
Problem:  tests: test_xxd may file when using different xxd
Solution: Make Test_xxd_color_0 agnostic to xxd's path, similar to
          Test_xxd_color_1 by filtering out shell command prompt in
          screen dump file (James McCoy).

Patch 9.1.0712
Problem:  tests: missing dependency of Test_gettext_makefile
Solution: Check that xgettext binary is available, else skip the test
          (James McCoy).

Patch 9.1.0713
Problem:  Newline causes E749 in Ex mode (after 9.1.0573).
Solution: Don't execute empty command followed by a newline.

Patch 9.1.0714
Problem:  tests: GuiEnter_Turkish test may fail
Solution: The message will be translated if the Turkish message file is
          installed. Use gettext() to get the expected message (Ken Takata).

Patch 9.1.0715
Problem:  Not correctly parsing color names (chdiza, after v9.1.0709)
Solution: Revert part of the Patch that compares the color names and
          fall-back to the macro STRICMP.

Patch 9.1.0716
Problem:  resetting setcellwidth() doesn't update the screen
Solution: Redraw after clearing the cellwidth table (Ken Takata).

Patch 9.1.0717
Problem:  Unnecessary nextcmd NULL checks in parse_command_modifiers().
Solution: Remove them (zeertzjq).

Patch 9.1.0718
Problem:  hard to guess the MNV Runtime Directory
Solution: Set the $MYMNVDIR environment variable to the users
          personal runtime directory (e.g. ~/.mnv on Linux).

Patch 9.1.0719
Problem:  Resetting cell widths can make 'listchars' or 'fillchars'
          invalid.
Solution: Check for conflicts when resetting cell widths (zeertzjq).

Patch 9.1.0720
Problem:  Wrong breakindentopt=list:-1 with multibyte chars or TABs in
          text matched by 'formatlistpat' (John M Devin)
Solution: Use the width of the match text (zeertzjq).

Patch 9.1.0721
Problem:  tests: test_mksession does not consider XDG_CONFIG_HOME
Solution: Allow to match $HOME/.mnv/ and $HOME/.config/mnv for &viewdir
          (John M Devin)

Patch 9.1.0722
Problem:  crash with large id in text_prop interface
          prop_add()/prop_add_list() (cposture)
Solution: Error out if the id is > INT_MAX or <= INT_MIN.

Patch 9.1.0723
Problem:  if_python: dynamic linking fails with python3 >= 3.13
          when using non-stable ABI (zdohnal)
Solution: Do not try to import the privat python symbol
          _PyObject_NextNotImplemented (Yee Cheng Chin).

Patch 9.1.0724
Problem:  if_python: link error with python 3.13 and stable ABI (zdohnal)
Solution: Use the correct stable APIs Py_IncRef and Py_DecRef instead
          (Yee Cheng Chin)

Patch 9.1.0725
Problem:  filetype: swiftinterface files are not recognized
Solution: Detect '*.swiftinterface' files as swift filetype (LosFarmosCTL).

Patch 9.1.0726
Problem:  not using correct python3 API with dynamic linking
Solution: Use stable IncRef / DecRef in Python 3 dynamic bindings
          (Yee Cheng Chin).

Patch 9.1.0727
Problem:  too many strlen() calls in option.c
Solution: Refactor the code to reduce the number of strlen() calls
          (John Marriott)

Patch 9.1.0728
Problem:  heap-use-after-free in garbage collection with location list
          user data.
Solution: Mark user data as in use when no other window is referencing
          the location list (zeertzjq).

Patch 9.1.0729
Problem:  Wrong cursor-screenline when resizing window
Solution: Invalidate saved left_col and right_col when width1 or width2
          change.

Patch 9.1.0730
Problem:  Crash with cursor-screenline and narrow window (elig0n)
Solution: Don't set right_col when width2 is 0 (zeertzjq).

Patch 9.1.0731
Problem:  inconsistent case sensitive extension matching
Solution: Unify case sensitive extension matching (Evgeni Chasnovski).

Patch 9.1.0732
Problem:  xxd: cannot use -b and -i together (Irgendwer)
Solution: Implement the missing changes (Andre Chang)

Patch 9.1.0733
Problem:  keyword completion does not work with fuzzy (egesip)
Solution: Handle ctrl_x_mode_normal() specifically (glepnir).

Patch 9.1.0734
Problem:  filetype: jinja files are not recognized
Solution: Detect '*.jinja' files a jinja filetype,
          include jinja syntax script (Gregory Anders)

Patch 9.1.0735
Problem:  filetype: salt files are not recognized
Solution: Detect '*.sls' files as filetype salt,
          include a syntax script (Gregory Anders)

Patch 9.1.0736
Problem:  Unicode tables are outdated
Solution: Update Unicode tables to v16

Patch 9.1.0737
Problem:  Asynchronous terminal jobs occasionally require more time
          to complete and redraw the window
Solution: Increase the sleep value from 10 to 50 milliseconds
          (Aliaksei Budavei).

Patch 9.1.0738
Problem:  filetype: rapid files are not recognized
Solution: Detect '*.sysx' and '*.modx' as rapid filetype (KnoP-01).

Patch 9.1.0739
Problem:  [security]: use-after-free in ex_getln.c
Solution: free pointer p a bit later (John Marriott).

Patch 9.1.0740
Problem:  incorrect internal diff with an empty file
Solution: Set pointer to NULL, instead of using an empty line file
          (Yukihiro Nakadaira).

Patch 9.1.0741
Problem:  No way to get prompt for input()/confirm()
Solution: Add getcmdprompt() function (Shougo Matsushita).

Patch 9.1.0742
Problem:  getcmdprompt() implementation can be improved
Solution: Improve and simplify it (h-east).

Patch 9.1.0743
Problem:  diff mode does not handle overlapping diffs correctly
Solution: Correct the logic to handle overlapping blocks
          (Yukihiro Nakadaira)

Patch 9.1.0744
Problem:  filetype: notmuch configs are not recognised
Solution: Detect more notmuch profile configuration files
          as dosini filetype (Julio B).

Patch 9.1.0745
Problem:  filetype: bun and deno history files not recognized
Solution: Detect '.bun_repl_history' and 'deno_history.txt' as
          javascript filetype (Wu, Zhenyu).

Patch 9.1.0746
Problem:  Test_halfpage_longline() fails on large terminals (lazypingu)
Solution: Use a window with known width (zeertzjq).

Patch 9.1.0747
Problem:  various typos in repo found
Solution: Fix typos (zeertzjq).

Patch 9.1.0748
Problem:  The :keep{alt,jumps,marks,patterns} commmands are sometimes
          misidentified as :k.
Solution: Make sure one_letter_cmd() only returns true for :k and not
          other :keep* commands (Doug Kearns).

Patch 9.1.0749
Problem:  filetype: http files not recognized
Solution: Detect '*.http' as http filetype, include
          http filetype plugin (Riley Bruins)

Patch 9.1.0750
Problem:  there are some Win9x legacy references
Solution: Remove those mentions (Nir Lichtman).

Patch 9.1.0751
Problem:  Error callback for term_start() not used (darkseid-is)
Solution: Attach pipe to stderr if an error callback exists

Patch 9.1.0752
Problem:  can set cedit to an invalid value
Solution: Check that the value is a valid key name (Milly)

Patch 9.1.0753
Problem:  Wrong display when typing in diff mode with 'smoothscroll'.
Solution: Use adjust_plines_for_skipcol() (zeertzjq).

Patch 9.1.0754
Problem:  fixed order of items in insert-mode completion menu
Solution: Introduce the 'completeitemalign' option with default
          value "abbr,kind,menu" (glepnir).

Patch 9.1.0755
Problem:  quickfix list does not handle hardlinks well
Solution: Store original file name with quickfix entry (Austin Chang)

Patch 9.1.0756
Problem:  missing change from Patch v9.1.0754
Solution: Use correct width for the actual item in pum_redraw() (glepnir).

Patch 9.1.0757
Problem:  tests: messages files contains ANSI escape sequences
Solution: Filter those out in runtests.mnv

Patch 9.1.0758
Problem:  it's possible to set an invalid key to 'wildcharm'
Solution: Error out, if the 'wildcharm' value is an invalid key (Milly).

Patch 9.1.0759
Problem:  screenpos() may return invalid position after switching buffers
          (Greg Hurrell)
Solution: Reset w_leftcol if wrapping has been set after copying wrap option.

Patch 9.1.0760
Problem:  tests: no error reported, if gen_opt_test.mnv fails
Solution: Make MNV exit with return code 1 in case of any error (Milly).

Patch 9.1.0761
Problem:  :cd completion fails on Windows with backslash in path
Solution: Switch no_bslash argument to FALSE in file_pat_to_reg_pat()

Patch 9.1.0762
Problem:  'cedit', 'termwinkey' and 'wildchar' may not be parsed correctly
Solution: improve string_to_key() function in option.c (Milly).

Patch 9.1.0763
Problem:  tests: cannot run single syntax tests
Solution: Support running a subset of syntax tests (Aliaksei Budavei).

Patch 9.1.0764
Problem:  [security]: use-after-free when closing a buffer
Solution: When splitting the window and editing a new buffer,
          check whether the newly to be edited buffer has been marked
          for deletion and abort in this case.

Patch 9.1.0765
Problem:  No test for Patches 6.2.418 and 7.3.489
Solution: Add a test.  Fix some whitespace problems in test_mapping.mnv.
          Document the behavior (zeertzjq).

Patch 9.1.0766
Problem:  too many strlen() calls in ex_getln.c
Solution: Refactor the code to reduce the number of strlen() calls
          (John Marriott).

Patch 9.1.0767
Problem:  A cmdlen == 0 condition is always true as ccline.cmdlen == 0
          was already checked above (after v9.1.0766).
Solution: Remove the condition and the variable (zeertzjq).

Patch 9.1.0768
Problem:  MS-Windows: incorrect cursor position when restoring screen
          (after v9.1.0664)
Solution: Restore the VTP command for switching screens back to
          termcap_mode_end() (William Bresler).

Patch 9.1.0769
Problem:  filetype: MLIR files are not recognized
Solution: Detect '*.mlir' files as mlir filetype,
          include a mlir filetype plugin (Wu, Zhenyu).

Patch 9.1.0770
Problem:  current command completion is a bit limited
Solution: Add the shellcmdline completion type and getmdcomplpat()
          function (Ruslan Russkikh).

Patch 9.1.0771
Problem:  Currently completion attribute hl_group is combined with
          all items, which is redundant and confusing with kind_hlgroup
Solution: Renamed to abbr_hlgroup and combine it only with the abbr item
          (glepnir).

Patch 9.1.0772
Problem:  some missing changes from v9.1.0771
Solution: Use correct highlighting attribute and adjust comments (glepnir).

Patch 9.1.0773
Problem:  filetype: some Apache files are not recognized
Solution: Detect more config files from the Apache source
          distribution as filetype apache (nisbet-hubbard)

Patch 9.1.0774
Problem:  "shellcmdline" doesn't work with getcompletion().
Solution: Use set_context_for_wildcard_arg() (zeertzjq).

Patch 9.1.0775
Problem:  tests: not enough tests for setting options
Solution: Add more comprehensive tests to test_options (Milly).

Patch 9.1.0776
Problem:  test_strftime may fail because of missing TZ data
Solution: Use GMT offsets to validate timezone differences (James McCoy).

Patch 9.1.0777
Problem:  filetype: Some upstream php files are not recognized
Solution: Detect more config files from the PHP source
          distribution as filetype ini (nisbet-hubbard).

Patch 9.1.0778
Problem:  filetype: lf config files are not recognized
Solution: Detect lfrc files as lf filetype, include a syntax
           script for lf files (Andis Spriņķis).

Patch 9.1.0779
Problem:  filetype: neomuttlog files are not recognized
Solution: Detect '*.neomuttdebug' file as neomuttlog filetype,
          include neomuttlog syntax script (Richard Russon).

Patch 9.1.0780
Problem:  MS-Windows: incorrect Win32 error checking
Solution: Fix wrong order of error handling and perform
          some minor refactoring (Nir Lichtman).

Patch 9.1.0781
Problem:  tests: test_filetype fails (clason) (after v9.1.0779).
Solution: Use correct filename for neomuttlog filetype.

Patch 9.1.0782
Problem:  tests: using wrong neomuttlog file name
Solution: Use correct file name.

Patch 9.1.0783
Problem:  'spell' option setting has problems
Solution: correctly check for comma for 'spellfile' option,
          remove unnecessary checks, refactor slightly (Milly)

Patch 9.1.0784
Problem:  there are several problems with python 3.13
Solution: Fix the problems in the python3 interface (Boris Staletic)

Patch 9.1.0785
Problem:  cannot preserve error position when setting quickfix lists
Solution: Add the 'u' action for setqflist()/setloclist() and try
          to keep the closes target position (Jeremy Fleischman).

Patch 9.1.0786
Problem:  tests: quickfix update test does not test location list
          (after: v9.1.0.785)
Solution: Update Test_quickfix_buffer_contents to test with location
          lists (Yegappan Lakshmanan).

Patch 9.1.0787
Problem:  cursor position changed when using hidden terminal
          and BufFilePost autocommand (Mizuno Jan Yuta)
Solution: Save and restore cursor position.

Patch 9.1.0788
Problem:  <CSI>27;<mod>u is not decoded to literal Escape in kitty/foot
Solution: Disable XTerm modifyOtherKeys form 1 when the kitty protocol is enabled
          (Christian Fillion)

Patch 9.1.0789
Problem:  tests: ':resize + 5' has invalid space after '+'
Solution: Correct the test (Milly).

Patch 9.1.0790
Problem:  Amiga: AmigaOS4 build should use default runtime (newlib)
Solution: Remove clib2 from compiler / linker flags (Ola Söder).

Patch 9.1.0791
Problem:  tests: errors in gen_opt_test.mnv are not shown
Solution: update gen_opt_test.mnv and write test.log,
          let the makefile output test.log (Milly).

Patch 9.1.0792
Problem:  tests: Test_set_values() is not comprehensive enough
Solution: Add a lot more test cases (Milly).

Patch 9.1.0793
Problem:  xxd: -e does add one extra space
Solution: fix it, refactor and merge some code (Aapo Rantalainen).

Patch 9.1.0794
Problem:  tests: tests may fail on Windows environment
Solution: Use shellcmdflag=/D to skip executing autorun from the registry
          (Milly).

Patch 9.1.0795
Problem:  filetype: Vivado memory info file are not recognized
Solution: Detect '*.mmi' memory info file as xml filetype (Wu, Zhenyu).

Patch 9.1.0796
Problem:  filetype: libtool files are not recognized
Solution: Detect '*.{lo,la,lai}' as sh filetype (Wu, Zhenyu).

Patch 9.1.0797
Problem:  testing of options can be further improved
Solution: Split the generated option test into test_options_all.mnv,
          add more test cases, save and restore values, fix use-after-free.

Patch 9.1.0798
Problem:  too many strlen() calls in cmdhist.c
Solution: Refactor code and remove strlen() calls (John Marriott).

Patch 9.1.0799
Problem:  tests: gettwinvar()/gettabwinvar() tests are not comprehensive
Solution: Add more tests (Milly).

Patch 9.1.0800
Problem:  tests: no error check when setting global 'termwinsize'
Solution: Also validate when using setglobal (Milly).

Patch 9.1.0801
Problem:  tests: no error check when setting global 'termwinkey'
Solution: Also validate when using setglobal (Milly).

Patch 9.1.0802
Problem:  tests: no error check when setting global 'fdm' to empty value
Solution: Also check global 'fdm' value for being empty (Milly).

Patch 9.1.0803
Problem:  tests: no error check when setting global 'isk'
Solution: Also parse and check global 'isk' value (Milly).

Patch 9.1.0804
Problem:  tests: no error check when setting global 'cc'
Solution: Also parse and check global 'cc' value (Milly).

Patch 9.1.0805
Problem:  tests: minor issues in gen_opt_test.mnv
Solution: Fix restore value for 'undolevels', fix comment, fix
          wrong cpo value, add equality test for global-local options on
          switchback (Milly).

Patch 9.1.0806
Problem:  tests: no error check when setting global 'briopt'
Solution: Also parse and check global 'briopt' value (Milly).

Patch 9.1.0807
Problem:  tests: having 'nolist' in modelines isn't always desired
Solution: Remove 'nolist' from modeline (zeertzjq).

Patch 9.1.0808
Problem:  Terminal scrollback doesn't shrink when reducing
          'termwinscroll'
Solution: Check if option value was decreased (Milly).

Patch 9.1.0809
Problem:  filetype: petalinux config files not recognized
Solution: Detect 'project-spec/*.conf' files as bitbake filetype (Wu, Zhenyu).

Patch 9.1.0810
Problem:  cannot easily adjust the |:find| command
Solution: Add support for the 'findexpr' option (Yegappan Lakshmanan).

Patch 9.1.0811
Problem:  :find expansion does not consider 'findexpr'
Solution: Support expanding :find command argument using 'findexpr'
          (Yegappan Lakshmanan).

Patch 9.1.0812
Problem:  Coverity warns about dereferencing NULL ptr in check_colorcolumn()
Solution: Verify that wp is not null before accessing it.

Patch 9.1.0813
Problem:  no error handling with setglobal and number types
Solution: Validate values when using :setglobal with number option types
          (Milly).

Patch 9.1.0814
Problem:  mapset() may remove unrelated mapping whose {rhs} matches the
          restored mapping's {lhs}.
Solution: Only match by {lhs} when unmapping for mapset() (zeertzjq).

Patch 9.1.0815
Problem:  "above" virtual text causes wrong 'colorcolumn' position (@matrdr)
Solution: Use the number of cells instead of bytes for vcol_off_tp
          (zeertzjq).

Patch 9.1.0816
Problem:  tests: not clear what tests cause asan failures
Solution: Append testname to $ASAN_OPTIONS.

Patch 9.1.0817
Problem:  termdebug: cannot evaluate expr in a popup
Solution: Enhance termdebug plugin and allow to evaluate expressions in
          a popup window, add a unit test (Peter Wolf).

Patch 9.1.0818
Problem:  some global functions are only used in single files
Solution: Refactor code slightly and make some more functions static
          (Yegappan Lakshmanan).

Patch 9.1.0819
Problem:  tests: need a test for findexpr and mnv9 imported func
Solution: Add a test for 'findexpr' and MNV9 imported script
          (Yegappan Lakshmanan)

Patch 9.1.0820
Problem:  tests: Mac OS tests are too flaky
Solution: Increase max test timeout to 25 minutes, allow up to 10 retries on
          Mac OS runners, refactor runtest.mnv (Milly).

Patch 9.1.0821
Problem:  'findexpr' completion doesn't set v:fname to cmdline argument.
Solution: Set v:fname to the cmdline argument as-is (zeertzjq).

Patch 9.1.0822
Problem:  topline might be changed in diff mode unexpectedly (Jaehwang Jung)
Solution: Do not re-calculate topline, when using line() func in diff mode.

Patch 9.1.0823
Problem:  filetype: Zephyr overlay files not recognized
Solution: Detect '*.overlay' files as dts filetype, include syntax tests for
          DTS files (Xudong Zheng).

Patch 9.1.0824
Problem:  too many strlen() calls in register.c
Solution: Refactor code, add string_T struct to keep track of string lengths
          (John Marriott).

Patch 9.1.0825
Problem:  compile error for non-diff builds (after v9.1.0822)
Solution: Add #ifdef FEAT_DIFF (John Marriott).

Patch 9.1.0826
Problem:  filetype: sway files are not recognized
Solution: Detect '*.sw' files as sway filetype, include a filetype plugin
          (Riley Bruins).

Patch 9.1.0827
Problem:  CI: tests can be improved
Solution: Collect failed indent tests, raise timeout for search()
          functions when using ASAN/Valgrind (Aliaksei Budavei).

Patch 9.1.0828
Problem:  string_T struct could be used more often
Solution: Refactor code and make use of string_T struct for key-value pairs,
          reformat overlong lines (John Marriott).

Patch 9.1.0829
Problem:  MNV source code uses a mix of tabs and spaces
Solution: Expand tabs in sound.c, this is an experiment (Luca Saccarola).

Patch 9.1.0830
Problem:  using wrong highlight group for spaces for popupmenu
Solution: Use original attribute instead of combined attributed (glepnir).

Patch 9.1.0831
Problem:  'findexpr' can't be used for lambads (Justin Keyes)
Solution: Replace the findexpr option with the findfunc option
          (Yegappan Lakshmanan).

Patch 9.1.0832
Problem:  :set doesn't work for 'cot' and 'bkc' after :setlocal.
Solution: Clear the local flags when using :set (zeertzjq).

Patch 9.1.0833
Problem:  CI: recent ASAN changes do not work for indent tests
Solution: Move code to runtime/indent/testdir/runtest.mnv (Aliaksei Budavei).

Patch 9.1.0834
Problem:  tests: 2html test fails (after b256221e8377)
Solution: Adjust testdir/samples/Test_tohtml_basic.c.html (Aliaksei Budavei).

Patch 9.1.0835
Problem:  :setglobal doesn't work properly for 'ffu' and 'tsrfu' when
          the local value is set (after v9.1.0831)
Solution: Check os_flags instead of buffer option variable (zeertzjq).

Patch 9.1.0836
Problem:  the mnvtutor can be improved
Solution: Port and include the interactive mnvtutor plugin from Neomnv
          (by Felipe Morales) (Yegappan Lakshmanan).

Patch 9.1.0837
Problem:  Cross-compiling to good modern operating systems is difficult as
          configure assumes obscure bugs are present by default. However,
          most core autoconf-based packages today assume features work
          when in doubt, making cross-compilation easier.
Solution: Assume features work by default and continue to issue a warning
          with the appropriate cache variable. This solution shifts the
          burden onto the users of rare buggy operating systems and
          makes cross-compilation work out of the box for everyone else.

Patch 9.1.0838
Problem:  mnvtutor is bash-specific (after 17c71daf83f45c3ee8)
Solution: Port back to POSIX sh (Aliaksei Budavei).

Patch 9.1.0839
Problem:  filetype: leo files are not recognized
Solution: Detect '*.leo' files as leo filetype, include a filetype plugin
          (Riley Bruins)

Patch 9.1.0840
Problem:  filetype: idris2 files are not recognized
Solution: Detect '*.idr' files as idris2, '*.lidr' files as lidris2
          and '*.ipkg' files as ipkg filetype (Serhii Khoma)

Patch 9.1.0841
Problem:  tests: still preferring python2 over python3
Solution: Prefer Python 3 when picking a Python program in MNV tests,
          by checking for the more specific python version first and
          only when python3 not found, check for the python binary
          (Yee Cheng Chin).

Patch 9.1.0842
Problem:  not checking for the sync() systemcall
Solution: Check for sync in configure script, fix related #ifdefs
          (Jonas Termansen).

Patch 9.1.0843
Problem:  too many strlen() calls in undo.c
Solution: Refactor code and remove strlen() calls, update test_undo.mnv
          and close remaining open swap files (John Marriott).

Patch 9.1.0844
Problem:  if_python: no way to pass local vars to python
Solution: Add locals argument to py3eval(), pyeval() and pyxeval()
          (Ben Jackson).

Patch 9.1.0845
Problem:  mnvtutor shell script can be improved
Solution: Further improve the mnvtutor shell script (Aliaksei Budavei).

Patch 9.1.0846
Problem:  debug symbols for xxd are not cleaned in Makefile
Solution: Remove  xxd.dSYM in xxds Makefile, call xxd clean target from
          main Makefile (Yee Cheng Chin)

Patch 9.1.0847
Problem:  tests: test_popupwin fails because of updated main help file
Solution: Normalize Last Change header in test_popup_setbuf screendumps

Patch 9.1.0848
Problem:  if_lua: v:false/v:true are not evaluated to boolean
Solution: Use lua_pushboolean() instead of lua_pushinteger() (zeertzjq).

Patch 9.1.0849
Problem:  there are a few typos in the source.
Solution: Correct typos (zeertzjq).

Patch 9.1.0850
Problem:  MNV9: cannot access nested object inside objects
          (lifepillar, 91khr, mawkish)
Solution: Add support for accessing an object member using a "any"
          variable type (Yegappan Lakshmanan).

Patch 9.1.0851
Problem:  too many strlen() calls in getchar.c
Solution: Refactor code and reduce strlen() calls (John Marriott).

Patch 9.1.0852
Problem:  No warning when X11 registers are not available (delvh)
Solution: Output W23 once when connection to X11 clipboard/selection
          is not possible, mention in the documentation, that register 0
          will be used instead.

Patch 9.1.0853
Problem:  filetype: kubernetes config file not recognized
Solution: Detect '/.kube/config' file as yaml filetype (Jonathan Lopez).

Patch 9.1.0854
Problem:  cannot get terminal cell size
Solution: Add getcellpixels() function to return xpixel * ypixel
          cell size on terminal Unix (mikoto2000).

Patch 9.1.0855
Problem:  setting 'cmdheight' may cause hit-enter-prompt and echo output
          to be missing
Solution: Before cleaning the cmdline, check the need_wait_return flag
          (nwounkn).

Patch 9.1.0856
Problem:  mouseshape might be wrong on r and gr
Solution: Call update_mousesape(-1) immediately (Yee Cheng Chin).

Patch 9.1.0857
Problem:  xxd: --- is incorrectly recognized as end-of-options
Solution: improve xxds end-of-option parser (DungSaga).

Patch 9.1.0858
Problem:  Coverity complains about dead code (after v9.1.0852)
Solution: adjust #ifdef FEAT_CLIPBOARD.

Patch 9.1.0859
Problem:  several problems with the GLVS plugin
Solution: fix issues, add regression tests, require at least MNV 9.1
          (GuyBrush)

Patch 9.1.0860
Problem:  tests: mouse_shape tests use hard code sleep value (Bram Moolenaar)
Solution: Use WaitForAssert() instead (Yee Cheng Chin).

Patch 9.1.0861
Problem:  MNV9: no runtime check for object member access of any var
          (after: 9.1.0850)
Solution: Add runtime type compatibility check for object member
          accessed using a any variable (Yegappan Lakshmanan).

Patch 9.1.0862
Problem:  'wildmenu' not enabled by default in nocp mode
Solution: Promote the default MNV value to true, it has been enabled
          in defaults.mnv anyhow, so remove it there (Luca Saccarola).

Patch 9.1.0863
Problem:  getcellpixels() can be further improved
Solution: Improve it further, add more tests (mikoto2000).

Patch 9.1.0864
Problem:  message history is fixed to 200
Solution: Add the 'msghistory' option, increase the default value to 500
          (Shougo Matsushita).

Patch 9.1.0865
Problem:  filetype: org files are not recognized
Solution: Detect '*.org' files as 'org' filetype,
          include filetype and syntax plugin (Luca Saccarola).

Patch 9.1.0866
Problem:  filetype: LLVM IR files are not recognized
Solution: Detect '*.ll' files either as lifelines or llvm filetype
          (Wu, Zhenyu).

Patch 9.1.0867
Problem:  ins_compl_add() has too many args
Solution: Refactor it and use an int array instead of 2 separate int
          args (glepnir).

Patch 9.1.0868
Problem:  the warning about missing clipboard can be improved
          (after v9.1.0852)
Solution: Use different warnings depending on whether or not clipboard
          support is included in MNV, update related documentation

Patch 9.1.0869
Problem:  curswant not set on gm in folded line (citizenmatt)
Solution: In a folded line, call update_curswant_force().

Patch 9.1.0870
Problem:  too many strlen() calls in eval.c
Solution: Refactor eval.c to remove calls to STRLEN() (John Marriott).

Patch 9.1.0871
Problem:  getcellpixels() can be further improved
Solution: Fix floating point exception, implement getcellpixels() in the
          UI (mikoto2000).

Patch 9.1.0872
Problem:  No test for W23 message (after v9.1.0868)
Solution: Check for W23 message when accessing the clipboard fails.

Patch 9.1.0873
Problem:  filetype: Vivado files are not recognized
Solution: Detect '*.mss' files as 'mss' filetype (Wu, Zhenyu).

Patch 9.1.0874
Problem:  filetype: karel files are not detected
Solution: Detect '*.kl' files as karel filetype, include syntax and filetype
          plugin (Kirill Morozov).

Patch 9.1.0875
Problem:  filetype: hyprlang detection can be improved
Solution: Detect '/hypr/*.conf' files as hyprlang filetype,
          include basic syntax highlighting (Luca Saccarola).

Patch 9.1.0876
Problem:  filetype: openCL files are not recognized
Solution: Detect '*.cl' files as opencl or lisp filetype,
          include a opencl syntax and filetype plugin (Wu, Zhenyu).

Patch 9.1.0877
Problem:  tests: missing test for termdebug + decimal signs
Solution: Add a termdebug test (Ubaldo Tiberi).

Patch 9.1.0878
Problem:  termdebug: cannot enable DEBUG mode
Solution: Allow to specify DEBUG mode (Ubaldo Tiberi).

Patch 9.1.0879
Problem:  source is not consistently formatted
Solution: Reformat sign.c and sound.c (Luca Saccarola).

Patch 9.1.0880
Problem:  filetype: C3 files are not recognized
Solution: Detect '*.c3*' files as c3 filetype (Turiiya).

Patch 9.1.0881
Problem:  GUI: message dialog may not get focus
Solution: Add window manager hint to give focus to the dialog (Chris White).

Patch 9.1.0882
Problem:  too many strlen() calls in insexpand.c
Solution: Refactor insexpand.c and reduce number of calls to STRLEN(),
          fix a warning get_next_filename_completion(), add new function
          ins_compl_leader_len() (John Marriott).

Patch 9.1.0883
Problem:  message history cleanup is missing some tests
Solution: Add tests, refactor common code into did_set_msghistory()
          (Shougo Matsushita).

Patch 9.1.0884
Problem:  gcc warns about uninitialized variable in mnv_strnicmp_asc()
Solution: Initialize variable to 1 (John Marriott).

Patch 9.1.0885
Problem:  style of sign.c can be improved
Solution: Refactor code (Luca Saccarola).

Patch 9.1.0886
Problem:  filetype: debian control file not detected
Solution: Detect 'debian/control' files as debcontrol filetype.

Patch 9.1.0887
Problem:  Wrong expression in sign.c (after v9.1.0885)
Solution: Remove the duplicate expression.

Patch 9.1.0888
Problem:  leftcol property not available in getwininfo()
Solution: Add leftcol property property (glepnir).

Patch 9.1.0889
Problem:  Possible unnecessary redraw after adding/deleting lines.
Solution: Check b_mod_set before using b_mod_xlines to avoid using stale
          b_mod_xlines value (zeertzjq).

Patch 9.1.0890
Problem:  %! item not allowed for 'rulerformat' (yatinlala)
Solution: Also allow to use %! for rulerformat option
          (Yegappan Lakshmanan).

Patch 9.1.0891
Problem:  building the completion list array is inefficient
Solution: Refactor and improve ins_compl_build_pum() func (glepnir).

Patch 9.1.0892
Problem:  the max value of 'tabheight' is limited by other tabpages
Solution: Limit the maximum value of 'cmdheight' to the current tabpage only.
          (Milly)

Patch 9.1.0893
Problem:  No test that undofile format does not regress
Solution: Include a sample undofile to make sure we are always able to
          read it.

Patch 9.1.0894
Problem:  No test for what the spotbug compiler parses
Solution: Test &makeprg for the SpotBugs compiler plugin (Aliaksei Budavei).

Patch 9.1.0895
Problem:  default history value is too small
Solution: Promote the change from defaults.mnv back to the C core, so increase
          the default 'history' option value from 50 to 200 (Lucca Saccarola)

Patch 9.1.0896
Problem:  completion list wrong after v9.1.0891
Solution: Update compl_mach_array after leader change (glepnir).

Patch 9.1.0897
Problem:  filetype: pyrex files are not detected
Solution: Detect '*.pxi' and '*.pyx+' as pyrex filetype (user202729).

Patch 9.1.0898
Problem:  runtime(compiler): pytest compiler not included
Solution: Include pytest compiler, update the compiler completion test
          (Konfekt).

Patch 9.1.0899
Problem:  default for 'backspace' can be set in C code
Solution: Promote the default for 'backspace' from defaults.mnv to the C
          code (Luca Saccarola).

Patch 9.1.0900
Problem:  MNV9: digraph_getlist() does not accept bool argument (Maxim Kim)
Solution: Accept boolean as first argument (Yegappan Lakshmanan).

Patch 9.1.0901
Problem:  MS-Windows: mnvtutor batch script can be improved
Solution: Update mnvtutor.bat, validate languages using Powershell
          cultureinfo (RestorerZ).

Patch 9.1.0902
Problem:  filetype: Conda configuration files are not recognized
Solution: Detect '.condarc' and 'condarc' files as yaml filetype (zeertzjq).

Patch 9.1.0903
Problem:  potential overflow in spell_soundfold_wsal()
Solution: Protect wres from buffer overflow, by checking the length
          (Zdenek Dohnal)

Patch 9.1.0904
Problem:  MNV9: copy-paste error in class_defining_member()
Solution: Use variable type VAR_CLASS instead (Zdenek Dohnal).

Patch 9.1.0905
Problem:  Missing information in CompleteDone event
Solution: Add complete_word and complete_type to v:event dict (glepnir).

Patch 9.1.0906
Problem:  filetype: Nvidia PTX files are not recognized
Solution: Detect '*.ptx' files as ptx filetype (Yinzuo Jiang).

Patch 9.1.0907
Problem:  printoptions:portrait does not change postscript Orientation
Solution: Set Orientation depending on portrait suboption.

Patch 9.1.0908
Problem:  not possible to configure :messages
Solution: Add the 'messagesopt' option (Shougo Matsushita).

Patch 9.1.0909
Problem:  MNV9: crash when calling instance method (Igbanam Ogbuluijah)
Solution: Pass the object when calling a partial function
          (Yegappan Lakshmanan).

Patch 9.1.0910
Problem:  'messagesopt' does not check max wait time (after v9.1.0908)
Solution: Check for max wait value (Shougo Matsushita).

Patch 9.1.0911
Problem:  Variable name for 'messagesopt' doesn't match short name
          (after v9.1.0908)
Solution: Change p_meo to p_mopt.  Add more details to docs (zeertzjq).

Patch 9.1.0912
Problem:  xxd: integer overflow with sparse files and -autoskip
Solution: Reset zero_seen when at the limit, change the type to char
          (sendittothenewts).

Patch 9.1.0913
Problem:  no error check for neg values for 'messagesopt' (after v9.1.0908).
Solution: Add additional error checks and tests (h-east).

Patch 9.1.0914
Problem:  MNV9: compile_assignment() is too long
Solution: Refactor compile_assignment() into smaller functions
          (Yegappan Lakshmanan)

Patch 9.1.0915
Problem:  GMNV: default font size a bit too small
Solution: Increase guifont size to 12 pt on GTK builds of gMNV (matveyt).

Patch 9.1.0916
Problem:  messages.c is exceeding 80 columns
Solution: Slightly reformat messages.c (h-east).

Patch 9.1.0917
Problem:  various vartabstop and shiftround bugs when shifting lines
Solution: Fix the bugs, add new tests for shifting lines in various ways
          (Gary Johnson).

Patch 9.1.0918
Problem:  tiny MNV crashes with fuzzy buffer completion
Solution: Adjust #ifdefs in ExpandBufnames() (826814741_6).

Patch 9.1.0919
Problem:  filetype: some assembler are files not recognized
Solution: Detect '*.nasm' files as nasm filetype and '*.masm' as masm
          filetype (Wu, Zhenyu).

Patch 9.1.0920
Problem:  MNV9: compile_assignment() too long
Solution: Refactor compile_assignment() function and split up into
          smaller parts (Yegappan Lakshmanan).

Patch 9.1.0921
Problem:  popupmenu logic is a bit convoluted
Solution: Slightly refactor logic and use MIN/MAX() macros to simplify
          (glepnir).

Patch 9.1.0923
Problem:  wrong MIN macro in popupmenu.c (after v9.1.0921) (zeertzjq)
Solution: Change it to MAX().

Patch 9.1.0923
Problem:  too many strlen() calls in filepath.c
Solution: Refactor filepath.c and remove calls to STRLEN(), unify
          dos_expandpath() and unix_expandpath() into a single function.

Patch 9.1.0924
Problem:  Patch 9.1.0923 causes issues (Shane-XB-Qian)
Solution: Back-out the change.

Patch 9.1.0925
Problem:  MNV9: expression compiled when not necessary
Solution: Do not compile when ctx_skip is set, add a few more
          MNV9 expressions tests (Yegappan Lakshmanan).

Patch 9.1.0926
Problem:  filetype: Pixi lock files are not recognized
Solution: Detect "pixi.lock" file as yaml filetype (Brandon Maier).

Patch 9.1.0927
Problem:  style issues in insexpand.c
Solution: Add braces, use ternary operator to improve style (glepnir).

Patch 9.1.0928
Problem:  tests: test_popupwin fails because the filter command fails
Solution: Add the "e" flag to the :s command to normalize the
          screendumps Last Change header so that it doesn't fail on
          "Pattern not found"

Patch 9.1.0929
Problem:  filetype: lalrpop files are not recognized
Solution: Detect '*.lalrpop' files as lalrpop filetype (David Thievon)

Patch 9.1.0930
Problem:  tests: test_terminal2 may hang in GUI mode
Solution: Break the loop in gui_mch_update() after at most 99 iterations
          (h-east).

Patch 9.1.0931
Problem:  ml_get error in terminal buffer (user202729)
Solution: Call update_topline() in win_enter_ext() for terminal buffers
          (h-east).

Patch 9.1.0932
Problem:  new Italian tutor not installed
Solution: Add Makefile rule, include it into the Filelist
          ("Philip H." <47042125+pheiduck@users.noreply.github.com>).

Patch 9.1.0933
Problem:  MNV9: mnv9compile.c can be further improved
Solution: Further refactor the compile assignment code
          (Yegappan Lakshmanan).

Patch 9.1.0934
Problem:  hard to view an existing buffer in the preview window
Solution: Add the :pbuffer command (Yinzuo Jiang).

Patch 9.1.0935
Problem:  SpotBugs compiler can be improved
Solution: runtime(compiler): Improve defaults and error handling for
          SpotBugs; update test_compiler.mnv (Aliaksei Budavei).

Patch 9.1.0936
Problem:  cannot highlight completed text
Solution: (optionally) highlight auto-completed text using the
          ComplMatchIns highlight group (glepnir).

Patch 9.1.0937
Problem:  test_undolist() is flaky
Solution: Allow to match one additional optional whitespace char.

Patch 9.1.0938
Problem:  exclusive selection not respected when re-selecting block mode
          (Matt Ellis)
Solution: Advance selection by another character when using
          selection=exclusive and visual block mode

Patch 9.1.0939
Problem:  make installtutor fails
          (Antonio Giovanni Colombo, after v9.1.0932)
Solution: Fix Makefile rule.

Patch 9.1.0940
Problem:  Wrong cursor shape with "gq" and 'indentexpr' executes :normal
Solution: Update cursor and mouse shape after restoring old_State (zeertzjq).

Patch 9.1.0941
Problem:  ComplMatchIns doesn't work after multibyte chars (after v9.1.0936).
Solution: Use (ptr - line) instead of wlv.col (zeertzjq).

Patch 9.1.0942
Problem:  a few typos were found
Solution: fix them (zeertzjq).

Patch 9.1.0943
Problem:  mnv9compile.c can be further improved
Solution: Refactor the compile_lhs function (Yegappan Lakshmanan).

Patch 9.1.0944
Problem:  tests: test_registers fails when not run under X11
Solution: filter out warning message.

Patch 9.1.0945
Problem:  ComplMatchIns highlight doesn't end after inserted text.
Solution: Handle ComplMatchIns highlight more like search highlight.
          Fix off-by-one error. Handle deleting text properly (zeertzjq).

Patch 9.1.0946
Problem:  cross-compiling fails on osx-arm64
Solution: use mnv_cv_timer_create_with_lrt() instead of
          mnv_cv_timer_create_works() (Brandon Maier).

Patch 9.1.0947
Problem:  Coverity comlains about un-initialized var (after v9.1.0943).
Solution: Initialize variable (Yegappan Lakshmanan).

Patch 9.1.0948
Problem:  Missing cmdline completion for :pbuffer.
Solution: Add cmdline completion for :pbuffer like :buffer (zeertzjq).

Patch 9.1.0949
Problem:  popups inconsistently shifted to the left
Solution: Always shift non-fixed popups to the left when the
          text would be truncated (Boris Staletic).

Patch 9.1.0950
Problem:  filetype: fennelrc files are not recognized
Solution: Detect 'fennelrc' files as fennel filetype (Wu Zhenyu).

Patch 9.1.0951
Problem:  filetype: jshell files are not recognized
Solution: Detect '*.jsh' files as java filetype (Konfekt).

Patch 9.1.0952
Problem:  MNV9: missing type checking for any type assignment (Ernie Rael)
Solution: When assigning to a list item, if the type of the LHS item is
          any, then use the list item type (Yegappan Lakshmanan).

Patch 9.1.0953
Problem:  filetype: APKBUILD files not correctly detected
Solution: Detect 'APKBUILD' files as apkbuild filetype,
          include a apkbuild syntax script (which basically
          just sources the sh.mnv syntax file) (Hugo Osvaldo Barrera).

Patch 9.1.0954
Problem:  popupmenu.c can be improved
Solution: Slightly refactor the logic (glepnir).

Patch 9.1.0955
Problem:  MNV9: mnv9compile.c can be further improved
Solution: Refactor the compile_def_function (Yegappan Lakshmanan).

Patch 9.1.0956
Problem:  completion may crash, completion highlight wrong with preview
          window (after v9.1.0954)
Solution: Correctly calculate scroll offset, check for preview window
          when adding extra highlighting (glepnir).

Patch 9.1.0957
Problem:  MS-Windows: conversion warnings
Solution: Add explicit type casts (Yegappan Lakshmanan).

Patch 9.1.0958
Problem:  filetype: supertux2 config files detected as lisp
Solution: Detect supertux2 config files as scheme instead (Wu, Zhenyu).

Patch 9.1.0959
Problem:  Coverity complains about type conversion (after v9.1.0957)
Solution: Use size_t instead of int for file length (Yegappan Lakshmanan).

Patch 9.1.0960
Problem:  filetype: hy history files are not recognized
Solution: Detect '*.hy', '.hy-history' files as hy filetype,
          detect '.lips_repl_history' files are scheme filetype (Wu, Zhenyu).

Patch 9.1.0961
Problem:  filetype: TI gel files are not recognized
Solution: Detect '*.gel' files as gel filetype, include get filetype and
          syntax plugins (Wu, Zhenyu).

Patch 9.1.0962
Problem:  filetype: bun.lock file is not recognized
Solution: Detect 'bun.lock' file as jsonc filetype (Anton Kastritskii).

Patch 9.1.0963
Problem:  fuzzy-matching does not prefer full match (Maxim Kim)
Solution: Add additional score for a full match (glepnir).

Patch 9.1.0964
Problem:  MS-Windows: sed error with MinGW
Solution: Use double quotes for sed, update compilation notes
          (Andrey A Voropaev)

Patch 9.1.0965
Problem:  filetype: sh filetype set when detecting the use of bash
Solution: When bash is detected, use 'bash' filetype instead (Luca Saccarola).

Patch 9.1.0966
Problem:  MNV9: :enum command can be shortened
Solution: Prevent shortening of :enum command by adding the EX_WHOLE
          flag to command definition (h-east).

Patch 9.1.0967
Problem:  SpotBugs compiler can be further improved
Solution: Introduce event-driven primitives for SpotBugs (Aliaksei Budavei).

Patch 9.1.0968
Problem:  tests: GetFileNameChecks() isn't fully sorted by filetype name
Solution: Re-sort the list.

Patch 9.1.0969
Problem:  ghostty not using kitty protocol by default (00-kat)
Solution: Update keyprotocol option default and include ghostty.

Patch 9.1.0970
Problem:  VMS: build errors on VMS architecture
Solution: Define cellsize struct, use C89 to initialize lval_root_S
          struct (Zoltan Arpadffy)

Patch 9.1.0971
Problem:  filetype: SLNX files are not recognized
Solution: Detect '*.slnx' files as xml filetype (Gustav Eikaas).

Patch 9.1.0972
Problem:  filetype: TI linker map files are not recognized
Solution: Detect TI linker map files as lnkmap filetype (Wu, Zhenyu).

Patch 9.1.0973
Problem:  too many strlen() calls in fileio.c
Solution: Refactor fileio.c and remove calls to STRLEN(),
          check for out-of-memory condition in buf_check_timestamp()
          (John Marriott).

Patch 9.1.0974
Problem:  typo in change of (Christ van Willegen)
Solution: Add back the square brackets (John Marriott).

Patch 9.1.0975
Problem:  MNV9: interpolated string expr not working in object methods
          (Igbanam Ogbuluijah)
Solution: Check the evalarg argument (Yegappan Lakshmanan).

Patch 9.1.0976
Problem:  MNV9: missing return statement with throw (atitcreate)
Solution: Treat a throw statement at the end of an if-else block as a
          return statement (Yegappan Lakshmanan).

Patch 9.1.0977
Problem:  filetype: msbuild filetypes are not recognized
Solution: Detect msbuild files as xml filetype (Gustav Eikaas).

Patch 9.1.0978
Problem:  GUI tests sometimes fail when setting 'scroll' options
Solution: Decrease the 'scroll' and 'scrolljump' option value from 20 to
          15, in case the Gui window is not large enough to handle 20.

Patch 9.1.0979
Problem:  VMS: type warning with $XDG_MNVRC_FILE (Zoltan Arpadffy)
Solution: Add explicit (char_u *) type cast to mch_getenv() call.

Patch 9.1.0980
Problem:  no support for base64 en-/decoding functions in MNV Script
          (networkhermit)
Solution: Add the base64_encode() and base64_decode() functions
          (Yegappan Lakshmanan).

Patch 9.1.0981
Problem:  tests: typo in test_filetype.mnv
Solution: fix comment, update lnkmap syntax file and add DESCT keyword
          (Wu, Zhenyu).

Patch 9.1.0982
Problem:  TI linker files are not recognized
Solution: Inspect '*.cmd' files and detect TI linker files as 'lnk' filetype,
          include a lnk ftplugin and syntax script (Wu, Zhenyu).

Patch 9.1.0983
Problem:  not able to get the displayed items in complete_info()
          (Evgeni Chasnovski)
Solution: Return the visible items via the "matches" key for
          complete_info() (glepnir).

Patch 9.1.0984
Problem:  exception handling can be improved
Solution: Add v:stacktrace and getstacktrace().

Patch 9.1.0985
Problem:  MNV9: some ex commands can be shortened
Solution: Disallow shortening of :abstract, :interface and :type (h-east).

Patch 9.1.0986
Problem:  filetype: 'jj' filetype is a bit imprecise
Solution: rename 'jj' filetype to 'jjdescription' (Gregory Anders).

Patch 9.1.0987
Problem:  filetype: cake files are not recognized
Solution: Detect '*.cake' files as cs filetype (Zoe Roux).

Patch 9.1.0988
Problem:  MNV9: no error when using uninitialized var in new()
          (lifepillar, Aliaksei Budavei)
Solution: Give an error if an uninitialized object variable is referenced
          in new() (Yegappan Lakshmanan).

Patch 9.1.0989
Problem:  MNV9: Whitespace after the final enum value causes a syntax
          error
Solution: Fix parsing to allow whitespace after the final enum value.
          (Doug Kearns)

Patch 9.1.0990
Problem:  Inconsistent behavior when changing cmdheight by resizing the
          topframe through wincmds and dragging laststatus. Changing
          cmdheight by resizing the topframe does not trigger OptionSet.
Solution: Consolidate logic for changing the cmdheight, set the option
          value to handle side-effects (Luuk van Baal).

Patch 9.1.0991
Problem:  v:stacktrace has wrong type in MNV9 script.
Solution: Change the type to t_list_dict_any.  Fix grammar in docs (zeertzjq).

Patch 9.1.0992
Problem:  MNV9: double-free after v9.1.0988 (h-east)
Solution: Clear typval pointer, before setting the type
          (Yegappan Lakshmanan)

Patch 9.1.0993
Problem:  Although Patch 9.1.0990 fixed a real problem/inconsistency,
          it also introduced new behavior that may break BWC and/or be
          unexpected. Before 9.1.0990, window commands could make the
          topframe smaller (without changing 'cmdheight'; quirk that is
          now fixed), but did not allow extending the topframe beyond
          the 'cmdheight' set by the user. After 9.1.0990, the user can
          reduce the 'cmdheight' below the value they set explicitly,
          through window commands, which may lead to confusion.
          (aftere v9.1.0990)
Solution: Store the value explicitly set by the user and clamp the
          'cmdheight' when resizing the topframe. This also applies to
          dragging laststatus, which in contrast to window commands
          _did_ allow reducing the 'cmdheight' to values below the one
          set by the user. So with this Patch there is still new
          behavior, but I think in a way that is less surprising.
          While at it, also fix a Coverity warning, introduced in
          v9.1.0990 (Luuk van Baal).

Patch 9.1.0994
Problem:  MNV9: not able to use comment after opening curly brace
        (lifepillar)
Solution: Allow to use comments after curly braces of an inner-block,
          modify the logic to search for comment in a line, update MNV9
          tests to use specific class type instead of any
          (Yegappan Lakshmanan).

Patch 9.1.0995
Problem:  filetype: shaderslang files are not detected
Solution: Detect '*.slang' files as shaderslang filetype,
          include a filetype and syntax script (mtvare6)

Patch 9.1.0996
Problem:  ComplMatchIns may highlight wrong text
Solution: Don't highlight in case of fuzzy match,
          skip-highlight when not inserting anything (glepnir).

Patch 9.1.0997
Problem:  too many strlen() calls in drawscreen.c
Solution: Refactor drawscreen.c and remove calls to strlen(),
          make get_keymap_str() (in screen.c) return string length
          instead of TRUE/FALSE (John Marriott).

Patch 9.1.0998
Problem:  filetype: TI assembly files are not recognized
Solution: Inspect '*.sa' and assembly files and detect TI assembly
          files, include filetype plugin and syntax script for TI
          assembly files (Wu, Zhenyu).

Patch 9.1.0999
Problem:  leaking finished exception (after v9.1.0984)
Solution: Use finish_exception to clean up caught exceptions
          (Yee Cheng Chin)

Patch 9.1.1000
Problem:  tests: ruby tests fail with Ruby 3.4
Solution: Adjust expected output for Ruby 3.4 (Yee Cheng Chin)

Patch 9.1.1001
Problem:  ComplMatchIns highlight hard to read on light background
          (after v9.1.0996)
Solution: Define the highlighting group cleared, it should be configured in
          colorschemes separately (glepnir).

Patch 9.1.1002
Problem:  MNV9: unknown function error with interface declaring a
          function variable (lifepillar)
Solution: Use correct instruction for getting interface member variables
          (Yegappan Lakshmanan)

Patch 9.1.1003
Problem:  [security]: heap-buffer-overflow with visual mode when
          using :all, causing MNV trying to access beyond end-of-line
          (gandalf)
Solution: Reset visual mode on :all, validate position in gchar_pos()
          and charwise_block_prep().

Patch 9.1.1004
Problem:  tests: a few termdebug tests are flaky; test_termdebug_basic()
          and test_termdebug_config_types() may fail if there is too
          much load
Solution: Set g:test_is_flaky.

Patch 9.1.1005
Problem:  completion text is highlighted even with no pattern found
Solution: use ins_compl_leader_len() instead of checking
          compl_leader.length (glepnir).

Patch 9.1.1006
Problem:  PmenuMatch completion highlight can be combined
Solution: Combine highlight groups PmenuMatch with Pmenu and
          PmenuMatchSel with PmenuSel (glepnir).

Patch 9.1.1007
Problem:  filetype: various ignore are not recognized
Solution: Detect rg/docker/npm/vvsce ignore files as 'gitgnore' filetype
          (Wu, Zhenyu).

Patch 9.1.1008
Problem:  tests: test for Patch 9.1.1006 doesn't fail without the patch
          (after v9.1.1006)
Solution: Add ctermbg=NONE to the highlight groups (zeertzjq).

Patch 9.1.1009
Problem:  diff feature can be improved
Solution: Include the linematch diff alignment algorithm (Jonathon).

Patch 9.1.1010
Problem:  filetype: VisualCode setting file not recognized
Solution: Detect json files in VSCode config directory as jsonc filetype
          (Konfekt).

Patch 9.1.1011
Problem:  Popup menu internal error with some abbr in completion item.
Solution: Don't compute attributes when there is no corresponding text.
          Reduce indent in pum_redraw() while at it (zeertzjq).

Patch 9.1.1012
Problem:  MNV9: class interface inheritance not correctly working
Solution: Make the class inherit the interfaces of the super class.

Patch 9.1.1013
Problem:  MNV9: Regression caused by Patch v9.1.0646
Solution: Translate the function name before invoking it in call()
          (Yegappan Lakshmanan).

Patch 9.1.1014
Problem:  MNV9: variable not found in transitive import
Solution: Allow nested import (Hirohito Higashi).

Patch 9.1.1015
Problem:  Coverity complains about dereferencing NULL value
Solution: Check that cms2 is not null.

Patch 9.1.1016
Problem:  Not possible to convert string2blob and blob2string
Solution: Add support for the blob2str() and str2blob() functions.

Patch 9.1.1017
Problem:  MNV9: Patch 9.1.1013 causes a few problems
Solution: Translate the function name only when it is a string
          (Yegappan Lakshmanan).

Patch 9.1.1018
Problem:  v9.1.0743 causes regression with diff mode
Solution: Fix the regression with overlapping regions.

Patch 9.1.1019
Problem:  filetype: fd ignore files are not recognized
Solution: Detect .fdignore files as gitignore filetype.

Patch 9.1.1020
Problem:  no way to get current selected item in a async context
Solution: Add completed flag to show the entries of currently selected
          index item (@glepnir).

Patch 9.1.1021
Problem:  string might be used without a trailing NUL (after v9.1.0997)
Solution: Make sure that the buffer is NUL terminated.

Patch 9.1.1022
Problem:  linematch option value not completed (after v9.1.1009)
Solution: Update diffoption completion values.

Patch 9.1.1023
Problem:  Coverity complains about dereferencing NULL pointer
Solution: Verify curdiff is not null before dereferencing it.

Patch 9.1.1024
Problem:  blob2str/str2blob() do not support list of strings (after v9.1.1016)
Solution: Add support for using a list of strings (Yegappan Lakshmanan).

Patch 9.1.1025
Problem:  wrong return type of blob2str()
Solution: Update return to list of string (Yegappan Lakshmanan).

Patch 9.1.1026
Problem:  filetype: swc configuration files are not recognized
Solution: Detect .swcrc files as json filetype (Marces Engel).

Patch 9.1.1027
Problem:  no sanitize check when running linematch
Solution: Add sanitize check before applying the linematch algorithm,
          similar to diff_find_change() (Jonathon).

Patch 9.1.1028
Problem:  too many strlen() calls in screen.c
Solution: Refactor screen.c and remove calls to strlen(),
          verify that leadmultispace != NULL (John Marriott).

Patch 9.1.1029
Problem:  the installer can be improved
Solution: Update the installer with the correct README and LICENSE
          files, improve the documentation, add a Makefile for the
          installer, update the Makefiles (RestorerZ).

Patch 9.1.1030
Problem:  filetype: setting bash filetype is backwards incompatible
Solution: Revert Patch v9.1.0965, detect bash scripts again as sh filetype.

Patch 9.1.1031
Problem:  Coverity complains about insecure data handling (v9.1.1024)
Solution: Use int consistently to access the blob index (Yegappan Lakshmanan).

Patch 9.1.1032
Problem:  link error when FEAT_SPELL not defined (after v9.1.1016,
          John Marriott)
Solution: Adjust ifdefs (Yegappan Lakshmanan).

Patch 9.1.1033
Problem:  tests: shaderslang was removed from test_filetype erroneously
          (Christian Clason, after v9.1.1030)
Solution: Restore the test.

Patch 9.1.1033
Problem:  MNV9: compiling abstract method fails without return
          (Aliaksei Budavei)
Solution: Don't require return for an abstract method (Ernie Rael).

Patch 9.1.1035
Problem:  MNV9: memory leak with blob2str()
Solution: Free converted_str (Yegappan Lakshmanan).

Patch 9.1.1036
Problem:  make install fails when using shadowdir (after v9.1.1029).
Solution: Also link in README.txt and LICENSE file.

Patch 9.1.1037
Problem:  MNV9: confusing error when using abstract method via super
Solution: Display an error when an abstract method is invoked using
          super (Ernie Rael).

Patch 9.1.1038
Problem:  tests: test_channel.py fails with IPv6 (eds-collabora)
Solution: Use 127.0.0.1 instead of localhost.

Patch 9.1.1039
Problem:  MNV9: comments are outdated
Solution: Update comments, and include an enum example in the help
          (Yegappan Lakshmanan).

Patch 9.1.1040
Problem:  MNV9: imported type cannot be used as func return type
          (Dayvid Albuquerque)
Solution: Temporarily reset the is_export flag (Yegappan Lakshmanan).

Patch 9.1.1041
Problem:  MNV9: out-of-bound access when echoing an enum
Solution: Add NUL to growarray, check that ufunc is non-null before accessing
          it to make Coverity happy (Yegappan Lakshmanan).

Patch 9.1.1042
Problem:  filetype: just files are not recognized
Solution: Adjust filetype detection pattern, detect just shebang line,
          include just ftplugin, indent and syntax plugin (Peter Benjamin).

Patch 9.1.1043
Problem:  [security]: segfault in win_line() (fizz-is-on-the-way)
Solution: Check that ScreenLines is not NULL.

Patch 9.1.1044
Problem:  MNV9: Patch 9.1.1014 causes regressions
Solution: Revert it for now.

Patch 9.1.1045
Problem:  filetype: N-Tripels and TriG files are not recognized
Solution: Detect '*.nt' files as ntriples filetype and '*.trig' files
          as trig filetype (Gordian Dziwis)

Patch 9.1.1046
Problem:  fuzzymatching doesn't prefer matching camelcase (Tomasz N).
Solution: Add extra score when case matches (glepnir).

Patch 9.1.1047
Problem:  Makefiles uses non-portable syntax (simo-zz, after v9.1.1029)
Solution: Revert auto-generation of MAJOR/MINOR variables.

Patch 9.1.1048
Problem:  Crash after scrolling and pasting in silent Ex mode
        (fizz-is-on-the-way)
Solution: Don't move cursor to line 0 when scrolling (zeertzjq).

Patch 9.1.1049
Problem:  Insert-completed items are always sorted, although the LSP
          spec[1] standard defines sortText in the returned
          completionitem list. This means that the server has sorted the
          results. When fuzzy is enabled, this will break the server's
          sorting results.
Solution: Disable sorting of candidates when "nosort" is set in
          'completeopt'

Patch 9.1.1050
Problem:  Too many strlen() calls in os_unix.c
Solution: Refactor os_unix.c and remove calls to strlen() (John Marriott).

Patch 9.1.1051
Problem:  tests: no support for env variables when running MNV in terminal
Solution: support the "env" argument in RunMNVInTerminal(), close swapfiles
          properly in test_termcodes, use CheckFeature in test_termencoding

Patch 9.1.1052
Problem:  tests: off-by-one error in CheckCWD in test_debugger.mnv
Solution: Fix off-by-one in CheckCWD leading to local tests failure
          (Yee Cheng Chin)

Patch 9.1.1053
Problem:  "nosort" enables fuzzy filtering even if "fuzzy" isn't in
          'completeopt' (after v9.1.1049)
Solution: Only enable fuzzy filtering when "fuzzy" is in 'completeopt'
          (zeertzjq).

Patch 9.1.1054
Problem:  MNV doesn't work well with TERM=xterm-direct (Andrea Pappacoda).
Solution: Detect if a terminal supports true-colors and enable termguicolors

Patch 9.1.1055
Problem:  make install fails because of a missing dependency
Solution: Add explicit dependencies for tutor/{en,it} (Sergei Trofimovich).

Patch 9.1.1056
Problem:  MNV doesn't highlight to be inserted text when completing
Solution: Add support for the "preinsert" 'completeopt' value (glepnir).

Patch 9.1.1057
Problem:  Superfluous cleanup steps in test_ins_complete.mnv.
Solution: Remove unnecessary :bw! and :autocmd! commands.
          Also remove unnecessary STRLEN() in insexpand.c (zeertzjq).

Patch 9.1.1058
Problem:  translation(sr): Missing Serbian translation for the tutor
Solution: Include new Serbian translation for the new tutor,
          include translation for chapter 2 of the traditional tutor,
          update the Makefiles for installing the runtime files (Ivan Pešić).

Patch 9.1.1059
Problem:  completion: input text deleted with preinsert when adding leader
Solution: Remove compl_length and check the ptr for being equal
          to pattern when preinsert is active (glepnir).

Patch 9.1.1060
Problem:  MNV always enables 'termguicolors' in a terminal, even
          when not wanted (after v9.1.1054).
Solution: Respect `:set notermguicolors` in mnvrc file.

Patch 9.1.1061
Problem:  tests: test_glvs fails when unarchiver not available
          (Brian L. Matthews)
Solution: Check if an unarchiver is available, skip the test otherwise.

Patch 9.1.1062
Problem:  terminal: E315 when dragging the terminal with the mouse
          (user202729)
Solution: Call update_topline() and validate_cursor() when clicking
          on the status line with the mouse (Hirohito Higashi).

Patch 9.1.1063
Problem:  too many strlen() calls in userfunc.c
Solution: Refactor userfunc.c and remove calls to strlen(),
          drop set_ufunc_name() and roll it into alloc_ufunc(),
          check for out-of-memory condition in trans_function_name_ext()
          (John Marriott).

Patch 9.1.1064
Problem:  not possible to use plural forms with gettext()
Solution: Implement ngettext() MNV script function (Christ van Willegen).

Patch 9.1.1065
Problem:  no digraph for "Approaches the limit"
Solution: Add the digraph using .= (Hans Ginzel).

Patch 9.1.1066
Problem:  Heap-use-after-free and stack-use-after-scope with :14verbose
          when using :return and :try (after 9.1.1063).
Solution: Move back the mnv_free(tofree) and the scope of numbuf[] (zeertzjq).

Patch 9.1.1067
Problem:  tests: Test_termwinscroll_topline2 fails on MacOS (after v9.1.1062)
Solution: Reduce termwinscroll further, increase term_wait time.

Patch 9.1.1068
Problem:  getchar() can't distinguish between C-I and Tab.
Solution: Add {opts} to pass extra flags to getchar() and getcharstr(),
          with "number" and "simplify" keys.

Patch 9.1.1069
Problem:  preinsert text completions not deleted with <C-W>/<C-U>
          (ddad431, after v9.1.1059)
Solution: Handle <C-W> or <C-U> specifically and clear the completion
          (glepnir).

Patch 9.1.1070
Problem:  Cannot control cursor positioning of getchar().
Solution: Add "cursor" flag to {opts}, with possible values "hide",
          "keep" and "msg".

Patch 9.1.1071
Problem:  Arguments of a function are missing after failing to redefine
          it (after 8.2.2505), and heap-use-after-free with script-local
          function (after 9.1.1063).
Solution: Don't clear arguments or free uf_name_exp when failing to
          redefine an existing function (zeertzjq).

Patch 9.1.1072
Problem:  'diffopt' "linematch" cannot be used with {n} less than 10
          digits (after v9.1.1022)
Solution: Fix off-by-one error when checking for digit (zeertzjq).

Patch 9.1.1073
Problem:  tests: test_compiler fails on Windows without Maven.
Solution: Add Xspotbugs directory to $PATH when mvn is not available
          (zeertzjq).

Patch 9.1.1074
Problem:  Strange error when heredoc marker starts with "trim".
Solution: Check for whitespace after "trim" or "eval" (zeertzjq).

Patch 9.1.1075
Problem:  MNV9: length variable not used in compile_load()
Solution: Use len instead of re-calculating the length (Hirohito Higashi).

Patch 9.1.1076
Problem:  mnv_strnchr() is strange and unnecessary (after v9.1.1009)
Solution: Remove mnv_strnchr() and use memchr() instead.  Also remove a
          comment referencing an #if that is no longer present.

Patch 9.1.1077
Problem:  Syntax engine interpreted contains=TOP as matching nothing
          inside included files, since :syn-include forces HL_CONTAINED
          on for every included item. After 8.2.2761, interprets
          contains=TOP as contains=@INCLUDED, which is also not correct
          since it doesn't respect exclusions, and doesn't work if there
          is no @INCLUDED cluster.
Solution: Revert Patch 8.2.2761, instead track groups that have had
          HL_CONTAINED forced, and interpret contains=TOP and
          contains=CONTAINED using this (Theodore Dubois).

Patch 9.1.1078
Problem:  Terminal ansi colors off by one after tgc reset
Solution: Set the correct index for libvterm palette, revert parts in
          libvterm/src/pen.c that deviated from upstream (Julio B)

Patch 9.1.1079
Problem:  GUI late startup leads to uninitialized scrollbars
Solution: initialize scrollbars for all windows in all tabpages
          (Yee Cheng Chin).

Patch 9.1.1080
Problem:  filetype: Mill files are not recognized
Solution: Detect '*.mill' files as scala filetype.

Patch 9.1.1081
Problem:  has('bsd') is true for GNU/Hurd
Solution: Exclude GNU/Hurd from BSD feature flag (Zhaoming Luo).

Patch 9.1.1082
Problem:  unexpected DCS responses may cause out of bounds reads
          (after v9.1.1054)
Solution: Check that the parsed value is '=' as expected (Julio B).

Patch 9.1.1083
Problem:  setreg() doesn't correctly handle mbyte chars in blockwise mode
Solution: Use mb_ptr2len_len function pointer (Yee Cheng Chin).

Patch 9.1.1084
Problem:  Unable to persistently ignore events in a window and its buffers.
Solution: Add 'eventignorewin' option to ignore events in a window and buffer
        (Luuk van Baal).

Patch 9.1.1085
Problem:  filetype: cmmt files are not recognized
Solution: Detect '*.cmmt' as trace32 filetype (Christian Sax).

Patch 9.1.1086
Problem:  completion doesn't work with multi lines (Łukasz Jan Niemier)
Solution: Handle linebreaks in completion code as expected (glepnir).

Patch 9.1.1087
Problem:  MNV9: import with extends may crash
Solution: Check otv for being NULL before trying to access it
        (Hirohito Higashi).

Patch 9.1.1088
Problem:  tests: plugin tests are named inconsistently
Solution: Group them under a common 'plugin' prefix.

Patch 9.1.1089
Problem:  tests: No check when tests are run under Github actions
Solution: Add the CheckGithubActions check command and skip test if needed.

Patch 9.1.1090
Problem:  tests: test_terminwscroll_topline2 unreliable
Solution: Instead of using term_wait() with a specific time, use
          terminal-api and to wait until the terminal is finished
          (Yee Cheng Chin).

Patch 9.1.1091
Problem:  tests: timeout might be a bit too small
Solution: Increase the test timeout from 30 to 45 seconds

Patch 9.1.1092
Problem:  tests: fix expected return code for python 3.13 on Windows
Solution: Check for return code 1 or 123 on Windows.

Patch 9.1.1093
Problem:  tests: output of test Test_terminal_eof_arg_win32_ctrl_z depends on
          python version.
Solution: Check for the expected output in both, the second last line
          and last line.

Patch 9.1.1094
Problem:  MNV9: problem finding implemented method for abstract method
          in type hierarchy (Aliaksei Budavei)
Solution: When checking for abstract methods in an extended class, check
          whether an abstract method is implemented in one of the parent
          classes (Yegappan Lakshmanan).

Patch 9.1.1095
Problem:  tests: matchparen plugin test wrongly named (zeertzjq)
Solution: Rename test_matchparen to test_plugin_matchparen
          to be consistent with the other plugin tests.

Patch 9.1.1096
Problem:  if_perl: Perl 5.38 adds new symbols causing link failure
Solution: add stub symbols (Drew Vogel).

Patch 9.1.1097
Problem:  --log with non-existent path causes a crash (Ekkosun)
Solution: Split initialization phase and init the execution stack
          earlier (Hirohito Higashi)

Patch 9.1.1098
Problem:  Leaking memory with completing multi lines (after v9.1.1086)
Solution: Free allocated memory (glepnir).

Patch 9.1.1099
Problem:  MNV9: import with extends may crash, v9.1.1087 wasn't the
          correct way to fix it).
Solution: When using an import class, Check for a valid class member
          variable at compile time (Yegappan Lakshmanan).

Patch 9.1.1100
Problem:  tests: Test_log_nonexistent only works on Linux
          (after v9.1.1097)
Solution: Add CheckUnix condition.

Patch 9.1.1101
Problem:  insexpand.c hard to read
Solution: Refactor slightly to make it better readable (glepnir).

Patch 9.1.1102
Problem:  tests: Test_WinScrolled_Resized_eiw() uses wrong filename
          (Luuk van Baal, after v9.1.1084)
Solution: Rename the filename to something more unique.

Patch 9.1.1103
Problem:  if_perl: still some compile errors with Perl 5.38
Solution: Copy declaration of PL_memory_wrap from Perl header (Drew Vogel).

Patch 9.1.1104
Problem:  CI: uses Ubuntu 22.04 runners
Solution: Switch to Ubuntu 24.04 runners, make a few adjustments for
          different $TMPDIR (Drew Vogel).

Patch 9.1.1105
Problem:  MNV9: no support for protected new() method
Solution: Support the protected "_new()" object method (Yegappan Lakshmanan).

Patch 9.1.1106
Problem:  tests: Test_log_nonexistent() causes asan failure (Hirohito Higashi)
Solution: Don't run mnv using system(), but run MNV in a terminal.

Patch 9.1.1107
Problem:  Cannot loop through completion menu with fuzzy and nosort in
          'completeopt' (Tomasz N)
Solution: Reset cur to zero and update compl_shown_match when
          'completeopt' contains "nosort" but not "noselect" (glepnir).

Patch 9.1.1108
Problem:  'smoothscroll' gets stuck with 'listchars' "eol".
Solution: Count size of 'listchars' "eol" in line size when scrolling
          (zeertzjq).

Patch 9.1.1109
Problem:  cmdexpand.c hard to read
Solution: Refactor the file slightly (glepnir).

Patch 9.1.1110
Problem:  MNV tests are slow and flaky at the same time due to reliance
          on timeouts which are unreliable.
Solution: Improve MNV test performance and reduce flakiness
          (Yee Cheng Chin)

Patch 9.1.1111
Problem:  MNV9: variable not found in transitive import (lifepillar)
Solution: Fix import and class extends (Hirohito Higashi).

Patch 9.1.1112
Problem:  Inconsistencies in get_next_or_prev_match() (after 9.1.1109).
Solution: Change "file" to "entry" or "match" in comments.  Use the same
          order of branches for PAGEUP and PAGEDOWN (zeertzjq).

Patch 9.1.1113
Problem:  tests: Test_terminal_builtin_without_gui waits 2 seconds
Solution: Add --not-a-term to remove the annoying 2s delay in error
          message when MNV detects that stdio are not from a terminal
          (Yee Cheng Chin).

Patch 9.1.1114
Problem:  Enabling termguicolors automatically confuses users. Since
          querying the terminal for the RGB flag happens asynchronously,
          enabling termguicolors is noticeable by users as the highlighting
          changes and is therefore unexpected (after v9.1.1054).
Solution: Comment out that part for now. We may need another way to enable
          this in the future.

Patch 9.1.1115
Problem:  [security]: use-after-free in str_to_reg() (fizz-is-on-the-way)
Solution: When redirecting the :display command, check that one
          does not output to the register being displayed

Patch 9.1.1116
Problem:  MNV9: super not supported in lambda expressions (Aliaksei Budavei)
Solution: Support using the super keyword in a closure in an instance
          method (Yegappan Lakshmanan).

Patch 9.1.1117
Problem:  there are a few minor style issues
Solution: Fix the issues (Hirohito Higashi).

Patch 9.1.1118
Problem:  tests: test_termcodes fails (after: v9.1.1114)
Solution: Adjust the test for the expected termguicolors value.

Patch 9.1.1119
Problem:  MNV9: Not able to use an autoloaded class from another
          autoloaded script (Elliot)
Solution: Make it work (Yegappan Lakshmanan).

Patch 9.1.1120
Problem:  tests: Test_registers fails (T.J. Townsend, after v9.1.1115).
Solution: Require clipboard feature

Patch 9.1.1121
Problem:  Enter does not insert newline with "noselect" when the pum is
          visible (lifepillar)
Solution: When Enter is pressed and no complete-item is selected,
          ins_compl_prep returns false, and the edit function continues
          processing Enter to insert a new line (glepnir).

Patch 9.1.1122
Problem:  too many strlen() calls in findfile.c
Solution: Refactor findfile.c and remove calls to strlen() (John Marriott).

Patch 9.1.1123
Problem:  Highlight groups PopupSelected/PopupNotification/
          MessageWindow are supposed to fall back to default highlight
          groups if they are not defined. However, once a colorscheme
          has defined them, switching to another colorscheme that
          doesn't do so will leave behind a cleared colorscheme, which
          causes the fallback to fail.
Solution: Set up default links to the relevant fallback highlight
          groups, which makes sure a `:hi clear` command will reset the
          state properly (Yee Cheng Chin).

Patch 9.1.1124
Problem:  No test for 'listchars' "precedes" with double-width char.
Solution: Add a test and fix a typo in code (zeertzjq).

Patch 9.1.1125
Problem:  Cannot loop through pum menu with multiline items with
          fuzzy and noselect in 'completeopt' (Tomasz N)
Solution: Remove unnecessary compl_no_select condition (glepnir).

Patch 9.1.1126
Problem:  Patch 9.1.1121 used a wrong way to handle enter
Solution: Compl_enter_selects also needs to consider the selected item
          in ins_compl_new_leader() (glepnir).

Patch 9.1.1127
Problem:  when 'completeopt' is set to preinsert the preinserted text is
          not cleared when adding new leader (Yee Cheng Chin)
Solution: Add a condition to delete preinsert text in edit function
          (glepnir).

Patch 9.1.1128
Problem:  Patch 9.1.1119 caused a regression with imports (girishji).
Solution: Revert the script ID change for the class script variable for
          now (Yegappan Lakshmanan).

Patch 9.1.1129
Problem:  missing out-of-memory test in buf_write()
Solution: Check that the returned allocated buffer is not NULL
          (John Marriott).

Patch 9.1.1130
Problem:  'listchars' "precedes" is not drawn on Tabs.
Solution: Only draw 'listchars' "precedes" when not skipping over cells
          (zeertzjq).

Patch 9.1.1131
Problem:  Potential out-of-memory issue in search.c
Solution: Improve situation and refactor search.c slightly (John Marriott).

Patch 9.1.1132
Problem:  Mark positions wrong after triggering multiline completion.
Solution: Call deleted_lines_mark() after deleting lines (zeertzjq).

Patch 9.1.1133
Problem:  filetype: xkb files not recognized everywhere
Solution: Detect xkb files in more places (David Mandelberg).

Patch 9.1.1134
Problem:  filetype: Guile init file not recognized
Solution: Detect '.guile' file as scheme filetype (David Mandelberg).

Patch 9.1.1135
Problem:  'suffixesadd' doesn't work with multiple items (after 9.1.1122).
Solution: Don't concat multiple suffixes together (zeertzjq).

Patch 9.1.1136
Problem:  Match highlighting marks a buffer region to be redrawn as if
          its buffer text was changed, unnecessarily invoking syntax code.
Solution: Set the `w_redraw_top/bot` variables instead of the b_mod_* ones
          (Luuk van Baal).

Patch 9.1.1137
Problem:  ins_str() is inefficient by calling STRLLEN()
Solution: Refactor ins_str() to take a length argument and let all callers
          provide the correct length when calling ins_str() (John Marriott).

Patch 9.1.1138
Problem:  Existing cmdline completion for :highlight was barebone and
          only completed the highlight group names.
Solution: Implement full completion for the highlight group arguments
          such as guifg and cterm. If the user tries to complete
          immediately after the '=' (e.g. `hi Normal guifg=<Tab>`), the
          completion will fill in the existing value, similar to how
          cmdline completion for options work (Yee Cheng Chin).

Patch 9.1.1139
Problem:  [fifo] is not displayed when editing a fifo (after v7.4.2189).
Solution: Stat the filename and detect the type correctly.

Patch 9.1.1140
Problem:  filetype: m17ndb files are not detected
Solution: Detect m17ndb files as m17ndb filetype, include filetype, syntax and
          indent files for the new filetype (David Mandelberg).

Patch 9.1.1141
Problem:  Misplaced comment in readfile() (after v9.1.1139).
Solution: Move the comment above S_ISDIR() (zeertzjq).

Patch 9.1.1142
Problem:  tests: test_startup fails if $HOME/$XDG_CONFIG_HOME is defined
Solution: Define $HOME and $XDG_CONFIG_HOME to some non-existing
          directory.

Patch 9.1.1143
Problem:  illegal memory access when putting a register
Solution: Make sure cursor column doesn't become negative.

Patch 9.1.1144
Problem:  no way to create raw strings from a blob
Solution: Support the "encoding": "none" option to create raw strings (which
          may be invalid) (Bakudankun).

Patch 9.1.1145
Problem:  When expanding omni completion items with newlines (e.g.
          `then\n\t\nend`), the end statement gets wrong indentation.
Solution: Add OPENLINE_FORCE_INDENT flag to make open_line() use
          second_line_indent directly (glepnir).

Patch 9.1.1146
Problem:  MNV9: wrong context being used when evaluating class member
          (lifepillar, Ernie Rael)
Solution: Use the correct script context when evaluating a class member
          init expression(Yegappan Lakshmanan).

Patch 9.1.1147
Problem:  preview-window does not scroll correctly
Solution: Init firstline = 0 for a preview window (Girish Palya).

Patch 9.1.1148
Problem:  MNV9: finding imported scripts can be further improved
          (after v9.1.1146)
Solution: Eliminate extra find_imported() call (Hirohito Higashi).

Patch 9.1.1149
Problem:  Unix Makefile does not support Brazilian lang for the installer.
Solution: Add support for language code pt_br (RestorerZ)

Patch 9.1.1150
Problem:  :highlight auto-complettion has a minor bug where an existing
          highlight group with a cterm color being unset would result in
          it being auto-completed to -1 in cmdline which is invalid.
Solution: Correctly check for whether an int value is set to non-zero
          before retrieving the existing value for auto-complete. Also
          do this for attr/string values as they previously worked only
          by accident (Yee Cheng Chin).

Patch 9.1.1151
Problem:  too many strlen() calls in getchar.c
Solution: Store last inserted and recorded lengths, add functions to retrieve
          those and use those functions (John Marriott).

Patch 9.1.1152
Problem:  Patch v9.1.1151 causes problems
Solution: Partially revert it (John Marriott).

Patch 9.1.1153
Problem:  build error on Haiku
Solution: Define XDG_RUNTIME_PATH variables (Begasus).

Patch 9.1.1154
Problem:  MNV9: not able to use autoload class across scripts
Solution: Make it work, re-enable the test (Yegappan Lakshmanan).

Patch 9.1.1155
Problem:  Mode message not cleared after :silent message (after 9.0.1634).
Solution: Don't reset mode_displayed when the message is empty (zeertzjq).

Patch 9.1.1156
Problem:  No test for what Patch 9.1.1152 fixes.
Solution: Add a test (zeertzjq).

Patch 9.1.1157
Problem:  command completion wrong for input() (Cdrman Fu)
Solution: Set commandline completion context explicitly (Jim Zhou).

Patch 9.1.1158
Problem:  :verbose set has wrong file name with :compiler!
Solution: Add -keepscript (zeertzjq).

Patch 9.1.1159
Problem:  $MYMNVDIR may not always be set (after 9.1.0718) (sandwm)
Solution: Always set $MYMNVDIR to first item in runtimepath
          (except when using --clean), update it when changing &rtp.

Patch 9.1.1160
Problem:  The 'preinsert' feature requires Ctrl-Y to confirm insertion,
          but Ctrl-Y only works when the popup menu (pum) is displayed.
Solution: Modify ins_compl_has_preinsert() to check for both 'menu' and
          'menuone' flags when 'preinsert' is set. Update documentation
          to clarify this requirement. This avoids adding complex
          conditional behaviors (glepnir).

Patch 9.1.1161
Problem:  preinsert requires bot "menu" and "menuone" to be set,
          but "menu" is redundant (after v9.1.1160)
Solution: Preinsert only requires menuone (glepnir).

Patch 9.1.1162
Problem:  When an info popup spans into the cmdline area and ESC is
          pressed, some content remains visible on screen (yu3s).
Solution: Add popup_overlays_cmdline() check in screen_fill() to prevent
          prematurely clearing the clear_cmdline flag (glepnir).

Patch 9.1.1163
Problem:  $MYMNVDIR is set too late and not available while sourcing
          runtime files (Maxim Kim, after v9.1.1159).
Solution: Also set it when $MYMNVRC file is found.

Patch 9.1.1164
Problem:  editing a special crafted tar file allows code execution (RyotaK)
Solution: Escape the filename before feeding it to the `:read` command

Patch 9.1.1165
Problem:  MNV's diff block merging algorithm when doing a multi-file diff
          is buggy when two different diff hunks overlap a single
          existing diff block (after v9.1.0743)
Solution: Fix a couple bugs in this logic (Yee Cheng Chin).

Patch 9.1.1166
Problem:  command-line auto-completion hard with wildmenu
Solution: Implement "noselect" wildoption value (Girish Palya)

Patch 9.1.1167
Problem:  mark '] wrong after copying text object (ubaldot)
Solution: Adjust position of '] for non-linewise, exclusive motions (Jim Zhou)

Patch 9.1.1168
Problem:  wrong flags passed down to nextwild() (zeertzjq, after v9.1.1166)
Solution: Only pass options flags (Girish Palya)

Patch 9.1.1169
Problem:  using global variable for get_insert()/get_lambda_name()
          (after v9.1.1151)
Solution: Let the functions return a string_T object instead (Yee Cheng Chin).

Patch 9.1.1170
Problem:  wildmenu highlighting in popup can be improved
Solution: Check if the completion items contain submatches of the
          entered text (Girish Palya).

Patch 9.1.1171
Problem:  tests: wrong arguments passed to assert_equal() (after v9.1.1167).
Solution: Swap arguments in the assert_equal() call (zeertzjq).

Patch 9.1.1172
Problem:  heap-buffer-overflow with 'nostartofline' and Ex command in tag
          file.
Solution: Set cursor column when moving cursor to line 1 (zeertzjq).

Patch 9.1.1173
Problem:  filetype: ABNF files are not detected
Solution: Detect '.abnf' file as abnf filetype and
          include an abnf syntax plugin (A4-Tacks).

Patch 9.1.1174
Problem:  tests: when the file 'TestCommand?Test' exists,
          'Test_complete_cmdline()' will fail when writing the file. And
          there's no related cleaning operation for this kind of file
          before the test run.
Solution: modify `write` to `write!` to override (Jim Zhou).

Patch 9.1.1175
Problem:  inconsistent behaviour with exclusive selection and motion
          commands (aidancz)
Solution: Adjust cursor position when selection is exclusive (Jim Zhou).

Patch 9.1.1176
Problem:  wrong indentation of lastline when expanding multiple lines
Solution: Check OPENLINE_FORCE_INDENT flag in open_line() (glepnir).

Patch 9.1.1177
Problem:  filetype: tera files not detected
Solution: Detect '*.tera' files as tera filetype,
          include a simple filetype plugin (MuntasirSZN).

Patch 9.1.1178
Problem:  not possible to generate completion candidates using fuzzy
          matching
Solution: Add the 'completefuzzycollect' option for (some) ins-completion
          modes (glepnir).

Patch 9.1.1179
Problem:  too many strlen() calls in misc2.c
Solution: Refactor misc2.c and use bsearch() instead of a linear search
          to find matches in the key_names_table array (John Marriott).

Patch 9.1.1180
Problem:  The meaning of <Tab> depends on unspecified behavior
          (after 9.1.1179).
Solution: Return TAB in case bsearch() finds K_TAB.  Rename alt_name to
          pref_name as that's closer to it meaning (zeertzjq).

Patch 9.1.1181
Problem:  Unnecessary STRLEN() calls in insexpand.c (after 9.1.1178).
Solution: Use the already available length (zeertzjq).

Patch 9.1.1182
Problem:  No cmdline completion for the 'completefuzzycollect' option
          (after v9.1.1178)
Solution: Add cmdline completion for the 'completefuzzycollect' option,
          improve its description in optwin.mnv (zeertzjq).

Patch 9.1.1083
Problem:  "above" virtual text breaks cursorlineopt=number.
Solution: Take "above" virtual text into account when applying
          CursorLineNr highlight.

Patch 9.1.1184
Problem:  Unnecessary use of mnv_tolower() in mnv_strnicmp_asc().
Solution: Use TOLOWER_ASC() instead (zeertzjq).

Patch 9.1.1185
Problem:  endless loop with completefuzzycollect and no match found
Solution: Move pointer to line end and break loop.

Patch 9.1.1186
Problem:  filetype: help files in git repos are not detected
Solution: Detect */doc/*.txt files as help if they end with a help
          modeline, even if 'modeline' is off

Patch 9.1.1187
Problem:  matchparen plugin wrong highlights shell case statement
          (Swudu Susuwu)
Solution: Return early, if we are in a shSnglCase syntax element

Patch 9.1.1188
Problem:  runtime(tera): tera support can be improved
Solution: Update tera filetype plugin, include a tera syntax script
          include tera syntax tests, update the filetype test,
          update makemenu and synmenu mnv scripts (MuntasirSZN).

Patch 9.1.1189
Problem:  if_python: build error due to incompatible pointer types
Solution: Cast pointer to PyObject* (oreo639).

Patch 9.1.1190
Problem:  C indentation does not detect multibyte labels
Solution: Correctly skip over multibyte characters (Anttoni Erkkilä).

Patch 9.1.1191
Problem:  Test for Patch 9.1.1186 doesn't fail without the patch.
Solution: Set 'nomodeline' in the test (zeertzjq).

Patch 9.1.1192
Problem:  MNV crashes with term response debug logging enabled and
          running in a non-writeable directory
Solution: Use ch_log() instead of custom termresponse logging function
          (Hirohito Higashi)

Patch 9.1.1193
Problem:  Unnecessary use of STRCAT() in au_event_disable().  STRCAT()
          seeks to the end of new_ei, but here the end is already known.
Solution: Use STRCPY() and add p_ei_len to new_ei.  Also fix a typo in a
          comment.  Add a test that 'eventignore' works in :argdo (zeertzjq).

Patch 9.1.1194
Problem:  filetype: false positive help filetype detection
Solution: Only detect a file as help if modeline appears either at start
          of line or is preceded by whitespace (zeertzjq).

Patch 9.1.1195
Problem:  inside try-block: fn body executed when default arg is
          undefined
Solution: When inside a try-block do not execute function body after an
          error in evaluating a default argument expression (Shane Harper).

Patch 9.1.1196
Problem:  filetype: config files for container tools are not recognized
Solution: Detect the ones that aren't detected yet as toml filetype
          (David Mandelberg).

Patch 9.1.1197
Problem:  process_next_cpt_value() uses wrong condition
Solution: Use cfc_has_mode() instead and remove redundant else if branch
          (glepnir).

Patch 9.1.1198
Problem:  [security]: potential data loss with zip.mnv and special
          crafted zip files (RyotaK)
Solution: Use glob '[-]' to protect filenames starting with '-'.

Patch 9.1.1199
Problem:  Many X11/Wayland desktops support icon themes, and many themes
          provide a gmnv icon, but this icon is ignored for the window
          itself because it is hardcoded in the source code.
Solution: Read the icon from the theme instead (Aurelien Gateau).

Patch 9.1.1200
Problem:  Cmdline pum not cleared for input() completion.
Solution: Temporary reset RedrawingDisabled in cmdline_pum_cleanup(),
          like what is done in wildmenu_cleanup() (zeertzjq).

Patch 9.1.1201
Problem:  'completefuzzycollect' does not handle dictionary correctly
Solution: Check for ctrl_x_mode_dictionary (glepnir).

Patch 9.1.1202
Problem:  Missing TabClosedPre autocommand (zoumi)
Solution: Add the TabClosedPre autcommand (Jim Zhou).

Patch 9.1.1203
Problem:  matchparen keeps cursor on case label in sh filetype
          (@categorical, after 9.1.1187).
Solution: Use :defer so that cursor is always restored, remove checks
          for older MNVs, finish early if MNV does not support :defer

Patch 9.1.1204
Problem:  MS-Windows: crash when passing long string to expand() with
          'wildignorecase'.
Solution: Use the same buflen as unix_expandpath() in dos_expandpath().
          Remove an unnecessary STRLEN() while at it (zeertzjq).

Patch 9.1.1205
Problem:  completion: preinserted text not removed when closing pum
Solution: Delete preinsert text inside in ins_compl_stop() (glepnir).

Patch 9.1.1206
Problem:  tests: test_filetype fails when a file is a directory
          (Eisuke Kawashima)
Solution: When encountering a directory instead of a file, skip that
          particular filetype test.

Patch 9.1.1207
Problem:  MS-Windows: build warning in filepath.c (after v9.1.1204).
Solution: Add type cast (John Marriott).

Patch 9.1.1208
Problem:  MS-Windows: not correctly restoring alternate screen on Win 10
          after ssh (Daniel Viberg)
Solution: Return a bit later in RestoreConsoleBuffer() (Christopher Plewright)

Patch 9.1.1209
Problem:  colorcolumn not drawn after virtual text lines
Solution: Show colorcolumn on correct line with virtual text by adding
          the size of p_extra to virtual column offset (Matthias).

Patch 9.1.1210
Problem:  translation(ru): missing Russian translation for the new tutor
Solution: Include new Russian translation, update the Makefile for
          installing the new translations (RestorerZ).

Patch 9.1.1211
Problem:  TabClosedPre is triggered just before the tab is being freed,
          which limited its functionality.
Solution: Trigger it a bit earlier and also on :tabclose and :tabonly
          (Jim Zhou).

Patch 9.1.1212
Problem:  filetype: logrotate'd pacmanlogs are not recognized
Solution: Also detect pacman.log* files as pacmanlog filetype,
          remove BufNewFile autocmd (Eisuke Kawashima).

Patch 9.1.1212
Problem:  too many strlen() calls in edit.c
Solution: Refactor edit.c and remove strlen() calls (John Marriott).

Patch 9.1.1213
Problem:  cannot :put while keeping indent (Peter Aronoff)
Solution: Add the :iput ex command (64-bitman).

Patch 9.1.1214
Problem:  When searching for "Cur", CamelCase matches like "lCursor" score
          higher than exact prefix matches like Cursor, which is
          counter-intuitive (Maxim Kim).
Solution: Add a 'camelcase' option to matchfuzzy() that lets users disable
          CamelCase bonuses when needed, making prefix matches rank higher
          (glepnir).

Patch 9.1.1215
Problem:  Patch 9.1.1213 has some issues
Solution: Revert it for now

Patch 9.1.1216
Problem:  Pasting the '.' register multiple times may work incorrectly
          when the last insert starts with Ctrl-D and ends with '0'
          (after 9.1.1212).
Solution: Restore the missing assignment (zeertzjq).

Patch 9.1.1217
Problem:  tests: typos in test_matchfuzzy.mnv (after 9.1.1214).
Solution: Fix the typos.  Consistently put the function call on the
          second line in assertions for camelcase (zeertzjq).

Patch 9.1.1218
Problem:  missing out-of-memory check in filepath.c
Solution: Add check for NULL (John Marriott).

Patch 9.1.1219
Problem:  Strange error with type for matchfuzzy() "camelcase".
Solution: Show the error "Invalid value for argument camelcase" instead
          of "Invalid argument: camelcase" (zeertzjq).

Patch 9.1.1220
Problem:  filetype: uv.lock file not recognized
Solution: detect uv.lock file as toml filetype (Acaibird).

Patch 9.1.1221
Problem:  Wrong cursor position and '^' mark when leaving Insert mode
          just after 'autoindent' and cursor on last char of line.
Solution: Don't move cursor to NUL when it wasn't moved to the left (zeertzjq)

Patch 9.1.1222
Problem:  using wrong length for last inserted string
          (Christ van Willegen, after v9.1.1212)
Solution: Use the correct length in get_last_insert_save(), make
          get_last_insert() return a string_T (John Marriott).

Patch 9.1.1223
Problem:  wrong translation for encoding failures because of using
          literal "from" and "to" in the resulting error message (RestorerZ)
Solution: Use separate error messages for errors "from" and "to"
          encoding errors.

Patch 9.1.1224
Problem:  cannot :put while keeping indent (Peter Aronoff)
Solution: Add the :iput ex command (64-bitman).

Patch 9.1.1225
Problem:  extra NULL check in MNV_CLEAR()
Solution: Remove the NULL check and rely on the NULL check in mnv_free()
          instead (Hirohito Higashi).

Patch 9.1.1226
Problem:  "shellcmdline" completion doesn't work with input().
Solution: Use set_context_for_wildcard_arg().  Fix indent in nextwild()
          (zeertzjq).

Patch 9.1.1227
Problem:  no tests for the comment package
Solution: Add some tests (Maxim Kim).

Patch 9.1.1228
Problem:  The current_pos.col was incorrectly updated to the length of
          the matching text. This will cause the next search to start
          from the wrong position.
Solution: Current_pos has already been updated in search_str_in_line and
          does not need to be changed (glepnir).

Patch 9.1.1229
Problem:  the comment plugin can be improved
Solution: add comment text objects "ic" and "ac" (Maxim Kim).

Patch 9.1.1230
Problem:  Ctrl-C closes popup windows that have a filter callback,
          but does not close popups without a filter callback.
Solution: Modified popup_do_filter() to also close popups without
          filter callback when Ctrl-C is pressed (glepnir).

Patch 9.1.1231
Problem:  filetype: SPA (single page application) JSON files are not
          recognized (used by pipewire and wireplumber)
Solution: Detect pipewire and wireplumber configuration files as spajson
          filetype, include filetype, indent and syntax scripts for this
          new filetype (David Mandelberg).

Patch 9.1.1232
Problem:  MNV script is missing the tuple data type
Solution: Add support for the tuple data type (Yegappan Lakshmanan).

Patch 9.1.1233
Problem:  Coverity warns about NULL pointer when triggering WinResized
Solution: Add OOM checks for windows_list like for scroll_dict. Remove
          void casts that are unnecessary after 9.1.1084 (zeertzjq).

Patch 9.1.1234
Problem:  Compile error when SIZE_MAX is not defined
Solution: Define SIZE_MAX (Zoltan Arpadffy).

Patch 9.1.1235
Problem:  cproto files are outdated
Solution: regenerate proto files by running make proto (Yegappan Lakshmanan).

Patch 9.1.1236
Problem:  tests: test_comments leaves swapfiles around
Solution: use ':bw!' instead of ':close!'

Patch 9.1.1237
Problem:  Compile error with C89 compiler in term.c (Zoltan Arpadffy)
Solution: split out LOG_TR macro into 2 different macros. LOG_TR1 that
          takes only a single argument and LOG_TRN that takes 2
          arguments. Remove the use of ##__VA_ARGS__ since the macro is
          now always called with 2 arguments (Hirohito Higashi).

Patch 9.1.1238
Problem:  With ':set splitkeep=screen', cursor did't restore column
          correctly when splitting a window on a line longer than the
          last line on the screen (after v9.1.0707)
Solution: Restore cursor column in `win_fix_scroll()` since it may be
          changed in `getvcol()` after 396fd1ec2956 (phanium).

Patch 9.1.1239
Problem:  if_python: no tuple data type support (after v9.1.1232)
Solution: Add support for using MNV tuple in the python interface
          (Yegappan Lakshmanan).

Patch 9.1.1240
Problem:  Regression with ic/ac text objects and comment plugin
Solution: Fix regression, update tests (Maxim Kim).

Patch 9.1.1241
Problem:  wrong preprocessort indentation in term.c
Solution: update indentation (Hirohito Higashi).

Patch 9.1.1242
Problem:  Crash when evaluating variable name (after v9.1.0870)
Solution: Calculate the strlen() directly instead of pointer
          arithmetics, fix missing assignment to lp->ll_name_end in
          get_lval() (zeertzjq).

Patch 9.1.1243
Problem:  Diff mode's inline highlighting is lackluster. It only
          performs a line-by-line comparison, and calculates a single
          shortest range within a line that could encompass all the
          changes. In lines with multiple changes, or those that span
          multiple lines, this approach tends to end up highlighting
          much more than necessary.
Solution: Implement new inline highlighting modes by doing per-character
          or per-word diff within the diff block, and highlight only the
          relevant parts, add "inline:simple" to the defaults (which is
          the old behaviour) (Yee Cheng Chin)

Patch 9.1.1244
Problem:  part of Patch v9.1.1242 was wrong
Solution: Revert part of the Patch.

Patch 9.1.1245
Problem:  need some more tests for curly braces evaluation
Solution: Add a test for the regression introduced by Patch v9.1.1242
          (Yegappan Lakshmanan).

Patch 9.1.1246
Problem:  coverity complains about some changes in v9.1.1243
Solution: Remove duplicate code in diff_find_changed() (Yee Cheng Chin).

Patch 9.1.1247
Problem:  fragile setup to get (preferred) keys from key_name_entry
          (after v9.1.1179)
Solution: Refactor the code further, fix a bug with "pref_name" key
          entry introduced in v9.1.1180 (Yee Cheng Chin)

Patch 9.1.1248
Problem:  compile error when building without FEAT_QUICKFIX
Solution: Adjust ifdefs in popupwin.c, add CheckFeature quickfix
          to a few tests (John Marriott, Hirohito Higashi).

Patch 9.1.1249
Problem:  No test that 'listchars' "eol" doesn't affect "gM".
Solution: Add a test (zeertzjq).

Patch 9.1.1250
Problem:  cannot set the maximum popup menu width (Lucas Mior)
Solution: add the new global option value 'pummaxwidth' (glepnir).

Patch 9.1.1251
Problem:  if_python: build error with tuples and dynamic python
          (after v9.1.1239)
Solution: Fix build error and test failures (Yee Cheng Cin).

Patch 9.1.1252
Problem:  Typos in code and docs related to 'diffopt' "inline:".
          (after v9.1.1243)
Solution: Fix typos and slightly improve the docs (zeertzjq).

Patch 9.1.1253
Problem:  If win_close() is called with a window that has quickfix stack
          attached to it, the corresponding quickfix buffer will be
          closed and freed after the buffer was already closed. At that
          time curwin->w_buffer points to NULL, which the CHECK_CURBUF
          will catch and abort if ABORT_ON_ERROR is defined.
Solution: In wipe_qf_buffer() temporarily point curwin->w_buffer back to
          curbuf, the window will be closed anyhow, so it shouldn't
          matter that curbuf->b_nwindows isn't incremented.

Patch 9.1.1254
Problem:  need more tests for the comment plugin
Solution: Add a tests for the [gb]:comment_first_col setting (Maxim Kim).

Patch 9.1.1255
Problem:  missing test condition for 'pummaxwidth' setting, pummaxwidth
          not effective when width is 32 and height is 10 (after v9.1.1250).
Solution: Add missing comparison condition in pum_width() (glepnir).

Patch 9.1.1256
Problem:  if_python: duplicate tuple data entries (after v9.1.1239)
Solution: clean up duplicates (Yegappan Lakshmanan).

Patch 9.1.1257
Problem:  Mixing mnv_strsize() with mb_ptr2cells() in pum_redraw().
Solution: Change mnv_strsize() to mb_string2cells() (zeertzjq).

Patch 9.1.1258
Problem:  regexp: max \U and \%U value is limited by INT_MAX but gives a
          confusing error message
Solution: Give a better error message when the value reaches INT_MAX

Patch 9.1.1259
Problem:  some issues with comment package and tailing spaces
Solution: Correctly capture trailing spaces with the ac/ic text object
          (Maxim Kim).

Patch 9.1.1260
Problem:  Hang when filtering buffer with NUL bytes (after 9.1.1050).
Solution: Don't subtract "written" from "lplen" repeatedly (zeertzjq).

Patch 9.1.1261
Problem:  No test for 'pummaxwidth' non-truncated items (after v9.1.1250)
Solution: Add shorter items to Test_pum_maxwidth_multibyte() (zeertzjq).

Patch 9.1.1262
Problem:  heap-buffer-overflow occurs with narrow 'pummaxwidth' value
          (after v9.1.1250)
Solution: Test that st_end points after st pointer (Hirohito Higashi).

Patch 9.1.1263
Problem:  string length wrong in get_last_inserted_save() (after v9.1.1222).
Solution: When removing trailing ESC, also decrease the string length
          (Christ van Willegen).

Patch 9.1.1264
Problem:  MNV9: error when comparing objects (lifepillar)
Solution: When comparing object types, compare their classes
          (Yegappan Lakshmanan)

Patch 9.1.1265
Problem:  tests: no tests for typing normal char during completion
Solution: Add a test verifying the default behaviour (see :h
          popupmenu-completion)

Patch 9.1.1266
Problem:  MS-Windows: type conversion warnings
Solution: Cast the variables (Yegappan Lakshmanan).

Patch 9.1.1267
Problem:  MNV9: no support for type list/dict<object<any>>
Solution: Add proper support for t_object_any (Yegappan Lakshmanan).

Patch 9.1.1268
Problem:  filetype: dax files are not recognized
Solution: Detect "*.dax" as dax filetype, include dax filetype and
          syntax plugin (Anarion Dunedain).

Patch 9.1.1269
Problem:  compl_shown_match is updated when starting keyword completion
          and does not include fuzzy matching.
Solution: Do not update compl_shown_match when starting keyword
          completion, since it is the one already selected by the
          keyword completion direction (glepnir).

Patch 9.1.1270
Problem:  missing out-of-memory checks in buffer.c
Solution: Handle out-of-memory situations during allocation (John Marriott).

Patch 9.1.1271
Problem:  filetype: Power Query files are not recognized
Solution: Detect '*.pq' as pq filetype, include pq syntax and filetype
          plugin (Anarion Dunedain).

Patch 9.1.1272
Problem:  completion: in keyword completion Ctrl_P cannot go back after
          Ctrl_N
Solution: in find_compl_when_fuzzy() always return first match of array, after
          Ctrl_P use compl_shown_match->cp_next instead of compl_first_match.
          (glepnir)

Patch 9.1.1273
Problem:  Coverity warns about using uninitialized value (after 9.1.1270).
Solution: Put an empty string in "buf" when allocation fails (zeertzjq).

Patch 9.1.1274
Problem:  MNV9: no support for object<type> as variable type
Solution: Add support for object<type> (Yegappan Lakshmanan).

Patch 9.1.1275
Problem:  MS-Windows: Not possible to pass additional flags to Make_mvc
Solution: Introduce $CI_FLAGS and use it to pass additional flags for
          the Github CI in order to treat size conversion warnings
          (C4267) as errors (Yegappan Lakshmanan).

Patch 9.1.1276
Problem:  inline word diff treats multibyte chars as word char
          (after 9.1.1243)
Solution: Treat all non-alphanumeric characters as non-word characters
          (Yee Cheng Chin)

Patch 9.1.1277
Problem:  tests: trailing comment char in test_popupwin
Solution: Remove crufty tail comment (Doug Kearns)

Patch 9.1.1278
Problem:  MNV9: too long functions in mnv9type.c
Solution: Refactor into separate functions (Yegappan Lakshmanan).

Patch 9.1.1279
Problem:  MNV9: null_object and null_class are no reserved names
Solution: Add null_object and null_class as reserved names
          (Yegappan Lakshmanan).

Patch 9.1.1280
Problem:  trailing additional semicolon in get_matches_in_str()
          (Hirohito Higashi)
Solution: Remove it (Satoru Kitaguchi).

Patch 9.1.1281
Problem:  extra newline output when editing stdin
Solution: Remove outputting when reading from stdin in non-terminal mode
          (Abhijit Barik).

Patch 9.1.1282
Problem:  Build and test failure without job feature (lazypingu).
Solution: Adjust ifdefs, add CheckFeature job to tests.

Patch 9.1.1283
Problem:  quickfix and location-list stack is limited to 10 items
Solution: Add the 'chistory' and 'lhistory' options to configure a
          larger quickfix/location list stack (64-bitman).

Patch 9.1.1284
Problem:  not possible to configure the completion menu truncation
          character
Solution: Add the "trunc" suboption to the 'fillchars' setting to
          configure the truncation indicator (glepnir).

Patch 9.1.1285
Problem:  MNV9: no error message for missing method after "super."
Solution: Output an error message, add a few more tests (Yegappan Lakshmanan).

Patch 9.1.1286
Problem:  Help files not detected when 'iskeyword' includes ":".
Solution: Do not use \< and \> in the pattern (zeertzjq).

Patch 9.1.1287
Problem:  quickfix code can be further improved (after v9.1.1283)
Solution: Slightly refactor quickfix.c (Hirohito Higashi).

Patch 9.1.1288
Problem:  Using wrong window in ll_resize_stack() (after v9.1.1287)
Solution: Use "wp" instead of "curwin", even though they are always the
          same value.  Fix typos in documentation (zeertzjq).

Patch 9.1.1289
Problem:  tests: no test for matchparen plugin with WinScrolled event
Solution: Add missing test.

Patch 9.1.1290
Problem:  tests: missing cleanup in test_filetype.mnv, wrong name in
          test_plugin_matchparen
Solution: Add :bwipe corresponding to :split, rename test case.

Patch 9.1.1291
Problem:  too many strlen() calls in buffer.c
Solution: Refactor buffer.c and remove strlen() calls (John Marriott).

Patch 9.1.1292
Problem:  statusline not correctly evaluated (Peter Kenny, after v9.1.1291)
Solution: Revert part of Patch v9.1.1291 (Hirohito Higashi).

Patch 9.1.1293
Problem:  comment plugin does not handle 'exclusive' selection for
          comment object (@mawkish)
Solution: Handle special case selection='exclusive' for inline comment
          object (Maxim Kim).

Patch 9.1.1294
Problem:  gui tabline menu does not use confirm when closing tabs
Solution: Use ":confirm tabclose" explicitly (JMcKiern).

Patch 9.1.1295
Problem:  clientserver: When in insert mode, a :stopinsert command
          is not correctly processed (user202729)
Solution: If the :stopinsert command is received while waiting for
          input, stuff the NOP key into the type-ahead buffer and
          detect that :stopinsert was used in edit() so that the
          cursor position is decremented.

Patch 9.1.1296
Problem:  completion: incorrect truncation logic (after: v9.1.1284)
Solution: Replace string allocation with direct screen rendering and
          fix RTL/LTR truncation calculations (glepnir).

Patch 9.1.1297
Problem:  cursor_correct() calculates a valid cursor position which
          is later changed by update_topline() and causes Ctrl-D
          scrolling to be stuck (Daniel Steinberg, after v9.1.0258).
Solution: Update the valid cursor position before validating topline
          (Luuk van Baal).

Patch 9.1.1298
Problem:  define_function() is too long
Solution: Refactor and split up into smaller functions (Yegappan Lakshmanan).

Patch 9.1.1299
Problem:  filetype: mbsyncrc files are not recognized
Solution: Detect isyncrc and "*.mbsyncrc" files as mbsync filetype,
          include filetype and syntax plugin (Pierrick Guillaume).

Patch 9.1.1300
Problem:  wrong detection of -inf
Solution: Correctly compare 4 characters and not 3 (John Marriott).

Patch 9.1.1301
Problem:  completion: cannot configure completion functions with
          'complete'
Solution: Add support for setting completion functions using the f and o
          flag for 'complete' (Girish Palya)

Patch 9.1.1302
Problem:  Coverity warns about using uninitialized value
          (Coverity, Tony Mechelynck, after v9.1.1301)
Solution: Initialize callback pointer to NULL

Patch 9.1.1303
Problem:  missing out-of-memory check in linematch.c
Solution: Return early in case of memory allocation failure, move the
          pow() calculation ouside of the for() loop (John Marriott).

Patch 9.1.1304
Problem:  filetype: some man files are not recognized
          (e.g. 1p (POSIX commands))
Solution: Update the filetype detection pattern and detect more man
          files as nroff (Eisuke Kawashima).

Patch 9.1.1305
Problem:  When switching to another window or tab page while the
          completion menu is active, the menu stays visible, although it
          belongs to the previous window/tab page context (Evgeni
          Chasnovski).
Solution: Track the window and tab page where completion started. Detect
          changes in the main editing loop and cancel completion mode if
          the current window or tab page differs from where completion
          started.

Patch 9.1.1306
Problem:  Parts of the popup menu were rendered twice when the popup was
          at maximum width because the truncation flag was being set too
          liberally.
Solution: Make the truncation condition more precise by only setting it
          when there's exactly one character of space remaining (glepnir).

Patch 9.1.1307
Problem:  GNU extensions, such as `ifeq` and `wildcard` function, are
          highlighted in BSDmakefile
Solution: Detect BSD, GNU, or Microsoft implementation according to
          filename, user-defined global variables, or file contents.

Patch 9.1.1308
Problem:  During insert-mode completion, the most relevant match is often
          the one closest to the cursor—frequently just above the current line.
          However, both `<C-N>` and `<C-P>` tend to rank candidates from the
          current buffer that appear above the cursor near the bottom of the
          completion menu, rather than near the top. This ordering can feel
          unintuitive, especially when `noselect` is active, as it doesn't
          prioritize the most contextually relevant suggestions.
Solution: This change introduces a new sub-option value "nearest" for the
          'completeopt' setting. When enabled, matches from the current buffer
          are prioritized based on their proximity to the cursor position,
          improving the relevance of suggestions during completion
        (Girish Palya).

Patch 9.1.1309
Problem:  tests: no test for 'pummaxwidth' with non-truncated "kind".
Solution: Add a test with "kind" and larger 'pummaxwidth' (zeertzjq).

Patch 9.1.1310
Problem:  Duplicate check for preinsert effect, particularly for Ctrl_w
          and Ctrl_U.
Solution: Remove the specific check for Ctrl_w and Ctrl_U to eliminate
          redundancy (glepnir).

Patch 9.1.1311
Problem:  completion: not possible to limit number of matches
Solution: allow to limit the matches for 'complete' sources by using the
          "{flag}^{limit}" notation (Girish Palya)

Patch 9.1.1312
Problem:  tests: Test_backupskip() fails when HOME is defined
Solution: Unset $HOME temporarily

Patch 9.1.1313
Problem:  compile warning about uninitialized value
          (Tony Mechelynck, after v9.1.1311)
Solution: Initialize variable on declaration

Patch 9.1.1314
Problem:  max allowed string width too small
Solution: Increased MAX_ALLOWED_STRING_WIDTH from 6400 to 1MiB
          (Hirohito Higashi)

Patch 9.1.1315
Problem:  chain complete does not work when 'cot' includes fuzzy
          and 'completefuzzycollect' collects wrong next word (Konfekt).
Solution: Compl_startpos is not set correctly, remove next word check
          in search_for_fuzzy_match (glepnir).

Patch 9.1.1316
Problem:  missing memory allocation failure in os_mswin.c
Solution: Check for memory allocation failure and return early (John Marriott)

Patch 9.1.1317
Problem:  noisy error when restoring folds from session fails
Solution: ignore errors silently when sourcing session file (Igor Lacerda).

Patch 9.1.1318
Problem:  tests: test_format fails (after 9.1.1314).
Solution: Increase the string size.  Add missing test_format.res in
          NEW_TESTS_RES (zeertzjq).

Patch 9.1.1319
Problem:  Various typos in the code, redundant and strange use of
          :execute in test_ins_complete.mnv (after 9.1.1315).
Solution: Fix typos in the code and in the documentation, use the
          executed command directly (zeertzjq).

Patch 9.1.1320
Problem:  filetype: alsoft config files are not recognized
Solution: Detect alsoft config files as dosini filetype (David Mandelberg).

Patch 9.1.1321
Problem:  filetype: MS ixx and mpp files are not recognized
Solution: Detect *.mpp and *.ixx files as c++ filetype (Hampus Avekvist).

Patch 9.1.1322
Problem:  small delete register cannot paste multi-line correctly
          (after v8.2.2189)
Solution: Make this logic handle charwise only (phanium).

Patch 9.1.1323
Problem:  b:undo_ftplugin not executed when re-using buffer (archy3)
Solution: Explicitly execute b:undo_ftplugin in buflist_new() when
          re-using the current buffer.

Patch 9.1.1324
Problem:  undefined behaviour if X11 connection dies
Solution: Call setjmp() before the main_loop() and restore x11 state
          if the X11 connection dies (Foxe Chen).

Patch 9.1.1325
Problem:  tests: not checking error numbers properly.
Solution: Add a trailing comma to avoid matching a different error
          number with the same prefix (zeertzjq).

Patch 9.1.1326
Problem:  invalid cursor position after 'tagfunc' (gandalf4a).
Solution: Call check_cursor() after executing the 'tagfunc'.

Patch 9.1.1327
Problem:  filetype: nroff detection can be improved
Solution: Improve nroff detection (Eisuke Kawashima)

Patch 9.1.1328
Problem:  too many strlen() calls in indent.c
Solution: Refactor indent.c slightly and remove strlen() calls (John Marriott)

Patch 9.1.1329
Problem:  cannot get information about command line completion
Solution: Add CmdlineLeavePre autocommand and cmdcomplete_info() MNV
          script function (Girish Palya)

Patch 9.1.1330
Problem:  may receive E315 in terminal
Solution: Call check_cursor() (Hirohito Higashi).

Patch 9.1.1331
Problem:  Leaking memory with cmdcomplete() (zeertzjq, after v9.1.1329)
Solution: Free the memory (Girish Palya).

Patch 9.1.1332
Problem:  MNV9: segfault when using super within a lambda (lifepillar)
Solution: Inherit the class from the current function (Yegappan Lakshmanan).

Patch 9.1.1333
Problem:  Coverity: complains about unutilized variable
Solution: Initialize typval properly

Patch 9.1.1334
Problem:  Coverity complains about unchecked return value
Solution: Cast return value to (void)

Patch 9.1.1335
Problem:  Coverity complains about Null pointer dereferences
Solution: Before accessing ccline->cmdbuff check that ccline is not NULL

Patch 9.1.1336
Problem:  comment plugin does not support case-insensitive
          'commentstring' (char101)
Solution: Use pattern '\c' to make the regex case-insensitive (Maxim Kim).

Patch 9.1.1337
Problem:  Undo corrupted with 'completeopt' "preinsert" when switching
          buffer or window.
Solution: Do not delete preinsert text when switching buffer or window
          (zeertzjq).

Patch 9.1.1338
Problem:  Calling expand() interferes with cmdcomplete_info() (after 9.1.1329)
Solution: Only clear cmdline_orig when starting/ending cmdline mode (zeertzjq)

Patch 9.1.1339
Problem:  missing out-of-memory checks for enc_to_utf16() and utf16_to_enc()
Solution: Add out-of-memory checks and fix a few other minor issues
          (John Marriott)

Patch 9.1.1340
Problem:  cannot complete :filetype arguments (Phạm Bình An)
Solution: Add :filetype ex command completion, add "filetypecmd"
          completion type for getcompletion()

Patch 9.1.1341
Problem:  Cannot define completion triggers and act upon it
Solution: Add the new option 'isexpand' and add the complete_match()
          function to return the completion matches according to the
          'isexpand' setting (glepnir)

Patch 9.1.1342
Problem:  Shebang filetype detection can be improved
Solution: Improve detection logic (Eisuke Kawashima)

Patch 9.1.1343
Problem:  filetype: IPython files are not recognized (user202729).
Solution: Detect *.ipy files as python filetype.

Patch 9.1.1344
Problem:  double free in f_complete_match() (after v9.1.1341)
Solution: Remove additional free of trig pointer, correctly free
          regmatch.regprog and before_cursor in the error case.

Patch 9.1.1345
Problem:  tests: Test_xxd_color2() test failure dump diff is misleading
Solution: Ensure the reference dump and the test dump are both processed the
          same (Drew Vogel).

Patch 9.1.1346
Problem:  missing out-of-memory check in textformat.c
Solution: Add out-of-memory check, add small optimizations to
          internal_format() and same_leader() (John Marriott)

Patch 9.1.1347
Problem:  small problems with gui_w32.c
Solution: Fix compile warnings and refactor code (John Marriott)

Patch 9.1.1348
Problem:  still E315 with the terminal feature (user202729)
Solution: Call update_topline() in limit_scrollback() (Hirohito Higashi).

Patch 9.1.1349
Problem:  CmdlineLeavePre may trigger twice (after v9.1.1329)
Solution: Check that the key was typed, trigger it when it wasn't before
          (Girish Palya).

Patch 9.1.1350
Problem:  tests: typo in Test_CmdlineLeavePre_cabbr() (after v9.1.1349)
Solution: Fix typo, disable failing test on Windows for now (Girish Palya).

Patch 9.1.1351
Problem:  Return value of getcmdline() inconsistent in CmdlineLeavePre
          when leaving cmdline in different ways (after v9.1.1329).
Solution: Trigger CmdlineLeavePre before calling abandon_cmdline() so
          that getcmdline() can return the command line (zeertzjq).

Patch 9.1.1352
Problem:  style: inconsistent indent in insexpand.c
Solution: Fix indentation (Hirohito Higashi).

Patch 9.1.1353
Problem:  missing change from v9.1.1350
Solution: Update the test Test_CmdlineTrigger() (Girish Palya).

Patch 9.1.1354
Problem:  tests: Test_terminalwinscroll_topline() fails on Windows
Solution: Instead of disabling it in Github Actions runners, disable it
          for all Windows runs.

Patch 9.1.1355
Problem:  The pum_redraw function is too complex and difficult to
          maintain with nested loops and mixed responsibilities handling
          both RTL and LTR text rendering.
Solution: Extracted core rendering logic into dedicated helper functions
          (pum_display_rtl_text, pum_display_ltr_text, pum_draw_scrollbar,
          pum_process_item) while preserving the original behavior. This
          improves code readability and maintainability (glepnir).

Patch 9.1.1356
Problem:  MNV9: crash when unletting variable
Solution: Fix crash, allow to use :unlet (Hirohito Higashi).

Patch 9.1.1357
Problem:  MNV incorrectly escapes tags containing "[" in a help buffer
Solution: Check if the buffer has the "help" filetype set, instead of
          already being a help buffer (Phạm Bình An).

Patch 9.1.1358
Problem:  if_lua: compile warnings with gcc15
Solution: Update function prototypes (lilydjwg).

Patch 9.1.1359
Problem:  filetype: GNU Radio config files are not recognized.
Solution: Detect GNU Radio config files as confini filetype.  Only
          allow '#' as start of comment in confini syntax (zeertzjq).

Patch 9.1.1360
Problem:  filetype: GNU Radio companion files are not recognized
Solution: Detect *.grc files as xml or yaml filetype depending on the
          first line (zeertzjq).

Patch 9.1.1361
Problem:  [security]: Possible to open more windows into a closing
          buffer without splitting, bypassing existing "b_locked_split"
          checks and triggering use-after-free
Solution: Disallow switching to a closing buffer. Editing a closing
          buffer (via ":edit", etc.) was fixed in v9.1.0764, but add an
          error message and check just "b_locked_split", as "b_locked"
          is necessary only when the buffer shouldn't be wiped, and may
          be set for buffers that are in-use but not actually closing
          (Sean Dewar).

Patch 9.1.1362
Problem:  MNV9: type ignored when adding tuple to instance list var
          (Lifepillar)
Solution: When getting the typval of class and object member variables,
          set the variable type (Yegappan Lakshmanan).

Patch 9.1.1363
Problem:  style: inconsistent indentation in various files
Solution: Fix style, updated codestyle test (Naruhiko Nishino).

Patch 9.1.1364
Problem:  style: more indentation issues
Solution: Fix indentation style (Yegappan Lakshmanan).

Patch 9.1.1365
Problem:  MS-Windows: compile warnings and too many strlen() calls  in
          os_mswin.c
Solution: Refactor os_mswin.c and fix the warning (John Marriott).

Patch 9.1.1366
Problem:  v9.1.1364 unintentionally changed sign.c and sound.c
Solution: Revert those parts, adjust the test (Hirohito Higashi).

Patch 9.1.1367
Problem:  too many strlen() calls in gui.c
Solution: Refactor gui.c slightly (John Marriott).

Patch 9.1.1368
Problem:  GTK3 and GTK4 will drop numeric cursor support.
Solution: Adopt GTK3 code and use CSS cursor convention (Drew Vogel).

Patch 9.1.1369
Problem:  configure still using autoconf 2.71
Solution: Regenerate with autoconf 2.72.

Patch 9.1.1370
Problem:  CI Tests favor GTK2 over GTK3
Solution: Install GTK3 dependencies and debug packages for CI workflows,
          update ASAN suppression list, update required dependency
          checks for the tests (Drew Vogel).

Patch 9.1.1371
Problem:  style: indentation issue in insexpand.c
Solution: Update style (glepnir).

Patch 9.1.1372
Problem:  style: braces issues in various files
Solution: Fix style (Hirohito Higashi).

Patch 9.1.1373
Problem:  Flag checking logic uses a temporary variable and multiple
          bitwise operations in insexpand.c
Solution: Consolidate into a single equality check using bitwise OR and
          comparison (glepnir).

Patch 9.1.1374
Problem:  Currently, 'smartcase' is respected when completing keywords
          using <C-N>, <C-P>, <C-X><C-N>, and <C-X><C-P>. However, when
          a user continues typing and the completion menu is filtered
          using cached matches, 'smartcase' is not applied. This leads
          to poor-quality or irrelevant completion suggestions, as shown
          in the example below.
Solution: When filtering cached completion items after typing additional
          characters, apply case-sensitive comparison if 'smartcase' is
          enabled and the typed pattern includes uppercase characters.
          This ensures consistent and expected completion behavior
          (Girish Palya).

Patch 9.1.1375
Problem:  heap use-after-free possible when autocommands switch away from the
          quickfix dummy buffer, but leave it open in a window.
Solution: Close its windows first before attempting the wipe (Sean Dewar).

Patch 9.1.1376
Problem:  when failing to wipeout a quickfix dummy buffer, it will
          remain as a dummy buffer, despite being kept.
Solution: Clear its dummy BF_DUMMY flag in this case (Sean Dewar).

Patch 9.1.1377
Problem:  Some GTK3 users experienced unexpectedly small windows at
          startup (after v9.1.1368, @berggeist, Tony Mechelynck)
Solution: Update window manager hints in gui_mch_open, partly revert
          v9.1.1370 (Drew Vogel).

Patch 9.1.1378
Problem:  When 'signcolumn' is set to `number` but a line has a sign
          without text, the line number disappears (finite-state-machine)
Solution: Verify that a sign actually contains text before rendering the
          line number (glepnir).

Patch 9.1.1379
Problem:  MS-Windows: error when running emnv when space in path of MNV
Solution: Properly parse quoted strings (Miguel Barro)

Patch 9.1.1380
Problem:  When an autocommand executes for a non-current buffer,
          'eventignorewin' is only checked from the buffer's last
          wininfo (overwrites win_ignore in the loop), not from the
          value of 'eventignorewin' in all windows showing the buffer as
          described (after v9.1.1084)
Solution: Fix the check and don't use wininfo, as that may only contain
          windows that recently showed the buffer. Consider all the
          buffer's windows in all tabpages (Sean Dewar).

Patch 9.1.1381
Problem:  Cannot return to the original text after selecting the next
          item when the currently selected item is the last one.
Solution: When continuing to move down past the last item, locate the
          original completion at the head/tail nodes of the completed
          linked list (glepnir).

Patch 9.1.1382
Problem:  if_ruby: unused compiler warnings from ruby internals
Solution: disable -Wunused-parameter for if_ruby internal code (Philip H.).

Patch 9.1.1383
Problem:  When a space character is used as a trigger in 'isexpand' option
          it doesn't get recognized because skip_to_option_part() skips
          spaces after a comma, treating them as option separators
          rather than option value (after v9.1.1341)
Solution: Manually set the part to a space character (glepnir).

Patch 9.1.1384
Problem:  still some problem with the new tutors filetype plugin
Solution: Refactor code to enable/disable tutor mode into
          tutor#EnableInteractive() function, include a test
          (Phạm Bình An).

Patch 9.1.1385
Problem:  Loop that ensures "w_skipcol" is zero with 'nosmoothscroll'
          for (half)-page scrolling is inefficient.
Solution: Calculate the required "count" instead of looping until
          "w_skipcol" is zero (Luuk van Baal).

Patch 9.1.1386
Problem:  MS-Windows: some minor problems building on AARCH64
Solution: Update Make_cyg_ming with aarch64 specific changes,
          document how to build on aarch64 using msys2 packages.

Patch 9.1.1387
Problem:  buflist_new() leaks ffname and fails to reuse curbuf when
          autocommands from buf_freeall change curbuf. Plus, a new
          buffer is not allocated in this case, despite what the comment
          above claims.
Solution: Remove the condition so ffname is not leaked and so a new
          buffer is allocated like before v8.2.4791. It should not be
          possible for undo_ftplugin or buf_freeall autocommands to
          delete the buffer as they set b_locked, but to stay consistent
          with other uses of buf_freeall, guard against that anyway
          (Sean Dewar).

Patch 9.1.1388
Problem:  One-off error in "count" to make "w_skipcol" zero with
          'nosmoothscroll' page scrolling when last virtual line
          in a buffer line is exactly the entire window width
          (Hirohito Higashi).
Solution: Properly compute the smallest integer value necessary
          to make "w_skipcol" zero (Luuk van Baal).

Patch 9.1.1389
Problem:  Cannot get completion startcol when space is not the first
          trigger character (after v9.1.1383)
Solution: Detect the next comma followed by a space in the option string
          and use in next compare loop (glepnir).

Patch 9.1.1390
Problem:  style: more wrong indentation
Solution: reformat a few more places (Yegappan Lakshmanan).

Patch 9.1.1391
Problem:  MNV does not have a tabpanel
Solution: Include the tabpanel feature (Naruhiko Nishino, thinca).

Patch 9.1.1392
Problem:  missing Patch number (Tony Mechelynck)
Solution: add missing Patche number.

Patch 9.1.1393
Problem:  The check in buf_freeall that restores curwin subtly prevents
          leaving an unloaded buffer in a window when reusing curbuf, if
          autocommands switch to a different buffer.
Solution: Add a test case that covers this. Also ensure splitting isn't
          possible, as that could do the same (Sean Dewar).

Patch 9.1.1394
Problem:  tabpanel not correctly redrawn on tabonly
          (Maxim Kim, after v9.1.1391)
Solution: Force redraw of the tabpanel, tweak style (Hirohito Higashi).

Patch 9.1.1395
Problem:  Search_stat not reset when pattern differs in case
          (tahzibijafar)
Solution: Use STRNCMP instead of MB_STRNICMP macro.

Patch 9.1.1396
Problem:  The 'grepformat' option is global option, but it would be
          useful to have it buffer-local, similar to 'errorformat' and
          other quickfix related options (Dani Dickstein)
Solution: Add the necessary code to support global-local 'grepformat',
          allowing different buffers to parse different grep output
          formats (glepnir).

Patch 9.1.1397
Problem:  tabpanel not correctly updated on :tabonly (Maxim Kim)
Solution: Force a redraw, take 'equalalways' into account (Naruhiko Nishino).

Patch 9.1.1398
Problem:  When items are combined with user-defined highlight attributes
          (e.g., strikethrough), trunc inherits these attributes, making
          the text difficult to read.
Solution: Trunc now uses the original Pmenu and PmenuSel highlight
          attributes (glepnir).

Patch 9.1.1399
Problem:  tests: test_codestyle fails for auto-generated files.
          While those files are already ignored in Test_source_Files(),
          the newly added Test_indent_of_source_files() does not filter
          those out and causes test failures on appveyor.
Solution: Factor out the generation of all c files into a common function
          and filter out auto-generated files if_ole.h, iid_ole.c and
          dlldata.c

Patch 9.1.1400
Problem:  [security]: use-after-free when evaluating tuple fails
Solution: Return early in case of an error (Yegappan Lakshmanan).

Patch 9.1.1401
Problem:  list not materialized in prop_list() (Nickwiz)
Solution: Materialize list before accessing it.

Patch 9.1.1402
Problem:  multi-byte mappings not properly stored in session file
Solution: Unescape the mapping before writing out the mapping, prefer
          single-byte mapping name if possible (Miguel Barro).

Patch 9.1.1403
Problem:  expansion of 'tabpanelopt' value adds wrong values
          (Shane-XB-Qian, after v9.1.1391).
Solution: Update tabpanelopt expansion function and expand only valid
          values (Hirohito Higashi).

Patch 9.1.1404
Problem:  wrong link to Chapter 2 in mnv-01-beginner.tutor
Solution: Fix the link to Chapter 2, add test for links in tutor files
          (Phạm Bình An).

Patch 9.1.1405
Problem:  tests: no test for mapping with special keys in session file.
Solution: Add a special keys to an existing test.  Also test with UTF-8
          characters containing 0x80 or 0x9b bytes (zeertzjq).

Patch 9.1.1406
Problem:  crash when importing invalid tuple (Yang LUO, Yanju Chen)
Solution: Set type to VAR_UNKNOWN, so that it isn't freed
          (Yegappan Lakshmanan).

Patch 9.1.1407
Problem:  Can't use getpos('v') in OptionSet when using setbufvar().
Solution: Don't reset Visual selection when switching to the same
          buffer (zeertzjq).

Patch 9.1.1408
Problem:  not easily possible to complete from register content
Solution: Add register-completion submode using i_CTRL-X_CTRL-R
          (glepnir).

Patch 9.1.1409
Problem:  using f-flag in 'complete' conflicts with Neomnvs filename
          completion (glepnir, after v9.1.1301).
Solution: Use upper-case "F" flag for completion functions (Girish Palya).

Patch 9.1.1410
Problem:  out-of-bounds access with 'completefunc' (csetc)
Solution: Check if it is safe to advance cpt_sources_index (Girish Palya).

Patch 9.1.1411
Problem:  crash when calling non-existing function for tabpanel (Yamagi,
          after v9.1.1391)
Solution: Check if there was an error and if there was, set tabpanel
          option to empty to prevent showing errors on every redraw.

Patch 9.1.1412
Problem:  tests: Test_tabpanel_tabonly() fails on larger screens
Solution: Re-generate screendump file for 78 column large terminal.

Patch 9.1.1413
Problem:  spurious CursorHold triggered in GUI on startup
Solution: Init global did_cursorhold flag to true (Gary Johnson).

Patch 9.1.1414
Problem:  MS-Windows: compile warnings in os_win32.c
Solution: Update function declarations, correctly access param arg in
          set_flag() using (sig_atomic_t) cast (John Marriott).

Patch 9.1.1415
Problem:  potential use-after free when there is an error in 'tabpanel'
          option (@char101, after v9.1.1391)
Solution: Check if p_tpl has been set to null before accessing it again.

Patch 9.1.1416
Problem:  completion limits not respected when using fuzzy completion
          (Maxim Kim)
Solution: Trim completion array (Girish Palya).

Patch 9.1.1417
Problem:  missing info about register completion in complete_info()
          (after v9.1.1408)
Solution: update documentation and mention that register is used as
          source, add a test (glepnir).

Patch 9.1.1418
Problem:  configures GUI auto detection favors GTK2
Solution: make configure favor GTK3 over GTK2 for the GUI
          when auto detecting the gui toolkit (Drew Vogel).

Patch 9.1.1419
Problem:  It is difficult to ignore all but some events.
Solution: Add support for a "-" prefix syntax in '(win)eventignore' that
          subtracts an event from the ignored set if present (Luuk van Baal).

Patch 9.1.1420
Problem:  tests: could need some more tests for shebang lines
Solution: Add more shebang patterns to test_filetype.mnv (Eisuke Kawashima).

Patch 9.1.1421
Problem:  tests: need a test for the new-style tutor.tutor, Patch
          9.1.1384 broke the expected positions for the signs
Solution: Update all number keys in tutor.tutor.json to match the
          correct line numbers in tutor.tutor, replace tabs by spaces,
          add a screen-dump test to verify it does not regress (Pham Bình An).

Patch 9.1.1422
Problem:  scheduling of complete function can be improved
Solution: Call user completion functions earlier when just determining
          the insertion column (Girish Palya).

Patch 9.1.1423
Problem:  :tag command not working correctly using MNV9 Script
Solution: Inject a ':' before the numeric address, to make the command
          valid in MNV9 context

Patch 9.1.1424
Problem:  PMenu selection broken with multi-line selection and limits
          (Maxim Kim)
Solution: Update completion match index when limiting the completion
          sources (Girish Palya).

Patch 9.1.1425
Problem:  tabpanel: there are still some problems with the tabpanel with
          column handling
Solution: Fix the problems and refactor Tabpanel feature (Hirohito Higashi).

Patch 9.1.1426
Problem:  CTRL-X CTRL-R only completes individual words from registers,
          making it difficult to insert complete register content.
Solution: Add consecutive CTRL-X CTRL-R support - first press completes
          words, second press completes full register lines, similar to
          CTRL-X CTRL-L and CTRL-X CTRL-P behavior (glepnir).

Patch 9.1.1427
Problem:  rendering artifacts with the tabpanel (char101)
Solution: Prevent double redraw, use Columns instead of frame width
          (Hirohito Higashi)

Patch 9.1.1428
Problem:  Completion: register completion needs cleanup
Solution: Slightly refactor get_register_completion() (glepnir).

Patch 9.1.1429
Problem:  dragging outside the tabpanel changes tabpagenr (char101)
Solution: Set in_tab_line and in_tabpanel variables (Hirohito Higashi).

Patch 9.1.1430
Problem:  tabpanel may flicker in the GUI
Solution: Call scroll_start() and scroll_region_reset() (Hirohito Higashi).

Patch 9.1.1431
Problem:  Hit-Enter Prompt when loading session files
Solution: Use set+= for 'shortmess' to keep the existing flags (Miguel Barro).

Patch 9.1.1432
Problem:  GTK GUI: Buffer menu does not handle unicode correctly
Solution: Get rid of the BMHash() function (SUN Haitao).

Patch 9.1.1433
Problem:  Unnecessary :if in session where both branches have the same
          effect (after 9.1.1431).
Solution: Remove the superfluous :if (zeertzjq).

Patch 9.1.1434
Problem:  MS-Windows: missing out-of-memory checks in os_win32.c
Solution: Add out-of-memory checks to os_win32.c (John Marriott).

Patch 9.1.1435
Problem:  completion: various flaws in fuzzy completion
Solution: Fix the issues (Girish Palya).

Patch 9.1.1436
Problem:  GUI control code is displayed on the console on startup
Solution: Check if MNV is starting up (Hirohito Higashi).

Patch 9.1.1437
Problem:  MS-Windows: internal compile error in uc_list() with VS 17.14
          (ibear)
Solution: Refactor code slightly (Mike Williams).

Patch 9.1.1438
Problem:  tests: Test_breakindent_list_split() fails (Phạm Bình An)
Solution: Always reset "&columns" and "&lines" for GUI builds
          (Aliaksei Budavei).

Patch 9.1.1439
Problem:  Last diff folds not merged (after v8.1.1922)
Solution: Loop over all windows in the current tabpage and update all
          folds (Gary Johnson).

Patch 9.1.1440
Problem:  too many strlen() calls in os_win32.c
Solution: Refactor code and remove calls to strlen() (John Marriott).

Patch 9.1.1441
Problem:  completion: code can be improved
Solution: Remove reposition_match() and use mergesort_list(),
          for fuzzy completion, sort by fuzzy score immediately after
          setting a new leader (Girish Palya).

Patch 9.1.1442
Problem:  tests: Test_diff_fold_redraw() is insufficient
          (after v9.1.1439, Christ van Willegen)
Solution: Improve the test (Gary Johnson).

Patch 9.1.1443
Problem:  potential buffer underflow in insertchar()
Solution: Verify that end_len is larger than zero (jinyaoguo).

Patch 9.1.1444
Problem:  Unused assignment in set_fuzzy_score() (after 9.1.1441).
Solution: Remove it (zeertzjq).

Patch 9.1.1445
Problem:  negative matchfuzzy scores although there is a match (Maxim Kim).
Solution: Reset the score if a match has been found but the score is
          negative (Girish Palya).

Patch 9.1.1446
Problem:  filetype: cuda-gdb config files are not recognized
Solution: Detect .cuda-gdbinit and cuda-gdbinit files as gdb filetype
          (Wu Zhenyu).

Patch 9.1.1447
Problem:  completion: crash when backspacing with fuzzy completion
Solution: Don't dereference compl_first_match when it's NULL (zeertzjq).

Patch 9.1.1448
Problem:  tabpanel is not displayed correctly when msg_scrolled
Solution: Remove the msg_scrolled condition (Hirohito Higashi).

Patch 9.1.1449
Problem:  typo in pum_display()
Solution: Update the comment, remove empty new lines (glepnir)

Patch 9.1.1450
Problem:  Session has wrong arglist with :tcd and :arglocal.
Solution: Also use absolute path for :argadd when there is tabpage-local
          directory (zeertzjq).

Patch 9.1.1451
Problem:  tabpanel rendering artifacts when scrolling
Solution: Update scrolling logic (Hirohito Higashi).

Patch 9.1.1452
Problem:  completion: redundant check for completion flags
Solution: Refactor code slightly (glepnir).

Patch 9.1.1453
Problem:  tests: Test_geometry() may fail (Gary Johnson)
Solution: Allow a slightly smaller value when checking the number of
          lines.

Patch 9.1.1454
Problem:  Missing test case for pum display on a wrapped line.
Solution: Add a test case to cover pum behavior at line break positions
          (glepnir).

Patch 9.1.1455
Problem:  Haiku: dailog objects created with no reference
Solution: Delete the objects before returning (jinyaoguo)

Patch 9.1.1456
Problem:  comment plugin fails toggling if 'cms' contains \
Solution: Escape backslash (Maxim Kim).

Patch 9.1.1457
Problem:  compile warning with tabpanelopt
Solution: Declare arg as UNUSED (John Marriott).

Patch 9.1.1458
Problem:  tabpanel: tabs not properly updated with 'stpl'
Solution: remember the Column offset per tabpage (Hirohito Higashi).

Patch 9.1.1459
Problem:  xxd prints color escape sequences for every octet
          even if the color doesn't change
Solution: use separate arrays for colors and text and only
          print escape sequences when the color changes (Emanuel Krollmann).

Patch 9.1.1460
Problem:  MS-Windows: too many strlen() calls in os_win32.c
Solution: Refactor code and remove calls to strlen() and wcscat()
          (John Marriott).

Patch 9.1.1461
Problem:  tabpanel: tabpanel vanishes with popup menu
Solution: Remove pum-related test in tabpanel_leftcol(), refactor a few
          related functions (Hirohito Higashi).

Patch 9.1.1462
Problem:  missing change from Patch v9.1.1461
Solution: Change wrong TPL_LCOL macro in a few more places.

Patch 9.1.1463
Problem:  Integer overflow in getmarklist() after linewise operation.
Solution: Don't add 1 to MAXCOL (zeertzjq).

Patch 9.1.1464
Problem:  gv does not work in operator-pending mode (liushapku)
Solution: remove the check for checkclearop in nv_gv_cmd() (phanium).

Patch 9.1.1465
Problem:  tabpanel: not correctly drawn with 'equalalways'
Solution: Call win_equal() (Hirohito Higashi).

Patch 9.1.1466
Problem:  filetype: not all lex files are recognized
Solution: Detect *.ll as lex, llvm or lifelines filetype, depending on
          the content (Eisuke Kawashima).

Patch 9.1.1467
Problem:  too many strlen() calls
Solution: Change expand_env() to return string length (John Marriott).

Patch 9.1.1468
Problem:  filetype: bright(er)script files are not recognized
Solution: Detect *.bs files as brighterscript filetype and *.brs as
          brightscript filetype, include filetype plugins (Riley Bruins).

Patch 9.1.1469
Problem:  potential buffer-underflow with invalid hl_id (mugitya03)
Solution: Assert that the return-code of syn_get_final_id() if > 0

Patch 9.1.1470
Problem:  use-after-free with popup callback on error
          (Brian Carbone, lifepillar)
Solution: Check if the popup window is valid before accessing it.

Patch 9.1.1471
Problem:  completion: inconsistent ordering with CTRL-P (zeertzjq).
Solution: Reset compl_curr_match when using CTRL-P (Girish Palya).

Patch 9.1.1472
Problem:  if_python: PySequence_Fast_{GET_SIZE,GET_ITEM} removed with
          python3.14 in stable ABI
Solution: use PySequence_{Size,GetItem} instead (Zdenek Dohnal)

Patch 9.1.1473
Problem:  inconsistent range arg for :diffget/diffput
Solution: Fix the range specification, place the cursor for :diffput and
          :diffget consistently on the last line (Yee Cheng Chin)

Patch 9.1.1474
Problem:  missing out-of-memory check in mark.c
Solution: bail out, if mark_line() returns NULL (John Marriott).

Patch 9.1.1475
Problem:  completion: regression when "nearest" in 'completeopt'
Solution: Fix compare function (Girish Palya).

Patch 9.1.1476
Problem:  missing out-of-memory checks in cmdexpand.c
Solution: Add missing out-of-memory checks, re-order code (John Marriott).

Patch 9.1.1476
Problem:  no easy way to deduplicate text
Solution: Add the :uniq ex command (Hirohito Higashi).

Patch 9.1.1478
Problem:  Unused assignment in ex_uniq() (after v9.1.1476)
Solution: Remove the assignment and the wrong comments above (zeertzjq).

Patch 9.1.1479
Problem:  regression when displaying localized percentage position
          (after v9.1.1291)
Solution: Calculate percentage first (Emir SARI).

Patch 9.1.1480
Problem:  Turkish translation outdated
Solution: Update Turkish translations, enable disabled test from v9.1.1479
          (Emir SARI).

Patch 9.1.1481
Problem:  gcc complains about uninitialized variable
          (Tony Mechelynck, after v9.1.1476)
Solution: Initialize variable.

Patch 9.1.1482
Problem:  Topline is preemptively updated by line() in WinResized
          autocmd with 'splitkeep' != "cursor".
Solution: Set `skip_update_topline` when 'splitkeep' != "cursor" (Luuk van Baal)

Patch 9.1.1483
Problem:  not possible to translation position in buffer
Solution: use _() macro to mark the output as translatable (Emir SARI)

Patch 9.1.1484
Problem:  tests: Turkish locale tests fails on Mac (after v9.1.1480).
Solution: Skip the test Test_pos_percentage_in_turkish_locale() on Mac

Patch 9.1.1485
Problem:  missing Wayland clipboard support
Solution: Make it work (Foxe Chen).

Patch 9.1.1486
Problem:  documentation issues with Wayland (after v9.1.1485)
Solution: Tweak documentation style. Capitalize the first letter of
          Wayland (Hirohito Higashi).

Patch 9.1.1487
Problem:  :cl doesn't invoke :clist (after v9.1.1485)
Solution: Fix order of definition in ex_cmds.h (Hirohito Higashi).

Patch 9.1.1488
Problem:  configure: using obsolete macro AC_PROG_GCC_TRADITIONAL
Solution: Drop it from configure.ac, regenerate auto/configure.

Patch 9.1.1489
Problem:  terminal: no visual highlight of empty cols when 'listchars'
          is empty (Yousef Mohammed)
Solution: Reset wlv.win_attr when column is zero and we are drawing a
          terminal buffer.

Patch 9.1.1490
Problem:  'wildchar' does not work in search contexts
Solution: implement search completion when 'wildchar' is typed (Girish Palya).

Patch 9.1.1491
Problem:  missing out-of-memory checks in cmdexpand.c
Solution: Add out-of-memory checks for expand_files_and_dirs(),
          ExpandUserDefined() and ExpandUserList() (John Marriott).

Patch 9.1.1492
Problem:  tests: failure when Wayland compositor fails to start
Solution: Instead of throwing an error causing a failure, throw
          "Skipped", so that the MNV test suite continues and does not fail.

Patch 9.1.1493
Problem:  manually comparing positions on buffer (after v9.1.1490)
Solution: Use the LTOREQ_POS() macro, fix a few other minor style issues
          (glepnir).

Patch 9.1.1494
Problem:  runtime(tutor): no French translation for Chapter 2
Solution: Add and refine French translation of tutor2, update French
          mnvtutor manpage (Damien Lejay)

Patch 9.1.1495
Problem:  Wayland: uses $XDG_SEAT to determine seat to use
          (dr0bz, after v9.1.1485)
Solution: Do not try to determine the seat from $XDG_SEAT, remove the
          code that checks for this environment variable (Foxe Chen).

Patch 9.1.1496
Problem:  terminal: still not highlighting empty cells correctly
          (Yousef Mohammed, after v9.1.1489)
Solution: Use vcol instead of col.

Patch 9.1.1497
Problem:  Link error with shm_open() (gcanat, after v9.1.1485).
Solution: use AC_LINK_IFELSE instead of AC_COMPILE_IFELSE.

Patch 9.1.1498
Problem:  completion: Functions specified in the 'complete' option did
          not have the leader string removed when called with findstart = 0,
          unlike 'omnifunc' behavior
Solution: Update behaviour and make behaviour consistent (Girish Palya).

Patch 9.1.1499
Problem:  MS-Windows: no indication of ARM64 architecture
Solution: Add ARM64 to version output and include in nsis installer
          (RestorerZ)

Patch 9.1.1500
Problem:  if_python: typo in python error variable
Solution: Fix typo (Damien Lejay).

Patch 9.1.1501
Problem:  filetype: flix files are not recognized
Solution: Detect *.flix files as flix filetype (0xadk).

Patch 9.1.1502
Problem:  filetype: quickbms files are not recognized
Solution: Detect *.bms files as quickbms filetype (0xadk).

Patch 9.1.1503
Problem:  filetype: haxe files are not recognized
Solution: Detect *.hx files as haxe filetype (0xadk).

Patch 9.1.1504
Problem:  filetype: numbat files are not recognized
Solution: Detect *.nbt files as numbat filetype (0xadk).

Patch 9.1.1505
Problem:  not possible to return command-line completion type for :ex
          command
Solution: Make getcmdcompltype() accept an optional and return the
          command-line completion for that arg (Shougo Matsushita).

Patch 9.1.1506
Problem:  tests: missing cleanup test_override('char_avail', 0) in
          Test_search_cmdline_incsearch_highlight().
Solution: Add the missing cleanup (zeertzjq).

Patch 9.1.1507
Problem:  File paths change from symlink to target path after :cd command
          when editing files through symbolic links
Solution: Add "~" flag to 'cpoptions' to control symlink resolution (glepnir).

Patch 9.1.1508
Problem:  String manipulation can be improved in cmdexpand.c
Solution: Refactor cmdexpand.c to remove calls to STRLEN()/STRMOVE()/STRCAT()
          (John Marriott).

Patch 9.1.1509
Problem:  Patch 9.1.1505 was not good
Solution: Revert "Patch 9.1.1505 for :ex command" and instead add the
          getcompletiontype() function (Hirohito Higashi).

Patch 9.1.1510
Problem:  Search completion may use invalid memory (after 9.1.1490).
Solution: Don't get two line pointers at the same time (zeertzjq).

Patch 9.1.1511
Problem:  tests: two edit tests change v:testing from 1 to 0.
Solution: Don't change v:testing in these two tests, since it's already
          set to 1 in runtest.mnv (zeertzjq).

Patch 9.1.1512
Problem:  completion: can only complete from keyword characters
Solution: Remove this restriction, allow completion functions when
          called from i_CTRL-N/i_CTRL-P to be triggered from non-keyword
          characters (Girish Palya).

Patch 9.1.1513
Problem:  resizing MNV window causes unexpected internal window width
          (chdiza, after v9.1.1465)
Solution: Move the column calculation around (Hirohito Higashi).

Patch 9.1.1514
Problem:  coverity complains about the use of tmpfile()
Solution: Use mnv_tempname() instead to create anonym file.

Patch 9.1.1515
Problem:   memcpy() in ExpandRTDir_int() may create unterminated strings
Solution:  Use mnv_snprintf() to construct complete paths safely (glepnir).

Patch 9.1.1516
Problem:  tests: no test that 'incsearch' is updated after accepting
          search completion.
Solution: Add a test case (zeertzjq).

Patch 9.1.1517
Problem:  filetype: autopkgtest files are not recognized
Solution: Detect */debian/tests/control files as autopkgtest filetype
          (James McCoy).

Patch 9.1.1518
Problem:  getcompletiontype() crashes when no completion is available
          (after v9.1.1509).
Solution: Don't call set_expand_context() (zeertzjq).

Patch 9.1.1519
Problem:  Test_termdebug_decimal_breakpoints() fails with List index out
          of range, because when adding the second breakpoint, the
          cursor is still on the very first line
Solution: Run the program, so that it will break at the very first
          defined breakpoint and then once we are in the program,
          set further breakpoints.

Patch 9.1.1520
Problem:  When using `/` or `?` in command-line mode with 'ignorecase' and
          'smartcase' enabled, the completion menu could show items that
          don't actually match any text in the buffer due to case mismatches
Solution: Instead of validating menu items only against the user-typed
          pattern, the new logic also checks whether the completed item
          matches actual buffer content. If needed, it retries the match
          using a lowercased version of the candidate, respecting
          smartcase semantics.

Patch 9.1.1521
Problem:  When 'wildmode' is set to include "noselect", the popup menu (pum)
          incorrectly retained its scroll position when reopened. This
          meant that after scrolling down through the menu with `<C-n>`,
          reopening the menu (e.g., by retyping the command and
          triggering completion again) would show the menu starting from
          the previously scrolled position, rather than from the top.
Solution: Ensure that the popup menu resets its scroll position to the
          top when reopened (Girish Palya).

Patch 9.1.1522
Problem:  tests: still some ANSI escape sequences in test messages output
Solution: Update the cleanup regexp to also handle those ANSI escape
          sequences: `<esc>|2h` and `<esc>|31H`.

Patch 9.1.1523
Problem:  tests: test_clipmethod fails in non X11 environment
Solution: Test that $DISPLAY is available

Patch 9.1.1524
Problem:  tests: too many imports in the test suite
Solution: Clean up the imported scripts.

Patch 9.1.1525
Problem:  tests: testdir is a bit messy
Solution: Move test scripts into testdir/util/ directory.

Patch 9.1.1526
Problem:  completion: search completion match may differ in case (techntools)
Solution: Add "exacttext" to 'wildoptions' value (Girish Palya).

Patch 9.1.1527
Problem:  MNV9: Crash when using string compound assignment with wrong
          data type (lacygoill).
Solution: Verify expected member type (Hirohito Higashi).

Patch 9.1.1528
Problem:  completion: crash with getcompletion() (zeertzjq)
Solution: Don't set may_expand_pattern in f_getcompletion(), unset
          may_expand_pattern() once it is not longer needed (Girish Palya).

Patch 9.1.1529
Problem:  Win32: the toolbar in the GUI is old and dated
Solution: Include improved icons from Fatcow (CC by 3.0) (RestorerZ).

Patch 9.1.1530
Problem:  Missing version change from v9.1.1529
Solution: Update version.c with latest Patch.

Patch 9.1.1531
Problem:  confusing error with nested legacy function (lacygoill)
Solution: Clarify error message E1117 with :def or :func (Hirohito Higashi).

Patch 9.1.1532
Problem:  termdebug: not enough ways to configure breakpoints
Solution: Add the termdebug_config['signs'] config setting, rework the
          termdebug test cases (Dimitry Ishenko).

Patch 9.1.1533
Problem:  helptoc: does not handle code sections in markdown well (MNVWei).
Solution: Skip over fenced code sections (lacygoill), add a test.

Patch 9.1.1534
Problem:  unnecessary code in tabpanel.c
Solution: Remove it (Hirohito Higashi).

Patch 9.1.1535
Problem:  The maximum search count uses a hard-coded value of 99
          (Andres Monge, Joschua Kesper)
Solution: Make it configurable using the 'maxsearchcount' option.

Patch 9.1.1536
Problem:  tests: test_plugin_comment.mnv uses :CheckScreenDump check but
          doesn't actually use a screen dump.
Solution: Use :CheckRunMNVInTerminal instead, remove a few empty lines.

Patch 9.1.1537
Problem:  helptoc: some issues when parsing markdown code blocks (MNVWei)
Solution: Assign nextline to curline before starting the next loop
          iteration; when processing fenced code blocks, flip the
          skip_fence variable, update the test to be more comprehensive.

Patch 9.1.1539
Problem:  completion: messages don't respect 'shm' setting
Solution: Turn off completion messages when 'shortmess' includes "c"
          (Girish Palya).

Patch 9.1.1540
Problem:  completion: menu state wrong on interruption (Maxim Kim)
Solution: Call show_pum() if completion was interrupted (Girish Palya).

Patch 9.1.1541
Problem:  MNV9: error when last enum value ends with a comma
Solution: Allow trailing commas in enum values (Yegappan Lakshmanan).

Patch 9.1.1542
Problem:  Coverity complains about uninitialized variable (Tony Mechelynck)
Solution: Initialize variables.

Patch 9.1.1543
Problem:  Wayland: clipboard appears to not be working (Fuad Veliev)
Solution: Explicitly set selection each time (Foxe Chen).

Patch 9.1.1544
Problem:  :retab cannot be limited to indentation only
Solution: add the optional -indentonly parameter (Hirohito Higashi).

Patch 9.1.1545
Problem:  Typo in os_unix.c
Solution: Correct the typo (Foxe Chen).

Patch 9.1.1546
Problem:  MNV9: error with has() and short circuit evaluation
Solution: Only eval, if ctx_skip is not SKIP_YES (Yegappan Lakshmanan).

Patch 9.1.1547
Problem:  Wayland: missing ifdef
Solution: Add #ifdef around ch_log() call (Foxe Chen).

Patch 9.1.1548
Problem:  filetype: OpenFGA files are not recognized
Solution: Detect *.fga files as fga filetype, include an fga filetype
          plugin (Riley Bruins).

Patch 9.1.1549
Problem:  filetype: pkl files are not recognized
Solution: Detect *.pkl files as pkl filetype, include a filetype plugin (Riley
          Bruins).

Patch 9.1.1550
Problem:  defaults: 'showcmd' is not enabled in non-compatible mode on Unix
Solution: Always enable 'showcmd' in non-compatible mode, drop it from
          defaults.mnv.

Patch 9.1.1551
Problem:  [security]: path traversal issue in zip.mnv (@ax)
Solution: Drop leading ../ on write of zipfiles, don't forcefully
          overwrite existing files.

Patch 9.1.1552
Problem:  [security]: path traversal issue in tar.mnv (@ax)
Solution: Warn the user for such things, drop leading /, don't
          forcefully overwrite files when writing temporary files,
          refactor autoload/tar.mnv

Patch 9.1.1553
Problem:  MNV9: crash when accessing a variable in if condition (lxhillwind)
Solution: Skip indexing a list/tuple/dict/blob when short-circuiting an
          if condition check (Yegappan Lakshmanan).

Patch 9.1.1554
Problem:  MNV crashes during omnifunc completion inside the command-line
          window ("q:") if the completion item attempts to open an "info"
          preview window. This leads to a failed assert during execution.
Solution: Avoid opening preview windows while inside the command-line
          window to prevent the crash (Girish Palya).

Patch 9.1.1555
Problem:  completion: repeated insertion and deletion of complete
          functions
Solution: Remove unnecessary insertion and deletion of leader text
          during expansion of function present in 'complete' option
          (Girish Palya).

Patch 9.1.1556
Problem:  string handling in cmdexpand.c can be improved
Solution: Improve string manipulation in cmdexpand.c (John Marriott).

Patch 9.1.1557
Problem:  not possible to anchor specific lines in difff mode
Solution: Add support for the anchoring lines in diff mode using the
          'diffanchor' option (Yee Cheng Chin).

Patch 9.1.1558
Problem:  str2blob() treats NULL string and empty string differently
Solution: Treats a NULL string the same as an empty string (zeertzjq).

Patch 9.1.1559
Problem:  tests: Test_popup_complete_info_01() fails when run alone.
Solution: Set buffer-local competeopt+=noinsert and add missing cleanup
          in Test_popup_complete() (zeertzjq).

Patch 9.1.1560
Problem:  configure: uses $PKG_CONFIG before it is defined
Solution: Define $PKG_CONFIG earlier in the script (Christoffer Aasted).

Patch 9.1.1561
Problem:  configure: wayland test can be improved
Solution: Define $WAYLAND_CFLAGS, simplify the wayland tests
          (Christoffer Aasted).

Patch 9.1.1562
Problem:  close button "X" is visible in the non-GUI 'tabline', even
          when the mouse is disabled
Solution: Only show the button when 'mouse' contains any of the flags
          "anvi" (Girish Palya).

Patch 9.1.1563
Problem:  The ruler disappears after typing the second character during
          insert mode completion, even when completion messages are
          suppressed ('shortmess' includes "c"). This makes the UI
          appear inconsistent.
Solution: Ensure the ruler is restored during screen redraw when popup
          completion is active (Girish Palya).

Patch 9.1.1564
Problem:  Can open a popup window to a closing buffer, leading to the
          buffer remaining open in the window after it's soon unloaded,
          causing crashes.
Solution: Check b_locked_split when opening a popup window to an
          existing buffer (Sean Dewar).

Patch 9.1.1565
Problem:  configure: does not consider tiny version for wayland
Solution: Do not try to enable wayland for a tiny mnv version
          (Christoffer Aasted).

Patch 9.1.1566
Problem:  self-referenced enum may not get freed
Solution: Test if it can be freed (Yegappan Lakshmanan).

Patch 9.1.1567
Problem:  Crash when using inline diff mode (Ilya Grigoriev)
Solution: Set tp_diffbuf to NULL when skipping a diff block (Yee Cheng Chin).

Patch 9.1.1568
Problem:  need a few more default highlight groups
Solution: Add Bold, Italic and BoldItalic default highlight groups
          (Maxim Kim).

Patch 9.1.1569
Problem:  tests: MNV9 tests can be improved
Solution: In Test_has_func_shortcircuit(), move the test functions to a
          separate script (Yegappan Lakshmanan).

Patch 9.1.1570
Problem:  Copilot suggested some improvements in cmdexpand.c (after v9.1.1556)
Solution: Use better variable names and comments (John Marriott).

Patch 9.1.1571
Problem:  The CmdlineChanged event was firing unnecessarily, even when
          the command line's content hadn't actually changed.
Solution: Add a check to compare the command-line buffer's state
          before and after key processing. The `CmdlineChanged` event
          now only triggers if the buffer's contents are genuinely
          different (Girish Palya).

Patch 9.1.1572
Problem:  expanding $var does not escape whitespace for 'path'
Solution: Escape whitespace when expanding 'path' option. (Miguel Barro).

Patch 9.1.1573
Problem:  Memory leak when pressing Ctrl-D in cmdline mode (after 9.1.1571).
Solution: Free prev_cmdbuff before assigning to it. (zeertzjq).

Patch 9.1.1574
Problem:  Dead code in mbyte.c
Solution: Delete the dead wcwidth()/iswprint() code (Damien Lejay).

Patch 9.1.1575
Problem:  tabpanel not drawn correctly with wrapped lines
          (utubo, after v9.1.1534)
Solution: Use Columns as width, not the frame width (Hirohito Higashi).

Patch 9.1.1576
Problem:  cannot easily trigger wildcard expansion
Solution: Introduce wildtrigger() function (Girish Palya).

Patch 9.1.1577
Problem:  MNV9: no generic support yet
Solution: Add support for generic functions, funcrefs and object/class
          methods (Yegappan Lakshmanan).

Patch 9.1.1578
Problem:  configure: comment still mentions autoconf 2.71 to generate
          the configure script
Solution: Update the comment to use autoconf 2.72 instead (Yee Chin Cheng).

Patch 9.1.1579
Problem:  Coverity complains about unchecked return value in
          common_function() (after v9.1.1577)
Solution: Check the return value of skip_generic_func_type_args()
          and return in case of an error (Yegappan Lakshmanan).

Patch 9.1.1580
Problem:  possible memory leak in mnv9type.c
Solution: Free tuple_types_ga if there was an error in
          type_type_add_types() (Lidong Yan)

Patch 9.1.1581
Problem:  possible memory leak in mnv9generics.c
Solution: Free ret_free if ga_grow() fails and before returning
          (Lidong Yan).

Patch 9.1.1582
Problem:  style issue in mnv9type.c and mnv9generics.c
          (after v9.1.1581 and v9.1.1580)
Solution: Update Style and place opening brace on a new line.

Patch 9.1.1583
Problem:  Since Patch 9.1.1199 the gmnv window no longer had _NET_WM_ICON
          nor WM_HINTS icon information, for example when not using a
          Gnome or KDE desktop (after v9.1.1199)
Solution: Check if the icon theme as used in Patch 1199 contains a gmnv
          icon. If so, set the window's icon from that. Otherwise
          use the previous method (Olaf Seibert)

Patch 9.1.1584
Problem:  using ints as bool
Solution: Include stdbool.h and start using bool type directly
          (Hirohito Higashi).

Patch 9.1.1585
Problem:  Wayland: gmnv still needs GMNV_ENABLE_WAYLAND
Solution: Drop the GMNV_ENABLE_WAYLAND code, always enable both X11 and
          Wayland GUI support (Christoffer Aasted)

Patch 9.1.1586
Problem:  MNV9: can define an enum/interface in a function (lacygoill)
Solution: Give an error when defining an enum or an interface inside a
          function (Yegappan Lakshmanan).

Patch 9.1.1587
Problem:  Wayland: timeout not updated before select()
Solution: Always set timeval struct before select() (Foxe Chen).

Patch 9.1.1588
Problem:  MNV9: cannot split dict inside command block (lacygoill)
Solution: Remove the current restriction (Yegappan Lakshmanan).

Patch 9.1.1589
Problem:  Cannot disable cscope interface using configure, because in
          feature.h FEAT_CSCOPE will always be enabled for huge builds
          (chdiza)
Solution: Don't define FEAT_CSCOPE from configure script but set the
          ENABLE_CSCOPE flag and check for the presence of that flag in
          feature.h

Patch 9.1.1590
Problem:  cannot perform autocompletion
Solution: Add the 'autocomplete' option value (Girish Palya)

Patch 9.1.1591
Problem:  VMS support can be improved
Solution: Merge chagnes from Steven M. Schweda (Zoltan)

Patch 9.1.1592
Problem:  MNV9: crash with classes and garbage collection
          (Christian J. Robinson, after v9.1.1566)
Solution: When getting the references to an object, make sure the object
          is valid (Yegappan Lakshmanan).

Patch 9.1.1593
Problem:  Confusing error when compiling incomplete try block (lacygoill)
Solution: Give better error messages (Hirohito Higashi).

Patch 9.1.1594
Problem:  completion: search completion throws errors, wrong placement
          of pum menu with 'imi'=1 (berggeist)
Solution: Fix those errors (Girish Palya).

Patch 9.1.1595
Problem:  Wayland: non-portable use of select()
Solution: Correctly set the timeval struct (Foxe Chen).

Patch 9.1.1596
Problem:  tests: Test_search_wildmenu_iminsert() depends on help file
          (after 9.1.1594).
Solution: Set buffer text using setline() instead of loading help file.
          Add a test for another bug fixed by 9.1.1594 (zeertzjq).

Patch 9.1.1597
Problem:  CI reports leaks in libgtk3 library
Solution: Add libgtk-3 library to leak suppression

Patch 9.1.1598
Problem:  filetype: waybar config file is not recognized
Solution: Detect */waybar/config file as jsonc filetype (Furkan Sahin).

Patch 9.1.1599
Problem:  :bnext doesn't go to unlisted help buffers when cycling
          through help buffers (after 9.1.0557).
Solution: Don't check if a help buffer is listed (zeertzjq).

Patch 9.1.1600
Problem:  diff: using diff anchors with hidden buffers fails silently
Solution: Give specific error message for diff anchors when using hidden
          buffers (Yee Cheng Chin).

Patch 9.1.1601
Problem:  Patch v8.1.0425 was wrong
Solution: Revert that Patch (Hirohito Higashi).

Patch 9.1.1602
Problem:  filetype: requirements-*.txt files are not recognized
Solution: Detect requirements-*.txt files as requirements filetype
          (Xudong Zheng).

Patch 9.1.1603
Problem:  completion: cannot use autoloaded funcs in 'complete' F{func}
          (Maxim Kim)
Solution: Make it work (Girish Palya).

Patch 9.1.1604
Problem:  completion: incsearch highlight might be lost after search
          completion (Hirohito Higashi)
Solution: Restore incsearch highlight after dismissing pum with Ctrl-E
          (Girish Palya).

Patch 9.1.1605
Problem:  Cannot specify scope for chdir()
Solution: Add optional scope argument (kuuote).

Patch 9.1.1606
Problem:  filetype: a few more files are not recognized
Solution: Guess Mail, Info and Terminfo files by its content (lacygoill).

Patch 9.1.1607
Problem:  :apple command detected as :append (dai475694450)
Solution: Disallow to define a custom command with lower-case letter,
          correctly detect :insert/:change/:append ex commands
          (Hirohito Higashi).

Patch 9.1.1608
Problem:  No command-line completion for :unsilent {command}.
Solution: Add missing command arg completion (Doug Kearns).

Patch 9.1.1609
Problem:  complete: Heap-buffer overflow with complete function (zeertzjq)
Solution: Do not let startcol become negative (Girish Palya).

Patch 9.1.1610
Problem:  completion: hang (after 9.1.1471) or E684 (after 9.1.1410)
          when 'tagfunc' calls complete().
Solution: Check if complete() has been called immediately after getting
          matches instead of in the next loop iteration (zeertzjq).

Patch 9.1.1611
Problem:  possible undefined behaviour in mb_decompose(), when using the
          same pointer as argument several times
Solution: Use separate assignments to avoid reading and writing the same
          object at the same time (Áron Hárnási).

Patch 9.1.1612
Problem:  Ctrl-G/Ctrl-T does not ignore the end search delimiter (irisjae)
Solution: Check if the pattern ends with a search delimiter and ignore
          it, unless it is part of the pattern.

Patch 9.1.1613
Problem:  tests: test_search leaves a few swapfiles behind
Solution: Use :bw! instead of :close to close the swapfile at the end of
          the test.

Patch 9.1.1614
Problem:  MNV9: possible variable type change when using closure in a
          for loop (Maxim Kim)
Solution: Use unwind_locals(..., TRUE) (Yegappan Lakshmanan).

Patch 9.1.1615
Problem:  diff format erroneously detected (Tomáš Janoušek)
Solution: Make the regex to detect normal diff format a bit stricter,
          while at it, fix wrong test content from Patch v9.1.1606.

Patch 9.1.1616
Problem:  xxd: possible buffer overflow with bitwise output
          (after v9.1.1459, Xudong Cao)
Solution: Update LLNE_NO_COLOR macro definition for the max line output.

Patch 9.1.1617
Problem:  MNV9: some error messages can be improved
Solution: Improve error messages when parsing generic function type
          arguments (Yegappan Lakshmanan).

Patch 9.1.1618
Problem:  completion: incorrect selected index returned from
          complete_info()
Solution: Return the index into "items" and restore the previous
          behaviour (Robert Muir).

Patch 9.1.1619
Problem:  Incorrect E535 error message (after 9.1.1603).
Solution: Don't use transchar(), as the character is always printable
          (zeertzjq).

Patch 9.1.1620
Problem:  filetype: composer.lock and symfony.lock files not recognized
Solution: Detect composer.lock and symfony.lock files as json filetype
          (Dietrich Moerman).

Patch 9.1.1621
Problem:  When the popup menu (PUM) occupies more than half the screen
          height, it flickers whenever a character is typed or erased.
Solution: A complete, non-hacky fix would require removing the
          CmdlineChanged event from the loop and letting autocompletion
          manage the process end-to-end. This is because screen redraws
          after any cmdline change are necessary for other features to
          work (Girish Palya).

Patch 9.1.1622
Problem:  Patch v9.1.1432 causes performance regressions
Solution: Revert "Patch 9.1.1432 unicode correctly" (Yee Cheng Chin).

Patch 9.1.1623
Problem:  Buffer menu does not handle unicode names correctly
          (after v9.1.1622)
Solution: Fix the BMHash() function (Yee Cheng Chin)

Patch 9.1.1624
Problem:  Cscope not enabled on MacOS
Solution: Remove #ifdef test for MacOS and always enable FEAT_CSCOPE on
          Unix (Damien Lejay).

Patch 9.1.1625
Problem:  Autocompletion slow with include- and tag-completion
Solution: Refactor ins_compl_interrupted() to also check for timeout,
          further refactor code to skip outputting message when
          performing autocompletion (Girish Palya).

Patch 9.1.1626
Problem:  C-indent does not handle compound literals (@44100hertz, @Jorenar)
Solution: Detect and handle compound literal and structure
          initialization (Anttoni Erkkilä).

Patch 9.1.1627
Problem:  fuzzy-matching can be improved
Solution: Implement a better fuzzy matching algorithm (Girish Palya).

Patch 9.1.1628
Problem:  fuzzy.c has a few issues
Solution: Use MNVs memory management, update style (glepnir).

Patch 9.1.1629
Problem:  MNV9: Not able to use more than 10 type arguments in a generic
          function
Solution: Initialize the types after reading all the type arg variable
          names (Yegappan Lakshmanan).

Patch 9.1.1630
Problem:  tests: fuzzy buffer name completion test doesn't match
          successfully (after 9.1.1627).
Solution: Update pattern to account for the change in case sensitivity.
          Also mark Test_search_stat_option() as flaky as it can still
          sometimes fail (zeertzjq).

Patch 9.1.1631
Problem:  proto files are outdated
Solution: Regenerate proto files (Yegappan Lakshmanan).

Patch 9.1.1632
Problem:  memory leak in fuzzy.c
Solution: Free fuzmatch, add a few minor refactors (glepnir)

Patch 9.1.1633
Problem:  Search pattern shown incorrectly with negative offset (lkintact)
Solution: Don't prepend a '+' sign to a negative offset (zeertzjq).

Patch 9.1.1634
Problem:  Clipboard code can be improved
Solution: Slightly refactor code (Foxe Chen).

Patch 9.1.1635
Problem:  tabpanel: cannot drag inactive tabs (char101)
Solution: use end_visual_mode_keep_button() instead of end_visual_mode()
          (Naruhiko Nishino).

Patch 9.1.1636
Problem:  style issues
Solution: Fix indentation of function parameters exceeding 80 character
          length (Yegappan Lakshmanan).

Patch 9.1.1637
Problem:  FEAT_DIFF used in diff.pro
Solution: Remove it from the diff protocol file (Yegappan Lakshmanan).

Patch 9.1.1638
Problem:  completion: not possible to delay the autcompletion
Solution: Add the 'autocompletedelay' option value (Girish Palya).

Patch 9.1.1639
Problem:  During commandline completiom, popup window placement can be
          incorrect when 'noselect' is present in 'wildmode'
          (Shane-XB-Qian)
Solution: Disable "showtail" feature when 'noselect' is present.

Patch 9.1.1640
Problem:  Unicode has deprecated some code-points
Solution: Update the digraph tables to align with the Unicode v16
          release (David Friant)

Patch 9.1.1641
Problem:  a few compiler warnings are output
Solution: Fix compiler warnings (Yegappan Lakshmanan).

Patch 9.1.1642
Problem:  configure: wrong C99 feature test
Solution: Update inverted C99 feature test logic (Damien Lejay).

Patch 9.1.1643
Problem:  tabpanel: mouse code too complicated
Solution: Refactor code, adjust ifdefs (Hirohito Higashi).

Patch 9.1.1644
Problem:  configure: doesn't separate CPPFLAGS and CFLAGS
Solution: Split CPPFLAGS and CFLAGS for pkg-config (Damien Lejay).

Patch 9.1.1645
Problem:  fuzzy.c can be further improved
Solution: Fix memory leak and refactor it (glepnir).

Patch 9.1.1646
Problem:  MS-Windows: completion cannot handle implicit drive letters
Solution: Consider paths like \folder and /folder as absolute (Miguel Barro).

Patch 9.1.1647
Problem:  filetype: Cangjie files are not recognized
Solution: Detect *.cj files as cangjie filetype, include a syntax plugin
          (WuJunkai2004)

Patch 9.1.1648
Problem:  MS-Windows: some style issues with Patch v9.1.1646
Solution: Fix typose and code style issues (zeertzjq).

Patch 9.1.1649
Problem:  attrs allocation and fuzzy growarray could leak on early returns
Solution: Ensure proper cleanup of allocated memory on exit paths (glepnir).

Patch 9.1.1650
Problem:  After scrolling a popup and then using popup_settext() with
          fewer lines, the popup fails to resize properly because
          firstline points beyond the new buffer content (lifepillar)
Solution: In popup_adjust_position(), validate that firstline doesn't
          exceed buffer line count and reset to 0 (auto-position) if it
          does (glepnir).

Patch 9.1.1651
Problem:  Cannot use clientserver over Unix domain socket
Solution: Implement socketserver functionality (Foxe Chen).

Patch 9.1.1652
Problem:  Cannot determine non-X11/Wayland clipmethods
Solution: Add the "gui" value to the 'clipmethod' option (Foxe Chen)

Patch 9.1.1653
Problem:  Coverity complains about Null pointer dereference (after v9.1.1643)
Solution: Check that TabPageIdx is not Null.

Patch 9.1.1654
Problem:  build failure when FEAT_DIFF is not defined (John Marriott)
Solution: Remove FEAT_DIFF in proto.h; define dummy type for
          diffline_T and diffline_change_T when FEAT_DIFF is not defined

Patch 9.1.1655
Problem:  Build-failure in do_mouse() (after v9.1.1653)
Solution: Add missing closing paren.

Patch 9.1.1656
Problem:  MS-Windows: Patch v9.1.1652 breaks clipboard
          (ddad431, after v9.1.1652)
Solution: Revert the Patch.

Patch 9.1.1657
Problem:  Autocompletion adds delay (gcanat, char101, after v9.1.1638)
Solution: Temporarily disable autocomplation (Girish Palya).

Patch 9.1.1658
Problem:  Missing includes for Wayland headers, when subfolder is used
          (after v9.1.1644)
Solution: Add new $WAYLAND_CPPFLAGS (Christoffer Aasted).

Patch 9.1.1659
Problem:  configure: uses AC_INIT without args
Solution: Add a comment explaining why AC_INIT has no args (Damien Lejay).

Patch 9.1.1660
Problem:  Popups without border/padding/title don't flip position when
          cursor is near bottom of screen, while decorated popups do
          flip correctly.
Solution: Use original height instead of truncated height for position
          inversion check, except for info popups to preserve existing
          behavior (glepnir).

Patch 9.1.1661
Problem:  Coverity finds a few issues in clientserver.c
          (also by Tony Mechelynck)
Solution: Fix issues and warnings (Foxe Chen).

Patch 9.1.1662
Problem:  Issues with proto files: missing or inconsistent prototypes.
Solution: Update ifdefs, move typedefs, fix prototype declaration
          (Hirohito Higashi).

Patch 9.1.1663
Problem:  xxd: 9.1.0023 introduced additional dependency
Solution: Remove non-native z/OS library call (David Seal).

Patch 9.1.1664
Problem:  configure: can use any autocon
Solution: Use AC_PREREQ and require 2.71 (Damien Lejay).

Patch 9.1.1665
Problem:  Outdated comment in eval.c.
Solution: Remove the comment, which is no longer true after 8.2.1672.
          Also fix a typo in version9.txt (zeertzjq).

Patch 9.1.1666
Problem:  no support for terminal primary device attributes
Solution: Add support for detecting the DA1 response from the terminal,
          add the v:termda1 variable and the 't_Ms' option for the
          OSC 52 command format (Foxe Chen).

Patch 9.1.1667
Problem:  Another outdated comment in eval.c (after 9.1.1665).
Solution: Remove that comment as well. Add a few more tests for mapnew()
          that fail without Patch 8.2.1672 (zeertzjq).

Patch 9.1.1668
Problem:  items() does not work for Blobs
Solution: Extend items() to support Blob (Yegappan Lakshmanan).

Patch 9.1.1669
Problem:  MNV script: no support for URI de-/encoding (ubaldot)
Solution: Add the uri_encode() and uri_decode() functions
          (Yegappan Lakshmanan)

Patch 9.1.1670
Problem:  completion: autocomplete breaks second completion (gravndal)
Solution: Fix the autocomplete bug (Girish Palya).

Patch 9.1.1671
Problem:  configure: missing comment about AC_CONFIG_SRCDIR
Solution: Add comment explaining the use of AC_CONFIG_SRCDIR (Damien Lejay).

Patch 9.1.1672
Problem:  completion: cannot add timeouts for 'cpt' sources
          (Evgeni Chasnovski)
Solution: Add the 'autocompletetimeout' and 'completetimeout' options
          (Girish Palya).

Patch 9.1.1673
Problem:  if_python: still support for Python 1
Solution: Drop outdated code (Hirohito Higashi).

Patch 9.1.1674
Problem:  Patch v9.1.1666 causes problems on kitty (Sami Farin)
Solution: Remove Ms value from termcodes (Foxe Chen).

Patch 9.1.1675
Problem:  MS-Windows: Makefiles can be refactored
Solution: Refactor using a common tools.mak, make some style changes
          (RestorerZ).

Patch 9.1.1676
Problem:  completion: long line shown twice (Maxim Kim)
Solution: Fix the issue, disable an incorrect test (Girish Palya).

Patch 9.1.1677
Problem:  wrong ifdef in message.c
Solution: change it to #ifndef MSWIN (Damien Lejay).

Patch 9.1.1678
Problem:  Amiga: cannot handle large undo files
Solution: Remove the existing restriction as it was only valid for
          classic Amiga (Damien Lejay).

Patch 9.1.1679
Problem:  unclear what key causes CmdlineLeave autocommand
Solution: Set |v:char| to the key (Girish Palya).

Patch 9.1.1680
Problem:  MS-Windows: possible buffer-under run in if_cscope
          cs_pathcomponents() (Murali Aniruddhan)
Solution: Fix the loop and do not decrement the pointer twice.

Patch 9.1.1681
Problem:  tests: no test for actually moving cursor when menu is not
          open with 'autocompletedelay'.
Solution: Use <Up> first in the test. Also remove two unnecessary <Esc>s
          in completion timeout test (zeertzjq).

Patch 9.1.1682
Problem:  tests: Test_wildtrigger_update_screen() creates an unused
          mapping (after 9.1.1621).
Solution: Remove the mapping. Also use blank lines more consistently in
          test_cmdline.mnv screendump tests (zeertzjq).

Patch 9.1.1683
Problem:  xxd: Avoid null dereference in autoskip colorless
Solution: Verify that colors is not null (Joakim Nohlgård).

Patch 9.1.1684
Problem:  min()/max() does not handle float data types (ubaldot)
Solution: Extend min() and max() to every comparable type (LemonBoy).

Patch 9.1.1685
Problem:  Missing changes from PR 18068
Solution: Include the missing changes (Girish Palya).

Patch 9.1.1686
Problem:  if_ruby: unknown pragma when not using gcc
Solution: only use GCC pragma, when using GCC (Cthulhux).

Patch 9.1.1687
Problem:  filetype: autoconf filetype not always correct
Solution: Detect aclocal.m4 as config filetype, detect configure.ac as
          config filetype, fall back to POSIX m4 (Damien Lejay).

Patch 9.1.1688
Problem:  potential buffer overrun in bufwrite.c
Solution: Use a temporary variable (John Marriott).

Patch 9.1.1689
Problem:  CmdlineChanged not triggered by <Del>
Solution: Use STRCMP() instead of STRNCMP() (Shougo Matsushita).

Patch 9.1.1690
Problem:  Missing recursion guard in dos/unix_expandpath()
Solution: Add guard variables (ashamedbit).

Patch 9.1.1691
Problem:  over-allocation in ga_concat_strings()
Solution: Fix ga_concat_strings() and only allocate n-1 separator length
          bytes (Damien Lejay).

Patch 9.1.1692
Problem:  global_functions are not constant
Solution: Place global_functions[] in read-only memory (Damien Lejay).

Patch 9.1.1693
Problem:  tests: test_filetype fails in shadow dir (after v9.1.9.1.1687)
Solution: Use a custom test that does not rely on configure.ac
          being existing in the upper directory tree.

Patch 9.1.1694
Problem:  filetype: Buck eXtension Lang files are not recognized
Solution: Detect *.bxl files as bzl filetype. (Jade Lovelace)

Patch 9.1.1695
Problem:  Need more MNV script specific tests
Solution: Add more tests (Yegappan Lakshmanan).

Patch 9.1.1696
Problem:  getwininfo() has logic for getting the tabnr of a local popup
          window, but due to only breaking from the inner loop, tp is
          eventually set to NULL, so tabnr is always 0.
Solution: Break out of both loops, continue to use 0 for global popup
          windows (Sean Dewar).

Patch 9.1.1697
Problem:  tests: no test for aclocal.m4 (after v9.1.1693)
Solution: Add a test that aclocal.m4 is detected as config filetype.

Patch 9.1.1698
Problem:  Some error numbers are not documented (Restorer)
Solution: Document missing error numbers (Yegappan Lakshmanan).

Patch 9.1.1699
Problem:  Fuzzy completion disabled for 'findfunc' and customlist
Solution: Remove those cases from cmdline_fuzzy_completion_supported()
          because it is supported (Maxim Kim).

Patch 9.1.1700
Problem:  a pattern that involves a backref on a different line does not
          match when 'ignorecase' is set (QiWei, after v9.1.0645)
Solution: Use MB_STRNICMP when ignorecase is set, fix tests to close
          swapfiles.

Patch 9.1.1701
Problem:  tests: failure on CI with GUI and ASAN in test_edit.res
          (Hirohito Higashi)
Solution: Disable the test for that specific situation in CI, close
          swapfiles.

Patch 9.1.1702
Problem:  tests: test_edit still fails on CI (after v9.1.1701)
Solution: Fix the skip condition.

Patch 9.1.1703
Problem:  Cannot react to terminal OSC responses
Solution: Allow TermResponseAll to be triggered by Terminal OSC
          responses (Foxe Chen).

Patch 9.1.1704
Problem:  Cannot determine non-X11/Wayland clipmethods
Solution: Add the "gui" value to the 'clipmethod' option (Foxe Chen).

Patch 9.1.1705
Problem:  time.h include is available on all platforms
Solution: Remove ifdef guards and simply include it in all source files,
          get rid of double include in spellfile.c (Damien Lejay).

Patch 9.1.1706
Problem:  MS-Windows: Compile error when building with if_ruby
          (Christian Robinson, after v9.1.1704)
Solution: Do not define gettimeofday() if ruby interface is compiled in
          (Foxe Chen).

Patch 9.1.1707
Problem:  diff.pro contains #ifdefs
Solution: Remove unintentionally added ifdefs (Hirohito Higashi).

Patch 9.1.1708
Problem:  tests: various tests can be improved
Solution: Use string interpolation to concatenate strings in
          test_winfixbuf, check for specific errors in assert_fails()
          (Yegappan Lakshmanan).

Patch 9.1.1709
Problem:  filetype: kyaml files are not recognized
Solution: Detect *.kyml files as yaml filetype (Volodymyr Chernetskyi).

Patch 9.1.1710
Problem:  Compile warnings in clipboard.c (xmnv64, after v9.1.1704)
Solution: Remove returns from void functions (Foxe Chen).

Patch 9.1.1711
Problem:  Missing type cast in clipboard.c
          (Yegappan Lakshmanan, after v9.1.1704)
Solution: Add back the type cast (Foxe Chen).

Patch 9.1.1712
Problem:  screen not redrawn properly on t_RB response (after v9.1.1703)
Solution: Call redraw_asap() if necessary (Julio B).

Patch 9.1.1713
Problem:  filetype: fvwm2m4 files are no longer recognized (after 9.1.1687).
Solution: Add a special case in m4 filetype detection (zeertzjq).

Patch 9.1.1714
Problem:  completion: wildmode=longest:full selects wrong item (zeertzjq)
Solution: Fix issue, refactor ex_getln.c slightly (Girish Palya).

Patch 9.1.1715
Problem:  Some functions need to be re-ordered
Solution: Re-order and move functions around favoring mch_*() functions
          inside os_*.c files, Change scope of dos_expandpath() to
          global instead of static (Hirohito Higashi).

Patch 9.1.1716
Problem:  The code inside an ifdef was indented incorrectly.
Solution: Adjusted the indentation by one level (glepnir).

Patch 9.1.1717
Problem:  filetype: AWS cli alias file is not recognized
Solution: Detect .aws/cli/alias as confini filetype (Volodymyr Chernetskyi).

Patch 9.1.1718
Problem:  filetype: kubectl config file is not recognized
Solution: Detect .kube/kubectl as yaml filetype (Volodymyr Chernetskyi).

Patch 9.1.1719
Problem:  socket server code can be improved
Solution: Refactor code, get rid of gettimeofday() and use ELAPSED_
          macros (Foxe Chen).

Patch 9.1.1720
Problem:  Using gettimeofday() for parsing OSC responses
Solution: Use ELAPSED_ macros instead (Foxe Chen).

Patch 9.1.1721
Problem:  Defining a global gettimeofday() function causes conflicts if
          gettimeofday() is already defined.
Solution: Revert globalized gettimeofday() function (Hirohito Higashi).

Patch 9.1.1722
Problem:  Compiler may optimize away clearing of crypt key
Solution: Use sodium_memzero() if available, else use memset() using a
          volatile function pointer (ashamedbit).

Patch 9.1.1723
Problem:  Missing ifdefs (after v9.1.1719)
Solution: Add ifdef ELAPSED_FUNC (Foxe Chen).

Patch 9.1.1724
Problem:  Compiler warning about ununitialized variable in ex_docmd.
Solution: Initialize result variable (mityu).

Patch 9.1.1725
Problem:  Wayland code can be improved
Solution: Refactor Wayland Clipboard code (Foxe Chen).

Patch 9.1.1726
Problem:  Patch v9.1.1725 causes problems
Solution: Revert the Patch for now.

Patch 9.1.1727
Problem:  Nextstep support still included
Solution: Deprecate Nextstep code and undef corresponding feature flag.

Patch 9.1.1728
Problem:  termdebug: cannot evaluate visual selected expression
Solution: Add support for visual mode, mapped to K by default (bennyyip).

Patch 9.1.1729
Problem:  CI is not run with clang 21
Solution: Update CI to v21, fix a few warnings that are uncovered when
          using clang 21 (Philip H).

Patch 9.1.1730
Problem:  filetype: vivado journal/log files are not recognized
Solution: Detect vivado*.{jou,log} as tcl filetype (Wu Zhenyu).

Patch 9.1.1731
Problem:  Not using const qualifier
Solution: Mark the opchars array const.

Patch 9.1.1732
Problem:  filetype: .inc file detection can be improved
Solution: Update filetype detection for Pascal and BitBake code
          (Martin Schwan).

Patch 9.1.1733
Problem:  tests: failure when remote_server() fails
Solution: Catch E240 error when calling remote_server(), Fix syntax
          error in test_wayland.mnv.

Patch 9.1.1734
Problem:  Memory leak when allocating match fails
Solution: Initialize m to NULL and centralize cleanup via goto fail to
          avoid leaks on early returns (Damien Lejay).

Patch 9.1.1735
Problem:  Cygwin Makefile still checks for Win XP version
Solution: Remove check for WINVER >= 0x600 in Make_cyg_ming.mak
          (Mao-Yining).

Patch 9.1.1736
Problem:  Cannot detect <F3> using kitty protocol
Solution: Handle and detect Kitty keys when using the trailing "~" byte.

Patch 9.1.1737
Problem:  Patch v9.1.1714 introduce a regression for wildmenu (zeertzjq)
Solution: Restore behavior of "longest" in 'wildmode' (Girish Palya).

Patch 9.1.1738
Problem:  cmdline-autocompletion breaks history navigation (ddad431)
Solution: Support history navigation in cmdline autocompletion (Girish
          Palya).

Patch 9.1.1739
Problem:  Matches may be listed twice with wildmode=longest,list when
          "longest" doesn't change command line (after 9.1.1737).
Solution: Set did_wild_list when trying "list" after "longest" (zeertzjq).

Patch 9.1.1740
Problem:  Memory leak with wildmode=longest,full and wildoptions=pum
          (after 9.1.1737).
Solution: Avoid using showmatches() and WILD_NEXT together.  Also fix
          wildmode=longest,noselect:full selecting wrong item (zeertzjq).

Patch 9.1.1741
Problem:  Regression with kitty protocol and trailing byte "u"
          (chdiza, after v9.1.1736)
Solution: Check that trailing byte "~" is present.

Patch 9.1.1742
Problem:  complete: preinsert does not work well with preinsert
Solution: Make "preinsert" completeopt value work with autocompletion
          (Girish Palya).

Patch 9.1.1743
Problem:  Haiku: no full-screen support
Solution: Add support for toggling full-screen using the keyboard (rymdbar)

Patch 9.1.1744
Problem:  tests: Test_skip_wildtrigger_hist_navigation() may fail (zeertzjq).
Solution: Correct test to validate intended behavior (Girish Palya).

Patch 9.1.1745
Problem:  tabpanel: not properly redraw after wildmenu (ddad431)
Solution: Mark tabpanel to be redrawn (Hirohito Higashi).

Patch 9.1.1746
Problem:  Missing Null ptr check in cs_find_common()
Solution: Return when tmp pointer is null (ashamedbit).

Patch 9.1.1747
Problem:  completion: redo (.) broken with preinsert and autocompletion
Solution: Make redo (.) work with preinsert and autocompletion (Girish Palya).

Patch 9.1.1748
Problem:  macOS: Default scheduler priority too low
Solution: Explicitly set TASK_DEFAULT_APPLICATION scheduler priority
          to improve responsiveness (Luna Razzaghipour).

Patch 9.1.1749
Problem:  leaking memory in cs_find_common() (after v9.1.1746)
Solution: Also free nummatches before returning.

Patch 9.1.1750
Problem:  completion: preinserted text highlighed using ComplMatchIns
Solution: Use highlighting group PreInsert and update the documentation
          (Girish Palya).

Patch 9.1.1751
Problem:  potential buffer-overflow in find_pattern_in_path()
Problem:  Verify ptr p has enough room before adding ins_compl_len().

Patch 9.1.1752
Problem:  tests: No test when deleting text after autocompletion with
          preinsert did complete an entry
Solution: Verify, that after deletion autocompletion does not reinsert
          the deleted text. Note: the actual issue was fixed with v9.1.1750
          (Girish Palya).

Patch 9.1.1753
Problem:  defaults: 'diffopt' option value can be improved
Solution: Update diffopt defaults to include "indent-heuristic" and
          "inline:char" (Yee Cheng Chin)

Patch 9.1.1754
Problem:  :helptags doesn't skip examples with syntax (Evgeni Chasnovski)
Solution: Check for examples with syntax (zeertzjq).

Patch 9.1.1755
Problem:  filetype: generic log files are not recognized
Solution: Detect *.log files as log filetype, include simple log syntax
          script (Mao-Yining).

Patch 9.1.1756
Problem:  termdebug: Need a few more user commands
Solution: Add the :RunOrContinue and the :ToggleBreak user commands
          (bennyyip)

Patch 9.1.1757
Problem:  The colorresp plugin causes additional redraws
          (Linwei, after v9.1.1703)
Solution: Move the code back into the C core and get rid of the mnv
          plugin (Foxe Chen).

Patch 9.1.1758
Problem:  Diff mode crashes when adding text property in autocommand
          (after 9.1.1557).
Solution: Only restore ML_EMPTY memline flag, ignore the others (zeertzjq).

Patch 9.1.1759
Problem:  filetype: generic log detection is too disturbing (after v9.1.1755)
Solution: Revert setting log filetype.

Patch 9.1.1760
Problem:  wrong proto file for insexpand.pro
Solution: Update insexpand.pro (Hirohito Higashi).

Patch 9.1.1762
Problem:  completion: selected item not cleared on backspace when
          'autocomplete' is set
Solution: Clear the selected item (Girish Palya).

Patch 9.1.1763
Problem:  filetype: kitty config files are not recognized
Solution: Detect */kitty/*.conf as kitty filetype, include a syntax
          script (Shawon).

Patch 9.1.1764
Problem:  filetype: CODEOWNERS file not recognized
Solution: Detect CODEOWNERS file as codeowners filetype, include a
          syntax and filetype plugin (Jon Parise).

Patch 9.1.1765
Problem:  f_isnan() and f_isinf() do not correctly initialize rettv type
Solution: Initialize them with type: VAR_NUMBER and value 0 (Damien Lejay).

Patch 9.1.1766
Problem:  MNV9: some MNV9 functions do not handle null_string correctly
          and may crash MNV (kennypete).
Solution: Check for null_string correctly in the searchpair() and
          substitute() functions (Yegappan Lakshmanan).

Patch 9.1.1767
Problem:  Patch v9.1.1765 was wrong
Solution: Roll back the change, it's correct to have call_func() initialize
          the type, so that not each function has to do this on its own.

Patch 9.1.1768
Problem:  Makefile does not uninstall global plugins (after v9.1.1757)
Solution: Uninstall global plugins before installing them, so that old files
          are not carried around and loaded when no longer used.

Patch 9.1.1769
Problem:  completion: "preinsert" insert wrong word with 'smartcase' and
          'autocomplete'
Solution: Add compare completed item with the leader (Girish Palya).

Patch 9.1.1770
Problem:  MNV9: wrong behaviour with trailing comments in command blocks
          (balki)
Solution: Correctly skip over trailing comments (Yegappan Lakshmanan).

Patch 9.1.1771
Problem:  complete: some redraw issues with 'autocomplete'
Solution: Fix the issues (Girish Palya).

Patch 9.1.1772
Problem:  completion: inconsistent selection of first item with
          'autocomplete' (Tomasz N)
Solution: Check for 'autocomplete' option in ins_compl_new_leader()
          (Girish Palya).

Patch 9.1.1773
Problem:  Crash in BufLeave/WinLeave/TabLeave when closing window after
          BufUnload closes all other windows in the tab page.
Solution: Avoid duplicate BufLeave/WinLeave events. Trigger TabLeave
          before removing the buffer (zeertzjq).

Patch 9.1.1774
Problem:  cannot calculate sha256() of a Blob
Solution: Change sha256() to accept a Blob or String argument (thinca).

Patch 9.1.1775
Problem:  filetype: Mamba configuration files are not recognized
Solution: Detect .mambarc and mambarc as yaml filetype (Samuel Huang).

Patch 9.1.1776
Problem:  "adding" expansion doesn't work with cfc=keyword.
Solution: Remove incorrect assignment to compl_cont_status. Don't use
          fuzzy collection in "adding" status (zeertzjq).

Patch 9.1.1777
Problem:  Mouse click to open fold doesn't work with utf-8 "foldclose"
          chars (Balki)
Solution: Use ScreenLinesUC[off] if it is set (zeertzjq).

Patch 9.1.1778
Problem:  sha256() treats empty blob and null blob differently
          (after 9.1.1774).
Solution: Handle null blob the same as empty blob (zeertzjq).

Patch 9.1.1779
Problem:  completion: 'autocomplete' cannot be enabled per buffer (Tomasz N)
Solution: Make 'autocomplete' global or local to buffer (Girish Palya).

Patch 9.1.1780
Problem:  mbyte contains overlapping list of utf_classes table
Solution: Update table to contain non-overlapping list (Yuta Yamamoto).

Patch 9.1.1781
Problem:  some functions could be defined static
Solution: Change function definitions and make them static
          (Yegappan Lakshmanan).

Patch 9.1.1782
Problem:  buffer-listener callbacks may not match buffer content, since
          they are buffered until the screen is updated.
Solution: Allow to handle buffer-callbacks un-buffered, meaning to
          handle those changes as soon as they happen (Paul Ollis).

Patch 9.1.1783
Problem:  ins_compl_leader() defined too far away from
          ins_compl_leader_len() (after 9.1.1781).
Solution: Move ins_compl_leader() just before ins_compl_leader_len(). Add
          missing "static" to eval0_simple_funccal() definition (zeertzjq).

Patch 9.1.1784
Problem:  Wayland code can be improved
Solution: Refactor Wayland Clipboard code (Foxe Chen).

Patch 9.1.1785
Problem:  typo in comment in change.c (after v9.1.1782)
Solution: Fix typo in comment in change.c (Christ van Willegen).

Patch 9.1.1786
Problem:  Compile error with clipboard (lacyggoill, after v9.1.1784)
Solution: Add $WAYLAND_SRC as dependency for clipboard.c in Makefile
          (Foxe Chen).

Patch 9.1.1787
Problem:  filetype: not all Sway config files are recognized
Solution: Detect files within /sway/config.d/* as swayconfig filetype
          (Felix Pehla).

Patch 9.1.1788
Problem:  MNV9: can declare a void variable (Ernie Rael)
Solution: Disallow such variable declaration (Yegappan Lakshmanan).

Patch 9.1.1789
Problem:  MS-Windows: using wrong check for bold font (after v9.1.1347)
Solution: Test if lf.lfWeight == FW_BOLD instead of a simple truthiness
          test (Shay).

Patch 9.1.1790
Problem:  completion: Enter does not insert match with "noinsert"
          (Sergey Vlasov)
Solution: Check for compl_shown_match instead of compl_selected_item
          (zeertzjq).

Patch 9.1.1791
Problem:  type(void) throws an internal error (atitcreate)
Solution: Return proper error message (Yegappan Lakshmanan).

Patch 9.1.1792
Problem:  List of changes not protected from changes when processing
          listeners (after v9.1.1782)
Solution: Fully lock changes list for listener callbacks (Paul Ollis).

Patch 9.1.1793
Problem:  Link error when build without channel feature
          (lindhobe, after v9.1.1774)
Solution: Remove ifdef FEAT_JOB_CHANNEL around check_for_string_or_blob_arg().

Patch 9.1.1794
Problem:  configure: terminfo test does not work with musl
          (T3rm1, after v9.9.1.0837)
Solution: Include term.h in configure script, add forward declarations,
          in case headers are not found.

Patch 9.1.1795
Problem:  MNV9: popup_show() may return void
Solution: Modify popup_show() to return -1 for an invalid popup window
          id (Yegappan Lakshmanan).

Patch 9.1.1796
Problem:  Wrong cursor position with wrapped "after" virtual text and
         'showbreak' (Ben Jackson)
Solution: Count size of 'showbreak' in wrapped "after" virtual text in
          line size (zeertzjq).

Patch 9.1.1797
Problem:  completion: autocompletion can be improved
Solution: Add support for "longest" and "preinsert" in 'autocomplete';
          add preinserted() (Girish Palya)

Patch 9.1.1798
Problem:  Wrong display with 'smoothscroll' and long wrapped virtual
          text at EOL.
Solution: Handle w_skipcol inside long wrapped virtual text at EOL (zeertzjq).

Patch 9.1.1799
Problem:  completion: crash with autcompletion (Maxim Kim)
Solution: Rework remove_old_matches (Girish Palya).

Patch 9.1.1800
Problem:  completion: strange behaviour with 'ac'
          completeopt=longest,preinsert (zeertzjq)
Solution: Let preinsert take precedence (Girish Palya).

Patch 9.1.1801
Problem:  MNV9: misleading error when extending dictionary (lacygoill).
Solution: Give a proper error message when a Dict type is used with a
          compound operator (Yegappan Lakshmanan).

Patch 9.1.1802
Problem:  'nowrap' in a modeline may hide malicious code.
Solution: Forcibly use '>' as 'listchars' "extends" if 'nowrap' was set
          from a modeline (zeertzjq).

Patch 9.1.1803
Problem:  Amiga: build errors
Solution: Update preprocessor conditionals (Ola Söder).

Patch 9.1.1804
Problem:  Wrong indentation of nested ifdefs in findfile.c
Solution: Update indentation (Ola Söder).

Patch 9.1.1805
Problem:  Amiga: Missing build date in version string
Solution: Set build date in CFLAGS in Makefile (Ola Söder).

Patch 9.1.1806
Problem:  Missing PROTO defines
Solution: Update ifdefs, update Makefile dependencies, updated proto files
          (Hirohito Higashi).

Patch 9.1.1807
Problem:  :set doesn't clear local insecure flag like :setlocal does.
Solution: Also clear the local insecure flag when using :set (zeertzjq).

Patch 9.1.1808
Problem:  Option insecure flags not copied when splitting window.
Solution: Move window-local insecure flags to winopt_T and copy them
          properly (zeertzjq).

Patch 9.1.1809
Problem:  winclip.pro included in PRO_AUTO
Solution: Remove it from PRO_AUTO since it is already defined in
          PRO_MANUAL (Hirohito Higashi).

Patch 9.1.1810
Problem:  completion: "longest" doesn't work for manual completion when
          'autocomplete' is on (after 9.1.1800).
Solution: Only reset compl_get_longest when enabling autocompletion (zeertzjq)

Patch 9.1.1811
Problem:  Amiga: Initialization of random buffer can be improved
Solution: Use RANDOM device when available (Ola Söder)

Patch 9.1.1812
Problem:  completion: flicker with slow LSPs
Solution: Disable flushing the changed text (Girish Palya).

Patch 9.1.1813
Problem:  MS-Windows: title bar is always white
Solution: Set_caption() and set the title bars color to the Normal
          highlighting background (Mao-Yining)

Patch 9.1.1814
Problem:  Patch v9.1.1812 causes crashes
Solution: Revert v9.1.1812

Patch 9.1.1815
Problem:  file mode changes in os_amiga.pro to 644 (RestorerZ after v9.1.1811)
Solution: Fix the permissions of proto/os_amiga.pro to 644 (Hirohito Higashi).

Patch 9.1.1816
Problem:  existing icon files are dated
Solution: Update and remake those icons using 256 colors (RestorerZ).

Patch 9.1.1817
Problem:  popup: there are some position logic bugs
Solution: Refactor position logic and fix a few bugs (Girish Palya).

Patch 9.1.1818
Problem:  possible crash when calculating topline in diff.c (youngmith)
Solution: Check for pointer being Null before accessing it.

Patch 9.1.1819
Problem:  Cannot configure the inner foldlevel indicator for the
          foldcolumn
Solution: Add "foldinner" suboption value to the 'fillchar' option
          (Maria José Solano).

Patch 9.1.1820
Problem:  completion: some issues with 'acl' when "preinsert" and
          "longest" is in 'completeopt' (musonius, after v9.1.1638)
Solution: Fix various issues (see details below) (Girish Palya).

Patch 9.1.1821
Problem:  filetype: Not all PKL files are recognized
Solution: Detect *.pcf as pkl filetype, detect using the pkl-lsp://
          protocol as pkl filetype, include PKL syntax script (Jan Claußen).

Patch 9.1.1822
Problem:  Makefile still supports Perl < 5.005
Solution: Remove support for Perl < 5.005, it's long been obsolete
          (Hirohito Higashi)

Patch 9.1.1823
Problem:  diff: w_topline may be invalidated
Solution: Update lnum in diff_set_topline() (Yee Cheng Chin).

Patch 9.1.1824
Problem:  tests: no test for displaying 'foldcolumn' with Unicode
          "foldinner" in 'fillchars'.
Solution: Add a few more test cases.  Also fix misplaced "foldinner"
          entry in version9.txt (zeertzjq).

Patch 9.1.1825
Problem:  completion: flicker when LSP server is slow
Solution: reinsert leader text before invoking user function (Girish Palya).

Patch 9.1.1826
Problem:  Patch v9.1.1230 causes confusion about Ctrl-C behaviour
          (kuuote, after v9.1.1230)
Solution: Revert the behaviour, keep the old behaviour.

Patch 9.1.1827
Problem:  completion: v9.1.1797 broke Ctrl-Y behaviour
          (ddad431, after v9.1.1797)
Solution: Restore correct behaviour (Girish Palya).

Patch 9.1.1828
Problem:  local variables shadowed by import names
Solution: Check if a local variable exists before handling imports (thinca).

Patch 9.1.1829
Problem:  filetype: KerML and SysML files are not recognized
Solution: Detect *.kerml as kerml filetype, detect *.sysml as sysml
          filetype, include a kerml and sysml filetype plugin
          (Daumantas Kavolis).

Patch 9.1.1830
Problem:  MS-Windows: Dark mode titlebar is not configurable (after v9.1.1813)
Solution: Revert Patch v9.1.1813

Patch 9.1.1831
Problem:  vertical separator of 'winfixwidth' windows may remain if they
          become right-most windows from closing windows to the right.
Solution: Don't implicitly rely on frame_new_width to fix vseps, as the
          call may be skipped for 'winfixwidth' windows to preserve
          their width; do it explicitly in winframe_remove (Sean Dewar).

Patch 9.1.1832
Problem:  if_perl: contains references to legacy if_perlsfio.{c,pro} and
          USE_SFIO
Solution: Remove those references (Hirohito Higashi).

Patch 9.1.1833
Problem:  completion: fuzzy candidates are not sorted (ddad431)
Solution: Always sort fuzzy candidates (Girish Palya).

Patch 9.1.1834
Problem:  MS-Windows: not possible to highlight the title bar
Solution: Make the title/caption bar configurable by introducing the
          'go-C' option value which allows to highlight it using the
          TitleBar and TitleBarNC highlighting groups (Mao-Yining).

Patch 9.1.1835
Problem:  not possible to style popup borders globally
Solution: Add the 'pumborder' option (Girish Palya).

Patch 9.1.1836
Problem:  'cursorlineopt' "screenline" isn't redrawn when moving cursor
          and then using line("w0") and :retab that does nothing.
Solution: Call redraw_for_cursorcolumn() when setting a valid w_virtcol
          (zeertzjq).

Patch 9.1.1837
Problem:  tests: Test_plugin_evaluate_in_popup() fails on 32bit arch
          (James McCoy)
Solution: Instead of evaluating the ptr, let's evaluate just the pointer
          content, skipping printing the pointer address.

Patch 9.1.1838
Problem:  proto files out of sync
Solution: Update proto files (Hirohito Higashi).

Patch 9.1.1839
Problem:  Window may have wrong height if resized from another tabpage.
Solution: Improve check for whether a tabline has been added (zeertzjq).

Patch 9.1.1840
Problem:  Generating prototype files does not work on all platforms
Solution: Rework prototypes generation using python instead of cproto,
          enable it in CI to test it for each PR (Hirohito Higashi).

Patch 9.1.1841
Problem:  Patch 9.1.1840 adds python build dependency (chdizza)
Solution: Update dependencies (Hirohito Higashi).

Patch 9.1.1842
Problem:  MS-Windows: build failure when mzscheme is included
          (dertuxmalwieder, after v9.1.1838)
Solution: skip specific section when PROTO is defined (Hirohito Higashi).

Patch 9.1.1843
Problem:  tests: Test_search_stat_option() may fail on slow systems
Solution: test_search_stat: Extend searchcount() timeout if the test is
          being re-run due to flakiness (James McCoy).

Patch 9.1.1844
Problem:  Makefile: dependencies not updated (Hirohito Higashi)
Solution: Update Dependencies after v9.1.1841.

Patch 9.1.1845
Problem:  Makefile: Missing dependency on osdef.h
Solution: Add explicit dependency on auto/osdef.h.

Patch 9.1.1846
Problem:  Build failure when building without wayland
          (bennyyip, after v9.1.1844)
Solution: Update Makefile dependencies again, remove wayland dependencies for
          clipboard.c.

Patch 9.1.1847
Problem:  No cmdline completion for :echoconsole, :echowindow and second
          expression after :echoerr.
Solution: Set EXPAND_EXPRESSION for :echoconsole and :echowindow, and
          check for multiple expressions after :echoerr (zeertzjq).

Patch 9.1.1848
Problem:  A few typos in the code
Solution: Fix typos (zeertzjq).

Patch 9.1.1849
Problem:  CTRL-F and CTRL-B don't work in more prompt
Solution: Make CTRL-F and CTRL-B scroll by a screen down/up
          (Bjoern Foersterling)

Patch 9.1.1850
Problem:  completion: not triggered after i_Ctrl-W/i_Ctrl-U
Solution: Trigger autocomplete when entering Insert mode (Girish Palya).

Patch 9.1.1851
Problem:  memory leak in heredoc_get()
Solution: Free "str" if list_append_string() fails (Lidong Yan).

Patch 9.1.1852
Problem:  mnv9class: fix memory leak in parse_member()
Solution: Free evalarg before returning (Lidong Yan).

Patch 9.1.1853
Problem:  Ctrl-F and Ctrl-B at more prompt not working with kitty
          keyboard protocol or modifyOtherKeys (after v9.1.1849).
Solution: Call merge_modifyOtherKeys() in get_keystroke() (zeertzjq).

Patch 9.1.1854
Problem:  unnecessary code in optionstr.c
Solution: Remove it (Hirohito Higashi).

Patch 9.1.1855
Problem:  Makefile: using non-portable syntax (Jonathan Schleifer)
Solution: Remove duplicate parenthesis.

Patch 9.1.1856
Problem:  cannot style popup window (border, shadow, etc)
Solution: Extend the 'completepopup' option with additional properties
          (Girish Palya).

Patch 9.1.1857
Problem:  Missing clipboard provider support (lilydjwg)
Solution: Add clipboard provider feature (Foxe Chen).

Patch 9.1.1858
Problem:  v:register not reset after Visual mode command (laktak).
Solution: Reset v:register if Visual mode was active before
          do_pending_operator() (zeertzjq).

Patch 9.1.1859
Problem:  completion: whitespace not cleared with 'ai'
Solution: Remove spaces added by 'autoindent' when autocomplete is set
          and restore did_ai in ins_compl_start() (Maxim Kim)

Patch 9.1.1860
Problem:  clipboard register "+" enabled with cplipboard provider feature
          (BenYip, after v9.1.1857)
Solution: Don't make clipboard provider enable plus register on UNIX
          (Foxe Chen).

Patch 9.1.1861
Problem:  Amiga: Locating runtime directory and rc files can be
          simplified.
Solution: Use assigns since it's simpler and more in line with
          how other Amiga applications work (Ola Söder).

Patch 9.1.1862
Problem:  Wrong ifdefs for clipboard provider (after v9.1.1857)
Solution: Update ifdefs (Foxe Chen).

Patch 9.1.1863
Problem:  Cannot test for working "+" register
Solution: Add a few more feature tests (Foxe Chen).

Patch 9.1.1864
Problem:  tests: Clipboard provider feature test failure
Solution: Check in the test that the + clipboard register is available,
          fix compile warning (Foxe Chen)

Patch 9.1.1865
Problem:  tests: test_codestyle does not notice lines containing only a tab
Solution: Fix the whitespace issue in eval.txt, update test_codestyle to
          notice such issues (Hirohito Higashi).

Patch 9.1.1866
Problem:  HAVE_STRCSPN define is unused
Solution: Remove all HAVE_STRCSPN defines (Ola Söder).

Patch 9.1.1867
Problem:  HAVE_STDARG_H still defined (after v7.4.1216)
Solution: Remove all remaining occurrences of HAVE_STDARG_H (Ola Söder).

Patch 9.1.1868
Problem:  v:register is wrong in v_: command (after 9.1.1858).
Solution: Don't reset v:register for OP_COLON (zeertzjq).

Patch 9.1.1869
Problem:  tests: test failures with Python 3.14 and test_python3
Solution: Adjust the expected error message (Yee Cheng Chin).

Patch 9.1.1870
Problem:  :Tutor may not work as expected
Solution: set buftype=nowrite instead of nofile (Phạm Bình An).

Patch 9.1.1871
Problem:  Wrong 'showcmd' in the command-line window.
Solution: Clear 'showcmd' when entering cmdwin (zeertzjq).

Patch 9.1.1872
Problem:  Cmdline history not updated when mapping both <Up> and <CR>.
Solution: Consider the command typed when in Cmdline mode and there is
          no pending input (zeertzjq).

Patch 9.1.1873
Problem:  Clipboard provider feature broke clipboard support (Yee Cheng Chin)
Solution: Revert clipboard changes (Foxe Chen).

Patch 9.1.1874
Problem:  PMenuShadow overrides highlighting attributes (Maxim Kim)
Solution: Use hl_combine_attr() to combine popup attribute with shadow
          attribute (Girish Palya).

Patch 9.1.1875
Problem:  username parsing bug in netrw plugin when using remote adding
          feature
Solution: Allow any characters except for "@" (Václav Kobera), add a
          test for the netrw plugin.

Patch 9.1.1876
Problem:  pre-inserted text not exposed in complete_info()
Solution: Add the pre-inserted text to the complete_info() MNV script
          function (Girish Palya).

Patch 9.1.1877
Problem:  cindent: wrong indentation after an array declaration
Solution: check if the filetype if javascript before matching the syntax
          (Anttoni Erkkilä).

Patch 9.1.1878
Problem:  filetype: Soy files are not recognized
Solution: Detect *.soy files as soy filetype, include a soy filetype plugin
          (Riley Bruins).

Patch 9.1.1879
Problem:  Crash when using a lambda funcref with :defer
Solution: De-reference the partial correctly after invoking the deferred
          functions (Yegappan Lakshmanan).

Patch 9.1.1880
Problem:  Allocation error with complete_info() (after v9.1.1876)
Solution: Make sure length is positive (kuuote).

Patch 9.1.1881
Problem:  tests: test_popupwin fails after c8eeda9b due to syntax
          highlighting change
Solution: Regenerate terminal dumps Test_popup_setbuf*dump (Yee Cheng Chin).

Patch 9.1.1882
Problem:  MNV9: Not able to use a lambda with :defer (Maxim Kim)
Solution: Add support for this (Yegappan Lakshmanan).

Patch 9.1.1883
Problem:  Wrong display with 'smoothscroll' when FEAT_DIFF is disabled.
Solution: Use plines_correct_topline() (zeertzjq).

Patch 9.1.1884
Problem:  :defer an empty lambda causes a crash
          (Maxim Kim, after v9.1.1882)
Solution: Check for missing arguments (Yegappan Lakshmanan).

Patch 9.1.1885
Problem:  Wrong restored cursor position when re-entering a buffer
          previously viewed in a window after making changes to the same
          buffer in another window.
Solution: Adjust per-window "last cursor" positions on buffer changes
          (zeertzjq).

Patch 9.1.1886
Problem:  filetype: Android aconfig files are not recognized
Solution: Detect *.aconfig files as pbtxt filetype (Bruno Belanyi).

Patch 9.1.1887
Problem:  string handling in strings.c can be improved
Solution: Refactor strings.c and remove calls to STRLEN() (John Marriott).

Patch 9.1.1888
Problem:  Wrong display with cpo+=$, matchparen and wrapped line.
Solution: Use old cursor line height when scrolling with cpo+=$. Also
          fix wrong redraw in non-current window (zeertzjq).

Patch 9.1.1889
Problem:  filetype: not all AppleScript files are recognized
Solution: Detect *.applescript files as applescript filetype (Samuel Huang).

Patch 9.1.1890
Problem:  %P in 'statusline' doesn't behave as documented
          (after 9.1.1479).
Solution: Make the percentage 3-chars wide when not translated (zeertzjq).

Patch 9.1.1891
Problem:  In visual mode, g<End> does not move to the last non-blank
          character when the end of a line is on the same line as the
          cursor (after v9.0.1753).
Solution: Move the cursor back by one position if it lands after the
          line (varsidry).

Patch 9.1.1892
Problem:  A plugin does not know when startup scripts were already
          triggered. This is useful to determine if a function is
          called inside mnvrc or after (like when sourcing 'plugin/' files).
Solution:  Add the v:mnv_did_init variable (Evgeni Chasnovski).

Patch 9.1.1893
Problem:  ICCF charity will dissolve
Solution: Update references to Kuwasha

Patch 9.1.1894
Problem:  global_runtime_dir appends /after directory when using XDG
          configuration directory (Marius Gedminas).
Solution: Do not append /after to RUNTIME_GLOBAL_AFTER.

Patch 9.1.1895
Problem:  OSC terminal response hard to detect
Solution: Add the <OSC> and <xOSC> pseudo keys (Foxe Chen).

Patch 9.1.1896
Problem:  tests: Patch v9.1.1895 breaks CI, by failing screen dump tests
        test_listlbr_utf8, test_diffmode and test_cmdline
Solution: Revert it

Patch 9.1.1897
Problem:  Mac: Build failure on Mac OS X 10.6 due to the use of generics
          for the sound feature.
Solution: Use the simple, non-generic Objective-C version (Luke Lollard).

Patch 9.1.1898
Problem:  tabpanel: inconsistent use of cmdline and message area with
          tabpanel
Solution: Reduce the cmdline and message area by the horizontal size of
          the tabpanel (Hirohito Higashi).

Patch 9.1.1899
Problem:  tabpanel: getcmdscreenpos() wrong when tabpanel is shown
Solution: Adjust f_getcmdscreenpos() and add cmdline_col_off
          (Hirohito Higashi).

Patch 9.1.1900
Problem:  tabpanel: wrong condition after v9.1.1898
Solution: Update condition (Hirohito Higashi).

Patch 9.1.1901
Problem:  tests: test_mnv9_generics fails when built without the job or
          channel feature (lazypingu)
Solution: Skip test if job/channel feature is not available.

Patch 9.1.1902
Problem:  GTK fails to compile with !FEAT_PROP_POPUP
Solution: Correct syntax under #ifdef (Drew Vogel).

Patch 9.1.1903
Problem:  GTK naming still reflects GTK1 support
Solution: Rename to avoid confusion (Drew Vogel).

Patch 9.1.1904
Problem:  Code still supports GTK2 versions older than 2.4.
Solution: Drop support for GTK2 < 2.4 (Drew Vogel).

Patch 9.1.1905
Problem:  tabpanel: truncates terminal output (hokorobi)
Solution: Use topframe->fr_width, not Columns (which includes the
          tabpanel width) (Hirohito Higashi)

Patch 9.1.1906
Problem:  filetype: not all Ruby files are recognized
Solution: Detect *.rbi and Brewfile as ruby filetype (botantony).

Patch 9.1.1907
Problem:  xterm: no support for mouse buttons 8 and 9
Solution: Add support for terminals with xterm-like mouse functionality
          (notuxic).

Patch 9.1.1908
Problem:  tests: test_crash.mnv times out in CI ASAN builds
Solution: Increase timeout for ASAN or Valgrind runs.

Patch 9.1.1909
Problem:  filetype: .mom files recognized as nroff files
Solution: Detect *.mom files as groff filetype instead (Callum Andrew).

Patch 9.1.1910
Problem:  tests: test failures in Test_term_gettitle() in CI
Solution: CI: Allow for title buffering in Test_term_gettitle()
          (Aliaksei Budavei).

Patch 9.1.1911
Problem:  build failure on Solaris Sparc with gcc 5 (idgn23, after v9.1.1736)
Solution: Correctly initialize the key_name variable.

Patch 9.1.1912
Problem:  tests: test_plugin_comment fails, because it depends on nroff
          filetype for .mom file (after v9.1.1909)
Solution: Explicitly set filetype to nroff.

Patch 9.1.1913
Problem:  Error message with :unlet! and non-existing dictionary item
          (Coacher)
Solution: Set GLV_QUIET when using unlet with bang attribute.

Patch 9.1.1914
Problem:  runtime(netrw): LocalBrowseCheck() wipes unnamed buffers when
          g:netrw_fastbrowse=0 (Carlos Falgueras García)
Solution: Check that bufname() is not empty.

Patch 9.1.1915
Problem:  :breaklist accepts unprocessed arguments.
Solution: Remove EX_EXTRA flag from the Ex command definition (Doug Kearns).

Patch 9.1.1916
Problem:  WinEnter autocommand may confuse MNV when closing tabpage (hokorobi)
Solution: Verify that curwin did not change in close_others().

Patch 9.1.1917
Problem:  MNV9: incorrect type inference with mkdir() (dezza)
Solution: Before compiling a RHS expression in an assignment, save the
          new local variable contents (Yegappan Lakshmanan).

Patch 9.1.1918
Problem:  completion: crash with fuzzy completion (Christian Brabandt)
Solution: When completion candidates are gathered from a different
          window, and when completing `<c-p>`, linked list should be
          sorted only after all items are collected (Girish Palya).

Patch 9.1.1919
Problem:  tabpanel: cannot handle mouse clicks in command line
          (char101, after v9.1.1898)
Solution: Update the condition that checks if the mouse pointer is on
          the command line (Hirohito Higashi).

Patch 9.1.1920
Problem:  tests: not enough testing for wildtrigger() pum redrawing.
Solution: Also test redrawing when leaving cmdline mode (zeertzjq).

Patch 9.1.1921
Problem:  xdiff: included xdiff code is outdated because it is based on
          git 2.40.0
Solution: Sync with xdiff from git 2.52 (Yee Cheng Chin).

Patch 9.1.1922
Problem:  Wrong virtcol('$') with virtual text at EOL (rickhowe).
Solution: Also add 1 to end virtcol when there is virtual text (zeertzjq).

Patch 9.1.1923
Problem:  When assigning to @. in a :let command an incorrect "E15"
          error is emitted.
Solution: Emit the correct "E354" error. (Doug Kearns).

Patch 9.1.1924
Problem:  'commentstring' requires the +folding feature but is used in
          contexts other than folding.
Solution: Remove the +folding feature guards from 'commentstring' and
          make it available in all builds (Doug Kearns).

Patch 9.1.1925
Problem:  make depend does not add osdef.h for the dependencies (Drew Vogel)
Solution: Move ifdef PROTO (Hirohito Higashi).

Patch 9.1.1926
Problem:  xdiff: Coverity warning with MAX_CNT/UINT_MAX usage
          (after v9.1.1921)
Solution: Replace XDL_MIN macro to a manual check (Yee Cheng Chin).

Patch 9.1.1927
Problem:  Wayland: clipboard code too complex
Solution: Simplify clipboard related code around W23/W24 (Foxe Chen).

Patch 9.1.1928
Problem:  xxd: exit_with_usage() can be simplified
Solution: Clean up exit_with_usage() formatting slightly (Stefan Haubenthal).

Patch 9.1.1929
Problem:  completion: spell completion wrong with fuzzy
Solution: Disable fuzzy sort for spell completion (Maxim Kim).

Patch 9.1.1930
Problem:  completion: 'completefuzzycollect' option is too obscure
Solution: Deprecate the option, but don't error out for existing scripts,
          behave like 'completefuzzycollect' is set when fuzzy
          completion is enabled (Girish Palya).

Patch 9.1.1931
Problem:  completion: wrong item selected with fuzzy and noinsert
          (Evgeni Chasnovski)
Solution: Reset selected item after fuzzy sort (Girish Palya).

Patch 9.1.1932
Problem:  OSC terminal response hard to detect
Solution: Add the <OSC> and <xOSC> pseudo keys (Foxe Chen).

Patch 9.1.1933
Problem:  completion: complete_match() MNV script function and
          'isexpand' option are not that useful and confusing
          (after v9.1.1341)
Solution: Remove function and option and clean up code and documentation
        (Girish Palya).

Patch 9.1.1934
Problem:  filetype: not all starlark files are recognized
Solution: Detect *.sky files as starlark filetype (Bruno Belanyi).

Patch 9.1.1935
Problem:  filetype: not all Erlang files are recognized
Solution: Detect *.app.src and rebar.config files as erlang filetype
          (John Parise).

Patch 9.1.1936
Problem:  filetype: Erlang lexical files are not recognized
Solution: Detect *.xrl files as leex filetype, include syntax and
          filetype plugins (Jon Parise).

Patch 9.1.1937
Problem:  tests: Test_matchfuzzy_initialized() fails
Solution: Send a dummy key (Corey Hickey)

Patch 9.1.1938
Problem:  tests: excessive wait in Test_matchfuzzy_initialized
Solution: Use term_wait() instead of the TermWait() wrapper (Corey Hickey).

Patch 9.1.1939
Problem:  tests: test_matchfuzzy() leaves swapfiles behind
Solution: Close loaded buffers using "%bw".

Patch 9.1.1940
Problem:  clipboard registers "+" and "*" synced without "autoselect"
Solution: Remove code that explicitly syncs those clipboard registers
          (Corey Hickey).

Patch 9.1.1941
Problem:  tests: Test_execute_register() leaves swapfile behind
Solution: Use :bw instead of :close to close the buffer completely.

Patch 9.1.1942
Problem:  Assignment to read-only registers @: and @% is allowed during
          compilation.
Solution: Abort compilation and emit an E354 error when assigning to
          these registers (Doug Kearns).

Patch 9.1.1943
Problem:  Memory leak with :breakadd expr
Solution: Free debug_oldval and debug_newval before assigning to them.
          Verify the existing (though confusing) :breakadd expr behavior
          (zeertzjq).

Patch 9.1.1944
Problem:  gewininfo() does not return if statusline is visible
Solution: Add status_height to the dict items returned by
          getwininfo() (Hirohito Higashi).

Patch 9.1.1945
Problem:  tests: Test_getbufwintabinfo() leaves swapfiles behind
Solution: Close all open buffers using %bw!

Patch 9.1.1946
Problem:  Cannot open the help in the current window
Solution: Promote the example from tips.txt to a proper package and
          include the helpcurwin package, add tests for it (Peter Kenny).

Patch 9.1.1947
Problem:  [security]: Windows: MNV may execute commands from current
          directory (Simon Zuckerbraun)
Solution: Set the $NoDefaultCurrentDirectoryInExePath before running
          external commands.

Patch 9.1.1948
Problem:  Windows: MNV always adds the current directory to search path.
          This should only happen when using cmd.exe as 'shell'. For
          example, powershell won't run binaries from the current
          directory.
Solution: Only add current directory to system path, when using cmd.exe
          as 'shell'.

Patch 9.1.1949
Problem:  :stag does not use 'swichtbuf' option, though the
          documentation states differently (Christian Brabandt)
Solution: Respect 'switchbuf' option (Yegappan Lakshmanan).

Patch 9.1.1950
Problem:  tests: Test_tagjump.mnv leaves swapfiles behind
Solution: Close open buffers using :bw! instead of :close!

Patch 9.1.1951
Problem:  tests: Test_windows_external_cmd_in_cwd() is only run in huge
          builds (after 9.1.1947).
Solution: Move it to test_system.mnv so that it is run in normal builds.

Patch 9.1.1952
Problem:  tests: need better tests for tf files
Solution: Add better filetype test for terraform/tf filetype

Patch 9.1.1953
Problem:  gui_mch_set_titlebar_colors() doesn't need to be called when
          'go+=C' is not set.
Solution: Switch the default value to false.

Patch 9.1.1954
Problem:  Setting a byte in a blob, accepts values outside 0-255
Solution: When setting a byte in a blob, check for valid values
          (Yegappan Lakshmanan).

Patch 9.1.1955
Problem:  sort() does not handle large numbers correctly
          (Igbanam Ogbuluijah)
Solution: Don't truncate the return value of tv_get_number_chk()
          (Yegappan Lakshmanan).

Patch 9.1.1956
Problem:  tests: test_sort.mnv leaves swapfiles behind
Solution: Close open buffers using :bw! instead of :close!

Patch 9.1.1957
Problem:  filetype: bpftrace files are not recognized
Solution: Detect *.bt files as btftrace filetype,
          include a btftrace filetype plugin (Stanislaw Gruszka).

Patch 9.1.1958
Problem:  Wrong display when scrolling with 'scrolloff' and calling
          sign_unplace() and setline() in CursorMoved (after 8.2.3204).
Solution: Still scroll for changed lines below the top area when the top
          is scrolled down (zeertzjq).

Patch 9.1.1959
Problem:  Outputting long strings using :echowindow wraps one character
          per line and display in reverse order (Hirohito Higashi)
Solution: Use full width for :echowindow, reset msg_col after wrapping,
          and increment lnum correctly when creating new lines (glepnir).

Patch 9.1.1960
Problem:  When the popup menu is displayed above the cursor and the
          selected item has no room below for the info popup,
          popup_adjust_position() places the popup in the available
          space above. The calculation added some extra lines, causing
          the popup to be misaligned.
Solution: For info popups, undo that extra spacing so the popup stays
          aligned with the selected item (glepnir).

Patch 9.1.1961
Problem:  :0tab behaves like :tab for :stag when 'switchbuf' contains
          "newtab" (after 9.1.1949).
Solution: Don't override cmod_tab if it's already non-zero (zeertzjq).

Patch 9.1.1962
Problem:  filetype: Erlang application resource files are not recognized
Solution: Add content-based filetype detection for application resource
          files matching extension '*.app' (Doug Kearns).

Patch 9.1.1963
Problem:  diff: missing diff size limit for xdiff
Solution: Impose file size limit for internal diff (xdiff)
          (Yee Cheng Chin).

Patch 9.1.1964
Problem:  Wrong display when using setline() at hit-enter prompt
         (after 8.2.3204).
Solution: Only skip scrolling for changed lines in top area if it's
          scrolled down due to w_topline change. Also add more testing
          for what 8.2.3204 fixed (zeertzjq).

Patch 9.1.1965
Problem:  When exiting at the end of the more prompt (at the hit enter
          prompt) by hitting q the recording mode will be started.
          (Jakub Łuczyński)
Solution: Don't add the q key to the typeahead buffer
          in the function wait_return (Bjoern Foersterling)

Patch 9.1.1966
Problem:  MS-Windows: dark mode in gui is not supported
Solution: Inplement the 'd' flag in 'guioptions' (Mao-Yining).

Patch 9.1.1967
Problem:  if_python: 64bit numbers truncated
Solution: cast python result to long long (lsq).

Patch 9.1.1968
Problem:  tests: test_python3.mnv leaves swapfiles behind
Solution: Close open buffers using :bw! instead of :close!

Patch 9.1.1969
Problem:  Wrong cursor position after formatting with long 'formatprg'.
Solution: Don't show hit-enter prompt when there are stuffed characters.

Patch 9.1.1970
Problem:  visual end column returns wrong value after block edit
Solution: update visual end column after block insert (phanium).

Patch 9.1.1971
Problem:  Crash when buffer gets deleted inside charconvert during save
Solution: Check for `b_saving` inside `can_unload_buffer()`, so we don’t try to
          unload a buffer while it’s still being saved (glepnir).

Patch 9.1.1971
Problem:  crash with invalid positional argument 0 in printf()
Solution: Reject positional arguments <= 0.

Patch 9.1.1972
Problem:  No way to access the clipboard without X11/Wayland.
Solution: Add the clipboard provider feature (Foxe Chen).

Patch 9.1.1973
Problem:  some minor problems with clipboard provider code
          (after v9.1.1972)
Solution: Fix minor issues (Foxe Chen)

Patch 9.1.1974
Problem:  tests: missing cleanup in Test_bwipe_during_save().
Solution: Reset &charconvert.

Patch 9.1.1975
Problem:  blob2str() may call strcpy with a NULL pointer
Solution: Check for NULL before calling STRNCPY().

Patch 9.1.1976
Problem:  When using listeners, there is no way to run callbacks at
          specific points in the redraw cycle.
Solution: Add redraw_listener_add() and redraw_listener_remove() and
          allow specifying callbacks for redraw start and end (Foxe Chen).

Patch 9.1.1977
Problem:  MS-Windows: missing dependency on optiondefs.h in Mingw and
          Cygwin Makefile (Mao-Yining)
Solution: Update $INCL variable.

Patch 9.1.1978
Problem:  tests: Test_smoothscroll_number() may fail because of 'showcmd'
Solution: Send redraw command (Hirohito Higashi).

Patch 9.1.1979
Problem:  :helpclose incorrectly accepts a range and a count.
Solution: Remove EX_COUNT and EX_RANGE from the command definition
          (Doug Kearns).

Patch 9.1.1980
Problem:  filetype: N-Quads files are not recognized
Solution: Detect *.nq files as nq filetype.

Patch 9.1.1981
Problem:  tests: test suite may stop on error in gen_opt_test.mnv
Solution: Use a different output file for log files (Muraoka Taro).

Patch 9.1.1982
Problem:  Use after free with redraw_listener_add() (after: v9.1.1976)
Solution: Copy Callbacks into listener struct (Foxe Chen).

Patch 9.1.1983
Problem:  MNV9: class_name definition can be improved
Solution: Use string_T to store class_name, avoid using STRLEN() calls,
          simplify code, remove unused definition of struct
          oc_newmember_S (John Marriott).

Patch 9.1.1984
Problem:  terminal OSC52 support to access the clipboard can be improved
Solution: Include and package the optional osc52 package, note: this
          requires a MNV with clipboard provider feature (Foxe Chen).

Patch 9.1.1985
Problem:  tests: test_sound.mnv fails when run locally on Windows
Solution: Skip Test_play_silent in Windows non-GUI environments.

Patch 9.1.1986
Problem:  clipboard provider does not work when redirecting messages
          (BenYip, after v9.1.1972)
Solution: Adjust ifdefs in ex_redir().

Patch 9.1.1987
Problem:  assert_equal() prepends unnecessary ':' when typed (after 9.0.1758).
Solution: Don't change a NULL stacktrace to an empty string (zeertzjq).

Patch 9.1.1988
Problem:  osc52 package can be further improved (after v9.1.1984).
Solution: Improve plugin, update test and check for clipboard_provider
          feature (Foxe Chen).

Patch 9.1.1989
Problem:  MNV intro screen shows register message (after v9.1.1893)
Solution: Remove the register message, registering is no longer useful
          and possible.

Patch 9.1.1990
Problem:  tests: Test_term_gettty() fails when using conpty on Windows,
          CI uses winpty, so this test passes.
Solution: Skip the test Test_term_gettty(). Since conpty communicates
          via anonymous pipes, there is no name that can be obtained
          with term_gettty() (Muraoka Taro)

Patch 9.1.1991
Problem:  :setlocal changes effective global 'omnifunc' (Maxim Kim)
Solution: Don't change global callback when using :setlocal (zeertzjq).

Patch 9.1.1992
Problem:  MNV9: heap buffer overflow with COMPAREANY instruction
Solution: Verify the type and error out in case of different types (Foxe Chen)

Patch 9.1.1993
Problem:  MS-Windows: compile error because of implicit size conversions
          (after v9.1.1983)
Solution: Change type casts

Patch 9.1.1994
Problem:  More deterministic synchronisation can be established between
          processes running test cases and collecting visual effects to
          a screendump file for future verification by anticipating
          the availability of known parts of such a file and asserting
          the location of the cursor.
Solution: Provide a convenience test function that waits a specified
          time for cursor positioning (Aliaksei Budavei).

Patch 9.1.1995
Problem:  Data races between test buffers are currently addressed by
          relying on arbitrary execution delays or blissfully dismissed.
Solution: Prefer more deterministic synchronisation between test buffers
          for test cases that generate screendump files with expected
          results (Aliaksei Budavei).

Patch 9.1.1996
Problem:  tests: test_cmdline.mnv leaves swapfiles behind
Solution: Close open buffers using :bw! instead of :close!

Patch 9.1.1997
Problem:  Missing out-of-memory check in mnv9class.c in calls to
          mnv_strnsave().
Solution: Refactor is_duplicate_variable() and is_duplicate_enum() and
          make use of string_T struct instead (John Marriott).

Patch 9.1.1998
Problem:  Not enough tests for :setlocal omnifunc (after 9.1.1991).
Solution: Move the last :new after :setlocal. Also test with 'complete'
          (zeertzjq).

Patch 9.1.1999
Problem:  clipboard provider does not respect 'clipboard' option
          (Satoru Kitaguchi, after v9.1.1972)
Solution: Make clipboard provider register respect "unnamed/unnamedplus"
          from the 'clipboard' option value.

Patch 9.1.2000
Problem:  MNV9: class and object member names are stored as char_u *
          pointer requiring repeated strlen() calls and making it harder
          to use length-aware string operations consistently.
Solution: Store ocm_name as a string_T instead of char_u * (John Marriott).

Patch 9.1.2001
Problem:  After :botright copen and closing the quikfix window, the
          cursor ends up in the wrong window. The problem is fr_child
          always points to the first (leftmost for FR_ROW, topmost for
          FR_COL) child frame. When do :vsplit, the new window is
          created on the left, and frame_insert() updates the parent's
          fr_child to point to this new left window.
Solution: Create a snapshot before open the quickfix window and restore
          it when close it (glepnir).

Patch 9.1.2002
Problem:  MNV9: heap-use-after-free when when accessing protect class
          member (Foxe Chen)
Solution: Set cl->class_type_list and return directly, add tests for
          using protected class method and variable from another class
          (Yegappan Lakshmanan).

Patch 9.1.2003
Problem:  tests: Test_glob_symlinks may fail on Windows with UCRT
          runtime
Solution: Comment out the code, do not use _wstat().

Patch 9.1.2004
Problem:  MS-Windows: If a directory with a single character name is
          included in the PATH environment variable without a trailing
          path separator, executable() will not be able to find the
          executable file under it.
Solution: The second argument of the after_pathsep() function is now
          passed the next pointer where a path separator may exist
          (Muraoka Taro).

Patch 9.1.2005
Problem:  MS-Windows: Missing fullscreen support for GUI version
Solution: Add "s" flag to guioptions (Mao-Yining)

Patch 9.1.2006
Problem:  ANSI escape colors are not displayed correctly in
          non-termguicolors in mnv (cli) on Windows. The red and blue
          channels seem to be swapped.
Cause:    When converting VTerm ANSI index colors to cterm colors in
          terminal.c, the Windows case equivalent to NR-16 (:help
          cterm-colors) is ignored.
Solution: Created and used a table to convert ANSI indexed colors to
          cterm's NR-16 representation (Windows only). This table
          corresponds to the inverse conversion of cterm_ansi_idx in
          term.c. The values in both tables are exactly the same, but
          the meanings are opposite, so they are separate tables
          (Muraoka Taro).

Patch 9.1.2007
Problem:    bpftrace files are not recognized from the hashbang line.
Solution:   Add a hashbang check (Stanislaw Gruszka).

Patch 9.1.2008
Problem:  filetype: hylo files are not recognized
Solution: Detect *.hylo files as hylo filetype (Ambrus Tóth).

Patch 9.1.2009
Problem:  tests: "Xm4" test directory may not be deleted
Solution: Use "R" flag with mkdir() call to have the directory
          recursively deleted at the end of function Test_m4_format()
          (Muraoka Taro).

Patch 9.1.2010
Problem:  Missing out-of-memory checks in mnv9class.c (after v9.1.2000).
Solution: Return FAIL early (John Marriott).

Patch 9.1.2011
Problem:  crash when unreferencing gtk icon theme
          (noamhalevy-wq, after v9.1.1583)
Solution: Remove the g_object_unref() call.

Patch 9.1.2012
Problem:  MNV9: cannot initialize class member with protected var
Solution: Allow this to work if this happens within the same class
          (Foxe Chen).

Patch 9.1.2013
Problem:  tests: When opening a conpty terminal, if process startup
          fails, it will silently exit.  As a result, the
          Test_terminal_shell_option in test_terminal3.mnv failed in
          conpty.
Solution: Make conpty fail with an error messages in the same way as winpty
          (Muraoka Taro).

Patch 9.1.2014
Problem:  clipboard: clipboard register corrupted with clipboard
          provider (Satoru Kitaguchi and mikoto2000 after v9.1.1972)
Solution: Only adjust clipboard register points to the unnamed register
          (Foxe Chen).

Patch 9.1.2015
Problem:  blob2string() stopped after an empty line
Solution: Specifically check for empty content (Foxe Chen).

Patch 9.1.2016
Problem:  At "if(0) do if(0); while(0); else", else should be aligned
          with outer if, but is aligned with inner if.
Solution: In function find_match, ignore "if" and "else" inside a
          do-while loop, when looking for "if". (Anttoni Erkkilä).

Patch 9.1.2017
Problem:  getregionpos() depends on 'linebreak' setting
Solution: Reset linebreak setting temporarily (McAuley Penney).

Patch 9.1.2018
Problem:  proto: ops.pro outdated (after v9.1.2017)
Solution: Regenerate the ops.pro proto file (Tao).

Patch 9.1.2019
Problem:  When virtualedit is set to all, the cursor is supposed to be
          permitted to reside anywhere, including on the virtual space
          beyond the end of the buffer's text. Switching modes triggered
          a routine that "fixed" a cursor that was past the end of the
          line by shifting it back to the last actual character in the
          line and compensating with a virtual column offset. While
          visually identical, this re-encoding changed the underlying
          byte index, causing position-reporting functions to return
          inconsistent values after a mode change.
Solution: Skip this coordinate adjustment when virtual editing is fully
          enabled. By treating the line terminator as a valid, stable
          position, the cursor’s internal representation remains
          unchanged when entering or exiting Visual mode, ensuring
          consistent coordinate reporting. Add a regression test to
          check this functionality (McAuley Penney).

Patch 9.1.2020
Problem:  tests: test_virtualedit.mnv leaves swapfiles behind
Solution: Close open buffers using :bw! instead of :close!

Patch 9.1.2021
Problem:  filetype: fluent files are not recognized
Solution: Detect *.ftl files as fluent filetype (ners).

Patch 9.1.2022
Problem:  Compilation issues on Windows when MNV
          is compiled with OLE enabled, as "if_ole.cpp" cannot compile
          due to the keyword conflict (after v9.1.2012).
Solution: Rename the member variable of `exarg` from `class` to `ea_class`.
          (Wei Tang)

Patch 9.1.2023
Problem:  A BufAdd autocommand may cause alist_add() to use freed
          memory, this is caused by the w_locked variable unset too
          early (henices)
Solution: In trigger_undo_ftplugin() only set w_locked to false, if it
          was false when calling the function.

Patch 9.1.2024
Problem:  'fsync' option cannot be set per buffer
Solution: Make 'fsync' option global-local (glepnir).

Patch 9.1.2025
Problem:  Conpty terminal process may not start.
Solution: Do not close the input handle at EOF when conpty is in use
          (Muraoka Taro).

Patch 9.1.2026
Problem:  tests: Patch 9.1.2019 not tested properly.
Solution: Add missing :exe (zeertzjq).

Patch 9.1.2027
Problem:  filetype: bicep filetype used for 2 bicep file types
Solution: Detect *.bicepparam files as bicep-param filetype, include
          new bicep-params and bicep filetype plugin (Scott McKendry).

Patch 9.1.2028
Problem:  Buffer overflow in buf_write() when converting incomplete
          multi-byte characters (Kevin Goodsell)
Solution: Make the buffer slightly larger.

Patch 9.1.2029
Problem:  tests: the test_mnv9_class.mnv testfile is too long
Solution: Split out the interface related test cases into a new
          test file test_mnv9_interface.mnv (Yegappan Lakshmanan).

Patch 9.1.2030
Problem:  inefficient use of ga_concat()
Solution: Use ga_concat_len() when length is known (John Marriott).

Patch 9.1.2031
Problem:  Makefile: cannot run make installinks twice
Solution: Change "ln -s" to "ln -sf" to force creation of the symlinks
          (Thomas Petazzoni).

Patch 9.1.2032
Problem:  MNV9: error when using class member in Lambda
Solution: Compare against uf_defclass variable (Foxe Chen).

Patch 9.1.2033
Problem:  tests: Test_terminal_cwd in test_terminal.mnv fails flaky
          in the Windows ConPTY terminal.
Solution: In ConPTY, the timeout is extended to 1msec when reading a
          channel associated with a job that is about to finish.  This
          allows MNV to read the last output of a process in a pseudo
          console. Add comments to make the reasoning clear (Muraoka Taro).

Patch 9.1.2034
Problem:  filetype: Fennel fnml files are not recognized (Alexei Mozaidze)
Solution: Detect *.fnml files as fennel filetype.

Patch 9.1.2035
Problem:  filetype: Fennel fnlm files are not recognized
          (Alexei Mozaidze, after v9.1.2034)
Solution: Detect *.fnlm files as fennel filetype, revert detecting
          *.fnml files

Patch 9.1.2036
Problem:  if_ruby: build error with ruby 4.0 (Mamoru Tasaka)
Solution: Always define rb_check_typeddata (EnumDev).

Patch 9.1.2037
Problem:  undo: cursor position not correctly restored
Solution: Do not override the saved cursor position (altermo).

Patch 9.1.2038
Problem:  tests: test_marks.mnv leaves swapfiles behind
Solution: Close open buffers using :bw! instead of :close!

Patch 9.1.2039
Problem:  if_ruby: crash when using Ruby/dyn 4.0 (after v9.1.2036)
Solution: Fix Ruby 4.0 dynamic builds correctly by inlining
          rb_check_typeddata (Yee Cheng Chin)

Patch 9.1.2040
Problem:  :tlnumenu incorrectly accepts a range.
Solution: Remove EX_RANGE and EX_ZEROR from the command definition and
          use ADDR_NONE (Doug Kearns).

Patch 9.1.2041
Problem:  tests: test_menu.mnv leaves swapfiles behind
Solution: Close open buffers using :bw! instead of :close!

Patch 9.1.2042
Problem:  filetype: systemd quadlet files are not recognized
Solution: Detect additional patterns as systemd filetype (Ac5000).

Patch 9.1.2043
Problem:  filetype: kos files are not reconized
Solution: Detect *.kos files as kos filetype (Chris Dragan).

Patch 9.1.2044
Problem:  Inefficient use of ga_concat()
Solution: Use ga_concat_len() when the length is already known to avoid
          use of strlen() (John Marriott).

Patch 9.1.2045
Problem:  Mac: Build failure with Mac OS X 10.6
          (Sergey Fedorov, after: v9.1.1748)
Solution: Add ifdefs MAC_OS_X_VERSION_10_7 around the code that sets the
          scheduler priority.

Patch 9.1.2046
Problem:  MS-Windows: compile warnings in os_win32.c,
          acp_to_enc() requires char_u* but others require char*
          (John Marriott, after v9.1.2013)
Solution: Cast the variables (Mao-Yining).

Patch 9.1.2047
Problem:  MS-Windows: style issue in gui_w32.c
Solution: Fix indentation, drop unnecessary braces (Mao-Yining).

Patch 9.1.2048
Problem:  Pressing backspace in ConPTY on Windows deletes an entire
          word, not just a single character. This is the same as
          pressing Alt + backspace in cmd.exe.
Solution: When using ConPTY on Windows, the `VTERM_KEY_BACKSPACE` key is
          now sent when the Backspace key or Ctrl+H is detected (Muraoka Taro)

Patch 9.1.2049
Problem:  MNV9: unexpected E1209 error
Solution: Fix error message (Hirohito Higashi).

Patch 9.1.2050
Problem:  tests: Test_cd_completion() may fail depending on the contents
          of the root directory of the current drive on Windows.
          readdir() may return a directory that cannot "cd" to, causing
          this test to fail. An example of such a directory is
          "System Volume Information" which only admin can "cd" to.
Solution: When determining the directory to use for testing, use the
          directory that we actually "cd" to successfully.
          In addition, directories with '$' in their names are also
          excluded, as they are considered environment variables during
          completion and do not work as expected (Muraoka Taro).

Patch 9.1.2051
Problem:  Test_cd_completion test fails in Appveyor. In Appveyor, a path
          containing spaces was selected as the test target. But the
          comparison failed because spaces were not taken into account
          (after v9.1.2050)
Solution: Escape spaces in paths for comparison (Muraoka Taro).

Patch 9.1.2052
Problem:  Compile error when disabling linebreak feature
Solution: Adjust ifdefs (Matthias Rader).

Patch 9.1.2053
Problem:  If another find.exe derived from findutils is installed on
          Windows, unintended behavior will occur. If MSYS2 is installed and
          prioritized over the system path, then find.exe derived from
          findutils will be launched during build, resulting in an
          unintended warning message.
Solution: Specify the absolute path including SYSTEMROOT to launch
          find.exe (Muraoka Taro).

Patch 9.1.2054
Problem:  Can't unpack tuple from imported function (Mao-Yining)
Solution: Support multi-variable assignment from a tuple returned by an
          imported function (Yegappan Lakshmanan).

Patch 9.1.2055
Problem:  Division by zero in :file after failing to wipe buffer
          (after 8.2.4631).
Solution: Still call buf_clear_file() when failing to wipe buffer (zeertzjq).

Patch 9.1.2056
Problem:  tests: inconsistent indent and line breaking in Test_maparg().
Solution: Consistently use spaces-only indent. Reorder fields to group
          similar ones together and break lines at consistent positions.
          Remove a mapping when it is no longer used (zeertzjq).

Patch 9.1.2057
Problem:  Copying to clipboard register broken with 'go-P' (Coacher)
Solution: Verify that clip_plus is available (Foxe Chen).

Patch 9.1.2058
Problem:  b_locked_split is not checked for :sbuffer, which allows
          autocommands to leave windows open to freed buffers.
Solution: In do_buffer_ext, check just before possibly splitting, after
          handling 'switchbuf'. Leave win_split to handle the check for
          curbuf (Sean Dewar).

Patch 9.1.2059
Problem:  filetype: Nickel files are not recognized
Solution: Detect *.ncl files as nickel filetype (Hoang Nguyen)

Patch 9.1.2060
Problem:  filetype: Rasi include files are not recognized
Solution: Detect *.rasinc as rasi filetype (Hoang Nguyen).

Patch 9.1.2061
Problem:  filetype: Koka files are not recognized
Solution: Detect *.kk files as koka filetype (Hoang Nguyen).

Patch 9.1.2062
Problem:  filetype: djot files are not recognized
Solution: Detect *.dj and *.djot files as djot filetype (Hoang Nguyen).

Patch 9.1.2063
Problem:  A few typos in the code and runtime files
Solution: Fix those (zeertzjq).

Patch 9.1.2064
Problem:  completion: segfault during file name completion
Solution: Initialize compl_num_bests (Girish Palya).

Patch 9.1.2065
Problem:  When building GmnvExt with MinGW, some DLLs are still linked
          even if STATIC_STDCPLUS=yes is set.
Solution: Following the MNV core, make some libraries explicitly
          statically linked.  The order of libraries is important, and
          gcc_eh must be placed before winpthread (Muraoka Taro).

Patch 9.1.2066
Problem:  :wqall! doesn't close a terminal buffer like :qall! does
          (after 8.0.1525).
Solution: Check eap->forceit (zeertzjq).

Patch 9.1.2067
Problem:  shadow variable warning in menu.c
Solution: Rename the variable (John Marriott).

Patch 9.1.2068
Problem:  :bdelete/bunload/bwipeout may attempt to switch to a closing
          buffer, which fails. (after 9.1.2058)
Solution: Don't consider switching to closing buffers (Sean Dewar).

Patch 9.1.2069
Problem:  when shortmess doesn't have 'S', backward search wrap doesn't
          show the "W" before count. forward search works fine but
          backward fails because the position check logic is backwards -
          it checks if cursor < pos instead of using the existing
          wrapped flag.
Solution: Use sia->sa_wrapped flag that searchit() already sets
          correctly (glepnir).

Patch 9.1.2070
Problem:  Autocomplete breaks ":help" when 'dict' points to a large file
          (lxhillwind)
Solution: Reset autocompletion timer expiry flag (Girish Palya).

Patch 9.1.2071
Problem:  tests: test_ins_complete.mnv leaves swapfiles behind
Solution: Close open buffers using :bw! instead of :close!

Patch 9.1.2072
Problem:  Socket server has some small issues
Solution: Fix issues (Foxe Chen).

Patch 9.1.2073
Problem:  auto/configure needs to be regenerated (after v9.1.2072)
Solution: Run make autoconf and update the configure script.

Patch 9.1.2074
Problem:  Compile error with Motif GUI (Tony Mechelynck, after v9.1.2072)
Solution: Add ifdef FEAT_GUI_GTK

Patch 9.1.2075
Problem:  tests: wrong change to test_ins_complete.mnv
          (zeertzjq, after v9.1.2071)
Solution: Revert unintentional changes.

Patch 9.1.2076
Problem:  tests: When running the MinGW test, an error occurs after
          generating opt_test.mnv.
Solution: Rewrite the error detection in cmd.exe syntax (Muraoka Taro).

Patch 9.1.2077
Problem:  MNV9: type issue when appending item to a list (Peter Kenny)
Solution: When adding a new item at the end of a list in mnv9script, use
          the proper item type (Yegappan Lakshmanan).

Patch 9.1.2078
Problem:  A few more typos in various files
Solution: Fix those (zeertzjq, antonkesy).

Patch 9.1.2079
Problem:  use-after-free with 'quickfixtextfunc' wiping buffer (henices)
Solution: Evaluate 'quickfixtextfunc' with textlock enabled.

Patch 9.1.2080
Problem:  W23/W24 messsage appears on :reg (Coacher)
Solution: Silence message when using :reg command (Foxe Chen).

Patch 9.1.2081
Problem:  MS-Windows: "#ifdef FEAT_GUI" exists within "ifdef
          FEAT_GUI_MSWIN", which is confusing when reading the code.
          FEAT_GUI is always defined if FEAT_GUI_MSWIN is defined (see
          mnv.h).  Therefore, this check and the else block are unnecessary.
Solution: Removed unnecessary "#ifdef FEAT_GUI" (Muraoka Taro).

Patch 9.1.2082
Problem:  modeless auto-select not working (Coacher)
Solution: Add support for modeless autoselect (Foxe Chen).

Patch 9.1.2083
Problem:  style: wrong indentation of nested ifdefs
Solution: Fix indentation (Hirohito Higashi).

Patch 9.1.2084
Problem:  Compile error when build with job feature (after v9.1.2077)
Solution: Add ifdefs (John Marriott).

Patch 9.1.2085
Problem:  Use-after-free in winframe_remove() (henices)
Solution: Set window_layout_locked() inside winframe_remove()
          and check that writing diff files is disallowed when the
          window layout is locked.

Patch 9.1.2086
Problem:  memory leak when not evaluating (just parsing) invalid literal
          dict.
Solution: Always clear the key's typval (Sean Dewar)

Patch 9.1.2087
Problem:  Crash when using :tabonly in BufUnload.
Solution: Set curbuf when setting curwin->w_buffer. Don't wipe out a
          buffer if there are no other buffers. Don't decrement
          b_nwindows if it was 0 before buf_freeall() (zeertzjq).

Patch 9.1.2088
Problem:  Redundant NULL checks in find_pattern_in_path().
Solution: Remove the NULL checks. Also fix typos in test_diffmode.mnv
          (zeertzjq).

Patch 9.1.2089
Problem:  Wayland: Clipboard not working with external programs on
          Wayland (devsnek)
Solution: Simplify the Wayland offer logic and drop offering the special
          mime type (Foxe Chen).

Patch 9.1.2090
Problem:  Last buffer not freed with EXITFREE (after 9.1.2087).
Solution: Free the last buffer when inside free_all_mem() (zeertzjq).

Patch 9.1.2091
Problem:  Ruby headers define HAVE_FSYNC, which leaks into MNV sources
          on Windows and changes conditional compilation of buf_T. This
          causes struct layout mismatches in if_ruby.c and results in a
          different offset for the b_p_bl property, making MNV::Buffer
          access fail (after v9.1.2024)
Solution: Undefine HAVE_FSYNC after including the Ruby headers.

Patch 9.1.2092
Problem:  Cannot detect kitty foreground/background color
Solution: Update builtin termcap entries (Mateo Gjika).

Patch 9.1.2093
Problem:  heap-use-after-free when wiping buffer in TabClosedPre.
Solution: Check window_layout_locked() when closing window(s) in another
          tabpage (zeertzjq).

Patch 9.1.2094
Problem:  filetype: tiger files are not recognized
Solution: Detect *.tig files as tiger filetype (Christian Clason).

Patch 9.1.2095
Problem:  :wqall! doesn't quit when using :quit in BufWritePost
          (after 8.0.1190).
Solution: Restore old value of "exiting" when calling not_exiting()
          instead of always resetting it to FALSE (zeertzjq).

Patch 9.1.2096
Problem:  MNV9: truthiness issue with objects (kennypete)
Solution: Return true for an non-null object (Yegappan Lakshmanan).

Patch 9.1.2097
Problem:  TabClosedPre may be triggered twice for the same tab page when
          closing another tab page in BufWinLeave (after 9.1.1211).
Solution: Store whether TabClosedPre was triggered in tabpage_T (zeertzjq).

Patch 9.1.2098
Problem:  Crash with 'wildmenu' when typing Ctrl-Y after Ctrl-A
          (after 9.1.1714) (fizz-is-on-the-way).
Solution: Check if there are matches before applying one (zeertzjq).

Patch 9.1.2099
Problem:  Depending on the worker's environment, the line endings in
          ja.sjis.po may differ from those in the source ja.po.
Solution: By setting standard input and output to binary mode, the line
          endings for input and output will match (Muraoka Taro)

Patch 9.1.2100
Problem:  filetype: tiltfiles are not recognized
Solution: Detect Tiltfiles.* and *.tiltfiles as tiltfile filetype (Luis Damnv)

Patch 9.1.2101
Problem:  MNV9: more truthiness issues (kennypete)
Solution: Class, enum and typealias cannot be used with the falsy
          operator (Yegappan Lakshmanan).

Patch 9.1.2102
Problem:  foldtext not reversed and cut off in 'rightleft' mode (bfredl)
Solution: Fix the rightleft redrawing logic (Sergey Vlasov).

Patch 9.1.2103
Problem:  tests: test_fold.mnv leaves swapfiles behind
Solution: Close open buffer using :bw! instead of :close!

Patch 9.1.2104
Problem:  readdirex() might be slow (Mao-Yining)
Solution: Avoid double slash in path concatenation in create_readdirex_item()
          (Yasuhiro Matsumoto).

Patch 9.1.2105
Problem:  Not enough tests for using plain_vgetc().
Solution: Add tests for using plain_vgetc() during various commands (zeertzjq)

Patch 9.1.2106
Problem:  MNV9: class, enum and type alias can be used as value in an
          expression (kennypete)
Solution: Abort expression evaluation if class, enum or type alias is
          used in an expression (Yegappan Lakshmanan).

Patch 9.1.2107
Problem:  :normal may change cmdline history if the keys don't
          explicitly leave Cmdline mode (after 9.1.1872).
Solution: Check ex_normal_busy (zeertzjq).

Patch 9.1.2108
Problem:  Test_foldtextresult_rightleft() does not restore 'columns'
          (after v9.1.2102)
Solution: Save and restore the value of 'columns' (zeertzjq).

Patch 9.1.2109
Problem:  filetype: NetLinx fires are not recognized
Solution: Detect *.axs and *.axi as netlinx filetype (kb).

Patch 9.1.2110
Problem:  filetype: skhd files are not recognized
Solution: Detect .skhdrc and skhdrc as skhd filetype, include a syntax and
          filetype plugin, add syntax tests (Kiyoon Kim).

Patch 9.1.2111
Problem:  MNV9: no error for elseif/else after else
Solution: Report an error (Hirohito Higashi).

Patch 9.1.2112
Problem:  long statusline may crash if using singlebyte encoding
          (fizz-is-on-the-way)
Solution: Drop the non-mbyte codepath and always use the mbyte code (zeertzjq)

Patch 9.1.2113
Problem:  potential NULL pointer dereference issues (EpheraXun)
Solution: Check returned pointer to be non NULL (Yasuhiro Matsumoto).

Patch 9.1.2114
Problem:  modeless selection not copied to * register when P in
          guioptions (Coacher)
Solution: Make the "P" flag override the "a" and "A" flag (Foxe Chen).

Patch 9.1.2115
Problem:  CI: wrong preprocessor indentation (after v9.1.2114)
Solution: Update indentation (Yasuhiro Matsumoto).

Patch 9.1.2116
Problem:  crash when using 'tagfunc' (Rodrigo Queipo)
Solution: Do not add the user_data to the 'info' dictionary when called
          for insert mode completion (the TAG_INS_COMP flag is set).
          Completion should not depend on the state of a previous tag
          jump (Yasuhiro Matsumoto).

Patch 9.1.2117
Problem:  unnecessary braces in terminal.c
          (Christ van Willegen, after v9.1.2113)
Solution: Remove braces.

Patch 9.1.2118
Problem:  'cursorline' and part of 'statusline' are missing after
          :diffput to an empty buffer.
Solution: Make sure the cursor doesn't go beyond the last line after
          :diffput (zeertzjq).

Patch 9.1.2119
Problem:  tests: Test_language_cmd fails on OpenBSD because the test
          uses an invalid locale name and expects the command to produce
          an error. OpenBSD accepts (almost) any locale name as valid by
          design, so the :lang command succeeds and the test fails.
Solution: Slightly update the "bad" locale name to make it something
          that OpenBSD considers invalid by adding a dot (but not ending
          with ".UTF-8"). Maintain the original two underscores in the
          name because that ensures Windows will also see it as invalid
          (Kevin Goodsell).

Patch 9.1.2120
Problem:  blob2str() does not restore trailing newline
Solution: Append empty string (thinca).

Patch 9.1.2121
Problem:  MNV9: type issue when modifying a variable using :legacy
          (kennypete)
Solution: In a mnv9 script, when modifying a variable using the legacy
          command, check the type (Yegappan Lakshmanan).

Patch 9.1.2122
Problem:  MNV9: Negating a float doesn't result in a boolean (kennypete)
Solution: Make it return a boolean (Yegappan Lakshmanan).

Patch 9.1.2123
Problem:  using NOT with a float returns a float in legacy mnv script
          (kennypete)
Solution: Return a number instead of a float (Yegappan Lakshmanan).

Patch 9.1.2124
Problem:  blob2str() does not handle UTF-16 encoding (Hirohito Higashi)
Solution: Refactor the code and fix remaining issues, see below
          (Yasuhiro Matsumoto).

Patch 9.1.2125
Problem:  MS-Windows: DirectX rendering can be improved
Solution: Use lpDx advance, fix vertical text shift and correct
          font-size calculations (Yasuhiro Matsumoto).

Patch 9.1.2126
Problem:  mnv --version used single column for feature list
          (Ben Knoble, after v9.1.1898)
Solution: Restore old behaviour and assume 80 columns, making sure the feature
          list is shown in several columns (Ben Knoble, Hirohito Higashi).

Patch 9.1.2127
Problem:  MS-Windows: DirectX renders font too small in comparison to
          the GDI rendering (Linwei, after v9.1.2125)
Solution: Implement proper font clipping (Yasuhiro Matsumoto).

Patch 9.1.2128
Problem:  heap UAF if autocommands from reloading a file changed outside
          of MNV wipe its buffer.
Solution: Validate the bufref after buf_reload (Sean Dewar).

Patch 9.1.2129
Problem:  MS-Windows: font size calculation slightly wrong, causing
          vertical line gaps (Maxim Kim, after v9.1.2127)
Solution: Update font size calculation when using DirectX
          (Yasuhiro Matsumoto).

Patch 9.1.2130
Problem:  Page scrolling in Insert mode beeps (after 9.1.0211).
Solution: Fix incorrect return value of pagescroll(). Also invert the
          return value of scroll_with_sms() to be less confusing and
          match comments (zeertzjq).

Patch 9.1.2131
Problem:  tests: Test_diff_screen() fails on BSD
Solution: Use gdiff on BSD systems if available (zeertzjq).

Patch 9.1.2132
Problem:  [security]: buffer-overflow in 'helpfile' option handling by
          using strcpy without bound checks (Rahul Hoysala)
Solution: Limit strncpy to the length of the buffer (MAXPATHL)

Patch 9.1.2133
Problem:  Another case of buffer overflow with 'helpfile'.
Solution: Leave room for "tags" in the buffer (zeertzjq).

Patch 9.1.2134
Problem:  Terminal doesn't handle split UTF-8 sequence after ASCII.
Solution: Only use one UTF-8 encoding state per vterm state (zeertzjq).

Patch 9.1.2135
Problem:  search() is used to check for the message from tar that
          indicates leading slashes found in the tar archive, or to
          check for the leading slashes themselves. However, if
          'nowrapscan' is in effect these searches are limited to the
          last line and don't find any results. This causes the warning
          message from tar to be seen in the buffer, the "Path Traversal
          Attack Detected" message to be omitted, and editing actions
          can fail. This can be seen, for example, when editing
          src/testdir/samples/evil.tar.
Solution: Use the 'w' flag for search() (Kevin Goodsell)

Patch 9.1.2136
Problem:  :tab sbuffer may close old tabpage if BufLeave autocommand
          splits window (after 9.1.0143).
Solution: Only close other windows if the buffer will be unloaded (zeertzjq).

Patch 9.1.2137
Problem:  Some tests are not valid on OpenBSD.
Solution: Add CheckNotOpenBSD, use it to skip certain tests
          (Kevin Goodsell).

Patch 9.1.2138
Problem:  With 'autochdir' win_execute() can corrupt the buffer name, causing
          :write to use wrong path.
Solution: Save and restore b_fname when 'autochdir' is active (Ingo Karkat).

Patch 9.1.2139
Problem:  Buffer overflow in :wlrestore command, caused by assuming
          wrong buffer length in vwl_log_handler() (Seungyeon Park)
Solution: Use correct buffer size (512 bytes) in mnv_vsnprintf()
          to properly truncate long messages.

Patch 9.1.2140
Problem:  tests: Test_wayland_protocol_error_overflow() fails
          (after v9.1.2139)
Solution: try/catch the expected error

Patch 9.1.2141
Problem:  Truncation when serializing libsodium encryption parameters.
Solution: Correctly cast to long long type (Yasuhiro Matsumoto).

Patch 9.1.2142
Problem:  MS-Windows: mouse scroll events not handled for popups
Solution: Do not return early (Mao-Yining)

Patch 9.1.2143
Problem:  When a popup window partially overlaps a wide character
          it results in truncated or garbage display.
Solution: When a wide character is partially blocked by a popup, clear both
          cells in the screen buffer to prevent garbage (Yasuhiro Matsumoto).

Patch 9.1.2144
Problem:  When garbage collection runs, the list of recorded buffer
	  changes may be incorrectly freed (Sainnhe Park). 
Solution: In garbage_collect(), iterate through all buffers and call
          set_ref_in_list() for b_recorded_changes to ensure the list
          and its contents are marked as reachable (Paul Ollis).

Patch 9.1.2145
Problem:  intstalltutor Makefile target does not create the tutor/sv dir
Solution: Add the missing mkdir() calls to the Makefile (Ross Burton)

Patch 9.1.2146
Problem:  filetype: cel files are not recognized
Solution: Detect *.cel files as cel filetype (Stefan VanBuren).

Patch 9.1.2147
Problem:  Compile warning in strings.c
Solution: Use const qualifier (John Marriott).

Patch 9.1.2148
Problem:  [security]: Buffer overflow in netbeans special_keys() handling
Solution: Limit writing to max KEYBUFLEN bytes to prevent writing out of
          bounds.

==============================================================================
VERSION 9.3				*version-9.3* *version9.3* *mnv-9.3*

This section is about improvements made between version 9.2 and 9.3 and is
work in progress.

Popups ~
------
- Support for transparency, see |popup-opacity|.
- 'previewpopup' supports the same values as 'completepopup' (except for
  "align").

Diff mode ~
---------
When using inline word diffs, adjacent changes are now merged if the gap
between them is small (5 bytes or less) and contains only non-word characters.
This prevents fragmented highlighting when only whitespace or punctuation
separates changes.

Restricted mode ~
---------------
Using external diff mode or setting environment variables is no longer allowed
when MNV is running in |restricted-mode|.

Using |:cscope| is no longer allowed.

Other ~
-----
- The new |xdg.mnv| script for full XDG compatibility is included.
- |ConPTY| support is considered stable as of Windows 11.
- Support for "dap" channel mode for the |debug-adapter-protocol|.
- |status-line| can use several lines, see 'statuslineopt'.
- New "leadtab" value for the 'listchars' setting.
- Improved |:set+=|, |:set^=| and |:set-=| handling of comma-separated "key:value"
  pairs individually (e.g. 'listchars', 'fillchars', 'diffopt').
- |system()| and |systemlist()| functions accept a list as first argument,
  bypassing the shell completely.

xxd ~
---
Add "-t" option to append a terminating NUL byte to C include output (-i).

							*changed-9.3*
Changed~
-------
- Support for NeXTStep was dropped with patch v9.2.0122
- |json_decode()| is stricter: keywords must be lowercase, lone surrogates are
  now invalid
- |js_decode()| rejects lone surrogates

							*added-9.3*
Added ~
-----
Various syntax, indent and other plugins were added.

Functions: ~

|ch_listen()|		listen on {address}

Autocommands: ~

|SessionLoadPre|	before loading a |Session| file

Options: ~

'statuslineopt'		Extra window-local options for the 'statusline', to
			configure the height.
't_BS'			Begin synchronized update.
't_ES'			End synchronized update.
'termresize'		Method for handling terminal resize events.
'termsync'		Enable support for terminal DEC 2026 sync mode.
'winhighlight'		Window-local highlight group mappings.

==============================================================================
PATCHES						*patches-9.3* *bug-fixes-9.3*
						*patches-after-9.2*

 mnv:tw=78:ts=8:noet:ft=help:norl:fdm=manual:nofoldenable