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
|
= WeeChat ChangeLog
:author: Sébastien Helleu
:email: flashcode@flashtux.org
:lang: en
:toc: left
:docinfo1:
This document lists all the changes for each version. +
For a list of important changes that require manual actions, please look at release notes.
[[v4.3.0]]
== Version 4.3.0 (under dev)
New features::
* core: add option `malloc_trim` in command `/sys`
* core: add support of SGR mouse events (issue #2082)
* core: reintroduce help on the variables and operators in `/help eval` (issue #2005)
* core: add option `-s` in command `/command` to execute multiple commands separated by semicolons
* core: allow case insensitive search of partial buffer name with `(?i)name` in command `/buffer`
* core: use function util_strftimeval in evaluation of expression `date:xxx`
* api: add modifier "color_decode" to decode WeeChat colors with a replacement string
* api: use whole replacement string instead of first char in function string_remove_color
* api: add functions config_option_get_{string|pointer} and config_{boolean|integer|string|color|enum}_inherited in scripting API
* api: add function "hdata_longlong" (issue #2081)
* api: add info "plugin_loaded"
* api: add support of specifier `%!` for timestamp in function util_strftimeval
* api: add support of base64url in encode/decode functions
* irc: add option `-all` in command `/allchan`, do not execute command on parted channels by default (issue #2085)
* irc: add server option "autojoin_delay" (delay before autojoin), use option "command_delay" before execution of the command (issue #862)
* relay: add "api" protocol (HTTP REST API), add option relay.look.display_clients, change option type relay.look.auto_open_buffer to string, rename option relay.weechat.commands to relay.network.commands, add option relay.network.time_window (issue #2066)
* relay: add support of websocket extension "permessage-deflate" (issue #1549)
* script: add info "script_loaded"
Bug fixes::
* core: add missing mouse events "alt-ctrl-button2" and "alt-ctrl-button3"
* core: remove trailing directory separators in home directories (issue #2070)
* exec: remove trailing space on buffers with free content when line numbers are not displayed
* exec: add missing exec tags in lines of buffers with free content (issue #2086)
* fset: allow filename starting with "~" in command `/fset -export`
* irc: add missing tags on self action messages when capability echo-message is enabled (issue #2074)
* irc: don't strip monospace color code 0x11 from incoming messages (issue #2073)
* irc: fix random date displayed when a received message contains tags but no "time" (issue #2064)
* python: fix truncation of unsigned long long integer returned by function string_parse_size
* script: always display list of scripts when searching scripts with `/script search` (issue #2077)
* script: fix default mouse keys (issue #2076)
* scripts: fix crash on script unload when a hook is created in a buffer close callback (issue #2067)
* tcl: fix truncation of long integer returned by function hdata_long
* trigger: fix memory leak when adding a new trigger with `/trigger` command
Tests::
* core: add tests on mouse events (issue #2082)
* scripts: add tests on constants
Build::
* tcl: make plugin compatible with Tcl 9.0 (issue #2075)
[[v4.2.1]]
== Version 4.2.1 (2024-01-22)
Bug fixes::
* irc: fix random date displayed when a received message contains tags but no "time" (issue #2064)
[[v4.2.0]]
== Version 4.2.0 (2024-01-21)
New features::
* core: add variable "opening" in buffer, do not send buffer signals when the buffer is opening
* core: store microseconds in buffer lines (issue #649)
* core: evaluate expressions even when the suffix is missing ("}" by default) (issue #2042, issue #1714)
* core: add syntax highlighting in evaluation of expressions with `raw_hl:string` and `hl:string`, add option weechat.color.eval_syntax_colors (issue #2042)
* core: add option `search_history` in command `/input`, add key kbd:[Ctrl+r] to search in commands history, add key context "histsearch" (issue #2040)
* core: add option weechat.look.buffer_search_history (issue #2040)
* core: add key kbd:[Ctrl+o] to send command found and insert next one in input (issue #2040)
* core: add buffer variables "text_search_direction", "text_search_history" and "text_search_ptr_history" (issue #2040)
* core: move key kbd:[Ctrl+r] to kbd:[Ctrl+s] (issue #2040)
* core: move key kbd:[Ctrl+s], kbd:[Ctrl+u] to kbd:[Alt+Shift+U] (issue #2040)
* core: display only version with command `/version`, add options `-o` and `-ol` in command `/upgrade`
* core: add number of processes in command `/sys waitpid`
* core, alias, trigger: allow wildcard in commands `/bar`, `/item`, `/proxy`, `/alias` and `/trigger` (issue #1956)
* api: add support of format/translation of command arguments description line by line (issue #2005)
* api: add function string_concat (issue #2005)
* api: add functions util_strftimeval, util_parse_time, printf_datetime_tags, printf_y_datetime_tags (issue #649)
* api: add argument "date_usec" in hook_print callback (issue #649)
* api: add property "type" in function buffer_get_string
* api: add info "mouse"
* buflist: jump to previous/next buffer displayed in buflist item with ctrl+wheel up/down on a buflist item (issue #1473)
* irc: add option irc.look.display_host_wallops
* irc: add server option "anti_flood" (now in milliseconds), remove server options "anti_flood_prio_{high|low}" (issue #1039)
* irc: add option irc.look.list_buffer
* irc: change default value of server option "tls_priorities" to `NORMAL`
* irc: add support of RGB colors in messages, add option irc.color.term_remap (issue #2025)
* irc: add tags "nick_xxx" and "host_xxx" in all messages, including self and server messages
* irc: add option irc.look.ignore_tag_messages (issue #989)
* relay: change default value of option relay.network.tls_priorities to `NORMAL`
* trigger: change format of variables `${tg_date}` from "%Y-%m-%d %H:%M:%S" to "%FT%T.%f" (issue #649)
* trigger: rename local variable "trigger_filter" to "filter" on monitor buffer (issue #2037)
Bug fixes::
* core: fix crash on plugin reload when using musl libc (issue #2052)
* core: fix infinite loop in display when the chat area is too small (issue #2053)
* core: fix value of buffer variable "num_history" when the value defined in option weechat.history.max_commands is reached
* core: remove incorrect warning when binding keys kbd:[F10] to kbd:[F20] (issue #2039)
* core: call hook config when options are removed
* core: display an error with command `/history N` when N is not a valid integer
* core: fix memory leak when config version is invalid or not supported
* core: fix crash when "config_version" is present in a configuration file without a value
* core: display an error on startup if environment variable "HOME" is not set
* core: fix crash when a custom bar item name is already used by a default bar item (issue #2034)
* core: fix random timeouts when a lot of concurrent processes are launched with hook_process (issue #2033)
* api: return NULL instead of empty infolist "key" when context is not found
* irc: check if arguments are not NULL in some infos
* irc: fix info "irc_is_message_ignored" (issue #2059)
* irc: fix display of self messages when the message split fails due to inconsistent max lengths sent by the server in message 005
* irc: display messages 730/731 (monitored nicks online/offline) even if command `/notify` was not used (issue #2049)
* irc: remove trailing "\r\n" in signals "irc_out" and "irc_outtags" when messages are queued
* irc: fix target buffer of IRC message 337 (whois reply: "is hiding their idle time")
* irc: revert compute of nick colors to case sensitive way, deprecate again infos "irc_nick_color" and "irc_nick_color_name" (issue #194, issue #2032)
* relay: close properly connection with the IRC client in case of server disconnection (issue #2038)
* ruby: fix use of NULL variable when displaying exception
Tests::
* core: add tests on plugin config and plugin API info functions
* irc: add tests on info functions
Build::
* core: make libintl.h required if CMake option ENABLE_NLS is enabled (issue #2031)
* ruby: add detection of Ruby 3.3
[[v4.1.3]]
== Version 4.1.3 (2024-01-20)
Bug fixes::
* core: fix crash on plugin reload when using musl libc (issue #2052)
* core: fix infinite loop in display when the chat area is too small (issue #2053)
* irc: check if arguments are not NULL in some infos
* irc: fix info "irc_is_message_ignored" (issue #2059)
* irc: fix display of self messages when the message split fails due to inconsistent max lengths sent by the server in message 005
[[v4.1.2]]
== Version 4.1.2 (2023-12-03)
Bug fixes::
* core: fix value of buffer variable "num_history" when the value defined in option weechat.history.max_commands is reached
* core: remove incorrect warning when binding keys kbd:[F10] to kbd:[F20] (issue #2039)
* core: fix memory leak when config version is invalid or not supported
* core: fix crash when "config_version" is present in a configuration file without a value
* core: display an error on startup if environment variable "HOME" is not set
* irc: remove trailing "\r\n" in signals "irc_out" and "irc_outtags" when messages are queued
* irc: fix target buffer of IRC message 337 (whois reply: "is hiding their idle time")
* relay: close properly connection with the IRC client in case of server disconnection (issue #2038)
* ruby: fix use of NULL variable when displaying exception
[[v4.1.1]]
== Version 4.1.1 (2023-10-26)
Bug fixes::
* core: fix crash when a custom bar item name is already used by a default bar item (issue #2034)
* core: fix random timeouts when a lot of concurrent processes are launched with hook_process (issue #2033)
* irc: revert compute of nick colors to case sensitive way, deprecate again infos "irc_nick_color" and "irc_nick_color_name" (issue #194, issue #2032)
Build::
* core: make libintl.h required if CMake option ENABLE_NLS is enabled (issue #2031)
[[v4.1.0]]
== Version 4.1.0 (2023-10-15)
New features::
* core: add completion "eval_variables", used in completion of `/eval`
* core: add command `/sys` to show resource limits/usage and suspend WeeChat process, add key kbd:[Ctrl+z] to suspend WeeChat (issue #985)
* core: ignore key bindings with empty command
* core: add support of quotes in commands `/key bind` and `/key bindctxt`
* core: evaluate command given to `/repeat` with contextual variables (issue #2007)
* core: add option `callbacks` in command `/debug`
* core: add option type "enum" (issue #1973)
* core: add options weechat.buffer.* to save buffer properties set by user, add option `setauto` in command `/buffer` (issue #352)
* core: add parameters and key bindings to move to edges of current area with commands `/cursor go` and `/cursor move` (issue #1282)
* core: add variables "_chat_focused_line_bol" and "_chat_focused_line_eol" in focus data (issue #1955)
* api: add function hook_url, add option `url` in command `/debug` (issue #1723)
* api: add support of path to variable and hashtable comparison in function hdata_compare (issue #1066)
* api: add infos "nick_color_ignore_case" and "nick_color_name_ignore_case" (issue #194)
* api: add info "buffer" (issue #1962)
* buflist: add support of item names in command `/buflist refresh`, add completions "buflist_items" and "buflist_items_used"
* buflist: increase max number of buflist items from 3 to 5 (issue #1703)
* fset: add variable `allowed_values` in options, add options fset.color.allowed_values and fset.color.allowed_values_selected
* fset: allow long type name in type filter
* irc: add count for all nick modes in output of `/names` (issue #97, issue #2020)
* irc: add count and mode filter in command `/names` (issue #98)
* irc: compute color in case insensitive way, reintroduce infos "irc_nick_color" and "irc_nick_color_name", add support of server name (issue #194)
* irc: add buffer for /list reply, add options irc.color.list_buffer_line_selected, irc.color.list_buffer_line_selected_bg, irc.look.list_buffer_sort, irc.look.list_buffer_scroll_horizontal, irc.look.new_list_position, irc.look.list_buffer_topic_strip_colors (issue #1972)
* irc: display commands 716/717 in private buffer (if present) (issue #146)
* irc: create default options irc.ctcp.* when file irc.conf is created (issue #1974)
* irc: evaluate options irc.ctcp.* (issue #1974)
* irc: build dynamically the list of CTCPs supported in reply to "CTCP CLIENTINFO" (issue #1974)
* irc: remove Git revision and compilation date from CTCP VERSION reply (issue #1974)
* irc: remove default CTCP replies FINGER and USERINFO (issue #1974)
* irc, xfer: add support of passive DCC (issue #2004, issue #487)
* script: rename parameters up/down/go to -up/-down/-go in command `/script`
* script: allow jump to the last script with command `/script -go end`
* script: allow commands `/script autoload`, `/script noautoload`, `/script toggleautoload` with scripts not present in the repository (issue #1980)
* trigger: add options `-o`, `-ol`, `-i` and `-il` in command `/trigger list` (issue #1953)
Bug fixes::
* core: fix zombie processes after fork (hook process or connect) (issue #1994)
* core: fix generation of TOTP on Big Endian systems (issue #2021)
* core: fix cursor position after `/plugin list -i` or `/plugin list -il`
* core: display focus hashtable for debug even if no key is matching
* fset: add local key bindings during the buffer creation
* fset: remove extra spaces between min and max values when second format is used
* fset: fix mouse actions when second format is used
* fset: apply option fset.color.help_description (issue #1988)
* irc: move value `-all` at the end of completions for command `/ignore del`
* irc: fix memory leak when joining channels with keys
* irc: fix unexpected message sent to server when part of the second line of an IRC command (issue #1992)
* irc: fix display of country code in message 344 received as whois geo info (issue #1736)
* irc: add missing "account-tag" in list of supported capabilities
* irc: add channel in "autojoin" server option only when the channel is actually joined (issue #1990)
* relay: synchronize nick modes with IRC client upon connection (issue #1984)
* script: add local key bindings during the buffer creation
* script: add parameters up/down/go in `/help script` and command completion
* script: fix cursor position after `/script list -i` or `/script list -il`
* script: fix buffer used by command `/script list -i|-il|-o|-ol`
* xfer: display an error message when opening file for read or write fails (issue #2010)
Tests::
* core: add tests on GUI buffer functions
Build::
* core: fix build error if CMake option ENABLE_NLS is turned to off or if required dependencies are not found (issue #2026)
* core, logger, relay: make zstd dependency optional (issue #2024)
[[v4.0.8]]
== Version 4.0.8 (2024-01-20)
Bug fixes::
* core: fix crash on plugin reload when using musl libc (issue #2052)
* core: fix infinite loop in display when the chat area is too small (issue #2053)
* irc: check if arguments are not NULL in some infos
* irc: fix info "irc_is_message_ignored" (issue #2059)
* irc: fix display of self messages when the message split fails due to inconsistent max lengths sent by the server in message 005
[[v4.0.7]]
== Version 4.0.7 (2023-12-03)
Bug fixes::
* core: fix value of buffer variable "num_history" when the value defined in option weechat.history.max_commands is reached
* core: remove incorrect warning when binding keys kbd:[F10] to kbd:[F20] (issue #2039)
* core: fix memory leak when config version is invalid or not supported
* core: fix crash when "config_version" is present in a configuration file without a value
* core: display an error on startup if environment variable "HOME" is not set
* irc: remove trailing "\r\n" in signals "irc_out" and "irc_outtags" when messages are queued
* irc: fix target buffer of IRC message 337 (whois reply: "is hiding their idle time")
* relay: close properly connection with the IRC client in case of server disconnection (issue #2038)
* ruby: fix use of NULL variable when displaying exception
[[v4.0.6]]
== Version 4.0.6 (2023-10-26)
Bug fixes::
* core: fix crash when a custom bar item name is already used by a default bar item (issue #2034)
* core: fix generation of TOTP on Big Endian systems (issue #2021)
* irc: move value `-all` at the end of completions for command `/ignore del`
* irc: fix memory leak when joining channels with keys
Build::
* core: fix build error if CMake option ENABLE_NLS is turned to off or if required dependencies are not found (issue #2026, issue #2031)
[[v4.0.5]]
== Version 4.0.5 (2023-09-24)
New features::
* core: automatically backup config file read if it has an unsupported version (issue #2013)
* core: display a message when a configuration file is updated to a newer version
* python: make stub (weechat.pyi) compatible with Python 3.8 and 3.9 (issue #2006)
Bug fixes::
* irc: add option irc.look.open_pv_buffer_echo_msg to open private buffer on self message when capability echo-message is enabled (issue #2016)
* irc: fix title of private buffers wrongly set to own address when capability echo-message is enabled (issue #2016)
* irc: fix autojoin of channels when private buffers are opened (issue #2012)
* irc: fix string comparison when CASEMAPPING is set to "ascii"
* script: fix removal of script in system directory while trying to install a script (issue #2019)
* script: fix autoload of multiple scripts at once with `/script autoload` (issue #2018)
* script: fix crash when a `/script` command triggers another `/script` command (issue #923)
* xfer: fix memory leak on plugin unload
Tests::
* irc: add tests on server functions
[[v4.0.4]]
== Version 4.0.4 (2023-08-22)
Bug fixes::
* core: fix integer overflow when setting integer option with `++N` or `--N`
* core: fix increment/decrement of options weechat.notify.*
* irc: add missing tags on multiline messages (issue #1987)
* irc: fix redirection of command `/list` when the reply doesn't start with message 321 (start of /list)
* irc: fix wrong time displayed for CTCP messages received from self nick (issue #2000)
* logger: remove trailing empty line in display of backlog (issue #2002)
* perl: fix display of non-ASCII chars after load of a script with Perl >= 5.38 (issue #1996)
* script: adjust scroll after command `/script go N`
* scripts: fix function string_parse_size on 32-bit systems (python and ruby) (issue #1999)
* xfer: fix conversion of string to IPv4 on 32-bit systems (issue #1999)
Tests::
* irc: fix tests on function irc_join_compare_join_channel (issue #1997)
* scripts: fix tests of functions print_date_tag, print_y_date_tags and hook_timer on 32-bit systems (issue #1999)
[[v4.0.3]]
== Version 4.0.3 (2023-08-08)
Bug fixes::
* core: fix input length and crash after delete of line (issue #1989)
* irc: fix display of self CTCP message containing bold attribute (issue #1981)
* irc: fix memory leak in IRC message parser
* irc: fix switch to channel manually joined when server option autojoin_dynamic is on and option irc.look.buffer_switch_autojoin is off (issue #1982)
* irc: fix display of outgoing notice with channel when capability "echo-message" is enabled (issue #1991)
* relay: fix display of IRC CTCP messages received from client (issue #1986)
Build::
* doc: display a warning if a locale is missing with fallback to English for auto-generated content (issue #1985)
[[v4.0.2]]
== Version 4.0.2 (2023-07-12)
Bug fixes::
* core: fix renaming of options with command `/item rename` (issue #1978)
* core: don't send "key_pressed" signal again for the same key press (issue #1976)
* core: don't send "key_combo_*" signals for incomplete keys (issue #1976)
* core: add key kbd:[Ctrl+Backspace] in /help key (issue #1975)
* core: keep keys `ctrl-H` and `ctrl-?` (in lower case) if they were manually bound to custom commands in a previous version
Tests::
* core: fix hdata tests failure on Alpine 3.18
* relay: fix crash in tests on Alpine 3.18
Build::
* php: fix detection of PHP 8.2 on Alpine 3.18
[[v4.0.1]]
== Version 4.0.1 (2023-06-30)
* core: force key "return" to command "/input return" when migrating legacy keys
* core: display actual key name and command with key kbd:[Alt+k], remove key kbd:[Alt+K] (grab raw key) and associated commands `/input grab_raw_key` and `/input grab_raw_key_command`
* core: check for newline characters in string_is_whitespace_char (issue #1968)
* api: do not convert option name to lower case in API functions config_set_plugin and config_set_desc_plugin
* guile: fix crash on quit with Guile < 3 (issue #1965)
* irc: reply to a CTCP request sent to self nick (issue #1966)
* irc: sent "QUIT" message to servers connected with TLS on `/upgrade`
[[v4.0.0]]
== Version 4.0.0 (2023-06-24)
New features::
* core: use human readable key bindings, separate keys with comma in combos, remove modifier "meta2-", add option `legacy` in command `/key` (issue #1238, task #10317)
* core: make keys normal options, so they are shown and can be updated with `/set` and `/fset` commands (task #12427, task #11783)
* core: add key kbd:[Alt+K] (upper case) to grab raw key and its command (issue #1238)
* core: add option `key` in command `/debug` (issue #1238)
* core: force ctrl keys to lower case when they are added (issue #1875)
* core: use 256 colors by default and always allow 256 colors, find nearest color if less colors are available in terminal (issue #1920)
* core: insert multiple pasted lines in input instead of sending immediately, add keys to move and delete in a single line and whole input, add option weechat.look.input_multiline_lead_linebreak (issue #1502, issue #1503, issue #1504)
* core: render newline characters in chat line messages (issue #1908)
* core: don't split on newline characters in printf_date_tags when input_multiline is set (issue #1909)
* core: add key kbd:[l] (lower `L`) in cursor mode to quote line, add variable "_chat_focused_line" in function hashtable sent to hook_focus callback (issue #1913, issue #1914)
* core: add option `split_return` in command `/input` (issue #1916)
* core: send all command line parameters not beginning with a dash to all plugins
* core: add command `/reset` to reset options to their default values
* core: add option `rename` in command `/bar`
* core: add relative move of read marker with `/buffer set unread [+/-]N` (issue #1895)
* core: add access to hashtable properties in evaluation of expressions (issue #1888)
* core: display similar command names when a command is unknown (issue #1877)
* core: rename option weechat.color.status_name_ssl to weechat.color.status_name_tls (issue #1903)
* core: add option weechat.color.status_name_insecure to display buffer name with a specific color when not connected with TLS to the server
* core, plugins: make many identifiers case sensitive (issue #1872, issue #398, bug #32213)
* core: add item "mouse_status" in default status bar, change default color to lightgreen
* core, trigger: add options weechat.color.chat_status_disabled and weechat.color.chat_status_enabled, remove options trigger.color.trigger and trigger.color.trigger_disabled, add enabled/disabled status color in output of `/filter list` (issue #1820)
* core: add completions "filters_names_disabled" and "filters_names_enabled", used in completion of `/filter disable` and `/filter enable`
* api: add function config_set_version (issue #1238)
* api: don't split on newline by default in functions `command` and `command_options` when `input_multiline` is set to 0
* api: add optional argument with version in info "version_number"
* api: add info "auto_load_scripts"
* alias: use lower case for default aliases, rename all aliases to lower case on upgrade (issue #1872)
* alias: add `$&` to replace all arguments with double quotes escaped (issue #1140, issue #1190)
* alias: add options `missing` and `rename` in command `/alias`
* fifo: add support of escaped chars in text or commands sent (issue #1950)
* fset: add options fset.color.color_name and fset.color.color_name_selected (issue #1920)
* irc: rename "ssl" options to "tls", connect with TLS and port 6697 by default (issue #1903)
* irc: add support of capabilities "batch" and "draft/multiline" (issue #1292, issue #1923)
* irc: add support of capability "echo-message" (issue #139)
* irc: display CTCP ACTION to channel on the channel buffer (issue #207)
* irc: display STATUSMSG actions differently from standard actions on channels (issue #1577)
* irc: add modifier "irc_cap_sync_req" (issue #1767)
* irc: add support of "LINELEN" in message 005 (max message length in bytes) (issue #1927)
* irc: add support of "UTF8ONLY" in message 005 (issue #1688)
* irc: add command `/action` (issue #201, issue #1577)
* irc: add command `/rules` (issue #1864)
* irc: add command `/knock` (issue #7)
* irc: add server option "registered_mode", add fields "authentication_method" and "sasl_mechanism_used" in server (issue #1625)
* irc: add option `join` in command `/autojoin`
* irc: use key when /joining in open channel buffer (issue #1260)
* irc: add option `buffer` in command `/autojoin sort` (issue #1876)
* irc: add `${username}` in server options "nicks" and "username", change their default values to use it
* irc: add infos "irc_server_cap" and "irc_server_cap_value"
* irc: add option irc.look.display_host_notice
* irc: add tag "new_host_xxx" in message displayed for command CHGHOST (issue #1808)
* logger: add option logger.file.log_conditions (issue #1942)
* logger: add info "logger_log_file"
* relay: rename "ssl" options and protocol to "tls" (issue #1903)
* relay: make TLS certificate/key loading error handling more verbose (issue #1558)
* relay: add modifiers "relay_client_irc_in", "relay_client_irc_out1" and "relay_client_irc_out" in irc protocol
* relay: add support of capability "echo-message" in irc protocol (issue #1949)
* relay: add handshake option "escape_commands" in weechat protocol
* trigger: add completions "trigger_names_disabled" and "trigger_names_enabled", used in completion of `/trigger disable` and `/trigger enable`
Bug fixes::
* core: fix refresh of bar item "input_search" after buffer switch in root bars (issue #1939)
* core: fix completion after newline in input (issue #1925)
* core: fix partial completion when the common prefix found is empty (issue #340)
* core: display a specific error when trying to bind a key without area in mouse context
* core: fix display of key with command `/key bindctxt <context> <key>`
* core: fix default value of bar options (issue #846)
* core: allow any valid boolean value in command `/bar set <name> separator xxx`
* core: run config hooks only when value or default value is actually changed in set/reset/unset functions
* core: fix crash in case of NULL message sent to function gui_chat_printf_y_date_tags (issue #1883)
* core: allow command `/input move_next_word` going to the end of line (issue #1881)
* core: ignore incomplete ctrl/meta/meta2 codes in keys
* core: fix display glitch in command errors when a wide char is set in option weechat.look.command_chars (issue #1871)
* core: fix update of terminal title in some terminals like suckless terminal (stterm) (issue #1882)
* core: fix infinite loop on startup when running some gui commands before the switch to core buffer is performed (issue #1917)
* api: readjust string size in function string_dyn_free when string is not freed
* buflist: do not display keys added in default context on first load
* exec: remove trailing "M" (carriage return) in output of commands
* fset: remove scroll to top of fset buffer when options are added or removed (issue #1892)
* guile: fix crash when plugin is loaded on GNU/Hurd (issue #1951)
* irc: fix format of IRC tags displayed in messages (use "=" to separate key from value, do not convert "_" to "-") (issue #1929)
* irc: reset all internal servers variables when disconnecting
* irc: start from the beginning of nicks at automatic reconnection (issue #337, issue #965)
* irc: fix join of channels in "autojoin" server option on first connection to server if auto reconnection is performed (issue #1873)
* irc: update autojoin option with redirected channels when autojoin_dynamic is enabled (issue #1898)
* irc: update secure data when server autojoin option contains `${sec.data.xxx}` and option autojoin_dynamic is enabled (issue #1934)
* irc: don't switch to buffer of joined channel if it was not manually joined nor present in server autojoin option
* irc: fix target buffer for commands 432/433 (erroneous nickname/nickname already in use) when the nickname looks like a channel
* irc: display command 437 on server buffer when nickname cannot change while banned on channel (issue #88)
* irc: add messages 415 (cannot send message to channel) and 742 (mode cannot be set)
* irc: add missing tag "log3" in notify messages
* irc: add missing tags "irc_cap" and "log3" in cap messages (client capability)
* irc: fix split of CTCP message with no arguments
* irc: remove extra space in CTCP ACTION message sent without arguments
* logger: fix display of multiline messages in backlog (issue #1926)
* lua: fix crash with print when the value to print is not a string (issue #1904, issue #1905)
* relay: fix crash on `/upgrade` when at least a client is connected with weechat protocol
* relay: fix connection with IRC clients sending "CAP REQ :" (without capability) and not sending "CAP END" (issue #1040)
* ruby: fix crash on quit when a child process is still running (issue #1889, issue #1915)
* ruby: fix crash in display of exception backtrace with Ruby 3 (issue #1631, issue #1886)
* script: remove trailing "J" (line feed char) in source of scripts displayed
* spell: check buffer pointer received in info "spell_dict"
* trigger: make default triggers "cmd_pass", "cmd_pass_register" and "server_pass" compatible with multiline input (issue #1935)
* typing: fix crash when pointer buffer is not received in callback for signal "input_text_changed" (issue #1869)
* typing: remove nicks typing even when option typing.look.enabled_self is off (issue #1718)
Tests::
* core: add tests on URL functions
* gui: add tests on bar and key functions
* alias: add tests on alias functions
* irc: check tags in messages displayed by IRC plugin
* irc: add tests on function irc_server_alloc_with_url
* irc: add tests on message/notice/action/CTCP sent
* logger: add tests on tail functions
* relay: add tests on "irc" protocol
Build::
* core: remove build with autotools (issue #1860)
* core: remove RPM packaging
* core: remove build of .bz2 and .zst files in `make dist`
* core: remove obsolete cpack config
* core: add "stable-number" and "devel-number" in script version.sh
* core: add quotes around paths in CMake files (issue #29)
* doc: convert docgen.py to C, remove autogen files from repository, add parameter `--doc-gen` to `weechat-headless` binary, add CMake option "ENABLE_DOC_INCOMPLETE"
[[v3.8]]
== Version 3.8 (2023-01-08)
New features::
* core: add option weechat.look.chat_space_right (issue #1862)
* core: allow value "0" in buffer property "unread" to remove read marker from buffer
* core: add command `/allbuf`
* core: add command `/hotlist`
* core: move some `/input` actions to commands `/allbuf`, `/buffer` and `/hotlist`
* core: improve case convert and insensitive char comparisons (issue #258)
* core: add color attributes "blink" and "dim" (half bright) (issue #1855)
* core: allow command `/toggle` to create option before setting the value, if allowed in the section (issue #1837)
* core: add signals "buffer_user_input_xxx" and "buffer_user_closing_xxx" for buffers created with `/buffer add` (issue #1848)
* core: add identifier in buffer lines (issue #901)
* core: add option `unicode` in command `/debug`
* api: add Curl options for versions 7.64.0 to 7.87.0
* api: add functions string_strcmp and string_strncmp
* api: rename char comparison functions "utf8_char*" to "string_char*"
* api: return arithmetic difference between chars in functions string_charcmp, string_charcasecmp, string_charcasecmp_range, string_strcasecmp, string_strcasecmp_range, string_strncasecmp, string_strncasecmp_range, string_strcmp_ignore_chars
* api: return newly allocated string in functions string_tolower and string_toupper
* api: add function utf8_strncpy
* trigger: add regex command "y" to translate chars, set default regex command to "s" (regex replace) (issue #1510)
Bug fixes::
* core: fix color when the delimiter is not followed by a background color (issue #1867)
* core: display chars the same way in chat and bars, replace tabulations by spaces in bars, display chars < 32 with letter in chat, do not display soft hyphens, zero width spaces and all non-printable chars (issue #1659, issue #1669, issue #1770)
* core: fix context info in buffers with free content (issue #1832)
* core: keep terminal title unchanged when option weechat.look.window_title is set to empty value (issue #1835, issue #1836)
* core: fix crash when setting invalid color in option with null value (issue #1844)
* api: do not check conditions defined in option weechat.look.hotlist_add_conditions when adding buffer in hotlist with function buffer_set
* api: fix function strcmp_ignore_chars with case sensitive comparison and wide chars starting with the same byte
* api: send NULL values to config section callbacks in scripting API (issue #1843)
* api: fix function string_cut when there are non printable chars in suffix
* api: do not expect any return value in callbacks "callback_change" and "callback_delete" of function config_new_option (scripting API)
* irc: properly rename private buffer on nick changes or privmsg/notice message when new nick is the same with different case
* irc: do not join channels in server autojoin option after reconnection to the server (issue #560, bug #21529)
* irc: escape backslashes in raw buffer (issue #1838)
* trigger: fix variables sent to focus callback (issue #1858)
Tests::
* ci: remove use of repository ppa:ondrej/php, use standard PHP version (8.1) from Ubuntu 22.04
* core: add script check_scripts.sh
* core: add script check_curl_symbols.py
* gui: add tests on input functions
* scripts: add tests on config functions
Build::
* core: add CMake test called "notests" when tests are not compiled
* core: rename scripts: build-debian.sh to build_debian.sh, build-test.sh to build_test.sh, git-version.sh to set_git_version.sh
* debian: change dependency guile-2.2-dev to guile-3.0-dev
* python: remove support of Python 2.x
* ruby: add detection of Ruby 3.2
* spell: add detection of enchant-2 (issue #1859)
[[v3.7.1]]
== Version 3.7.1 (2022-10-21)
Bug fixes::
* trigger: execute trigger command on appropriate buffer for hooks command, command_run, line, modifier and print (issue #1841)
[[v3.7]]
== Version 3.7 (2022-10-09)
New features::
* core: add option `-save` in command `/upgrade` (issue #1630)
* core: add option weechat.look.highlight_disable_regex and buffer property "highlight_disable_regex" (issue #1798)
* core: sort filters by name (issue #1695)
* core: add key kbd:[Alt+Backspace] to delete previous word, change key kbd:[Ctrl+w] to delete previous word until whitespace (issue #559)
* api: rename function string_build_with_split_string to string_rebuild_split_string, add arguments "index_start" and "index_end"
* api: add info "uptime_current"
* api: add function crypto_hash_file
* api: add support of priority in function hook_line (issue #1821)
* api: add function string_parse_size
* api: add function file_compress
* buflist: add variable `${hotlist_priority_number}` (integer version of `${hotlist_priority}`)
* irc: display SETNAME command in channels and private buffers, add options irc.color.message_setname and irc.look.smart_filter_setname (issue #1805)
* irc: add option irc.look.display_pv_nick_change
* logger: add options to rotate and compress log files: logger.file.rotation_compression_level, logger.file.rotation_compression_type and logger.file.rotation_size_max (issue #314)
* spell: allow special dict value "-" to disable spell checking on a specific buffer (issue #1699)
* trigger: add elapsed time for trigger execution on monitor buffer when trigger debug is set, add option trigger.color.identifier (issue #1806)
* trigger: add variable `${tg_hook_type}` (issue #1765)
Bug fixes::
* core: fix wrong terminal title on terminal resize (issue #1702)
* core: fix page scroll in bare display (issue #1830)
* api: change type of argument remaining_calls in hook_timer callback from string to integer (in scripts)
* api: change type of argument object_id in upgrade_new callback from string to integer (in scripts)
* irc: fix duplicated channels in autojoin option when autojoin_dynamic is enabled (issue #1795)
* irc: fix display of TOPIC and QUIT messages with an empty trailing parameter (issue #1797)
* irc: fix parsing of messages with trailing spaces and no trailing parameter (issue #1803)
* irc: add missing tag "irc_numeric" in all numeric IRC commands (issue #1804)
* irc: display an error message when using command `/dcc` without xfer plugin loaded
* irc: display ACCOUNT and CHGHOST commands in private buffers
* irc: fix extract of isupport value when it is last in list and without value (issue #1807)
* irc: fix target buffer of generic errors when they contain a target nick (issue #1814)
* irc: fix display of message 350 (whois, gateway) (issue #1815)
* irc: replace chars "\01" by spaces in CTCP replies (issue #1819)
* irc: fix message when disconnecting from server in case of high lag when server option autoreconnect is off (issue #1708)
* irc: set local variable "filter" when doing `/server raw xxx` with raw buffer already opened (issue #1448)
* guile: fix function hdata_get_string
* javascript: fix return of long value in functions infolist_time, hdata_long and hdata_time
* php: fix function hdata_compare
* relay: fix parsing of IRC messages received from clients (issue #1796)
* relay: fix refresh of relay buffer after `/upgrade`
* ruby: fix function hdata_get_string
* scripts: fix issue with year ≥ 2038 in functions infolist_new_var_time, print_date_tags and print_y_date_tags (plugins: python/lua/tcl/guile/javascript)
* scripts: fix issue with long interval in function hook_timer (plugins: python/ruby/lua/tcl/guile/javascript/php)
* trigger: fix error on monitor buffer creation when trigger debug is >= 1 and monitor buffer is closed
* trigger: escape arguments with double quotes in output of `/trigger input|output|recreate` (issue #190)
* xfer: fix crash when closing DCC chat buffer
* xfer: disconnect all active DCC chats and files on `/upgrade`
* xfer: fix refresh of xfer buffer after `/upgrade`
* xfer: fix DCC file receive on Termux (issue #1811)
Tests::
* ci: switch from Ubuntu 20.04 to 22.04
* ci: remove macOS 10.15, add macOS 12
* core: add tests on filter functions
* scripts: add tests on hdata functions
* scripts: fix run of Guile test script
* xfer: add tests on file functions
[[v3.6]]
== Version 3.6 (2022-07-10)
New features::
* core: add command `/item` to create custom bar items (issue #808)
* core: add bar item "spacer" (issue #1700)
* core: add case conversion in evaluation of expressions with `lower:string` and `upper:string` (issue #1778)
* core: move detailed list of hooks from command `/plugin listfull` to `/debug hooks <plugin>`
* core: allow to remove multiple filters at once with command `/filter del`
* api: allow to catch multiple signals in functions hook_signal and hook_hsignal (issue #1780)
* irc: rename option `save` to `apply` in command `/autojoin`
* irc: add support of RPL_HELPSTART, RPL_HELPTXT and RPL_ENDOFHELP (messages 524, 704, 705, 706) (issue #1772)
* php: add support of PHP 8.2 (issue #1787)
Bug fixes::
* core: fix bad window size on startup with some terminals like https://github.com/kovidgoyal/kitty[kitty] (issue #1769)
* api: run hook_print callback also on empty messages
* buflist: fix memory leak when reading config and changing option buflist.look.sort
* irc: remove channel from autojoin option when manually closing a buffer with `/buffer close` or `/close`
* irc: fix add of channel to autojoin option when joining a channel with a buffer still opened
* relay: fix save of channels in autojoin option when JOIN and PART commands are received from an IRC relay client (issue #1771)
* trigger: add `${buffer.notify} > 0` in conditions of default trigger "beep"
* trigger: fix completion of command `/trigger add` when there are spaces in the following arguments
* trigger: fix memory leak in command `/trigger addinput`
[[v3.5]]
== Version 3.5 (2022-03-27)
New features::
* core: search in message tags when tags are displayed with `/debug tags`
* core: add support of date and tags in messages displayed in buffers with free content, add function printf_y_date_tags (issue #1746)
* irc: add command `/autojoin`, add server option "autojoin_dynamic"
* irc: add IRC message tags in messages displayed (issue #1680)
* relay: add `zstd` (https://facebook.github.io/zstd/[Zstandard]) compression in weechat protocol, remove option `compression` from `init` command, rename option relay.network.compression_level to relay.network.compression
* trigger: add variables `${tg_tag_irc_xxx}` containing IRC message tags (issue #1680)
Bug fixes::
* core: fix memory leak when removing a line on a buffer with free content
* core: remove obsolete option weechat.plugin.debug (issue #1744)
* core: fix search of commands with UTF-8 chars in name when option weechat.look.command_incomplete is on (issue #1739)
* core: fix display of hotlist in buflist after changing value of option weechat.look.hotlist_sort (issue #1733)
* api: add function buffer_new_props (issue #1759)
* api: fix add of infolist items in hashtable when prefix contains UTF-8 chars in function hashtable_add_from_infolist (issue #1739)
* guile: remove disabling of guile gmp allocator with Guile ≥ 3.0.8
* irc: fix completion of channel topic with UTF-8 chars (issue #1739)
* irc: fix parsing of messages 311, 312, 327 (whois) and 314 (whowas) in case of missing parameters
* irc: fix parsing of message 223 (m_filter) sent by InspIRCd server (issue #1751)
* irc: fix parsing of message 338 (whois, host) sent by Rizon server (issue #1737)
* irc: fix display of message 344 received as whois geo info (issue #1736)
* irc: fix display of message 901 (you are now logged out) (issue #1758)
* irc: fix display of IRC numeric messages with no parameters
* python: fix crash in hook callbacks after script loading failure (issue #1740)
* scripts: allow NULL in parameters "default_value" and "value" of function config_new_option (issue #1761)
* scripts: auto-load scripts with supported extensions only (issue #1698)
* tcl: add constant `$::weechat::WEECHAT_NULL` (issue #1761)
* trigger: fix search of triggers with UTF-8 chars in name (issue #1739)
* xfer: fix auto-accept of server/nick when the server name contains UTF-8 chars (issue #1739)
Tests::
* ci: add build of Debian packages
* core: add tests on GUI chat functions
Build::
* debian: change dependency libargon2-0-dev to libargon2-dev (debian #1005703)
* ruby: add detection of Ruby 3.1
[[v3.4.1]]
== Version 3.4.1 (2022-03-13)
Bug fixes::
* core: set again TLS verification functions after options weechat.network.gnutls_ca_system and weechat.network.gnutls_ca_user are changed (issue #1763, CVE-2022-28352)
[[v3.4]]
== Version 3.4 (2021-12-18)
New features::
* core: add support of static arrays in hdata
* core: add command `/toggle`
* api: add parameters pointers, extra_vars and options in function hdata_search
* api: add user variables in evaluation of expressions with `define:name,value`
* api: add IRC message parameters `param1` to `paramN` and `num_params` in output of irc_message_parse
* irc: allow quotes around IRC message in command `/server fakerecv`
* trigger: hide key and password in command `/msg nickserv setpass nick key password`
* trigger: add support of option `-server` when hiding passwords in command `/msg nickserv register`
Bug fixes::
* core: fix memory leak in evaluated expression `split:number,seps,flags,xxx` when multiple "strip_items" are given
* core: fix random integer number with large range in evaluation of expressions on GNU/Hurd
* core: fix access to integer/long/time arrays in hdata
* api: fix search of option when the section is not given in functions config_search_option and config_search_section_option
* irc: fix join of channels with long name (issue #1717)
* irc: fix parsing of parameters in all IRC messages (issue #1666)
* irc: fix parsing of CAP message when there is no prefix (issue #1707)
* irc: fix parsing of TAGMSG message when there is a colon before the channel
Documentation::
* doc: remove tester's guide
* doc: add dark theme (automatic, following browser/desktop settings)
* doc: make build reproducible
* doc: disable web fonts
* doc: switch from prettify to pygments for syntax highlighting
Tests::
* ci: add build with CMake and Ninja
* ci: add build on macOS 11
Build::
* ruby: add detection of Ruby 3.0 (issue #1721, issue #1605)
* core: add targets "changelog" and "rn" to build HTML version of ChangeLog and release notes (CMake build only)
[[v3.3]]
== Version 3.3 (2021-09-19)
New features::
* core: change key kbd:[Alt+h] to kbd:[Alt+h], kbd:[Alt+c] (clear hotlist)
* core: add options `hotlist_remove_buffer`, `hotlist_restore_buffer` and `hotlist_restore_all` in command `/input`, add default keys kbd:[Alt+h], kbd:[Alt+m] (remove buffer), kbd:[Alt+h], kbd:[Alt+r] (restore hotlist in current buffer) and kbd:[Alt+h], kbd:[Alt+Shift+R] (restore hotlist in all buffers)
* core: add option `certs` in command `/debug`
* core: add options `-o`, `-ol`, `-i` and `-il` in command `/plugin list`
* api: add split of string and shell arguments in evaluation of expressions with `split:number,seps,flags,xxx` and `split_shell:number,xxx`
* api: add `${re:repl_index}` to get the index of replacement in function string_eval_expression (issue #1689)
* api: add random integer number in evaluation of expressions with `random:min,max`
* api: add function string_cut
* api: add function file_copy (issue #1667)
* api: remember insertion order in hashtables
* api: add keys/values with tags in output of irc_message_parse_to_hashtable (issue #1654)
* irc: add option `-parted` in command `/allchan` (issue #1685)
* irc: allow signals "irc_raw_in" and "irc_in" to eat messages (issue #1657)
* irc: implement IRCv3.2 SASL authentication, add command `/auth`, reconnect by default to the server in case of SASL authentication failure (issue #413)
* irc: add support of capability "message-tags" and TAGMSG messages (issue #1654)
* irc: enable all capabilities by default (if supported by server and WeeChat), change default value of option irc.server_default.capabilities to `*` (issue #320)
* irc: add options irc.look.display_account_message and irc.look.display_extended_join (issue #320)
* irc: add command `/setname`, add support of message and capability "setname" (issue #1653)
* irc: always set realname in nicks even when extended-join capability is not enabled (issue #1653)
* irc: add support of FAIL/WARN/NOTE messages (issue #1653)
* irc: drop support of DH-BLOWFISH and DH-AES SASL mechanisms (issue #175)
* typing: new plugin "typing": display users currently writing messages on IRC channel/private buffers
Bug fixes::
* core: fix decoding of attributes in basic ANSI colors (issue #1678)
* api: fix function string_match with joker in the string if multiple words matched in input string
* irc: fix send of empty JOIN when connecting to a server with only parted channels (issue #1638)
* irc: fix SASL authentication when AUTHENTICATE message is received with a server name (issue #1679)
* irc: remove unneeded message about Diffie-Hellman shared secret exchange during SSL connection to server (issue #857)
* irc: escape/unescape IRC message tags values (issue #1654)
* irc: set notify level to "private" for received WALLOPS
* script: fix move of installed script on another filesystem (issue #1667)
Documentation::
* add Spanish FAQ (issue #1656)
* add Serbian translations (issue #1655)
Tests::
* ci: switch to PHP 8.0
* ci: add build on macOS
Build::
* core: fix build on macOS (issue #1662)
* lua: add detection of Lua 5.4
* php: add support of PHP 8.0 and 8.1 (issue #1599, issue #1668)
[[v3.2.1]]
== Version 3.2.1 (2021-09-04)
Bug fixes::
* relay: fix crash when decoding a malformed websocket frame (CVE-2021-40516)
[[v3.2]]
== Version 3.2 (2021-06-13)
New features::
* core: use XDG directories by default (config, data, cache, runtime) (issue #1285)
* core: add option weechat.network.gnutls_ca_system, rename option weechat.network.gnutls_ca_file to weechat.network.gnutls_ca_user (now evaluated), delete and reload certificates when options are changed (issue #972)
* core: evaluate option weechat.plugin.path, change default value to `${weechat_data_dir}/plugins`
* core: add options to customize commands executed on system signals received (SIGHUP, SIGQUIT, SIGTERM, SIGUSR1, SIGUSR2) (issue #1595)
* core: quit WeeChat by default when signal SIGHUP is received in normal run, reload configuration in weechat-headless (issue #1595)
* core: add signals "cursor_start" and "cursor_end"
* api: add function crypto_hmac (issue #1628)
* api: add translated string in evaluation of expressions with `translate:xxx`
* api: add evaluation of WeeChat directories with `${weechat_xxx_dir}` in evaluated strings
* api: add optional key "directory" in hashtable options of function/modifier string_eval_path_home
* api: add supported prefixes `${weechat_xxx_dir}` in function mkdir_home
* api: add infos "weechat_config_dir", "weechat_data_dir", "weechat_cache_dir" and "weechat_runtime_dir"
* api: add support of pointer names in function string_eval_expression (direct and in hdata)
* api: add info "weechat_daemon"
* buflist: add option buflist.format.tls_version
* fifo: change default value of option fifo.file.path to `${weechat_runtime_dir}/weechat_fifo_${info:pid}`
* irc: add support of SASL mechanisms SCRAM-SHA-1, SCRAM-SHA-256 and SCRAM-SHA-512 (issue #1628)
* irc: add variable `${target}` (target nick) in commands `/kick` and `/kickban`
* irc: add bar item "tls_version", add options irc.color.item_tls_version_ok, irc.color.item_tls_version_deprecated and irc.color.item_tls_version_insecure (issue #1622)
* irc: evaluate server options "sasl_key" and "ssl_cert"
* logger: change default value of option logger.file.path to `${weechat_data_dir}/logs`
* python: add stub for WeeChat API (issue #1377)
* relay: evaluate option relay.network.ssl_cert_key, change default value to `${weechat_config_dir}/ssl/relay.pem`
* script: change default value of option script.scripts.path to `${weechat_cache_dir}/script`
* trigger: add variables `${tg_shell_argc}` and `${tg_shell_argvN}` in command trigger evaluated strings (issue #1624)
* xfer: change default value of option xfer.file.download_path to `${weechat_data_dir}/xfer`
Bug fixes::
* core: split startup commands before evaluating them (issue #1643)
* core: set server name when connecting to server with TLS (SNI extension) only if it's not an IPV4/IPv6 (issue #1635)
* core: use function mallinfo2 instead of mallinfo when available (issue #1636)
* core: display a warning when the file with certificate authorities is not found (option weechat.network.gnutls_ca_file)
* core: evaluate left/right part of comparison after split on the comparison operator in `${if:xxx}` (issue #1627)
* core: prevent switching to start of visited buffers when jumping to next (issue #1591, issue #1592)
* core: recreate buflist and fset bars on `/reload` when WeeChat is started without configuration files (issue #1618)
* buflist: fix comparison of hotlists in option buflist.look.sort (issue #1621)
* irc: split server command before evaluating it (issue #1643)
* xfer: make file transfer fail when option xfer.file.auto_rename is off and file already exists (issue #1633)
Tests::
* ci: switch from Ubuntu 18.04 to 20.04
* trigger: add tests on main trigger functions
Build::
* core: remove build option CA_FILE
* core: set WeeChat home to empty string by default in CMake and autotools
[[v3.1]]
== Version 3.1 (2021-03-07)
New features::
* core: add options weechat.look.hotlist_update_on_buffer_switch and weechat.look.read_marker_update_on_buffer_switch (issue #992, issue #993)
* core: add option sec.crypt.passphrase_command to read passphrase from an external program on startup, remove option sec.crypt.passphrase_file (issue #141)
* core: improve debug in command `/eval`: display more verbose debug with two `-d`, add indentation and colors
* core: add options `setvar` and `delvar` in command `/buffer`, rename option `localvar` to `listvar`
* core: add buffer local variable "completion_default_template" (evaluated) to override the value of option "weechat.completion.default_template" (issue #1600)
* core: add option `recreate` in command `/filter`
* core: add raw string in evaluation of expressions with `raw:xxx` (issue #1611)
* core: add evaluation of conditions in evaluation of expressions with `eval_cond:xxx` (issue #1582)
* api: add info_hashtable "secured_data"
* irc: add info "irc_is_message_ignored"
* irc: add server option "default_chantypes", used when the server does not send them in message 005 (issue #1610)
* trigger: add variable `${tg_trigger_name}` in command trigger evaluated strings (issue #1580)
Bug fixes::
* core: fix quoted line in cursor mode (issue #1602)
* core: fix wrong size of the new window after vertical split (issue #1612)
* core: do not remove quotes in arguments of command `/eval` as they can be part of the evaluated expression/condition (issue #1601)
* core: display an error when the buffer is not found with command `/command -buffer`
* buflist: add option buflist.look.use_items to speed up display of buflist (issue #1613)
* irc: add bar item "irc_nick_prefix"
* irc: fix separator between nick and host in bar item "irc_nick_host"
* irc: fix completion of commands `/halfop` and `/dehalfop`
Documentation::
* do not build weechat-headless man page if headless binary is disabled (issue #1607)
[[v3.0.1]]
== Version 3.0.1 (2021-01-31)
Bug fixes::
* exec: fix search of command by identifier
* spell: fix refresh of bar item "spell_suggest" when the input becomes empty (issue #1586)
* spell: fix crash with IRC color codes in command line (issue #1589)
[[v3.0]]
== Version 3.0 (2020-11-11)
New features::
* api: add optional list of colors in infos "nick_color" and "nick_color_name" (issue #1565)
* api: add argument "bytes" in function string_dyn_concat
* api: add function string_color_code_size (issue #1547)
* exec: add option `-oerr` to send stderr to buffer (now disabled by default) (issue #1566)
* fset: add option fset.look.auto_refresh (issue #1553)
* irc: add pointer to irc_nick in focus of bar item "buffer_nicklist" (issue #1535, issue #1538)
* irc: allow to send text on buffers with commands `/allchan`, `/allpv` and `/allserv`
* irc: evaluate command executed by commands `/allchan`, `/allpv` and `/allserv` (issue #1536)
* script: add option script.scripts.download_enabled (issue #1548)
* trigger: add variable "tg_argc" in data set by command trigger (issue #1576)
* trigger: add variable "tg_trigger_name" in data set by all triggers (issue #1567, issue #1568)
Bug fixes::
* core: set "notify_level" to 3 if there is a highlight in the line (issue #1529)
* core: do not add line with highlight and tag "notify_none" to hotlist (issue #1529)
* irc: remove SASL timeout message displayed by error after successful SASL authentication (issue #1515)
* irc: send all channels in a single JOIN command when reconnecting to the server (issue #1551)
* script: do not automatically download list of scripts on startup if the file is too old (issue #1548)
* spell: properly skip WeeChat and IRC color codes when checking words in input (issue #1547)
* trigger: fix recursive calls to triggers using regex (issue #1546)
* trigger: add `${tg_tags} !!- ,notify_none,` in conditions of default trigger "beep" (issue #1529)
Tests::
* core: add tests on GUI line functions
Build::
* core: disable debug by default in autotools build
* tests: fix compilation with CppUTest ≥ 4.0
[[v2.9]]
== Version 2.9 (2020-07-18)
New features::
* core: add bar option "color_bg_inactive": color for window bars in inactive window (issue #732)
* core: add Alacritty title escape sequence support (issue #1517)
* core: display notify level for current buffer with command `/buffer notify` (issue #1505)
* core: count only visible nicks in bar item "buffer_nicklist_count", add bar items "buffer_nicklist_count_groups" and "buffer_nicklist_count_all" (issue #1506)
* core: set default size for input bar to 0 (automatic) (issue #1498)
* core: add default key kbd:[Alt+Enter] to insert a newline (issue #1498)
* core: add flag "input_multiline" in buffer (issue #984, issue #1063)
* core: add a scalable WeeChat logo (SVG) (issue #1454, issue #1456)
* core: add base 16/32/64 encoding/decoding in evaluation of expressions with `base_encode:base,xxx` and `base_decode:base,xxx`
* core: add case sensitive wildcard matching comparison operator (`+==*+` and `+!!*+`) and case sensitive/insensitive include comparison operators (`+==-+`, `+!!-+`, `+=-+`, `+!-+`) in evaluation of expressions
* core: add default key kbd:[Alt+Shift+N] to toggle nicklist bar
* core: add command line option `--stdout` in weechat-headless binary to log to stdout rather than ~/.weechat/weechat.log (issue #1475, issue #1477)
* core: reload configuration files on SIGHUP (issue #1476)
* api: add pointer "_bar_window" in hashtable sent to hook focus callback (issue #1450)
* api: add info_hashtable "focus_info" (issue #1245, issue #1257)
* api: rename function hook_completion_get_string to completion_get_string and hook_completion_list_add to completion_list_add
* api: add functions completion_new, completion_search and completion_free
* api: add hdata "completion_word"
* buflist: add default key kbd:[Alt+Shift+B] to toggle buflist
* buflist: add options enable/disable/toggle in command `/buflist`
* buflist: evaluate option buflist.look.sort so that sort can be customized for each of the three buflist bar items (issue #1465)
* irc: add support of UTF8MAPPING (issue #1528)
* irc: display account messages in buffers (issue #1250)
* python: add WeeChat sharedir python directory to PYTHONPATH (issue #1537)
* relay: increase default limits for IRC backlog options
* relay: add command "handshake" in weechat relay protocol and nonce to prevent replay attacks, add options relay.network.password_hash_algo, relay.network.password_hash_iterations, relay.network.nonce_size (issue #1474)
* relay: add command "completion" in weechat relay protocol to perform a completion on a string at a given position (issue #1484)
* relay: add option relay.network.auth_timeout
* relay: update default colors for client status
* relay: add status "waiting_auth" in irc and weechat protocols (issue #1358)
* trigger: evaluate arguments of command when the trigger is created (issue #1472)
Bug fixes::
* core: fix command `/window scroll_beyond_end` when buffer has fewer lines than chat height (issue #1509)
* core: force buffer property "time_for_each_line" to 0 for buffers with free content (issue #1485)
* core: don't collapse consecutive newlines in lines displayed before the first buffer is created
* core: don't remove consecutive newlines when pasting text (issue #1500)
* core: don't collapse consecutive newlines in bar content (issue #1500)
* core: fix WEECHAT_SHAREDIR with CMake build (issue #1461)
* core: fix memory leak in calculation of expression on FreeBSD (issue #1469)
* core: fix resize of a bar when its size is 0 (automatic) (issue #1470)
* api: fix use of pointer after free in function key_unbind
* api: replace plugin and buffer name by buffer pointer in argument "modifier_data" sent to weechat_print modifier callback (issue #42)
* buflist: add "window" pointer in bar item evaluation only if it's not NULL (if bar type is "window")
* exec: fix use of same task id for different tasks (issue #1491)
* fifo: fix errors when writing in the FIFO pipe (issue #713)
* guile: enable again `/guile` eval (issue #1514)
* irc: use new default chantypes "#&" when the server does not send it
* irc: add support of optional server in info "irc_is_nick", fix check of nick using UTF8MAPPING isupport value (issue #1528)
* irc: fix add of ignore with flags in regex, display full ignore mask in list of ignores (issue #1518)
* irc: do not remove spaces at the end of users messages received (issue #1513)
* irc: fix realname delimiter color in WHO/WHOX response (issue #1497)
* irc: reuse a buffer with wrong type "channel" when a private message is received (issue #869)
* python: fix crash when invalid UTF-8 string is in a WeeChat hashtable converted to a Python dict (issue #1463)
* relay: add missing field "notify_level" in message "_buffer_line_added" (issue #1529)
* relay: fix slow send of data to clients when SSL is enabled
* trigger: only return trigger's return code when condition evaluates to true (issue #592)
* trigger: fix truncated trigger command with commands `/trigger` input|output|recreate
* trigger: do not hide values of options with `/set` command in cmd_pass trigger
Documentation::
* add includes directory
* merge 53 auto-generated files into 11 files
* fix broken literal blocks in Japanese docs with Firefox (issue #1466)
Tests::
* ci: add CI with GitHub Actions, move codecov.io upload to GitHub Actions
* ci: switch to Ubuntu Bionic on Travis CI, use pylint3 to lint Python scripts
* core: run tests on plugins only if the plugins are enabled and compiled
* irc: add tests on IRC color and channel functions
Build::
* javascript: disable build by default and remove Debian packaging of JavaScript plugin (issue #360)
* core: make GnuTLS a required dependency
* core: fix build with CMake 3.17.0
* core: fix build with cygport on Cygwin
[[v2.8]]
== Version 2.8 (2020-03-29)
New features::
* core: add variable "old_full_name" in buffer, set during buffer renaming (issue #1428)
* core: add debug option `-d` in command `/eval` (issue #1434)
* api: add functions crypto_hash and crypto_hash_pbkdf2
* api: add info "auto_connect" (issue #1453)
* api: add info "weechat_headless" (issue #1433)
* buflist: add pointer "window" in bar item evaluation
* irc: add support of fake servers (no I/O, for testing purposes)
* relay: accept hash of password in init command of weechat protocol with option "password_hash" (PBKDF2, SHA256, SHA512)
* relay: reject client with weechat protocol if password or TOTP is received in init command but not set in WeeChat (issue #1435)
Bug fixes::
* core: fix memory leak in completion
* core: flush stdout/stderr before forking in hook_process function (issue #1441)
* core: fix evaluation of condition with nested "if" (issue #1434)
* irc: split AUTHENTICATE message in 400-byte chunks (issue #1459)
* irc: copy temporary server flag in command `/server copy`
* irc: add nick changes in the hotlist (except self nick change)
* irc: case-insensitive comparison on incoming CTCP command, force upper case on CTCP replies (issue #1439)
* irc: fix memory leak when the channel topic is changed
* logger: fix crash when logging is disabled on a buffer and the log file was deleted in the meanwhile, when option logger.file.info_lines is on (issue #1444)
* php: fix crash when loading script with PHP 7.4 (issue #1452)
* relay: update buffers synchronization when buffers are renamed (issue #1428)
* script: fix memory leak in read of script repository file if it has invalid content
* script: fix unexpected display of scripts list in buffer with command `/script list -i`
* xfer: send signal "xfer_ended" after the received file has been renamed (issue #1438)
Tests::
* scripts: fix generation of test scripts with Python 3.8
* core: add tests on function secure_derive_key
* core: add tests on functions util_get_time_diff and util_file_get_content
* irc: add tests on IRC protocol functions and callbacks
Build::
* core: fix Cygwin build
* guile: add detection of Guile 3.0.0 (issue #1442)
* irc: fix build with GnuTLS < 3.1.0 (issue #1431)
* php: add detection of PHP 7.4
* ruby: add detection of Ruby 2.7 (issue #1455)
[[v2.7.1]]
== Version 2.7.1 (2020-02-20)
Bug fixes::
* irc: fix crash when a new message 005 is received with longer nick prefixes (CVE-2020-9760)
* irc: fix crash when receiving a malformed message 352 (who) (CVE-2020-9759)
* irc: fix crash when receiving a malformed message 324 (channel mode) (CVE-2020-8955)
[[v2.7]]
== Version 2.7 (2019-12-08)
New features::
* core: add option weechat.look.nick_color_hash_salt to shuffle nick colors (issue #635)
* core: add different icons sizes (16x16 to 512x512) (issue #1347)
* core: add file weechat.desktop
* core: add reverse of string for screen in evaluation of expressions with `revscr:xxx`
* core: add length of string (number of chars and on screen) in evaluation of expressions with `length:xxx` and `lengthscr:xxx`
* core: add calculation of expression in evaluation of expressions with `calc:xxx` (issue #997)
* core: add optional default path (evaluated) in completion "filename"
* core: add support of modifiers in evaluation of expressions with `modifier:name,data,string`
* api: add modifier "color_encode_ansi" (issue #528)
* api: add modifier "eval_path_home"
* irc: add filters on raw buffer (issue #1000)
* irc: add option irc.look.display_pv_warning_address to display a warning in private buffer if the remote nick address has changed (issue #892)
* irc: add server option "ssl_password" (issue #115, issue #1416)
* irc: add "user" in output of irc_message_parse (issue #136)
* irc: add options irc.color.message_kick and irc.color.reason_kick (issue #683, issue #684)
* logger: add option logger.file.color_lines (issue #528, issue #621)
* script: add options `-ol` and `-il` in command `/script list` to send translated string with list of scripts loaded, display "No scripts loaded" if no scripts are loaded
* xfer: add option xfer.file.download_temporary_suffix with default value ".part" (issue #1237)
Bug fixes::
* core: set buffer name, short name and title only if the value has changed
* core: fix scrolling up in bare mode when switched to bare mode at the top of the buffer (issue #899, issue #978)
* core: optimize load of configuration files
* core: fix window separators not respecting window splits (issue #630)
* core: fix cursor mode info when prefix_align is none and with words split across lines (issue #610, issue #617, issue #619)
* core: add support of reverse video in ANSI color codes
* core: fixed segfault during excessive evaluation in function string_repeat (issue #1400)
* buflist: fix extra spaces between buffers when conditions are used to hide buffers (regression introduced in version 2.6) (issue #1403)
* irc: do not automatically open a channel with name "0" (issue #1429)
* irc: remove option irc.network.channel_encode, add server option "charset_message" to control which part of the IRC message is decoded/encoded to the target charset (issue #832)
* irc: use path from option xfer.file.upload_path to complete filename in command `/dcc send` (issue #60)
* logger: fix write in log file if it has been deleted or renamed (issue #123)
* python: send "bytes" instead of "str" to callbacks in Python 3 when the string is not UTF-8 valid (issue #1389)
* relay: send message "_buffer_title_changed" to clients only when the title is changed
* xfer: fix memory leak when a xfer is freed and when the plugin is unloaded
Tests::
* core: add tests on GUI color functions
Build::
* core: fix build on Haiku (issue #1420)
* core: fix build on Alpine
* core: remove file FindTCL.cmake
* core: display an error on missing dependency in CMake (issue #916, issue #956)
* debian: disable Javascript plugin on Debian Sid and Ubuntu Eoan
* debian: build with Guile 2.2
* guile: add support of Guile 2.2, disable `/guile eval` (issue #1098)
* python: add detection of Python 3.8
[[v2.6]]
== Version 2.6 (2019-09-08)
New features::
* core: add support of 32767 color pairs (issue #1343, issue #1345)
* core: add option `close` in command `/window` (issue #853)
* api: add infos "term_colors" and "term_color_pairs"
* api: add function list_user_data (issue #666)
* api: add argument "strip_items" in function string_split
* buflist: add infolist "buflist" with list of buffer pointers (issue #1375)
* exec: evaluate option exec.command.shell, change default value to `${env:SHELL}` (issue #1356)
* fset: add filters `h=xxx` and `he=xxx` to filter options by description (translated or in English)
* irc: make command char optional in server option "command" (issue #615)
* irc: add variables "user_max_length" and "host_max_length" in server structure (issue #1387)
Bug fixes::
* core: use fixed-width integer for computing nick and hashtable DJB2 key hashes, add values "djb2_32" and "sum_32" for option weechat.look.nick_color_hash (issue #1394)
* core: create or update option weechat.notify.xxx when function buffer_set is called with "notify" property (issue #1390)
* core: fix memory leak in case of error when building content of bar item for display (issue #1384)
* core: send command line parameter to plugins only if the name starts with the plugin name followed by a colon
* core: auto disable upgrade process (command line option `--upgrade`) if the file weechat.upgrade is not found
* core: replace newlines by spaces in argument "completion" of function hook_command (issue #538)
* core: replace char "," by "~" in color codes to separate foreground from background (issue #1264)
* alias: remove default aliases `/AME` and `/AMSG` (issue #1355)
* buflist: use extra variables in option buflist.look.display_conditions (issue #1393)
* irc: fix parsing of messages 346 (invite list), 348 (exception list), 367 (ban list) and 728 (quiet list) when there is a colon before the timestamp (issue #1396)
* irc: fix memory leak when removing a server
* irc: fix length of user/nick/host in split of messages (issue #1387)
* irc: quote NICK command argument sent to the server only if there's a ":" in the nick (issue #1376, issue #1319)
* irc: return all arguments in the PONG response to a PING (issue #1369)
* irc: disable server reconnection when the server buffer is closed (issue #236)
* irc: strip spaces at beginning/end of addresses in server option "addresses" (issue #195)
* irc: fix display of enabled/disabled client capabilities received in command CAP ACK (issue #151)
* ruby: fix conversion of big integers on 32bit architecture (issue #1395)
Tests::
* irc: add tests on IRC ignore, message and nick functions
Build::
* core: fix compilation with autotools on FreeBSD 12.0
* debian: disable Javascript plugin on Debian Buster/Bullseye (issue #1374)
* python: compile with Python 3 by default
* python: use pkg-config to detect Python (issue #1382)
[[v2.5]]
== Version 2.5 (2019-06-06)
New features::
* core: use getopt to parse command line arguments
* core: add option weechat.look.prefix_same_nick_middle (issue #930, issue #931)
* core: add option weechat.look.buffer_time_same (issue #1127)
* core: use seconds by default in `/repeat` interval, allow unit for the interval
* core: allow text in addition to a command in command `/repeat`
* core: add option `addreplace` in command `/filter` (issue #1055, issue #1312)
* api: return allocated string in hook_info callback and function info_get
* api: replace argument "keep_eol" by "flags" in function string_split (issue #1322)
* api: add function command_options (issue #928)
* api: add function string_match_list
* irc: add bar items "irc_nick", "irc_host" and "irc_nick_host"
* irc: add variable "host" in server structure
* relay: add support of UNIX socket (issue #733, issue #1333)
* relay: add option relay.weechat.commands (issue #928)
* script: use SHA-512 instead of MD5 for script checksum
* spell: rename aspell plugin to spell (issue #1299)
* trigger: add hooks "info" and "info_hashtable"
* xfer: rename option xfer.network.speed_limit to xfer.network.speed_limit_send, add option xfer.network.speed_limit_recv (issue #269)
Bug fixes::
* core: don't execute command scheduled by `/repeat` and `/wait` if the buffer does not exist any more
* core: set max length to 4096 for `/secure passphrase` (issue #1323)
* core: refilter only affected buffers on filter change (issue #1309, issue #1311)
* fset: fix slow refresh of fset buffer during `/reload` (issue #1313)
* irc: fix parsing of MODE command when there are colons after the first mode argument (issue #1296)
* irc: fix memory leak in infos "irc_server_isupport" and "irc_server_isupport_value"
* irc: fix length of string for SHA-512, SHA-256 and SHA-1 in help on ssl_fingerprint option
* irc: display an error with `/allchan -current` or `/allpv -current` if the current buffer is not an irc buffer (issue #1325)
* irc: fix update of channels modes with arguments when joining a channel (issue #1324)
* irc: quote NICK command argument sent to the server (issue #1319)
* php: fix memory leak in functions string_eval_expression, string_eval_path_home, key_bind, hook_process_hashtable, hook_hsignal_send, info_get_hashtable, hdata_update
* relay: fix crash when a weechat relay client reloads the relay plugin with `/plugin reload relay` (issue #1327)
* spell: fix detection of nick followed by the nick completer (issue #1306, issue #1307)
* trigger: fix split of hook arguments (issue #1322)
Tests::
* core: add tests on function util_signal_search
Build::
* core: fix value of libdir in file weechat.pc (issue #1341, issue #1342)
* core: fix generation of man page weechat-headless with autotools
* core: add CMake option "ENABLE_CODE_COVERAGE" to compile with code coverage options (CMake ≥ 3.0 is now required)
* core: fix compilation on Mac OS (issue #1308)
* lua: add detection of Lua 5.3 with autotools
* ruby: add detection of Ruby 2.6 (issue #1346)
* tests: fix compilation of tests on FreeBSD
[[v2.4]]
== Version 2.4 (2019-02-17)
New features::
* core: do not automatically add a space when completing "nick:" at the beginning of command line (the space can be added in option weechat.completion.nick_completer)
* core: add default keys kbd:[Ctrl+F11]/kbd:[Ctrl+F12] to scroll up/down one page in nicklist (same action as kbd:[F11]/kbd:[F12])
* core: add command line option `-t` (or `--temp-dir`) to create a temporary WeeChat home (deleted on exit)
* api: add functions string_base_encode and string_base_decode, remove functions string_encode_base64 and string_decode_base64
* api: add support of Time-based One-Time Password (TOTP), add infos "totp_generate" and "totp_validate"
* buflist: add default keys kbd:[Ctrl+F1]/kbd:[Ctrl+F2] to scroll up/down one page in buflist (same action as kbd:[F1]/kbd:[F2])
* buflist: add variable `${number2}`, always set with the indented buffer number
* exec: add option exec.command.shell to customize the shell used with `/exec -sh`
* relay: add support of close frame in websocket connection (issue #1281)
* relay: add support of Time-based One-Time Password (TOTP) as second authentication factor in weechat protocol
Bug fixes::
* core: fix compilation of empty regular expression (not allowed on FreeBSD)
* core: fix forced highlight on messages sent to other buffers (issue #1277)
* aspell: look for suggestions only if the misspelled word has changed (issue #1175)
* buflist: add alternate key codes for kbd:[F1]/kbd:[F2] and kbd:[Alt+F1]/kbd:[Alt+F2] (compatibility with terminals)
* buflist: fix warning displayed when script buffers.pl is loaded (issue #1274)
* irc: fix parsing of whois messages in notify
* irc: fix parsing of MODE, 341 (invite) and CHGHOST commands when there are colons (issue #1296)
* irc: return IRC color code instead of WeeChat color code when decoding a too short ANSI color sequence
* irc: fix encoding of italic attribute when colors are removed
* irc: fix parsing of "time" message tag on FreeBSD (issue #1289)
* relay: fix crash on `/upgrade` when the real IP is not set (issue #1294)
* relay: fix memory leak in connection of client
Tests::
* core: fix UTF-8 and evaluation tests on FreeBSD
* irc: add tests on IRC configuration and protocol functions
Build::
* core: add C compiler flag "-fsigned--char" to force "char" data type to be always signed (issue #1277)
[[v2.3]]
== Version 2.3 (2018-10-21)
New features::
* core: add repeat of string in evaluation of expressions with `repeat:count,string` (issue #958)
* core: allow specifying buffer number/name for `/buffer localvar` (issue #1259)
* core: allow multiple arguments in command `/buffer close`
* core: allow multiple options `-r` (or `--run-command`) in command line arguments (issue #1248)
* core: add command line option `-P` (or `--plugins`) to customize the plugins to load at startup
* core: allow partial buffer name in command `/buffer close` (issue #1226)
* api: add function hook_line (issue #66)
* irc: display a warning when the value of option irc.server.xxx.autojoin is set to an invalid value
* relay: add real IP in client description (issue #1256)
* trigger: allow creation of temporary variables with the regex
* trigger: add hook "line"
Bug fixes::
* core: fix evaluation of nested ternary operators (issue #1263)
* core: fix evaluation of condition when the left operand is an empty string
* core: fix string evaluation with regex replacement when the string is empty
* core: fix check of tags in lines (command `/filter` and hook_print)
* core: fix clear of completion item in case of partial completion (issue #1162)
* core: send signal "key_pressed" for mouse code only if the string is UTF-8 valid (issue #1220)
* api: fix memory leak in function string_split
* lua: fix return code of mkdir functions in case of error (issue #1267)
* scripts: fix duplicated lines in output of script eval (python, perl, ruby, lua and guile)
Tests::
* core: add tests on line and hook functions
Build::
* php: add detection of PHP 7.3
[[v2.2]]
== Version 2.2 (2018-07-14)
New features::
* core: change default value of option weechat.look.hotlist_add_conditions to check connected relay clients via weechat protocol (issue #1206)
* core: add reverse of string in evaluation of expressions with `rev:xxx` (issue #1200)
* core: send buffer pointer (when possible) in signal "hotlist_changed" (issue #1133)
* core: add support of list options in curl (issue #826, issue #219)
* core: allow merge of buffers by name in command `/buffer` (issue #1108, issue #1159)
* api: add function hashtable_add_from_infolist
* api: add function string_format_size in scripting API
* irc: add nick, host and log tags in message displayed in private buffer when the nick comes back on the server (issue #1221)
* irc: add support for IRCv3.2 chghost, add options irc.look.smart_filter_chghost and irc.color.message_chghost (issue #640)
* irc: add support for IRCv3.2 invite-notify (issue #639)
* irc: add support for IRCv3.2 Client Capability Negotiation (issue #586, issue #623)
* irc: display current nick on connected servers in output of `/server list|listfull` (issue #1193)
* irc: add option `-server` in command `/list` (issue #1165)
* irc: add indexed ban list, add completion for `/unban` and `/unquiet` (issue #597, task #11374, task #10876)
* relay: add filtering on protocol in info "relay_client_count"
* trigger: hide password in command `/msg nickserv set password`
* xfer: add option xfer.network.send_ack (issue #1171)
Bug fixes::
* core: fix TLS handshake failure on server connection when there are multiple addresses in the server (issue #1196)
* core: count number of chars instead of bytes for suffix in function string_cut
* core: fix delete of previous/next word (keys kbd:[Ctrl+w] and kbd:[Alt+d]) (issue #1195)
* core: fix infinite loop in evaluation of strings (issue #1183)
* core: change default value of option weechat.look.window_title from "WeeChat ${info:version}" to empty string (issue #1182)
* buflist: fix crash when setting the option buflist.look.signals_refresh with a list of signals
* fset: fix memory leak when switching the format with kbd:[Ctrl+x]
* fset: fix truncation of option values when the length is greater than 4096 (issue #1218)
* fset: fix crash when applying filters after closing the fset buffer (issue #1204)
* irc: display message 354 (WHOX) received with missing parameters (issue #1212)
* irc: always set nick away status on WHO response (sent manually or automatically with server option "away_check")
* irc: fix a crash when calling the function hdata_string on the "prefix" variable in the nick
* irc: fix split of messages when server option "split_msg_max_length" is set to 0 (no split) (issue #1173)
* irc: send whole IRC message including IRCv3 tags in the signals irc_in, irc_in2, irc_raw_in and irc_raw_in2 (issue #787)
* irc: fix memory leak when receiving a message with IRCv3 tags
* guile: fix memory leak in 7 functions returning allocated strings
* lua: fix macros used to return values
* php: fix return code of functions config_write_option and config_write_line
* php: fix memory leak in 72 functions returning allocated strings
* python: fix crash when loading a script with Python ≥ 3.7 (issue #1219)
* relay: fix socket creation for relay server on OpenBSD (issue #1213)
* ruby: fix memory leak in 7 functions returning allocated strings
* script: fix memory leak in case of invalid XML content in list of scripts
* scripts: fix memory leak in hook_info callback
* scripts: fix return value of hook_infolist callback (pointer instead of string)
* scripts: return long integer instead of string in function infolist_time
* xfer: set option TCP_NODELAY on socket when receiving a file via DCC (issue #1171)
Documentation::
* core: split man pages weechat and weechat-headless
Tests::
* core, scripts: add tests on infolists
Build::
* core: fix build with CMake and Ninja
* debian: add package weechat-headless with the headless binary and its man page
* javascript: fix compilation of javascript plugin with autotools on some Linux distributions (issue #1208)
* python: add detection of Python 3.7
[[v2.1]]
== Version 2.1 (2018-03-18)
New features::
* core: add binary weechat-headless to run WeeChat without interface, with optional daemon mode (command line option `--daemon`) (issue #1120)
* core: add options `-newbuffer`, `-free` and `-switch` in command `/print` (issue #1113)
* core: add option `-y` in command `/print`, add support of buffers with free content
* core: add option `add` in command `/buffer` (issue #1113)
* core: add option weechat.completion.partial_completion_templates to force partial completion on specific templates
* api: add hashtable with variables in plugin structure
* api: add time in info "date" (WeeChat compilation date/time) (issue #1138)
* irc: add server option "split_msg_max_length"
* irc: allow `${irc_server.xxx}` and `${server}` in server evaluated options (issue #1144)
* logger: add option logger.file.fsync (issue #1145)
* logger: add option logger.look.backlog_conditions (issue #1132)
* script: change default value of option script.look.sort from "p,n" to "i,p,n"
* scripts: add configuration file for each script plugin (_python.conf_, _perl.conf_, ...)
* scripts: add `eval` option in script commands and info "xxx_eval" (python, perl, ruby, lua and guile) (issue #128)
* scripts: add infos "xxx_interpreter" and "xxx_version" in script plugins (issue #1075)
* scripts: add option `version` in script commands (issue #1075)
* scripts: display the script name in stdout/stderr output from scripts
Bug fixes::
* core: fix regression on execution of hook_print callbacks (introduced in version 2.0)
Build::
* ruby: add detection of Ruby 2.5 (issue #1122)
[[v2.0.1]]
== Version 2.0.1 (2017-12-20)
Bug fixes::
* python: fix arguments status/gnutls_rc/sock in hook_connect callback
* python: fix argument fd in hook_fd callback
[[v2.0]]
== Version 2.0 (2017-12-03)
New features::
* core: add flag "input_get_empty" in buffer
* core: add signals "buffer_filters_enabled" and "buffer_filters_disabled"
* core: support loading of plugins from path in environment variable "WEECHAT_EXTRA_LIBDIR" (issue #971, issue #979)
* core: make value optional in command `/buffer set` (issue #746, issue #1088)
* core: allow floating point and hexadecimal numbers in comparison of evaluated values
* core: add option weechat.look.save_config_with_fsync (issue #1083)
* api: add support of prefix "quiet:" in function key_unbind to quietly remove keys
* api: add argument "recurse_subdirs" in function exec_on_files
* alias: add infolist "alias_default" (list of default aliases)
* buflist: add two new bar items ("buflist2" and "buflist3") using the same format configuration options (issue #990)
* buflist: add option buflist.look.add_newline (issue #1027)
* fset: new plugin "fset" (fast set of WeeChat and plugins options) (issue #584)
* php: new plugin "php" (issue #909)
* script: add local variable "filter" in the script buffer (issue #1037)
Bug fixes::
* core: do not change the chat prefix size when a filtered line is added (issue #1092)
* core: fix display of nicks in nicklist when they are in a group with sub-groups (issue #1079)
* core, plugins: check return code of strftime function
* core: fix cast of time_t (to "long long" instead of "long") (issue #1051)
* core: call the config hook when options are renamed or removed
* api: change type of arguments status/gnutls_rc/sock in hook_connect callback from string to integer (in scripts)
* api: change type of argument fd in hook_fd callback from string to integer (in scripts)
* buflist: remove recursive evaluation of extra variables (issue #1060)
* guile: return integer (0/1) instead of boolean in API functions
* guile: fix return value of static strings in API functions
* irc: do not clear nicklist when joining an already joined channel if the option irc.look.buffer_open_before_join is on (issue #1081)
* irc: fix CTCP PING reply when the option irc.ctcp.ping is set to non-empty value
* lua: fix boolean return value (as integer) in API functions
* relay: fix parsing of CAP command without arguments in irc protocol, send ACK only if all capabilities received are OK and NAK otherwise (issue #1040)
Tests::
* core: display an error if the required locale en_US.UTF-8 is not installed
* scripts: add scripting API tests (issue #104)
Build::
* core: fix build with ncurses and separate tinfo (bug #41245, issue #1090)
* javascript: fix detection of libv8 with autotools on Ubuntu Trusty
[[v1.9.1]]
== Version 1.9.1 (2017-09-23)
Bug fixes::
* buflist: fix crash in auto-scroll of bar when the buflist item is not the first item in the bar
* logger: call strftime before replacing buffer local variables (CVE-2017-14727)
* relay: fix send of "PART" command in backlog (irc protocol)
[[v1.9]]
== Version 1.9 (2017-06-25)
New features::
* core: improve speed of nicklist bar item callback
* core: allow index for hdata arrays in evaluation of expressions
* api: allow update of variables "scroll_x" and "scroll_y" in bar_window with function hdata_update
* api: add functions config_option_get_string and hdata_compare
* buflist: add option buflist.look.auto_scroll (issue #332)
* buflist: add keys kbd:[F1]/kbd:[F2], kbd:[Alt+F1]/kbd:[Alt+F2] to scroll the buflist bar
* buflist: display a warning when the script "buffers.pl" is loaded
* buflist: add support of char "~" in option buflist.look.sort for case insensitive comparison
* buflist: add variable `${format_name}` in bar item evaluation and option buflist.format.name (issue #1020)
* buflist: add variables `${current_buffer}` and `${merged}` (booleans "0" / "1") in bar item evaluation
* relay: add option `start` in command `/relay`
* trigger: add "irc_server" and "irc_channel" pointers in data for IRC signal/modifier hooks
Bug fixes::
* core: fix bind of keys with space key, like kbd:[Alt+Space] (issue #603, bug #32133)
* core: fix infinite loop when the terminal is closed on the secure password prompt (issue #1010)
* buflist: fix long mouse gestures
* buflist: fix slow switch of buffer when there are a lot of buffers opened (issue #998)
* buflist: add option `bar` in command `/buflist`, do not automatically add the "buflist" bar when the option buflist.look.enabled is off (issue #994)
* buflist: fix crash on drag & drop of buffers
* irc: don't reset nick properties (prefixes/away/account/realname) on `/names` when the nick already exists (issue #1019)
* irc: fix memory leak in case of error in "ecdsa-nist256p-challenge" SASL mechanism
* relay: rebind on address after option relay.network.bind_address is changed
* relay: fix parsing of CAP command arguments in irc protocol (issue #995)
[[v1.8]]
== Version 1.8 (2017-05-13)
New features::
* core: add option weechat.completion.nick_case_sensitive (issue #981)
* core: add wildcard matching operator (`+=*+` and `+!*+`) in evaluation of expressions (issue #611)
* core: add cut of string in evaluation of expressions with `cut:xxx` (number of chars) and `cutscr:xxx` (number of chars displayed on screen)
* core: add ternary operator (condition) in evaluation of expressions (`${if:condition?value_if_true:value_if_false}`)
* core: add resize of window parents with `/window resize [h/v]size` (task #11461, issue #893)
* core: add hotlist pointer in buffer structure
* core: add last start date in output of command `/version` after at least one `/upgrade` (issue #903)
* api: add arraylist functions: arraylist_new, arraylist_size, arraylist_get, arraylist_search, arraylist_insert, arraylist_add, arraylist_remove, arraylist_clear, arraylist_free
* api: add dynamic string functions: string_dyn_alloc, string_dyn_copy, string_dyn_concat, string_dyn_free
* api: add special key "__quiet" in hashtable for function key_bind
* api: add `${re:#}` to get the index of last group captured in function string_eval_expression
* aspell: add options to control delimiters in suggestions: aspell.color.suggestion_delimiter_{dict|word} and aspell.look.suggestion_delimiter_{dict|word} (issue #940)
* buflist: new plugin "buflist" (bar item with list of buffers)
* irc: add option `open` in command `/server` (issue #966)
* irc: send signal "irc_server_lag_changed" and store the lag in the server buffer (local variable)
* irc: send multiple masks by message in commands `/ban`, `/unban`, `/quiet` and `/unquiet`, use ban mask default for nicks in `/quiet` and `/unquiet`, display an error if `/quiet` and `/unquiet` are not supported by server (issue #579, issue #15, issue #577)
* irc: add option `-include` in commands `/allchan`, `/allpv` and `/allserv` (issue #572)
* irc: don't smart filter modes given to you (issue #530, issue #897)
* script: remove option script.scripts.url_force_https, use HTTPS by default in option script.scripts.url
Bug fixes::
* core: fix memory leak in display of mouse event debug info
* core: fix command `/cursor stop` (do not toggle cursor mode) (issue #964)
* core: fix delayed refresh when the signal SIGWINCH is received (terminal resized), send signal "signal_sigwinch" after refreshes (issue #902)
* irc: fix update of server addresses on reconnection when the evaluated content has changed (issue #925)
* irc: fix crash in case of invalid server reply during SASL authentication with DH-BLOWFISH or DH-AES mechanism
* irc: fix double decoding of IRC colors in messages sent/displayed by commands `/msg` and `/query` (issue #943)
* irc: fix parsing of message 324 (modes) when there is a colon before the modes (issue #913)
* relay: check buffer pointer received in "sync" and "desync" commands (weechat protocol) (issue #936)
* relay: remove buffer from synchronized buffers when it is closed (fix memory leak)
Build::
* core: fix compilation on FreeBSD with autotools (issue #276)
* python: add detection of Python 3.6
* ruby: add detection of Ruby 2.4 (issue #895)
[[v1.7.1]]
== Version 1.7.1 (2017-04-22)
Bug fixes::
* irc: fix parsing of DCC filename (CVE-2017-8073)
[[v1.7]]
== Version 1.7 (2017-01-15)
New features::
* core: add option weechat.look.align_multiline_words (issue #411, issue #802)
* core: add optional command prefix in completion templates "commands", "plugins_commands" and "weechat_commands"
* core: add optional arguments in completion template, sent to the callback
* core: add option `time` in command `/debug`
* core, xfer: display more information on fork errors (issue #573)
* core: add a slash before commands completed in arguments of `/command`, `/debug time`, `/key bind`, `/key bindctxt`, `/mute`, `/repeat`, `/wait`
* core: add a warning in header of configuration files to not edit by hand (issue #851)
* api: add info "uptime" (WeeChat uptime)
* api: add info "pid" (WeeChat PID) (issue #850)
* alias: add a slash before commands completed in arguments of `/alias`
* exec: add option `-oc` in command `/exec` to execute commands in process output, don't execute commands by default with `-o` (issue #877)
* fifo: add file fifo.conf and option fifo.file.path to customize FIFO pipe path/filename (issue #850, issue #122)
* irc: add server option "usermode" (issue #377, issue #820)
* irc: add tag "self_msg" on self messages (issue #840)
* irc: evaluate content of server option "ssl_fingerprint" (issue #858)
* irc: change default value of option irc.network.lag_reconnect from 0 to 300 (issue #818)
* trigger: do not hide email in command `/msg nickserv register password email` (issue #849)
Bug fixes::
* core: fix deadlock when quitting after a signal SIGHUP/SIGQUIT/SIGTERM is received (issue #32)
* core: fix display of empty lines in search mode (issue #829)
* api: fix crash in function string_expand_home when the HOME environment variable is not set (issue #827)
* exec: fix memory leak in display of process output
* irc: fix option `-temp` in command `/server` (issue #880)
* irc: fix close of server channels which are waiting for the JOIN when the server buffer is closed (issue #873)
* irc: fix buffer switching on manual join for forwarded channels (issue #876)
* irc: add missing tags on CTCP message sent
* lua: fix integers returned in Lua ≥ 5.3 (issue #834)
* relay: make HTTP headers case-insensitive for WebSocket connections (issue #888)
* relay: set status to "authentication failed" and close immediately connection in case of authentication failure in weechat and irc protocols (issue #825)
* script: reload a script after upgrade only if it was loaded, set autoload only if the script was auto-loaded (issue #855)
Build::
* core, irc, xfer: fix compilation on macOS (add link with resolv) (issue #276)
* core: add build of xz package with make dist (CMake)
* tests: fix compilation of tests on FreeBSD 11.0
[[v1.6]]
== Version 1.6 (2016-10-02)
New features::
* core: add optional argument `lowest`, `highest` or level mask in command `/input hotlist_clear`
* core: add option `cycle` in command `/buffer`
* core, irc, xfer: display more information on memory allocation errors (issue #573)
* api: add "extra" argument to evaluate extra variables in function string_eval_expression (issue #534)
* api: remove functions printf_date and printf_tags
* irc: rename server options "default_msg_{kick|part|quit}" to "msg_{kick|part|quit}", evaluate them
* relay: add option relay.network.allow_empty_password (issue #735)
* relay: allow escape of comma in command "init" (weechat protocol) (issue #730)
* trigger: add support for one-time triggers (issue #399, issue #509)
Bug fixes::
* core, irc, xfer: refresh domain name and name server addresses before connection to servers (fix connection to servers after suspend mode) (issue #771)
* api: fix return of function string_match when there are multiple masks in the string (issue #812)
* api: fix crash in function network_connect_to if address is NULL
* api: fix connection to servers with hook_connect on Windows 10 with Windows subsystem for Linux (issue #770)
* api: fix crash in function string_split_command when the separator is not a semicolon (issue #731)
* irc: fix socket leak in connection to server (issue #358, issue #801)
* irc: fix display of service notice mask (message 008) (issue #429)
* irc: fix NULL pointer dereference in 734 command callback (issue #738)
* relay: return an empty hdata when the requested hdata or pointer is not found (issue #767)
* xfer: fix crash on DCC send if option xfer.file.auto_accept_nicks is set (issue #781)
Documentation::
* switch to asciidoctor to build docs and man page (issue #722)
Build::
* python: add detection of Python 3.5
[[v1.5]]
== Version 1.5 (2016-05-01)
New features::
* core: evaluate content of option "weechat.look.item_time_format" (issue #791)
* core: change default value of option weechat.look.nick_color_hash to "djb2"
* core: move nick coloring from irc plugin to core, move options irc.look.nick_color_force, irc.look.nick_color_hash and irc.look.nick_color_stop_chars to core, add info "nick_color" and "nick_color_name", deprecate info "irc_nick_color" and "irc_color_name" (issue #262)
* core: move irc bar item "away" to core, move options irc.look.item_away_message and irc.color.item_away to core (issue #692)
* api: add support of functions in hook_process
* api: add pointer in callbacks used in scripting API (issue #406)
* irc: add option irc.network.sasl_fail_unavailable (issue #600, issue #697)
* irc: add multiple targets and support of `-server` in command `/ctcp` (issue #204, issue #493)
* trigger: add "recover" in default triggers cmd_pass/msg_auth, and "regain" in default trigger "msg_auth" (issue #511)
Internationalization::
* add Portuguese translations
Bug fixes::
* core: fix nick coloring when stop chars and a forced color are used: first remove chars then look for forced color
* core: check that pointers received in arguments are not NULL in buffers and windows functions
* core: fix truncation of buffer names in hotlist (issue #668)
* core: fix update of window title under Tmux (issue #685)
* api: fix number of arguments returned by function string_split when keep_eol is 2 and the string ends with separators
* irc: fix first message displayed in raw buffer when the message is modified by a modifier (issue #719)
* irc: add missing completion "*" for target in command `/msg`
* irc: fix `/msg` command with multiple targets including "*"
* lua: fix crash when a lua function doesn't return a value and a string was expected (issue #718)
* relay: do not execute any command received in a PRIVMSG message from an irc relay client (issue #699)
* relay: fix the max number of clients connected on a port, allow value 0 for "no limit" (issue #669)
* relay: fix decoding of multiple frames in a single websocket message, send PONG on PING received in a websocket frame (issue #675)
* relay: fix command "input" received from clients with only spaces in content of message (weechat protocol) (issue #663)
* script: force refresh of scripts buffer after download of scripts list (issue #693)
* xfer: fix DCC file received when the terminal is resized (issue #677, issue #680)
Build::
* python: fix detection of Python shared libraries (issue #676)
* ruby: add detection of Ruby 2.3 (issue #698)
[[v1.4]]
== Version 1.4 (2016-01-10)
New features::
* core: add a parent name in options, display inherited values if null in `/set` output, add option weechat.color.chat_value_null (issue #629)
* core: add tag "term_warning" in warnings about wrong $TERM on startup
* core: add option weechat.look.paste_auto_add_newline (issue #543)
* core: display a more explicit error when a filter fails to be added (issue #522)
* api: add function string_hex_dump
* api: add argument "length" in function utf8_is_valid
* alias: display completion in `/alias list` (issue #518)
* fifo: add `/fifo` command
* irc: track real names using extended-join and WHO (issue #351)
* irc: add support of SNI (Server Name Indication) in SSL connection to IRC server (issue #620)
* irc: add support of "cap-notify" capability (issue #182, issue #477)
* irc: add command `/cap` (issue #8)
* irc: add hex dump of messages in raw buffer when debug is enabled for irc plugin (level 2 or more)
* irc: evaluate content of server option "addresses"
* irc: move option irc.network.alternate_nick into servers (irc.server.xxx.nicks_alternate) (issue #633)
* irc: use current channel and current server channels first in completions "irc_server_channels" and "irc_channels" (task #12923, issue #260, issue #392)
* logger: display system error when the log file can not be written (issue #541)
* relay: add option relay.irc.backlog_since_last_message (issue #347)
* script: add option script.scripts.download_timeout
* script: add completion with languages and extensions, support search by language/extension in `/script search`
Bug fixes::
* core: fix execution of empty command name ("/" and "/ " are not valid commands)
* core: fix memory leak when using multiple `-d` or `-r` in command line arguments
* core: don't complain any more about "tmux" and "tmux-256color" $TERM values when WeeChat is running under Tmux (issue #519)
* core: fix truncated messages after a word with a length of zero on screen (for example a zero width space: U+200B) (bug #40985, issue #502)
* api: fix handle of invalid escape in function string_convert_escaped_chars
* alias: do not allow slashes and spaces in alias name (issue #646)
* irc: fix channel forwarding when option irc.look.buffer_open_before_{autojoin|join} is on (issue #643)
* irc: add a missing colon before the password in PASS message, if the password has spaces or begins with a colon (issue #602)
* irc: fix charset decoding in incoming private messages (issue #520)
* irc: display the arrow before server name in raw buffer
* irc: fix display of messages sent to server in raw buffer
* irc: fix display of invalid UTF-8 chars in raw buffer
* relay: display the arrow before client id and protocol in raw buffer
* ruby: fix load of scripts requiring "uri" (issue #433)
Documentation::
* add Czech man page and quickstart guide (issue #490)
Tests::
* core: add a test to check if all plugins are loaded
* core: fix locale used to execute tests (issue #631)
Build::
* core: add scripts version.sh and build-debian.sh, separate stable from devel Debian packaging
* ruby: fix Ruby detection when pkg-config is not installed
[[v1.3]]
== Version 1.3 (2015-08-16)
New features::
* core: add completion "colors" (issue #481)
* core: start/stop search in buffer at current scroll position by default, add key kbd:[Ctrl+q] to stop search and reset scroll (issue #76, issue #393)
* core: add option weechat.look.key_grab_delay to set the default delay when grabbing a key with kbd:[Alt+k]
* core: add option weechat.look.confirm_upgrade (issue #463)
* core: add signal "signal_sighup"
* core: allow kbd:[Ctrl+c] to exit WeeChat when the passphrase is asked on startup (issue #452)
* core: allow pointer as list name in evaluation of hdata (issue #450)
* api: add support of evaluated sub-strings and current date/time in function string_eval_expression and command `/eval`
* api: add function string_eval_path_home
* alias: add options `add`, `addcompletion` and `del` in command `/alias`, remove command `/unalias` (issue #458)
* irc: add option irc.network.channel_encode (issue #218, issue #482)
* irc: add option irc.color.topic_current (issue #475)
* irc: evaluate content of server option "nicks"
* logger: evaluate content of option logger.file.path (issue #388)
* script: rename option script.scripts.dir to script.scripts.path, evaluate content of option (issue #388)
* relay: display value of HTTP header "X-Real-IP" for websocket connections (issue #440)
* xfer: evaluate content of options xfer.file.download_path and xfer.file.upload_path (issue #388)
Bug fixes::
* core: flush stdout/stderr after sending text directly on them (fix corrupted data sent to hook_process callback) (issue #442)
* core: allow execution of command `/input return` on a buffer which is not displayed in a window
* core: allow jump from current to previous buffer with default keys kbd:[Alt+j], kbd:[01..99] (issue #466)
* core: fix crash if a file descriptor used in hook_fd is too high (> 1024 on Linux/BSD) (issue #465)
* core: fix display of invalid UTF-8 chars in bars
* core: fix bar item "scroll" after `/buffer clear` (issue #448)
* core: fix display of time in bare display when option weechat.look.buffer_time_format is set to empty string (issue #441)
* api: add missing function infolist_search_var in script API (issue #484)
* api: add missing function hook_completion_get_string in script API (issue #484)
* api: fix type of value returned by functions strcasestr, utf8_prev_char, utf8_next_char, utf8_add_offset and util_get_time_string
* api: fix type of value returned by function strcasestr
* fifo: fix send error on Cygwin when something is received in the pipe (issue #436)
* irc: fix update of lag item when the server lag changes
* irc: do not allow command `/query` with a channel name (issue #459)
* irc: decode/encode only text in IRC messages and not the headers (bug #29886, issue #218, issue #451)
* irc: fix crash with commands `/allchan`, `/allpv` and `/allserv` if the executed command closes buffers (issue #445)
* irc: do not open auto-joined channels buffers when option "-nojoin" is used in command `/connect` (even if the option irc.look.buffer_open_before_autojoin is on)
* irc: fix errors displayed on WHOX messages received (issue #376)
* xfer: fix crash if the DCC file socket number is too high (> 1024 on Linux/BSD) (issue #465)
* xfer: fix parsing of DCC chat messages (handle "\r\n" at the end of messages) (issue #425, issue #426)
Documentation::
* replace PREFIX with CMAKE_INSTALL_PREFIX in CMake instructions (issue #354)
Build::
* lua: add detection of Lua 5.3
* ruby: add detection of Ruby 2.2
[[v1.2]]
== Version 1.2 (2015-05-10)
New features::
* core: add signals "signal_sigterm" and "signal_sigquit" (issue #114)
* core: use environment variable WEECHAT_HOME on startup (issue #391)
* core: add options weechat.look.quote_{nick_prefix|nick_suffix|time_format} to customize quoted messages in cursor mode (issue #403)
* core: add a welcome message on first WeeChat run (issue #318)
* core: add options weechat.look.word_chars_{highlight|input} (issue #55, task #9459)
* core: remove WeeChat version from config files (issue #407)
* core: display a warning on startup if the locale can not be set (issue #373)
* core: allow "*" as plugin name in command `/plugin reload` to reload all plugins with options
* core: add option `-s` in command `/eval` to split expression before evaluating it (no more split by default) (issue #324)
* core: add priority in plugins to initialize them in order
* api: add support of environment variables in function string_eval_expression and command `/eval`
* api: add support of full color option name in functions color and string_eval_expression and in command `/eval`
* api: add "_chat_line" (line pointer) in hashtable of hook_focus
* irc: add support of "account-notify" capability (issue #11, issue #246)
* irc: add support of "ecdsa-nist256p-challenge" SASL mechanism (issue #251)
* irc: display a warning when the option irc.look.display_away is set to "channel"
* irc: optimize search of a nick in nicklist (up to 3x faster)
* irc: add support of SHA-256 and SHA-512 algorithms in server option "ssl_fingerprint" (issue #281)
* irc: add option `-noswitch` in command `/query` (issue #394)
* irc: format message 008 (RPL_SNOMASK) (issue #144)
* irc: remove server "freenode" from default config file (issue #309)
* javascript: new script plugin for JavaScript
Bug fixes::
* core: add missing completions in command `/input`
* guile: fix value returned in case of error in functions: config_option_reset, config_color, config_color_default, config_write, config_read, config_reload, hook_command, buffer_string_replace_local_var, command
* irc: fix color of new nick in nick changes messages when option irc.look.color_nicks_in_server_messages is off
* irc: fix crash when setting an invalid regex with `/list -re` during a `/list` server response (issue #412)
* irc: fix display of PART messages on channels with +a (anonymous flag) (issue #396)
* irc: remove useless rename of channel buffer on JOIN received with different case (issue #336)
* irc: fix completion of commands `/allchan` and `/allpv`
* lua: fix wrong argument usage in functions nicklist_remove_group, nicklist_remove_nick and nicklist_remove_all (issue #346)
* lua: fix value returned in case of error in functions: config_option_reset, config_string, config_string_default, config_color, config_color_default, config_write, config_read, config_reload, hook_modifier_exec, buffer_string_replace_local_var, nicklist_group_set, nicklist_nick_set, command, upgrade_read, upgrade_close
* relay: fix up/down keys on relay buffer (issue #335)
* relay: remove v4-mapped addresses in `/help relay.network.allowed_ips` (issue #325)
* perl: fix value returned in case of error in functions: config_option_reset, config_color, config_color_default, config_write, config_read, config_reload, buffer_string_replace_local_var, command
* python: fix value returned in case of error in functions: config_option_reset, config_color, config_color_default, config_write, config_read, config_reload, config_is_set_plugin, buffer_get_string, buffer_string_replace_local_var, nicklist_group_get_string, nicklist_nick_get_string, command, hdata_time
* python: fix name of function "bar_update" in case of error
* python: fix restore of old interpreter when a function is not found in the script
* ruby: fix crash on `/plugin reload` (issue #364)
* ruby: fix value returned in case of error in functions: config_option_reset, config_color, config_color_default, config_write, config_read, config_reload, buffer_string_replace_local_var, command
* script: fix state of script plugins when list of scripts has not been downloaded
* scripts: reset current script pointer when load of script fails in python/perl/ruby/lua/tcl plugins
* scripts: fix return code of function bar_set in python/perl/ruby/lua/tcl/guile plugins
* scripts: fix type of value returned by function hdata_time (from string to long integer) in perl/ruby/lua/tcl/guile plugins
* tcl: fix value returned in case of error in functions: mkdir_home, mkdir, mkdir_parents, config_option_reset, config_color, config_color_default, config_write, config_read, config_reload, print_date_tags, buffer_string_replace_local_var, command, infolist_new_item, infolist_new_var_integer, infolist_new_var_string, infolist_new_var_pointer, infolist_new_var_time, upgrade_write_object, upgrade_read, upgrade_close
* trigger: do not hook anything if the trigger is disabled (issue #405)
Documentation::
* add Russian man page
[[v1.1.1]]
== Version 1.1.1 (2015-01-25)
Bug fixes::
* core: fix crash when a root bar has conditions different from active/inactive/nicklist (issue #317)
* irc: don't close channel buffer on second `/part` when option irc.look.part_closes_buffer is off (issue #313)
* irc: fix `/join` on a channel buffer opened with autojoin but which failed to join
* irc: send QUIT to server and no PART for channels when the server buffer is closed (issue #294)
* irc: fix order of channel buffers opened when option irc.look.server_buffer is set to "independent", irc.look.buffer_open_before_autojoin to "on" and irc.look.new_channel_position to "near_server" (issue #303)
* irc: fix crash in buffer close when server name is the same as a channel name (issue #305)
Build::
* core: fix random error when creating symbolic link weechat-curses on make install with CMake (bug #40313)
[[v1.1]]
== Version 1.1 (2015-01-11)
New features::
* core: add option weechat.completion.command_inline (task #12491)
* core: add bar item "mouse_status", new options weechat.look.item_mouse_status and weechat.color.status_mouse (issue #247)
* core: add signals "mouse_enabled" and "mouse_disabled" (issue #244)
* core: add hide of chars in string in evaluation of expressions
* core: add arraylists, improve speed of completions (about 50x faster)
* core: allow incomplete commands if unambiguous, new option weechat.look.command_incomplete (task #5419)
* core: check bar conditions in root bars and on each update of a bar item
* core: fully evaluate commands bound to keys in cursor and mouse contexts
* core: move bar item "scroll" between buffer name and lag in default bar items of status bar
* api: add regex replace feature in function string_eval_expression
* api: send value returned by command callback in function command, remove WeeChat error after command callback if return code is WEECHAT_RC_ERROR
* api: use microseconds instead of milliseconds in functions util_timeval_diff and util_timeval_add
* irc: add option `reorder` in command `/server` (issue #229)
* irc: open channel buffers before the JOIN is received from server (autojoin and manual joins), new options irc.look.buffer_open_before_{autojoin|join} (issue #216)
* irc: add server option "sasl_fail" (continue/reconnect/disconnect if SASL fails) (issue #265, task #12204)
* irc: add support for color codes 16-99 in IRC messages (issue #228), add infolist "irc_color_weechat"
* irc: add support of "extended-join" capability (issue #143, issue #212)
* irc: display own nick changes in server buffer (issue #188)
* irc: disable creation of temporary servers by default with command `/connect`, new option irc.look.temporary_servers
* irc: disable SSLv3 by default in server option "ssl_priorities" (issue #248)
* irc: automatically add current channel in command `/samode` (issue #241)
* irc: add tag "nick_xxx" in invite messages
* relay: add options `stop` and `restart` in command `/relay`
* relay: add option relay.network.ssl_priorities (issue #234)
* relay: add host in sender for IRC backlog PRIVMSG messages sent to clients
* script: add option script.scripts.url_force_https (issue #253)
* trigger: evaluate and replace regex groups at same time, new format for regex option in triggers (incompatible with version 1.0) (issue #224)
* trigger: add option `restore` in command `/trigger`
* trigger: add `${tg_displayed}` in conditions of default trigger "beep"
Bug fixes::
* core: fix display bug when scrolling in buffer on a filtered line (issue #240)
* core: send mouse code only one time to terminal with command `/mouse enable|disable|toggle`
* core: fix buffer property "lines_hidden" when merging buffers or when a line is removed from a buffer (issue #226)
* core: display time in bare display only if option weechat.look.buffer_time_format is not an empty string
* core: fix translation of message displayed after `/upgrade`
* api: fix truncated process output in hook_process (issue #266)
* api: fix crash when reading config options with NULL value (issue #238)
* irc: defer the auto-connection to servers with a timer (issue #279, task #13038)
* irc: add missing server options "sasl_timeout" and "notify" in output of `/server listfull`
* irc: use option irc.look.nick_mode_empty to display nick prefix in bar item "input_prompt"
* irc: remove IRC color codes from buffer title in channels (issue #237)
* irc: fix completion of commands `/msg`, `/notice` and `/query`
* irc: fix translation of CTCP PING reply (issue #137)
* relay: wait for message CAP END before sending join of channels and backlog to the client (issue #223)
* relay: send messages "_buffer_localvar_*" and "_buffer_type_changed" with sync "buffers" (issue #191)
* relay: don't remove relay from config when the binding fails (issue #225)
* relay: use comma separator in option relay.irc.backlog_tags, check the value of option when it is changed with `/set`
* relay: remove "::ffff:" from IPv4-mapped IPv6 client address (issue #111)
* trigger: fix memory leak when allocating a new trigger with several regex
* xfer: fix freeze when accepting DCC (issue #160, issue #174)
* xfer: bind to wildcard address when sending (issue #173)
Build::
* core: fix compilation of man pages with autotools in source directory
* core: fix compilation of plugins with CMake ≥ 3.1 (issue #287)
* lua: add detection of Lua 5.2
* python: fix Python detection with Homebrew (issue #217)
* tests: fix compilation of tests with clang (issue #275)
[[v1.0.1]]
== Version 1.0.1 (2014-09-28)
Bug fixes::
* core: fix crash on buffer close when option weechat.look.hotlist_remove is set to "merged" (issue #199)
* core: fix highlight of IRC action messages when option irc.look.nick_mode is set to "action" or "both" (issue #206)
* core: fix compilation of plugin API functions (macros) when compiler optimizations are enabled (issue #200)
* core: fix window/buffer pointers used in command `/eval`
* core: fix modifier "weechat_print": discard only one line when several lines are displayed in same message (issue #171)
* api: fix bug in function hdata_move when absolute value of count is greater than 1
* aspell: fix crash with command `/aspell addword` if no word is given (issue #164, issue #165)
* irc: fix display of channel exception list (348) with 6 arguments (date missing)
* irc: fix type of value stored in hashtable when joining a channel (issue #211)
* relay: fix send of signals "relay_client_xxx" (issue #214)
* script: fix crash on `/script update` if a script detail is displayed in buffer (issue #177)
* trigger: do not allow any changes on a trigger when it is currently running (issue #189)
* trigger: fix regex used in default triggers to hide passwords ("\S" is not supported on *BSD) (issue #172)
Tests::
* core: fix memory leak in tests launcher
Build::
* aspell: fix compilation with Enchant < 1.6.0 (issue #192)
* guile: fix compilation with Guile < 2.0.4 (issue #198)
* perl: fix detection of Perl ≥ 5.20 with autotools
* tests: fix build of tests when the build directory is outside source tree (issue #178)
[[v1.0]]
== Version 1.0 (2014-08-15)
New features::
* core: display a warning on startup if $TERM does not start with "screen" under Screen/Tmux
* core: add option weechat.color.status_nicklist_count (issue #109, issue #110)
* core: add option `env` in command `/set` (manage environment variables)
* core: add bar item "buffer_short_name" (task #10882)
* core: add option `send` in command `/input` (send text to a buffer)
* core: add support of negated tags in filters (with "!") (issue #72, issue #74)
* core: add hidden buffers, add options hide/unhide in command `/buffer`
* core: add default key kbd:[Alt+-] (toggle filters in current buffer) (issue #17)
* core: add non-active merged buffers with activity in hotlist (if another merged buffer is zoomed) (task #12845)
* core: add text search in buffers with free content (task #13051)
* core: add buffer property "clear"
* core: add option weechat.look.hotlist_add_conditions, remove option weechat.look.hotlist_add_buffer_if_away
* core: add option weechat.look.hotlist_remove (issue #99)
* core: add options `-beep` and `-current` in command `/print`
* core: add bare display mode for easy text selection and click on URLs, new key: kbd:[Alt+l] (lower `L`), new option "bare" in command `/window`, new options: weechat.look.bare_display_exit_on_input and weechat.look.bare_display_time_format
* core: add signals "key_combo_{default|search|cursor}"
* core: add terabyte unit for size displayed
* core: display a warning in case of inconsistency between the options weechat.look.save_{config|layout}_on_exit
* core: add option `-mask` in command `/unset` (issue #112)
* core: set option weechat.look.buffer_search_where to prefix_message by default
* core: mute all buffers by default in command `/mute` (replace option -all by -core)
* api: allow value "-1" for property "hotlist" in function buffer_set (to remove a buffer from hotlist)
* api: add option "buffer_flush" in function hook_process_hashtable
* api: add support of case insensitive search and search by buffer full name in function buffer_search (bug #34318)
* api: add option "detached" in function hook_process_hashtable
* api: add option "signal" in function hook_set to send a signal to the child process
* api: add support of nested variables in function string_eval_expression and command `/eval` (issue #35)
* api: add support of escaped strings with format `${esc:xxx}` or `${\xxx}` in function string_eval_expression and command `/eval`
* api: add functions hashtable_dup, string_replace_regex, string_split_shell, string_convert_escaped_chars
* api: add integer return code for functions hook_{signal|hsignal}_send
* api: add argument "flags" in function hdata_new_list
* api: allow wildcard "*" inside the mask in function string_match
* api: allow negative value for y in function printf_y
* alias: add default alias `msgbuf` (send text to a buffer)
* exec: add exec plugin: new command `/exec` and file exec.conf
* irc: add bar item "irc_nick_modes" (issue #71)
* irc: add support of message 324 (channel modes) in option irc.look.display_join_message (issue #75)
* irc: add option irc.look.join_auto_add_chantype (issue #65)
* irc: add tag with host ("host_xxx") in IRC messages displayed (task #12018)
* irc: add option irc.color.item_nick_modes (issue #47)
* irc: add support of "away-notify" capability (issue #12)
* irc: add command `/remove` (issue #91)
* irc: add command `/unquiet` (issue #36)
* irc: add command `/allpv` (task #13111)
* irc: display locally away status changes in private buffers (in addition to channels) (issue #117)
* irc: allow many fingerprints in server option ssl_fingerprint (issue #49)
* irc: rename option irc.look.item_channel_modes_hide_key to irc.look.item_channel_modes_hide_args, value is now a string (task #12070, task #12163, issue #48)
* irc: add value "+" for option irc.look.smart_filter_mode to use modes from server prefixes (this is now the default value) (issue #90)
* irc: allow "$ident" in option irc.network.ban_mask_default (issue #18)
* irc: evaluate content of server options "username" and "realname"
* irc: set option irc.network.autoreconnect_delay_max to 600 by default, increase max value to 604800 seconds (7 days)
* irc: set option irc.network.whois_double_nick to "off" by default
* relay: add messages "_buffer_cleared", "_buffer_hidden" and "_buffer_unhidden"
* relay: add info "relay_client_count" with optional status name as argument
* relay: add signals "relay_client_xxx" for client status changes (issue #2)
* relay: add option relay.network.clients_purge_delay
* rmodifier: remove plugin (replaced by trigger)
* script: set option script.scripts.cache_expire to 1440 by default
* trigger: add trigger plugin: new command `/trigger` and file trigger.conf
Bug fixes::
* core: fix zero-length malloc of an hashtable item with type "buffer"
* core: fix memory leak on `/upgrade` when file signature in upgrade file is invalid
* core: fix memory leak in completion of config options values
* core: fix memory leak when removing script files
* core: fix result of hash function (in hashtables) on 32-bit systems
* core: fix insert of mouse code in input line after a partial key combo (issue #130)
* core: check code point value in UTF-8 check function (issue #108)
* core: fix socks5 proxy for curl downloads (issue #119)
* core: display curl error after a failed download
* core: do not display content of passphrase on `/secure` buffer
* core: fix potential memory leak with infolists not freed in plugins (debian #751108)
* core: fix color display of last terminal color number + 1 (issue #101)
* core: add option "-buffer" in command `/command` (issue #67)
* core: fix restoration of core buffer properties after `/upgrade`
* core: fix `/buffer clear` with a name (don't clear all merged buffers with same number)
* core: fix evaluation of expression with regex: when a comparison char is in the regex and don't evaluate the regex itself (issue #63)
* core: close .upgrade files before deleting them after `/upgrade`
* core: fix refresh of bar item "buffer_zoom" on buffer switch
* core: fix reset of attributes in bars when "resetcolor" is used (issue #41)
* core: fix alignment of lines in merged buffers when options weechat.look.prefix_align and weechat.look.prefix_buffer_align are set to "none" (issue #43)
* core: quit WeeChat on signal SIGHUP, remove signal "signal_sighup"
* core: fix add of filter on macOS when regex for message is empty (filter regex ending with "\t")
* core: check validity of buffer pointer when data is sent to a buffer (command/text from user and API function command)
* core: fix crash when buffer is closed during execution of multiple commands (issue #27)
* core: fix compilation on SmartOS (bug #40981, issue #23)
* core: add missing \0 at the end of stderr buffer in function hook_process
* core: fix highlight problem with "(?-i)" and upper case letters in option weechat.look.highlight (issue #24)
* core: fix detection of terminated process in function hook_process
* core: fix `/window scroll -N` on a buffer with free content
* core: fix recursive calls to function eval_expression
* core: save and restore mute state in command `/mute` (bug #41748)
* core: fix memory leak when removing a hdata
* core: fix memory leak in evaluation of sub-conditions
* core: fix memory leak in function gui_key_add_to_infolist (in case of insufficient memory)
* core: fix use of invalid pointer in function gui_bar_window_content_alloc (in case of insufficient memory)
* core: fix uninitialized value in function string_decode_base64
* core: fix memory leak and use of invalid pointer in split of string (in case of insufficient memory)
* core: fix potential NULL pointer in function gui_color_emphasize
* core: use same return code and message in all commands when arguments are wrong/missing
* core: allow empty arguments for command `/print`
* core: fix freeze/crash in GnuTLS (bug #41576)
* api: fix function string_decode_base64
* api: fix function string_format_size on 32-bit systems
* api: change type of arguments displayed/highlight in hook_print callback from string to integer (in scripts)
* alias: change default command for alias `/beep` to `/print -beep`
* guile: fix module used after unload of a script
* irc: fix memory leak in CTCP answer
* irc: fix duplicate sender name in display of wallops (issue #142, issue #145)
* irc: fix extract of channel in parser for JOIN/PART messages when there is a colon before the channel name (issue #83)
* irc: fix duplicate sender name in display of notice (issue #87)
* irc: fix refresh of buffer name in bar items after join/part/kick/kill (issue #86)
* irc: display message 936 (censored word) on channel instead of server buffer
* irc: make reason optional in command `/kill`
* irc: add alias `whois` for target buffer of messages 401/402 (issue #54)
* irc: fix truncated read on socket with SSL (bug #41558)
* irc: display output of CAP LIST in server buffer
* irc: fix colors in message with CTCP reply sent to another user
* irc: fix read of MODES server value when in commands `/op`, `/deop`, `/voice`, `/devoice`, `/halfop`, `/dehalfop`
* irc: fix parsing of nick in host when "!" is not found (bug #41640)
* lua: fix interpreter used after unload of a script
* perl: fix context used after unload of a script
* python: fix read of return value for callbacks returning an integer in Python 2.x (issue #125)
* python: fix interpreter used after unload of a script
* relay: fix memory leak during handshake on websocket
* relay: fix memory leak when receiving commands from client (weechat protocol)
* relay: fix crash when an IRC "MODE" command is received from client without arguments
* relay: fix number of bytes sent/received on 32-bit systems
* relay: fix crash when closing relay buffers (issue #57, issue #78)
* relay: check pointers received in hdata command to prevent crashes with bad pointers (WeeChat protocol)
* relay: remove warning on `/reload` of relay.conf when ports are defined
* relay: fix client disconnection on empty websocket frames received (PONG)
* relay: add support of Internet Explorer websocket (issue #73)
* relay: fix crash on `/upgrade` received from a client (weechat protocol)
* relay: fix freeze after `/upgrade` when many disconnected clients still exist
* relay: fix NULL pointer when reading buffer lines for irc backlog
* ruby: fix crash when trying to load a directory with `/ruby load`
* script: fix display of curl errors
* script: fix scroll on script buffer in the detailed view of script (issue #6)
* scripts: fix crash when a signal is received with type "int" and NULL pointer in signal_data
* xfer: fix problem with option xfer.file.auto_accept_nicks when the server name contains dots
* xfer: fix freeze/problems when sending empty files with DCC (issue #53)
* xfer: fix connection to remote host in DCC receive on macOS (issue #25)
* xfer: remove bind on xfer.network.own_ip (issue #5)
Build::
* core: fix CMake warning CMP0007 on "make uninstall" (bug #41528)
* core: use glibtoolize on macOS (autotools) (issue #22)
* ruby: add detection of Ruby 2.1
Tests::
* core: add unit tests using CppUTest (issue #104)
[[v0.4.3]]
== Version 0.4.3 (2014-02-09)
New features::
* core: add signals "signal_sighup" and "signal_sigwinch" (terminal resized)
* core: add command `/print`, add support of more escaped chars in command `/input insert`
* core: add option weechat.look.tab_width
* core: add completion "plugins_installed"
* core: add option weechat.look.window_auto_zoom, disable automatic zoom by default when terminal becomes too small for windows
* core: use "+" separator to make a logical "and" between tags in command `/filter`, option weechat.look.highlight_tags and buffer property "highlight_tags"
* core: add options weechat.look.buffer_auto_renumber and weechat.look.buffer_position, add option `renumber` in command `/buffer`, add bar item "buffer_last_number" (task #12766)
* core: add signal "buffer_cleared"
* core: add buffer property "day_change" to hide messages for the day change in specific buffers
* core: add option "libs" in command `/debug`
* core: add infos "term_width" and "term_height"
* core: add bar item "buffer_zoom", add signals "buffer_{zoomed|unzoomed}" (patch #8204)
* core: add default keys kbd:[Alt+Home] / kbd:[Alt+End] (`meta2-1;3H` / `meta2-1;3F`) and kbd:[Alt+F11] / kbd:[Alt+F12] (`meta2-23;3~` / `meta2-24;3~`) for xterm
* core: add support of italic text (requires ncurses ≥ 5.9 patch 20130831)
* core: add options to customize default text search in buffers: weechat.look.buffer_search_{case_sensitive|force_default|regex|where}
* core: add support of UTF-8 chars in horizontal/vertical separators (options weechat.look.separator_{horizontal|vertical})
* core: add support of logical and/or for argument "tags" in function hook_print
* core: rename buffer property "highlight_tags" to "highlight_tags_restrict", new behavior for buffer property "highlight_tags" (force highlight on tags), rename option irc.look.highlight_tags to irc.look.highlight_tags_restrict
* core: rename options save/reset to store/del in command `/layout`
* core: replace default key kbd:[Ctrl+c], kbd:[r] by kbd:[Ctrl+c], kbd:[v] for reverse video in messages
* core: replace default key kbd:[Ctrl+c], kbd:[u] by kbd:[Ctrl+c], kbd:[_] for underlined text in messages
* core: rename option weechat.look.set_title to weechat.look.window_title, value is now a string (evaluated)
* core: set option weechat.look.paste_bracketed to "on" by default
* core: use one date format when day changes from day to day+1
* api: add function infolist_search_var
* api: add stdin options in functions hook_process_hashtable and hook_set to send data on stdin of child process, add function hook_set in script API (task #10847, task #13031)
* api: add hdata "buffer_visited"
* api: add support of infos with format `${info:name,arguments}` in function string_eval_expression and command `/eval`
* api: add support for C++ plugins
* alias: add default alias `/beep` -> `/print -stderr \a`
* irc: add server option "ssl_fingerprint" (task #12724)
* irc: add option irc.look.smart_filter_mode (task #12499)
* irc: add option irc.network.ban_mask_default (bug #26571)
* irc: add option irc.network.lag_max
* irc: add option irc.look.notice_welcome_tags
* irc: add server option "default_msg_kick" to customize default kick/kickban message (task #12777)
* irc: use MONITOR instead of ISON for `/notify` when it is available on server (task #11477)
* relay: send backlog for irc private buffers
* xfer: add support of IPv6 for DCC chat/file (patch #7992)
* xfer: add option xfer.file.auto_check_crc32 (patch #7963)
Bug fixes::
* core: fix hotlist problems after apply of a layout (bug #41481)
* core: fix crash when creating two bars with same name but different case (bug #41418)
* core: fix display of read marker when all buffer lines are unread and that option weechat.look.read_marker_always_show is on
* core: fix memory leak in regex matching when evaluating expression
* core: fix crash in `/eval` when config option has a NULL value
* core: fix crash with hdata_update on shared strings, add hdata type "shared_string" (bug #41104)
* core: fix text emphasis with wide chars on screen like Japanese (patch #8253)
* core: remove option on `/unset` of plugin description option (plugins.desc.xxx) (bug #40768)
* core: fix random crash when closing a buffer
* core: fix crash on `/buffer close core.weechat`
* core: apply color attributes when clearing a window (patch #8236)
* core: fix truncated text when pasting several long lines (bug #40210)
* core: create .conf file with default options only if the file does not exist (and not on read error with existing file)
* core: fix highlight on action messages: skip the nick at beginning to prevent highlight on it (bug #40516)
* core: fix bind of keys in cursor/mouse context when key starts with "@" (remove the warning about unsafe key)
* core: fix truncated prefix when filters are toggled (bug #40204)
* api: fix read of arrays in hdata functions hdata_<type> (bug #40354)
* aspell: fix detection of nicks with non-alphanumeric chars
* guile: disable guile gmp allocator (fix crash on unload of relay plugin) (bug #40628)
* irc: clear the GnuTLS session in all cases after SSL connection error
* irc: do not display names by default when joining a channel (task #13045)
* irc: display PONG answer when resulting from manual `/ping` command
* irc: fix time parsed in tag of messages on Cygwin
* irc: use statusmsg from message 005 to check prefix char in status notices/messages
* irc: remove display of channel in channel notices, display "PvNotice" for channel welcome notices
* irc: fix ignore on a host without nick
* irc: use color code 0x1F (`ctrl-_`) for underlined text in input line (same code as messages) (bug #40756)
* irc: use color code 0x16 (`ctrl-v`) for reverse video in messages
* irc: use option irc.network.colors_send instead of irc.network.colors_receive when displaying messages sent by commands `/away`, `/me`, `/msg`, `/notice`, `/query`
* irc: fix memory leak when checking the value of ssl_priorities option in servers
* irc: fix memory leak when a channel is deleted
* irc: fix groups in channel nicklist when reconnecting to a server that supports more nick prefixes than the previously connected server
* irc: fix auto-switch to channel buffer when doing `/join channel` (without "#")
* logger: fix memory leaks in backlog
* logger: replace backslashs in name by logger replacement char under Cygwin (bug #41207)
* lua: fix crash on calls to callbacks during load of script
* python: fix load of scripts with Python ≥ 3.3
* relay: fix memory leak on unload of relay plugin
* ruby: fix ruby init with Ruby ≥ 2.0 (bug #41115)
* scripts: fix script interpreter used after register during load of script in python/perl/ruby/lua/guile plugins (bug #41345)
* xfer: use same infolist for hook and signals (patch #7974)
Documentation::
* add French developer's guide and relay protocol
* add Japanese plugin API reference and developer's guide
* add Polish man page and user's guide
Build::
* core: fix installation of weechat-plugin.h with autotools (patch #8305)
* core: fix compilation on Android (bug #41420, patch #8301, bug #41434)
* lua: fix detection of Lua 5.2 in autotools (patch #8270)
* ruby: add detection and fix compilation with Ruby 2.0 (patch #8209)
[[v0.4.2]]
== Version 0.4.2 (2013-10-06)
New features::
* core: display day change message dynamically (do not store it as a line in buffer), split option weechat.look.day_change_time_format into two options weechat.look.day_change_message_{1date|2dates}, new option weechat.color.chat_day_change (task #12775)
* core: add syntax "@buffer:item" in bar items to force the buffer used when displaying the bar item (task #12717)
* core: add search of regular expression in buffer, don't reset search type on a new search, select where to search (messages/prefixes), add keys in search context: kbd:[Alt+c] (case (in)sensitive search), kbd:[Tab] (search in messages/prefixes)
* core: add text emphasis in messages when searching text in buffer, new options: weechat.look.emphasized_attributes, weechat.color.emphasized, weechat.color.emphasized_bg
* core: add secured data (encryption of passwords or private data): add new command `/secure` and new file sec.conf (task #7395)
* core: rename binary and man page from "weechat-curses" to "weechat" (task #11027)
* core: add option `-o` in command `/color`
* core: add option `scroll_beyond_end` for command `/window` (task #6745)
* core: add options weechat.look.hotlist_prefix and weechat.look.hotlist_suffix (task #12730)
* core: add option weechat.look.key_bind_safe
* core: add option weechat.network.proxy_curl (task #12651)
* core: add "proxy" infolist and hdata
* core: add infolist "layout" and hdata "layout", "layout_buffer" and "layout_window"
* core: reduce memory used by using shared strings for nicklist and lines in buffers
* core: change color format for options weechat.look.buffer_time_format and weechat.look.prefix_{action|error|join|network|quit} from `${xxx}` to `${color:xxx}`
* core: optimize the removal of lines in buffers (a lot faster to clear/close buffers with lot of lines)
* core: set options weechat.look.color_inactive_{buffer|window} to "on" by default
* api: return hashtable item pointer in functions hashtable_set and hashtable_set_with_size
* api: add "callback_free_key" in hashtable
* api: add support of colors with format `${color:xxx}` in function string_eval_expression and command `/eval`
* api: add argument "options" in function string_eval_expression, add option `-c` in command `/eval` (to evaluate a condition)
* api: add new function strlen_screen
* aspell: rename option aspell.look.color to aspell.color.misspelled, add option aspell.color.suggestions
* aspell: add support of enchant library (patch #6858)
* irc: add option irc.look.notice_welcome_redirect to automatically redirect channel welcome notices to the channel buffer
* irc: add support of wildcards in commands (de)op/halfop/voice, split IRC message sent if number of nicks is greater than server MODES (from message 005) (task #9221)
* irc: add option irc.look.pv_tags
* irc: add support of special variables $nick/$channel/$server in commands `/allchan` and `/allserv`
* irc: add option irc.look.nick_color_hash: hash algorithm to find nick color (patch #8062)
* logger: add option `flush` in command `/logger`
* plugins: remove the demo plugin
* relay: add command "ping" in weechat protocol (task #12689)
* rmodifier: add option "missing" in command `/rmodifier`
* script: add info about things defined by script (like commands, options, ...) in the detailed view of script (`/script show`)
* scripts: add hdata with script callback
* xfer: add option xfer.look.pv_tags
Bug fixes::
* core: clear whole line before displaying content instead of clearing after the end of content (bug #40115)
* core: fix time displayed in status bar (it was one second late) (bug #40097)
* core: fix memory leak on unhook of a print hook (if using tags)
* core: fix computation of columns in output of `/help` (take care about size of time/buffer/prefix)
* core: fix random crash on `/buffer close` with a buffer number (or a range of buffers)
* core: fix priority of logical operators in evaluation of expression (AND takes precedence over the OR) and first evaluate sub-expressions between parentheses
* core: remove gap after read marker line when there is no bar on the right (bug #39548)
* core: use "/dev/null" for stdin in hook_process instead of closing stdin (bug #39538)
* core: fix char displayed at the intersection of three windows (bug #39331)
* core: fix crash in evaluation of expression when reading a string in hdata with a NULL value (bug #39419)
* core: fix display bugs with some UTF-8 chars that truncates messages displayed (for example U+26C4) (bug #39201)
* core: remove extra space after empty prefix (when prefix for action, error, join, network or quit is set to empty string) (bug #39218)
* core: fix random crash on mouse actions (bug #39094)
* core: fix line alignment when option weechat.look.buffer_time_format is set to empty string
* api: change type of hashtable key hash to unsigned long
* api: use pointer for infolist "hook" to return only one hook
* aspell: fix detection of word start/end when there are apostrophes or minus chars before/after word
* irc: fix reconnection to server using IPv6 (bug #38819, bug #40166)
* irc: replace default prefix modes "qaohvu" by the standard ones "ov" when PREFIX is not sent by server (bug #39802)
* irc: use 6697 as default port for SSL servers created with URL "ircs://" (bug #39621)
* irc: display number of ops/halfops/voices on channel join only for supported modes on server (bug #39582)
* irc: fix self nick color in server messages after nick is changed with `/nick` (bug #39415)
* irc: fix error message on `/invite` without arguments (bug #39272)
* irc: fix multiple nicks in command `/query` (separated by commas): open one buffer per nick
* lua: fix interpreter used in API functions (bug #39470)
* relay: fix decoding of websocket frames when there are multiple frames in a single message received (only the first one was decoded)
* relay: fix binding to an IP address (bug #39119)
Documentation::
* update man page and add translations (in French, German, Italian, and Japanese)
Build::
* core: add CA_FILE option in CMake and configure to setup default value of option weechat.network.gnutls_ca_file (default is "/etc/ssl/certs/ca-certificates.crt") (task #12725)
* core: disable build of doc by default, add CMake option "ENABLE_MAN" to compile man page (off by default)
* xfer: fix compilation on OpenBSD (bug #39071)
[[v0.4.1]]
== Version 0.4.1 (2013-05-20)
New features::
* core: make nick prefix/suffix dynamic (not stored in the line): move options irc.look.nick_{prefix|suffix} to weechat.look.nick_{prefix|suffix} and options irc.color.nick_{prefix|suffix} to weechat.color.chat_nick_{prefix|suffix}, add new options weechat.look.prefix_align_more_after, weechat.look.prefix_buffer_align_more_after, logger.file.nick_{prefix|suffix} (bug #37531)
* core: add support of multiple layouts (task #11274)
* core: add signals nicklist_{group|nick}_removing and hsignals nicklist_{group|nick}_{added|removing|changed}
* core: add count for groups, nicks, and total in nicklist
* core: add option `dirs` in command `/debug`
* core: add signal "window_opened" (task #12464)
* core: allow read of array in hdata without using index
* api: add new function hdata_search
* api: add property "completion_freeze" for function buffer_set: do not stop completion when command line is updated
* aspell: add completion "aspell_dicts" (list of aspell installed dictionaries)
* aspell: add info "aspell_dict" (dictionaries used on a buffer)
* aspell: optimization on spellers to improve speed (save state by buffer)
* irc: add support of DH-AES SASL mechanism (patch #8020)
* irc: add support of UHNAMES (capability "userhost-in-names") (task #9353)
* irc: add tag "irc_nick_back" for messages displayed in private buffer when a nick is back on server (task #12576)
* irc: add option irc.look.display_join_message (task #10895)
* irc: add option irc.look.pv_buffer: automatically merge private buffers (optionally by server) (task #11924)
* irc: hide passwords in commands or messages sent to nickserv (`/msg nickserv`) with new modifiers "irc_command_auth" and "irc_message_auth", remove option irc.look.hide_nickserv_pwd, add option irc.look.nicks_hide_password (bug #38346)
* irc: unmask smart filtered join if nick speaks in channel some minutes after the join, new option irc.look.smart_filter_join_unmask (task #12405)
* irc: rename option irc.network.lag_disconnect to irc.network.lag_reconnect, value is now a number of seconds
* relay: add message "_nicklist_diff" (differences between old and current nicklist)
* relay: add support of multiple servers on same port for irc protocol (the client must send the server in the "PASS" command)
* relay: add WebSocket server support (RFC 6455) for irc and weechat protocols, new option relay.network.websocket_allowed_origins
* relay: add options "buffers" and "upgrade" in commands sync/desync (weechat protocol)
* rmodifier: rename default rmodifier "nickserv" to "command_auth" (with new modifier "irc_command_auth"), add default rmodifier "message_auth" (modifier "irc_message_auth")
* script: add option script.scripts.autoload, add options "autoload", "noautoload" and "toggleautoload" for command `/script`, add action "A" (kbd:[Alt+a]) on script buffer (toggle autoload) (task #12393)
* xfer: add option xfer.file.auto_accept_nicks (patch #7962)
Bug fixes::
* core: fix display of long lines without time (message beginning with two tabs)
* core: reset scroll in window before zooming on a merged buffer (bug #38207)
* core: fix refresh of item "completion": clear it after any action that is changing content of command line and after switch of buffer (bug #38214)
* core: fix structures before buffer data when a buffer is closed
* core: fix refresh of line after changes with hdata_update (update flag "displayed" according to filters)
* core: fix hidden lines for messages without date when option weechat.history.max_buffer_lines_minutes is set (bug #38197)
* core: use default hash/comparison callback for keys of type integer/pointer/time in hashtable
* api: do not display a warning by default when loading a script with a license different from GPL
* api: fix connection to servers with hook_connect on macOS (bug #38496)
* api: fix bug in function string_match when mask begins and ends with "*"
* api: allow hashtable with keys that are not strings in function hashtable_add_to_infolist
* api: fix function string_mask_to_regex: escape all special chars used in regex (bug #38398)
* guile: fix crash in function hdata_move
* guile: fix arguments given to callbacks (separate arguments instead of one list with arguments inside), Guile ≥ 2.0 is now required (bug #38350)
* guile: fix crash on calls to callbacks during load of script (bug #38343)
* irc: fix name of server buffer after `/server rename` (set name "server.name" instead of "name")
* irc: fix uncontrolled format string when sending unknown irc commands (if option irc.network.send_unknown_commands is on)
* irc: fix uncontrolled format string when sending ison command (for nicks monitored by `/notify`)
* irc: fix refresh of nick in input bar when joining a new channel with op status (bug #38969)
* irc: fix display of CTCP messages that contain bold attribute (bug #38895)
* irc: fix duplicate nick completion when someone rejoins the channel with same nick but a different case (bug #38841)
* irc: fix crash on command `/allchan /close`
* irc: fix default completion (like nicks) in commands `/msg`, `/notice`, `/query` and `/topic`
* irc: fix prefix color for nick when the prefix is not in irc.color.nick_prefixes: use default color (key "*")
* irc: fix display of malformed CTCP (without closing char) (bug #38347)
* irc: fix memory leak in purge of hashtables with joins (it was done only for the first server in the list)
* irc: add color in output of `/names` when result is on server buffer (channel not joined) (bug #38070)
* lua: remove use of functions for API constants
* lua: fix crash on stack overflow: call lua_pop for values returned by lua functions (bug #38510)
* perl: simplify code to load scripts
* python: fix crash when loading scripts with Python 3.x (patch #8044)
* relay: fix uncontrolled format string in redirection of irc commands
* relay: rename compression "gzip" to "zlib" (compression is zlib, not gzip)
* relay: fix commands sync/desync in weechat protocol (bug #38215)
* ruby: fix crash in function hdata_move
* ruby: fix crash with Ruby 2.0: use one array for the last 6 arguments of function config_new_option (bug #31050)
* script: create "script" directory on each action, just in case it has been removed (bug #38472)
* scripts: create directories (language and language/autoload) on each action (install/remove/autoload), just in case they have been removed (bug #38473)
* scripts: do not allow empty script name in function register
* xfer: fix freeze of DCC file received: use non-blocking socket after connection to sender and ensure the ACK is properly sent (bug #38340)
Build::
* core: install icon file (patch #7972)
* core: fix detection of iconv with CMake on macOS (bug #38321)
* guile: fix compilation with Guile 2.0
* python: fix detection of Python on Ubuntu Raring
* script: fix compilation on GNU/Hurd (patch #7977)
[[v0.4.0]]
== Version 0.4.0 (2013-01-20)
New features::
* core: add buffer pointer in arguments for signals "input_search", "input_text_changed" and "input_text_cursor_moved"
* core: add option `diff` in command `/set` (list options with changed value)
* core: add color support in options weechat.look.prefix_{action|error|join|network|quit} (task #9555)
* core: display default values for changed config options in output of `/set`
* core: add command `/eval`, use expression in conditions for bars
* core: add option `-quit` in command `/upgrade` (save session and quit without restarting WeeChat, for delayed restoration)
* core: add incomplete mouse events "event-down" and "event-drag" (task #11840)
* api: allow return code WEECHAT_RC_OK_EAT in callbacks of hook_signal and hook_hsignal (stop sending the signal immediately)
* api: allow creation of structure with hdata_update (allowed for hdata "history")
* api: use hashtable "options" for command arguments in function hook_process_hashtable (optional, default is a split of string with command)
* api: add new function string_eval_expression
* api: connect with IPv6 by default in hook_connect (with fallback to IPv4), shuffle list of hosts for a same address, add argument "retry" for hook_connect, move "sock" from hook_connect arguments to callback of hook_connect (task #11205)
* aspell: add signal "aspell_suggest" (sent when new suggestions are displayed)
* aspell: add bar items "aspell_dict" (dictionary used on current buffer) and "aspell_suggest" (suggestions for misspelled word at cursor), add option aspell.check.suggestions (task #12061)
* irc: add tags "irc_nick1_xxx" and "irc_nick2_yyy" in message displayed for command "NICK"
* irc: return git version in CTCP VERSION and FINGER by default, add "$git" and "$versiongit" in format of CTCP replies
* irc: read local variable "autorejoin" in buffer to override server option "autorejoin" (task #12256)
* irc: add option `-auto` in command `/connect` (task #9340)
* irc: add support of "server-time" capability (task #12255)
* irc: add support of tags in messages
* irc: add command `/quiet`, fix display of messages 728/729 (quiet list, end of quiet list) (task #12278)
* irc: add option irc.network.alternate_nick to disable dynamic nick generation when all nicks are already in use on server (task #12281)
* irc: add option irc.network.whois_double_nick to double nick in command `/whois`
* irc: add option `-noswitch` in command `/join` (task #12275)
* perl: display script filename in error messages
* relay: add backlog and server capability "server-time" for irc protocol, add new options relay.irc.backlog_max_minutes, relay.irc.backlog_max_number, relay.irc.backlog_since_last_disconnect, relay.irc.backlog_tags, relay.irc.backlog_time_format (task #12076)
* relay: add support of IPv6, new option relay.network.ipv6, add support of "ipv4." and/or "ipv6." before protocol name, to force IPv4/IPv6 (task #12270)
* xfer: display remote IP address for DCC chat/file (task #12289)
Bug fixes::
* core: fix infinite loop when a regex gives an empty match (bug #38112)
* core: fix click in item "buffer_nicklist" when nicklist is a root bar (bug #38080)
* core: fix line returned when clicking on a bar (according to position and filling) (bug #38069)
* core: fix refresh of bars when applying layout (bug #37944, bug #37952)
* core: fix scroll to bottom of window (default key: kbd:[Alt+End]) when line displayed is bigger than chat area
* core: fix scroll in buffer after enabling/disabling some filters (if scroll is on a hidden line) (bug #37885)
* core: fix memory leak in case of error when building content of bar item for display
* core: fix detection of command in input: a single command char is considered as a command (API function string_input_for_buffer)
* core: search for a fallback template when a no template is matching command arguments
* core: fix refresh of windows after split (fix bug with horizontal separator between windows) (bug #37874)
* core: fix stuck mouse (bug #36533)
* core: fix default mouse buttons actions for script buffer (focus the window before executing action)
* core: fix scroll of one page down when weechat.look.scroll_page_percent is less than 100 (bug #37875)
* core: disable paste detection and confirmation if bar item "input_paste" is not used in a visible bar (task #12327)
* core: use high priority (50000) for commands `/command` and `/input` so that an alias will not take precedence over these commands (bug #36353)
* core: execute command with higher priority when many commands with same name are found with different priorities
* core: fix display of combining chars (bug #37775)
* core: fix display of zoomed/merged buffer (with number ≥ 2) after switching to it (bug #37593)
* core: fix display problem when option weechat.look.prefix_same_nick is set (problem with nick displayed in first line of screen) (bug #37556)
* core: fix wrapping of words with wide chars (the break was made before the correct position)
* api: do not call shell to execute command in hook_process (fix security problem when a plugin/script gives untrusted command) (bug #37764)
* alias: give higher priority to aliases (2000) so that they take precedence over an existing command
* aspell: ignore self and remote nicks in private buffers
* aspell: fix creation of spellers when number of dictionaries is different between two buffers
* guile: fix bad conversion of shared strings (replace calls to scm_i_string_chars by scm_to_locale_string) (bug #38067)
* irc: fix display of actions (`/me`) when they are received from a relay client (in channel and private buffers) (bug #38027)
* irc: fix memory leak when updating modes of channel
* irc: fix crash on `/upgrade` (free channels before server data when a server is destroyed) (bug #37736)
* irc: fix crash when decoding IRC colors in strings (bug #37704)
* irc: fix refresh of bar item "away" after command `/away` or `/disconnect`
* irc: send whois on self nick when `/whois` is done without argument on a channel (task #12273)
* irc: remove local variable "away" in server/channels buffers after server disconnection (bug #37582)
* irc: fix crash when message 352 has too few arguments (bug #37513)
* irc: remove unneeded server disconnect when server buffer is closed and server is already disconnected
* perl: fix calls to callbacks during load of script when multiplicity is disabled (bug #38044)
* relay: fix duplicated messages sent to irc clients (when messages are redirected) (bug #37870)
* relay: fix memory leak when adding hdata to a message (weechat protocol)
* relay: fix crash after `/upgrade` when a client is connected
* relay: add missing "ssl." in output of `/relay listrelay`
* script: fix scroll with mouse when window with script buffer is not the current window (do not force a switch to script buffer in current window)
* xfer: fix memory leak when refreshing xfer buffer
* xfer: add missing tags in DCC chat messages: nick_xxx, prefix_nick_ccc, logN
* xfer: limit bytes received to file size (for DCC file received), fix crash when displaying a xfer file with pos greater than size
Build::
* core: add git version in build, display it in `weechat-curses --help` and `/version`
* core: stop CMake if gcrypt lib is not found (bug #37671)
* guile: fix detection of Guile in configure
* script: fix compilation on macOS
[[v0.3.9.2]]
== Version 0.3.9.2 (2012-11-18)
Bug fixes::
* core: do not call shell to execute command in hook_process (fix security problem when a plugin/script gives untrusted command) (bug #37764, CVE-2012-5534)
[[v0.3.9.1]]
== Version 0.3.9.1 (2012-11-09)
Bug fixes::
* irc: fix crash when decoding IRC colors in strings (bug #37704, CVE-2012-5854)
[[v0.3.9]]
== Version 0.3.9 (2012-09-29)
New features::
* core: add signals for plugins loaded/unloaded
* core: add default key kbd:[Alt+x] (zoom on merged buffer) (task #11029)
* core: add mouse bindings kbd:[Ctrl] + wheel up/down to scroll horizontally buffers with free content
* core: add option weechat.startup.sys_rlimit to set system resource limits for WeeChat process
* core: add option `swap` in command `/buffer` (task #11373)
* core: add hdata "hotlist"
* core: add support of arrays in hdata variables
* core: add command line option `-r` (or `--run-command`) to run command(s) after startup of WeeChat
* core: add function hook_set in plugin API, add "subplugin" in hooks (set by script plugins), display subplugin in `/help` on commands (task #12049)
* core: add option weechat.look.jump_smart_back_to_buffer (jump back to initial buffer after reaching end of hotlist, on by default, which is old behavior)
* core: add default key kbd:[Alt+s] (toggle aspell)
* core: add callback "nickcmp" in buffers
* core: add horizontal separator between windows, new options weechat.look.window_separator_{horizontal|vertical}
* core: add options weechat.look.color_nick_offline and weechat.color.chat_nick_offline{_highlight|_highlight_bg} to use different color for offline nicks in prefix (task #11109)
* api: allow update for some variables of hdata, add new functions hdata_update and hdata_set
* api: add info "locale" for info_get (locale used to translate messages)
* api: add new function util_version_number
* aspell: add option aspell.check.enabled, add options enable/disable/toggle for command `/aspell` (rename options enable/disable/dictlist to setdict/deldict/listdict), display aspell status with `/aspell` (task #11988)
* irc: generate alternate nicks dynamically when all nicks are already in use (task #12209)
* irc: add bar item "buffer_modes", remove option irc.look.item_channel_modes (task #12022)
* irc: add option irc.look.ctcp_time_format to customize reply to CTCP TIME (task #12150)
* irc: move options from core to irc plugin: weechat.look.nickmode to irc.look.nick_mode (new type: integer with values: none/prefix/action/both) and weechat.look.nickmode_empty to irc.look.nick_mode_empty
* logger: add tags in backlog lines displayed when opening buffer
* logger: add messages "Day changed to" in backlog (task #12187)
* relay: add support of SSL (for irc and weechat protocols), new option relay.network.ssl_cert_key (task #12044)
* relay: add option relay.color.client
* relay: add object type "arr" (array) in WeeChat protocol
* script: new plugin "script" (script manager, replacing scripts weeget.py and script.pl)
* scripts: add signals for scripts loaded/unloaded/installed/removed
* scripts: add hdata with list of scripts for each language
Bug fixes::
* core: fix display bug when end of a line is displayed on top of chat (last line truncated and MORE(0) in status bar) (bug #37203)
* core: fix IP address returned by hook_connect (return IP really used, not first IP for hostname)
* core: display spaces at the end of messages in chat area (bug #37024)
* core: fix infinite loop in display when chat area has width of 1 with a bar displayed on the right (nicklist by default) (bug #37089)
* core: fix display of "bar more down" char when text is truncated by size_max in bars with vertical filling (bug #37054)
* core: fix color of long lines (displayed on more than one line on screen) under FreeBSD (bug #36999)
* core: return error string to callback of hook_connect if getaddrinfo fails in child process
* core: scroll to bottom of window after reaching first or last highlight with keys kbd:[Alt+p] / kbd:[Alt+n]
* core: fix refresh of bar items when switching window
* core: fix refresh of bar items "buffer_filter" and "scroll" in root bars (bug #36816)
* core: allow again names beginning with "#" for bars, proxies and filters
* core: escape special chars (`#[\`) in configuration files for name of options (bug #36584)
* aspell: add missing dictionaries (ast/grc/hus/kn/ky)
* charset: do not allow "UTF-8" in charset decoding options (useless because UTF-8 is the internal WeeChat charset)
* fifo: ignore read failing with error EAGAIN (bug #37019)
* guile: fix crash when unloading a script without pointer to interpreter
* irc: fix rejoin of channels with a key, ignore value "*" sent by server for key (bug #24131)
* irc: fix SASL mechanism "external" (bug #37274)
* irc: fix parsing of message 346 when no nick/time are given (bug #37266)
* irc: switch to next address after a timeout when connecting to server (bug #37216)
* irc: fix bug when changing server option "addresses" with less addresses (bug #37215)
* irc: add network prefix in irc (dis)connection messages
* irc: fix split of received IRC message: keep spaces at the end of message
* irc: fix bug with prefix chars which are in chanmodes with a type different from "B" (bug #36996)
* irc: fix format of message "USER" (according to RFC 2812) (bug #36825)
* irc: fix parsing of user modes (ignore everything after first space) (bug #36756, bug #31572)
* irc: fix freeze when reading on socket with SSL enabled (use non-blocking sockets) (bug #35097)
* irc: allow again names beginning with "#" for servers
* lua: fix crash when unloading a script without pointer to interpreter
* python: fix crash when unloading a script without pointer to interpreter
* relay: fix freeze when writing on relay socket (use non-blocking sockets in relay for irc and weechat protocols) (bug #36655)
* scripts: fix deletion of configuration files when script is unloaded (bug #36977)
* scripts: fix function unhook_all: delete only callbacks of hooks and add missing call to unhook
* scripts: ignore call to register (with a warning) if script is already registered
* xfer: fix DCC transfer error (bug #37432)
Documentation::
* add Japanese user's guide (patch #7827), scripting guide and tester's guide
Build::
* core: move the set of CMake policy CMP0003 in directory src (so it applies to all plugins) (bug #37311)
* core: fix names of cache variables in configure.in (bug #36971)
* core: add CMake option "MANDIR" (bug #36776)
* guile: fix path of Guile include dirs in CMake build (patch #7790)
* lua: add support of Lua 5.2
* python: fix detection of Python (first try "python2.x" and then "python") (bug #36835)
* ruby: add detection of Ruby 1.9.3
[[v0.3.8]]
== Version 0.3.8 (2012-06-03)
New features::
* core: add option weechat.look.prefix_same_nick (hide or change prefix on messages whose nick is the same as previous message) (task #11965)
* core: convert tabs to spaces in text pasted (bug #25028)
* core: add a connection timeout for child process in hook_connect (bug #35966)
* core: add support of terminal "bracketed paste mode", new options weechat.look.paste_bracketed and weechat.look.paste_bracketed_timer_delay (task #11316)
* core: support lines of 16 Kb long in configuration files (instead of 1 Kb)
* core: convert options weechat.look.prefix_align_more and weechat.look.prefix_buffer_align_more from boolean to string (task #11197)
* core: follow symbolic links when writing configuration files (.conf) (task #11779)
* api: add list "gui_buffer_last_displayed" in hdata "buffer"
* irc: add option `fakerecv` in command `/server` to simulate a received IRC message (not documented, for debug only)
* irc: add option `-pending` in command `/disconnect` (cancel auto-reconnection on servers currently reconnecting) (task #11985)
* irc: add signals and tags in messages for irc notify (task #11887)
* irc: add support of "external" SASL mechanism (task #11864)
* irc: allow more than one nick in command `/invite`
* logger: add colors for backlog lines and end of backlog, new options: logger.color.backlog_line and logger.color.backlog_end (task #11966)
* relay: add signals "upgrade" and "upgrade_ended" in WeeChat protocol
* relay: add "date_printed" and "highlight" in signal "_buffer_line_added" (WeeChat protocol)
* rmodifier: add default rmodifier "quote_pass" to hide password in command `/quote pass` (bug #36250)
* rmodifier: add default rmodifier "server" to hide passwords in commands `/server` and `/connect` (task #11993)
* rmodifier: add option "release" in default rmodifier "nickserv" (used to hide passwords in command `/msg nickserv`) (bug #35705)
Bug fixes::
* core: fix crash in focus hook for nicklist (bug #36271)
* core: fix truncated configuration files (zero-length) after system crash (bug #36383)
* core: fix display bugs and crashes with small windows (bug #36107)
* core: fix display bug with prefix when length is greater than max and prefix is ending with a wide char (bug #36032)
* core: fix lost scroll when switching to a buffer with a pending search
* core: fix display of wide chars on last column of chat area (patch #7733)
* api: display warning in scripts when invalid pointers (malformed strings) are given to plugin API functions (warning displayed if debug for plugin is ≥ 1)
* scripts: fix type of argument "rc" in callback of hook_process (from string to integer)
* guile: fix crash on ARM when loading guile plugin (bug #36479)
* guile: add missing function hook_process_hashtable in API
* irc: update channel modes by using chanmodes from message 005 (do not send extra command "MODE" to server), fix parsing of modes (bug #36215)
* irc: hide everything after "identify" or "register" in messages to nickserv when option irc.look.hide_nickserv_pwd is on (bug #36362)
* irc: set user modes only if target nick is self nick in message 221 (patch #7754)
* irc: force the clear of nicklist when joining a channel (nicklist was not sync after znc reconnection) (bug #36008)
* irc: do not send command "MODE #channel" on manual `/names` (do it only when names are received on join of channel) (bug #35930)
* irc: do not allow the creation of two servers with same name but different case (fix error when writing file irc.conf) (bug #35840)
* irc: update away flag for nicks on manual `/who`
* irc: display privmsg messages to "@#channel" and "+#channel" in channel buffer (bug #35331)
* irc: fix redirection of message when message is queued for sending on server
* irc: check notify immediately when adding a nick to notify list, improve first notify message for a nick (bug #35731)
* irc: fix display of color in hostname (join/part/quit messages)
* irc: compute hash to find nick color for nick in server message when nick is not in nicklist
* irc: close server buffer when server is deleted
* irc: add search for lower case nicks in option irc.look.nick_color_force
* logger: fix charset of lines displayed in backlog when terminal charset is different from UTF-8 (bug #36379)
* perl: fix crash on quit on macOS
* relay: keep spaces in beginning of "input" received from client (WeeChat protocol)
* relay: fix crash on `/upgrade` when client is connected using WeeChat protocol
* relay: redirect some irc messages from clients to hide output (messages: mode, ison, list, names, topic, who, whois, whowas, time, userhost) (bug #33516)
* tcl: add missing function hdata_char in API
* tcl: fix pointer sent to function hook_signal_send when type of data is a pointer
Documentation::
* add Japanese FAQ (patch #7781)
Build::
* perl: fix compilation on macOS (bug #30701)
[[v0.3.7]]
== Version 0.3.7 (2012-02-26)
New features::
* core: add support of flags in regular expressions and highlight options
* core: add type "hashtable" for hdata
* core: add signals "buffer_line_added" and "window_switch"
* core: add default keys kbd:[Ctrl+Left] / kbd:[Ctrl+Right] (`meta2-1;5D` / `meta2-1;5C`) for gnome-terminal
* core: add option `hooks` in command `/debug`
* core: add option weechat.look.scroll_bottom_after_switch (if enabled, restore old behavior before fix of bug #25555 in version 0.3.5)
* core: add new option weechat.completion.base_word_until_cursor: allow completion in middle of words (enabled by default) (task #9771)
* core: add option `jump_last_buffer_displayed` in command `/input` (key: kbd:[Alt+/]) (task #11553)
* core: add option weechat.history.max_buffer_lines_minutes: maximum number of minutes in history per buffer (task #10900), rename option weechat.history.max_lines to weechat.history.max_buffer_lines_number
* core: add optional arguments for command `/plugin load/reload/autoload`
* core: use extended regex in filters (task #9497, patch #7616)
* api: add modifier "input_text_for_buffer" (bug #35317)
* api: add support of URL in hook_process / hook_process_hashtable (task #10247)
* api: add new functions strcasecmp_range, strncasecmp_range, string_regex_flags, string_regcomp, hashtable_map_string, hook_process_hashtable, hdata_check_pointer, hdata_char, hdata_hashtable and nicklist_get_next_item
* alias: add default alias `/umode` -> `/mode $nick`
* irc: add option "capabilities" in servers to enable client capabilities on connection
* irc: add signal "irc_server_opened"
* irc: add signal "xxx,irc_out1_yyy" and modifier "irc_out1_xxx" (outgoing message before automatic split to fit in 512 bytes)
* irc: add alias "ctcp" for target buffer of CTCP messages
* irc: add options irc.look.highlight_{server|channel|pv} to customize or disable default nick highlight (task #11128)
* irc: use redirection to get channel modes after update of modes on channel, display output of `/mode #channel`, allow `/mode` without argument (display modes of current channel or user modes on server buffer)
* irc: add optional server in info "irc_is_channel" (before channel name) (bug #35124), add optional server in info_hashtable "irc_message_parse"
* irc: add case insensitive string comparison based on casemapping of server (rfc1459, strict-rfc1459, ascii) (bug #34239)
* irc: add option irc.color.mirc_remap to remap mirc colors in messages to WeeChat colors
* irc: allow URL "irc://" in command `/connect`
* irc: use extended regex in commands `/ignore` and `/list`
* guile: new script plugin for scheme (task #7289)
* python: add support of Python 3.x (task #11704)
* relay: add WeeChat protocol for remote GUI
* xfer: display origin of xfer in core and xfer buffers (task #10956)
Internationalization::
* add Japanese translations
Bug fixes::
* core: fix expand of path `~` to home of user in function string_expand_home (`~/xxx` was OK, but not `~`)
* core: fix memory leak when closing buffer
* core: fix memory leak in function util_search_full_lib_name
* core: automatically add newline char after last pasted line (when pasting many lines with confirmation) (task #10703)
* core: fix bug with layout: assign layout number in buffers when doing `/layout save`
* core: do not auto add space after nick completer if option weechat.completion.nick_add_space is off
* core: fix signal "buffer_switch": send it only once when switching buffer (bug #31158)
* core: move option `scroll_unread` from command `/input` to `/window`
* core: save current mouse state in option weechat.look.mouse (set option when mouse state is changed with command `/mouse`)
* core: apply filters after full reload of configuration files (with `/reload`) (bug #31182)
* core: allow list for option weechat.plugin.extension (makes weechat.conf portable across Un*x and Windows) (task #11479)
* core: display error in command `/buffer` if arguments are wrong (bug #34180)
* core: fix help on plugin option when config_set_desc_plugin is called to set help on newly created option
* core: enable background process under Cygwin to connect to servers, fix reconnection problem (bug #34626)
* aspell: fix URL detection (do not check spelling of URLs) (bug #34040)
* irc: fix memory leak in SASL DH-BLOWFISH authentication
* irc: fix memory leak when a server is deleted
* irc: fix self-highlight when using `/me` with an IRC bouncer like znc (bug #35123)
* irc: use low priority for MODE sent automatically by WeeChat (when joining channel)
* irc: do not use option irc.look.nick_color_stop_chars for forced nick colors (bug #33480)
* irc: reset read marker of current buffer on manual `/join`
* irc: fix crash when signon time in message 317 (whois, idle) is invalid (too large) (bug #34905)
* irc: do not delete servers added in irc.conf on `/reload` (bug #34872)
* irc: remove autorejoin on channels when disconnected from server (bug #32207)
* irc: display messages kick/kill/mode/topic even if nick is ignored (bug #34853)
* irc: display channel voice notices received in channel buffer (bug #34762), display channel/op notices sent in channel buffer
* irc: auto-connect to servers created with "irc://" on command line but not other servers if `-a` (`--no-connect`) is given
* perl: increment count of hash returned by API (fix crash when script tries to read hash without making a copy)
* relay: do not create relay if there is a problem with socket creation (bug #35345)
* ruby: fix crash when reloading ruby plugin (bug #34474)
Documentation::
* add developer's guide (task #5416)
Build::
* core: add library "pthread" in CMake file for link on OpenBSD
* core: add WEECHAT_HOME option in CMake and configure to setup default WeeChat home (default is "~/.weechat") (task #11266)
* core: fix compilation under OpenBSD 5.0 (lib utf8 not needed any more) (bug #34727)
* core: fix compilation error with "pid_t" on macOS (bug #34639)
[[v0.3.6]]
== Version 0.3.6 (2011-10-22)
New features::
* core: add color attribute "|" (keep attributes) and value "resetcolor" for function color in plugin API (used by irc plugin to keep bold/reverse/underlined in message when changing color) (bug #34550)
* core: add new option weechat.look.color_basic_force_bold, off by default: bold is used only if terminal has less than 16 colors (patch #7621)
* core: add default key kbd:[F5] (`meta2-[E`) for Linux console
* core: add "inactive" colors for inactive windows and lines in merged buffers, new options: weechat.look.color_inactive_window, weechat.look.color_inactive_buffer, weechat.look.color_inactive_message, weechat.look.color_inactive_prefix, weechat.look.color_inactive_prefix_buffer, weechat.look.color_inactive_time, weechat.color.chat_inactive_line, weechat.color.chat_inactive_window, weechat.color.chat_prefix_buffer_inactive_line
* core: do automatic zoom on current window when terminal becomes too small for windows
* core: add new options weechat.look.bar_more_left/right/up/down
* core: add new option weechat.look.item_buffer_filter
* core: allow name of buffer for command `/buffer clear` (task #11269)
* core: add new command `/repeat` (execute a command several times)
* core: save and restore layout for buffers and windows on `/upgrade`
* core: add option `-all` in command `/buffer unmerge`
* core: add number in windows (add optional argument `-window` so some actions for command `/window`)
* core: allow buffer name in `/buffer close`
* core: add support of mouse: new command `/mouse`, new key context "mouse", new options weechat.look.mouse and weechat.look.mouse_timer_delay (task #5435)
* core: add command `/cursor` (free movement of cursor on screen), with key context "cursor"
* core: automatic scroll direction in `/bar scroll` (x/y is now optional)
* core: add optional delay for key grab (commands `/input grab_key` and `/input grab_key_command`, default is 500 milliseconds)
* core: allow plugin name in command `/buffer name`
* core: add context "search" for keys (to define keys used during search in buffer with kbd:[Ctrl+r])
* core: add new option weechat.look.separator_vertical, rename option weechat.look.hline_char to weechat.look.separator_horizontal
* core: add local variable "highlight_regex" in buffers
* core: add "hdata" (direct access to WeeChat/plugin data)
* core: add option weechat.look.eat_newline_glitch (do not add new line at end of each line displayed)
* core: add options `infolists`, `hdata` and `tags` for command `/debug`
* core: add horizontal scrolling for buffers with free content (command `/window scroll_horiz`) (task #11112)
* core: change default value of option weechat.network.gnutls_ca_file to "/etc/ssl/certs/ca-certificates.crt"
* api: add info "cursor_mode"
* api: add new functions key_bind, key_unbind, hook_focus, hdata_new, hdata_new_var, hdata_new_list, hdata_get, hdata_get_var_offset, hdata_get_var_type, hdata_get_var_type_string, hdata_get_var_hdata, hdata_get_var, hdata_get_var_at_offset, hdata_get_list, hdata_move, hdata_integer, hdata_string, hdata_pointer, hdata_time, hdata_get_string
* irc: allow reason for command `/disconnect`
* irc: allow server name for commands `/die` and `/restart`
* irc: add new info_hashtable "irc_message_split"
* irc: add prefix "#" for all channels on join (if no prefix given)
* irc: improve split of privmsg message (keep ctcp), add split of ison, join, notice, wallops, 005, 353 (bug #29879, bug #33448, bug #33592)
* logger: add option logger.file.flush_delay (task #11118)
Bug fixes::
* core: fix freeze when calling function util_file_get_content with a directory instead of a filename
* core: display timeout for hook_process command only if debug for core is enabled (task #11401)
* core: bufferize lines displayed before core buffer is created, to display them in buffer when it is created
* core: fix display of background color in chat area after line feed
* core: fix paste detection (problem with end of lines)
* core: fix display of paste multi-line prompt with a root input bar (bug #34305)
* core: replace deprecated GnuTLS function gnutls_certificate_client_set_retrieve_function by new function gnutls_certificate_set_retrieve_function (GnuTLS ≥ 2.11.0)
* core: use dynamic buffer size for calls to vsnprintf
* core: fix memory leak in unhook of hook_connect
* core: fix memory leak in display of empty bar items
* core: fix input of wide UTF-8 chars under Cygwin (bug #34061)
* core: fix bugs with automatic layout (bug #26110), add support of merged buffers in layout (task #10893)
* core: fix crash when invalid UTF-8 chars are inserted in command line (bug #33471)
* core: stop horizontal bar scroll at the end of content (for bars with horizontal filling) (bug #27908)
* core: fix crash when building hashtable string with keys and values
* core: replace buffer name by window number in `/bar scroll`
* core: fix bugs with key "^" (bug #32072, bug #21381)
* core: fix bugs with bar windows: do not create bar windows for hidden bars
* core: fix completion bug when two words for completion are equal but with different case
* core: fix completion for command arguments when same command exists in many plugins (bug #33753)
* core: fix freeze when hook_fd is called with a bad file/socket (bug #33619)
* core: fix bug with option weechat.look.hotlist_count_max (value+1 was used)
* api: use arguments for infolist "window" to return only one window by number
* api: fix bug with function config_set_desc_plugin (use immediately description for option when function is called)
* scripts: fix crash with scripts not auto-loaded having a buffer opened after `/upgrade` (input/close callbacks for buffer not set properly)
* irc: fix display of items "away" and "lag" in root bars, refresh all irc bar items on signal "buffer_switch" (bug #34466)
* irc: fix crash on malformed irc notice received (without message after target)
* irc: add missing messages for whois: 223, 264, 343
* irc: use high priority queue for sending modes and wallchops messages
* irc: rename info_hashtable "irc_parse_message" to "irc_message_parse"
* irc: use color "default" for any invalid color in option weechat.color.chat_nick_colors
* irc: send WHO command to check away nicks only if channel was not parted
* irc: fix crash when malformed IRC message 352 (WHO) is received (bug #33790)
* irc: fix crash when command `/buffer close` is used in a server command to close server buffer during connection (bug #33763)
* irc: fix crash when `/join` command is executed on a non-irc buffer (bug #33742)
* irc: fix bug with comma in irc color code: do not strip comma if it is not followed by a digit (bug #33662)
* irc: switch to buffer on `/join #channel` if channel buffer already exists
* irc: set host for nick on each channel message and nick change (if not already set)
* irc: update host of nicks on manual `/who`
* irc: fix memory leak on plugin unload (free ignores)
* irc: fix memory leak in message parser (when called from other plugins like relay) (bug #33387)
* relay: fix bug with self nick when someone changes its nick on channel (bug #33739)
* relay: fix memory leak (free some parsed messages) (bug #33387)
* relay: fix memory leak on plugin load (free raw messages)
* perl: replace calls to SvPV by SvPV_nolen (patch #7436)
Build::
* core: fix compilation error (INSTALLPREFIX undeclared) on macOS and when compiling with included gettext (bug #26690)
[[v0.3.5]]
== Version 0.3.5 (2011-05-15)
New features::
* core: add buffer to hotlist if away is set on buffer (even if buffer is displayed), new option weechat.look.hotlist_add_buffer_if_away (task #10948)
* core: add option `balance` in command `/window` (key: kbd:[Alt+w], kbd:[Alt+b])
* core: add option `swap` in command `/window` (key: kbd:[Alt+w], kbd:[Alt+s]) (task #11001)
* core: add option weechat.look.hotlist_buffer_separator
* core: add messages counts in hotlist for each buffer, new options: weechat.look.hotlist_count_max, weechat.look.hotlist_count_min_msg and weechat.color.status_count_{msg|private|highlight|other}
* core: add tag "notify_none" (line with this tag will not update hotlist)
* core: add optional bar name in command `/bar default`
* core: add new option weechat.look.highlight_tags (force highlight on tags)
* core: allow list of buffers in command `/filter` (exclusion with prefix "!") (task #10880)
* core: allow relative size for command `/window resize`
* core: add some default keys for gnome-terminal (kbd:[Home] / kbd:[End], kbd:[Ctrl+Up] / kbd:[Ctrl+Down], kbd:[Alt+PgUp] / kbd:[Alt+PgDn])
* core: add option `memory` in command `/debug`
* core: add option weechat.look.read_marker_string
* core: add some chars after cursor when scrolling input line: new option weechat.look.input_cursor_scroll (bug #21391)
* core: add color "gray"
* core: add attributes for colors ("*": bold, "!": reverse, "_": underline)
* core: dynamically allocate color pairs (extended colors can be used without being added with command `/color`), auto reset of color pairs with option weechat.look.color_pairs_auto_reset
* core: allow background for nick colors (using ":")
* core: remember scroll position for all buffers in windows (bug #25555)
* core: improve display of commands lists in `/help` (add arguments -list and -listfull) (task #10299)
* core: improve arguments displayed in `/help` of commands
* api: add new function config_set_desc_plugin (task #10925)
* api: add new functions buffer_match_list and window_search_with_buffer
* aspell: add section "option" in aspell.conf for speller options (task #11083)
* irc: add new options irc.color.topic_old and irc.color.topic_new
* irc: add option "ssl_priorities" in servers (task #10106, debian #624055)
* irc: add modifier "irc_in2_xxx" (called after charset decoding)
* irc: add new options irc.look.buffer_switch_autojoin and irc.look.buffer_switch_join (task #8542, task #10506)
* irc: add new option irc.look.smart_filter_nick
* irc: add new options irc.look.color_nicks_in_nicklist and irc.look.color_nicks_in_names
* irc: replace options irc.color.nick_prefix_{op|halfop|voice|user} by a single option irc.color.nick_prefixes (task #10888)
Bug fixes::
* core: fix scroll in windows with `/window scroll` (skip lines "Day changed to")
* core: recalculate buffer_max_length when buffer short name is changed (patch #7441)
* core: do not update hotlist during upgrade
* core: apply new value of option weechat.look.buffer_notify_default to all opened buffers
* core: prohibit names beginning with "#" for bars, proxies, filters and IRC servers (bug #33020)
* core: create default bars only if no bar is defined in configuration file
* core: fix bug with repeat of last completion ("%*"), which failed when many templates are used in completion
* core: reload file with certificate authorities when option weechat.network.gnutls_ca_file is changed
* core: rebuild bar content when items are changed in an hidden bar
* core: fix verification of SSL certificates by calling GnuTLS verify callback (patch #7459, CVE-2011-1428)
* core: fix crash when using column filling in bars with some empty items (bug #32565)
* core: fix terminal title when $TERM starts with "screen"
* plugins: fix memory leaks when setting buffer callbacks after `/upgrade` (plugins: irc, relay, xfer, scripts)
* aspell: fix spellers used after switch of window (bug #32811)
* irc: fix parsing of message 332 when no topic neither colon are found (bug with bip proxy)
* irc: fix nick color in private when option irc.look.nick_color_force is changed
* irc: fix tags for messages sent with `/msg` command (bug #33169)
* irc: fix memory leak when copying or renaming server
* irc: do not rejoin channels where `/part` has been issued before reconnection to server (bug #33029)
* irc: use nick color for users outside the channel
* irc: update short name of server buffer when server is renamed
* irc: fix local variable "away" on server buffer (set/delete it each time away is set or removed on server)
* irc: ignore join if nick is not self nick and if channel buffer does not exist (bug #32667)
* irc: fix crash when setting wrong value in option irc.server.xxx.sasl_mechanism (bug #32670)
* irc: fix crash when completing `/part` command on a non-irc buffer (bug #32402)
* irc: add many missing commands for target buffer (options irc.msgbuffer.xxx) (bug #32216)
* lua: fix crash when many scripts are executing callbacks at same time
* perl: fix memory leak when calling Perl functions (bug #32895)
* relay: fix crash on `/upgrade` when nick in irc client is not yet set
* relay: allow colon in server password received from client
* relay: do not send join for private buffers to client
* rmodifier: fix reload of file rmodifier.conf
* rmodifier: fix crash when adding rmodifier with invalid regex
* xfer: do not close chat buffers when removing xfer from list (bug #32271)
Build::
* tcl: fix Tcl detection on some 64-bits systems (bug #32915)
[[v0.3.4]]
== Version 0.3.4 (2011-01-16)
New features::
* core: add 256 colors support, new command `/color`, new section "palette" in weechat.conf (task #6834)
* core: add info "weechat_upgrading", signal "upgrade_ended", display duration of upgrade
* core: add new option weechat.look.highlight_regex and function string_has_highlight_regex in plugin API (task #10321)
* core: add new option weechat.look.hotlist_unique_numbers (task #10691)
* core: add property "hotlist_max_level_nicks" in buffers to set max hotlist level for some nicks in buffer
* core: add new options weechat.look.input_share and weechat.look.input_share_overwrite (task #9228)
* core: add new option weechat.look.prefix_align_min (task #10650)
* core: replace the 10 nick color options and number of nick colors by a single option weechat.color.chat_nick_colors (comma separated list of colors)
* core: add color support in option weechat.look.buffer_time_format
* api: add priority for hooks (task #10550)
* api: add new functions: list_search_pos, list_casesearch_pos, hashtable_get_string, hashtable_set_pointer, hook_info_hashtable, info_get_hashtable, hook_hsignal, hook_hsignal_send, hook_completion_get_string, nicklist_group_get_integer, nicklist_group_get_string, nicklist_group_get_pointer, nicklist_group_set, nicklist_nick_get_integer, nicklist_nick_get_string, nicklist_nick_get_pointer, nicklist_nick_set
* irc: add option `-server` in command `/join` (task #10837)
* irc: add option `-switch` in commands `/connect` and `/reconnect`
* irc: add command `/notify`, new options irc.look.notify_tags_ison, irc.look.notify_tags_whois, irc.network.notify_check_ison, irc.network.notify_check_whois, new option "notify" in servers, new infolist "irc_notify" (task #5441)
* irc: add new option irc.look.nick_color_force (task #7374)
* irc: add command redirection with hsignals irc_redirect_pattern and irc_redirect_command (task #6703)
* irc: add new options irc.color.nick_prefix and irc.color.nick_suffix
* irc: add new option irc.look.item_away_message
* irc: add tag "nick_xxx" in user messages
* irc: move options from network section to server section: connection_timeout, anti_flood_prio_high, anti_flood_prio_low, away_check, away_check_max_nicks, default_msg_part, default_msg_quit (task #10664, task #10668)
* irc: display old channel topic when topic is unset (task #9780)
* irc: add new info_hashtable "irc_parse_message"
* irc: add signal "irc_input_send"
* irc: rename options irc.look.open_channel_near_server and irc.look.open_pv_near_server to irc.look.new_channel_position and irc.look.new_pv_position with new values (none, next or near_server)
* rmodifier: new plugin "rmodifier": alter modifier strings with regular expressions (bug #26964)
* relay: beta version of IRC proxy, now relay plugin is compiled by default
* python: add info "python2_bin" (path to Python 2.x interpreter)
Bug fixes::
* core: fix scroll problem on buffers with free content and non-allocated lines (bug #32039)
* core: call to function hook_config when config option is created
* core: fix infinite loop on GnuTLS handshake when connecting with SSL to server on wrong port or server with SSL problems (bug #27487)
* core: fix data sent to callback of hook_process (some data was sometimes missing), use a 64KB buffer for child output and send data to callback only when buffer is full
* core: fix crash when displaying groups in buffer nicklist
* core: fix bug with message "day changed to", sometimes displayed several times wrongly
* core: fix default value of bar items options (bug #31422)
* core: fix bug with buffer name in `/bar scroll` command
* core: optimize incremental search in buffer: do not search any more when chars are added to a text not found (bug #31167)
* core: fix memory leaks when removing item in hashtable and when setting highlight words in buffer
* core: use similar behavior for keys bound to local or global history (bug #30759)
* alias: complete with alias value for second argument of command `/alias`
* irc: differentiate notices from messages in private buffer (bug #31980)
* irc: update nick modes with message 221 (bug #32038)
* irc: fix bug with charset decoding on private buffers (decoding was made for local nick instead of remote nick) (bug #31890)
* irc: allow command `/reconnect` on servers that are not currently connected (bug #30726)
* irc: fix topic completion in command `/topic` when channel topic starts with channel name
* irc: improve nick prefixes, all modes (even unknown) are used with PREFIX value from message 005
* irc: fix crash/bug when option "addresses" for a server is unset or changed when WeeChat is connected to this server (bug #31268)
* irc: switch to next server address when IRC error is received after TCP connection but before message 001 (bug #30884)
* irc: fix bug with hostmasks in command `/ignore` (bug #30716)
* relay: split of messages sent to clients of irc proxy
* scripts: add missing function infolist_reset_item_cursor in API (bug #31057)
* lua: fix crash when unloading script
* xfer: fix dcc chat buffer name (use irc server in name) (bug #29925)
* xfer: fix dcc file transfer for large files (more than 4 GB) on 32-bit systems (bug #31531)
* xfer: fix bug at end of file sent, sometimes transfer is still active although file was successfully sent
Build::
* core: add support of Python 2.7 in CMake and configure (debian #606989)
* ruby: fix compilation with Ruby 1.9.2 (patch #7316)
[[v0.3.3]]
== Version 0.3.3 (2010-08-07)
New features::
* core: use "!" to reverse a regex in a filter (to keep lines matching regex and hide other lines) (task #10032)
* core: add keys for undo/redo changes on command line (default: kbd:[Ctrl+pass:none[_]] and kbd:[Alt+pass:none[_]]) (task #9483)
* core: add new option weechat.look.align_end_of_lines
* core: add new option weechat.look.confirm_quit
* core: add new option weechat.color.status_name_ssl (task #10339)
* core: add hashtables with new functions in plugin API
* api: add function string_expand_home, fix bug with replacement of home in paths
* irc: add new option irc.look.nick_color_stop_chars
* irc: add new options irc.look.display_host_join/join_local/quit and irc.color.reason_quit
* irc: add command `/wallchops`, fix bug with display of notice for ops (task #10021, bug #29932)
* irc: add isupport value in servers (content of IRC message 005), with new infos: irc_server_isupport and irc_server_isupport_value
* irc: add message in private buffer when nick is back on server after a `/quit`
* irc: add new options irc.network.autoreconnect_delay_growing and irc.network.autoreconnect_delay_max (task #10338)
* irc: add missing commands 346, 347 (channel invite list)
* irc: improve lag indicator: two colors (counting and finished), update item even when pong has not been received, lag_min_show is now in milliseconds
* irc: move options weechat.color.nicklist_prefix to irc plugin
* logger: use tag "no_log" to prevent a line from being written in log file
Bug fixes::
* core: fix bug with scroll_unread: do not scroll to a filtered line (bug #29991)
* core: fix crash with hook_process (when timer is called on a deleted hook process)
* core: fix display bug with special chars (ascii value below 32) (bug #30602)
* core: fix display bug with attributes like underlined in bars (bug #29889)
* api: fix bug with replacement char in function string_remove_color (bug #30296)
* irc: fix bug in parser when no argument is received after command, no callback was called, and message was silently ignored (bug #30640)
* irc: fix import of certificates created by OpenSSL ≥ 1.0.0 (bug #30316)
* irc: fix display of local SSL certificate when it is sent to server (patch #7218)
* irc: use empty real name by default in config, instead of reading real name in /etc/passwd (bug #30111)
* irc: fix bug with command line option "irc://" (bug #29990), new format for port and channels
* irc: fix display of messages 330 and 333 on some servers
* irc: fix bug with nick prefix "*" (chan founder) on some IRC servers (bug #29890)
* irc: fix bug with option irc.network.lag_check when value is 0 (zero)
* irc: try other nick when connecting to server and receiving message 437 (nick unavailable)
* irc: set buffer local variable "away" when opening new channel (bug #29618)
* fifo: fix bug with fifo pipe when setting fifo option to "on"
* xfer: fix bug with double quotes in DCC filenames (bug #30471)
[[v0.3.2]]
== Version 0.3.2 (2010-04-18)
New features::
* core: add new options for command `/key`: `listdefault`, `listdiff` and `reset`
* core: add new command `/mute`
* core: add command line option `-s` (or `--no-script`) to start WeeChat without loading any script
* core: improve plugins autoload (option weechat.plugin.autoload): allow to use "*" as wildcard and "!" to prevent a plugin from being autoloaded (task #6361)
* core: add option "switch_active_buffer_previous" in command `/input` (task #10141)
* core: add new option weechat.look.time_format to customize default format for date/time displayed (localized date by default), add function util_get_time_string in plugin API (patch #6914)
* core: add new option weechat.look.command_chars, add functions string_is_command_char and string_input_for_buffer in plugin and script API
* core: add new option weechat.look.read_marker_always_show
* api: add "version_number" for function info_get to get WeeChat version as number
* api: add "irc_is_nick" for function info_get to check if a string is a valid IRC nick name (patch #7133)
* api: add functions string_encode_base64 and string_decode_base64, fix bug with base64 encoding
* api: add functions string_match, string_has_highlight and string_mask_to_regex in script plugin API
* api: add description of arguments for functions hook_info and hook_infolist
* api: add signals "day_changed", "nicklist_group_added/removed", "nicklist_nick_added/removed"
* alias: add custom completion for aliases (task #9479)
* scripts: allow script commands to reload only one script
* irc: add SASL authentication, with PLAIN and DH-BLOWFISH mechanisms (task #8829)
* irc: add new option irc.look.part_closes_buffer to close buffer when `/part` is issued on channel (task #10295)
* irc: add option `-open` in command `/connect`
* irc: add option irc.network.connection_timeout (timeout between TCP connection to server and reception of message 001)
* irc: add options irc.look.smart_filter_join and irc.look.smart_filter_quit
* irc: add option irc.look.item_channel_modes_hide_key to hide channel key in channel modes (bug #23961)
* irc: add option irc.look.item_nick_prefix
* irc: add command `/map`
* irc: add missing commands 276, 343
* logger: allow date format in logger options path and mask (task #9430)
* xfer: add signal "xfer_ended" (patch #7081)
Bug fixes::
* core: remove unneeded space after time on each line if option weechat.look.buffer_time_format is set to empty value (bug #28751)
* core: use arguments for infolist "nicklist" to return only one nick or group
* core: fix bug with writing of configuration files when disk is full (bug #29331)
* core: fix infinite loop with `/layout apply` and bug when applying layout, sometimes many `/layout apply` were needed (bug #26110)
* gui: refresh screen when exiting WeeChat (to display messages printed after `/quit`)
* gui: fix bug with global history, reset pointer to last entry after each user input (bug #28754)
* gui: fix bug with bar background after text with background color (bug #28157)
* gui: fix bug with cursor when position is last char of terminal
* api: add missing infos in functions buffer_get_{integer|string} and in buffer infolist
* api: fix function color in Lua script API
* api: fix "inactivity" value when no key has been pressed since WeeChat started (bug #28930)
* api: return absolute path for info_get of "weechat_dir" (bug #27936)
* scripts: fix bug with callbacks when loading a script already loaded
* perl: fix crash when multiplicity is disabled
* perl: fix crash when callbacks are called during script initialization (bug #29018)
* perl: fix crash on `/quit` or unload of plugin under FreeBSD and Cygwin (bug #29467)
* perl: fix bug with script filename when multiplicity is disabled (bug #29530)
* irc: fix crash with SSL connection if option ssl_cert is set (bug #28752)
* irc: fix bug with SSL connection (fails sometimes when ssl_verify is on) (bug #28741)
* irc: fix bug with nicks on reconnection: try all nicks in list, even if nick used was not the first in list of nicks
* irc: fix command `/list`: send channel and server name given as argument, and use separate option `-re` to allow a regex
* irc: fix PART message received on Undernet server (bug #28825)
* irc: fix bug with `/away -all`: set or unset future away for disconnected servers (bug #29022)
* irc: fix bug with prefix "!" for mode "a" (channel admin) (bug #29109)
* irc: do not send signals "irc_in" and "irc_in2" when messages are ignored, add new signals "irc_raw_in" and "irc_raw_in2"
* irc: apply smart filter only on channels, not private buffers (bug #28841)
* xfer: fix crash when purging old xfer chats (bug #28764)
Build::
* irc: fix compilation with old GnuTLS versions (bug #28723)
[[v0.3.1.1]]
== Version 0.3.1.1 (2010-01-31)
Bug fixes::
* irc: fix crash with SSL connection if option ssl_cert is set (bug #28752)
* irc: fix bug with SSL connection (fails sometimes when ssl_verify is on) (bug #28741)
* xfer: fix crash when purging old xfer chats (bug #28764)
Build::
* irc: fix compilation with old GnuTLS versions (bug #28723)
[[v0.3.1]]
== Version 0.3.1 (2010-01-23)
New features::
* core: add option "grab_key_command" in command `/input` (bound by default to kbd:[Alt+k])
* alias: new expansions for alias arguments ($n, $-m, $n-, $n-m, $*, $~) (patch #6917)
* alias: allow use of wildcards for `/alias list` (patch #6925)
* alias: allow `/unalias` to remove multiple aliases (patch #6926)
* irc: add new commands `/allchan` and `/allserv` with excluding option, commands `/ame` and `/amsg` are now aliases, new aliases `/aaway` and `/anick`
* irc: add options to customize target buffer for messages (task #7381)
* irc: add new output queue for messages with low priority (like automatic CTCP replies), high priority is given to user messages or commands
* irc: use self-signed certificate to auto identify on IRC server (CertFP) (task #7492, debian #453348)
* irc: check SSL certificates (task #7492)
* irc: add option "autorejoin_delay" for servers (task #8771)
* irc: add option to use same nick color in channel and private (task #9870)
* irc: add missing command 275 (patch #6952)
* irc: add commands `/sajoin`, `/samode`, `/sanick`, `/sapart`, `/saquit` (task #9770)
* irc: add options for CTCP, to block/customize CTCP reply (task #9693)
* irc: add missing CTCP: clientinfo, finger, source, time, userinfo (task #7270)
* irc: add all server options for commands `/server` and `/connect`
* irc: add arguments for command `/rehash`
* irc: improve mask used by command `/kickban`
* xfer: add color for nicks in chat
* xfer: add missing command `/me` (bug #28658)
* gui: add color "darkgray", add support for background with light color
Bug fixes::
* core: fix bug with script installation on BSD/macOS (patch #6980)
* core: fix compilation under Cygwin (patch #6916)
* core: fix plural form in translation files (bug #27430)
* core: fix terminal title bug: do not reset it when option weechat.look.set_title is off (bug #27399)
* core: fix buffer used by some input functions called via plugin API with buffer pointer (bug #28152)
* alias: fix bug with buffer for execution of alias, when called from plugin API with function command (bug #27697)
* alias: fix bug with arguments (bug #27440)
* irc: improve error management on socket error (recv/send)
* irc: fix nick color for nicks with wide chars (bug #28547)
* irc: fix autorejoin on channels with key
* irc: fix command `/connect` (options -ssl, -ipv6 and -port) (bug #27486)
* xfer: add missing charset decoding/encoding for IRC DCC chat (bug #27482)
* fifo: remove old pipes before creating new pipe
* gui: fix color "black" (bug #23882, debian #512957)
* gui: fix message "Day changed to", sometimes displayed at wrong time (bug #26959)
* gui: fix bug with URL selection in some terminals (caused by horizontal lines) (bug #27700)
* gui: use default auto completion for arguments of unknown commands
* gui: fix alignment problem for buffer name when a merged buffer is closed (bug #27617)
* gui: update hotlist when a buffer is closed (bug #27470), remove buffer from hotlist when buffer is cleared (bug #27530)
* gui: fix `/input history_global_next`: reset input content when last command in history is reached
* api: fix function bar_set for python/lua/ruby (patch #6912)
Build::
* core: fix CMake directories: let user customize lib, share, locale and include directories (patch #6922)
* ruby: add support of Ruby ≥ 1.9.1 (patch #6989)
[[v0.3.0]]
== Version 0.3.0 (2009-09-06)
New features::
* core: add group support in nicklist
* core: add `/reload` command to reload WeeChat and plugins config files (signal SIGHUP is caught to reload config files)
* core: add new `/layout` command and save_layout_on_exit config option, to save/restore windows and buffers order (task #5453)
* core: add new options for completion, optional stop instead of cycling with words found (task #5909)
* core: new name for configuration files (*.conf instead of *.rc)
* core: improve `/set` command, new command `/unset` (task #6085)
* core: add new input action "set_unread_current_buffer" to set unread marker for current buffer only (task #7286)
* core: remove key functions, replaced by `/input` command
* core: add argument with buffer number/range for command `/buffer close` (task #9390, task #7239)
* core: add new command `/wait` (schedule a command execution in future)
* core: improve main loop: higher timeout in select, less CPU usage
* gui: new display engine, with prefix and message for each line
* gui: add new type of buffer, with free content
* gui: add tags for lines and custom filtering by tags or regex (task #7674)
* gui: add buffer merging (task #7404)
* gui: add custom bars, with custom items
* gui: add key to zoom a window (task #7470)
* gui: add keys to move into last visited buffers: kbd:[Alt+<] and kbd:[Alt+>]
* gui: come back to last visited buffer when closing a buffer
* gui: add new option scroll_page_percent to choose percent of height to scroll with kbd:[PgUp] and kbd:[PgDn] keys (task #8702)
* gui: add number of lines remaining after last line displayed in "-MORE-" indicator (task #6702)
* network: add support for more than one proxy, with proxy selection for each IRC server (task #6859)
* aspell: improve plugin: use of many dictionaries, global dictionary, real time checking (optional), fix bugs with utf-8
* irc: add irc plugin (replaces old IRC code in core) (task #6217)
* irc: add smart join/part/quit message filter (task #8503)
* irc: use of many addresses for servers (auto-switch when a connection fails), nicks are now set with one option "nicks" (task #6088)
* irc: add some colors in messages from server (for text and nicks) (task #8926)
* irc: add color decoding in title for IRC channels (task #6030)
* irc: add missing commands (328, 369)
* logger: add logger plugin with new features: backlog, level for messages to log (task #8592), level by buffer (task #6687), filename mask by buffer, option "name_lower_case" (bug #19522)
* relay: add relay plugin (network communication between WeeChat and remote application)
* xfer: add speed limit for DCC files sending (task #6178)
* xfer: add new option xfer.file.use_nick_in_filename for Xfer files (task #7140)
* plugins: add some other plugins: alias, demo, fifo, tcl, xfer
* scripts: new scripts: weeget.py (script manager), jabber.py (jabber/XMPP protocol), go.py (quick jump to buffers), buffers.pl (sidebar with list of buffers), iset.pl (set options interactively), weetris.pl (tetris-like game), mastermind.pl, ...
* api: add hooks: command, timer, file descriptor, process, connection, print, signal, config, completion, modifier, info, infolist
* api: new plugin API with many new functions: hooks, buffer management and nicklist, bars, configuration files, network, infos/infolists, lists, upgrade
Internationalization::
* add Polish translations
Bug fixes::
* core: fix nick completion bug (missing space after nick)
* gui: fix completion with non-latin nicks (bug #18993)
* gui: fix display bug with some weird UTF-8 chars (bug #19687)
* gui: fix bug with wide chars in input (bug #16356)
* gui: fix bug when switching window, scrollback is now preserved (task #7680)
* network: fix network connection for hostnames resolving to several IPs: try all IPs in list until one succeeds (bug #21473, debian #498610)
* alias: fix bug with alias, use current buffer to run commands (bug #22876)
* irc: fix lock with SSL servers when connection fails, and when disconnecting during connection problem (bug #17584)
* irc: command `/whois` is now authorized in private without argument (task #7482)
* irc: fix private buffer name with Irssi proxy (bug #26589)
* irc: remove kernel info in CTCP VERSION reply (task #7494)
* irc: fix mode parsing when receiving modes with arguments (bug #26793)
* scripts: do not auto-load hidden files (bug #21390)
[[v0.2.6.3]]
== Version 0.2.6.3 (2009-06-13)
Bug fixes::
* fix GnuTLS detection (use pkg-config instead of libgnutls-config) (bug #26790)
[[v0.2.6.2]]
== Version 0.2.6.2 (2009-04-18)
Bug fixes::
* fix bug with charset decoding (for example with iso2022jp) (bug #26228)
[[v0.2.6.1]]
== Version 0.2.6.1 (2009-03-14)
Bug fixes::
* fix crash with some special chars in IRC messages (bug #25862, CVE-2009-0661)
[[v0.2.6]]
== Version 0.2.6 (2007-09-06)
New features::
* add new option `deloutq` to `/server` command to delete all servers messages out queues (task #7221)
* add string length limit for setup file options
* add option to align text of messages (except first lines) (task #7246)
* add paste detection, new options look_paste_max_lines and col_input_actions (task #5442)
* add support of channel mode +u (channel user) (bug #20717)
* improve `/connect` command to connect to a host by creating a temporary server, add option to `/server` to create temporary server (task #7095)
* add `copy`, `rename` and `keep` options to `/server` command
* allow clear of multiple selected buffers with `/clear` (patch #6112)
* add key for setting unread marker on all buffers (default: kbd:[Ctrl+s], kbd:[Ctrl+u]) (task #7180)
* improve command `/server` ant its output
* add 3 default new keys: kbd:[Ctrl+b] (left), kbd:[Ctrl+f] (right), kbd:[Ctrl+d] (delete)
* add "buffer_move" event handler to plugins API (task #6708)
* add key function "jump_previous_buffer" to jump to buffer previously displayed (new key: kbd:[Alt+j], kbd:[Alt+p]) (task #7085)
* add "%*" to completion template, to repeat last completion
* add `-nojoin` option for `/connect` and `/reconnect` commands (task #7074)
* add `scroll` option to `/buffer` command
* down key now saves input to history and clears input line (task #7049)
* command `/away` allowed when not connected to server (internally stored and AWAY command is sent when connecting to server) (task #7003)
* add argument for `/upgrade` command (path to binary)
* add hotlist sort with new option "look_hotlist_sort" (task #5870)
Bug fixes::
* fix bug with log of plugin messages (option log_plugin_msg)
* fix display bug with some special chars in messages (some words were truncated on screen) (bug #20944)
* fix UTF-8 bug with color encoding/decoding
* fix crash when searching text in buffer with kbd:[Ctrl+r] (bug #20938)
* fix bug with flock when home is on NFS filesystem (bug #20913)
* fix user modes in nicklist when ban and nick mode are received in the same MODE message (bug #20870)
* fix IRC message 333: silently ignore message if error when parsing it
* fix server option "command_delay": does not freeze WeeChat any more
* fix bug with highlight and UTF-8 chars around word (bug #20753)
* fix nick prefix display on servers that doesn't support all prefixes (bug #20025)
* fix terminal encoding detection when NLS is disabled (bug #20646)
* fix crash when sending data to channel or pv on disconnected server (bug #20524)
* fix bugs with IRC color in messages, now color codes are inserted in command line with kbd:[Ctrl+c], kbd:[Ctrl+b].. instead of %C,%B,.. (bug #20222, task #7060)
* fix bug with smart nick completion (last speakers first) when a nick is changed
* fix charset bug with channel names in status bar (bug #20400)
* fix log file when channel name contains "/" (bug #20072)
* fix bug with `/topic` when channel not open and topic not defined (bug #20141)
Documentation::
* add Swedish quickstart guide
[[v0.2.5]]
== Version 0.2.5 (2007-06-07)
New features::
* add missing IRC commands (327, 378, 379) (bug #20091)
* add "%M" for completion with nicks of current server (nicks on open channels) (task #6931)
* improve key bindings: now possible to bind a key on many commands, separated by semicolon (task #5444)
* improve IRC long message split: use word boundary (task #6685)
* add protocol priority for GnuTLS (patch #5915)
* add channel admin mode "!" for some IRC servers
* add `/reconnect` command (task #5448)
* add `-all` option for `/connect` and `/disconnect` commands (task #6232)
* improve nick completion: completion with last speakers first and self nick at the end; add option look_nick_completion_smart, enabled by default (task #5896)
* add color for input text not found in buffer history
Bug fixes::
* fix `/quote` command: now allowed when socket is OK (even if IRC connection to server is not OK) (bug #20113)
* fix hotlist when exiting search mode: current buffer is removed from hotlist
* remove ":" for unknown IRC commands before arguments (bug #19929)
* fix "%C" completion: now completes with all channels of all servers
* fix bug with `/buffer query_name`, add server and channel completion for `/buffer` command (bug #19928)
* fix IRC mode parsing when receiving modes with arguments (bug #19902)
* fix crash with IRC JOIN malformed message (bug #19891)
* fix bug with nick prefixes on some IRC servers (bug #19854)
* improve setup file save: now writes temporary file, then rename it (task #6847)
* fix bug with $nick/$channel/$server variables in commands
* forget current nick when user manually disconnects from server
* fix nick display in input window
* fix bug with erroneous nickname when connecting to server (bug #19812)
* fix display bugs in IRC error messages
* fix bug with iso2022jp locale (bug #18719)
* fix string format bug when displaying string through plugin script API
* fix nick completion in command arguments (bug #19590)
* fix possible crash with nick completion when a nick leaves channel (bug #19589)
* fix USER message when connecting to IRC server (patch #5835)
Build::
* add CMake for weechat compilation (patch #5943)
[[v0.2.4]]
== Version 0.2.4 (2007-03-29)
New features::
* rename log file for DCC chat (now <server>.dcc.<nick>.weechatlog)
* add current buffer in hotlist when scrolling up in buffer (task #6664)
* improve password hiding, code cleanup (bug #19229)
* add new return code in plugin API to force highlight (for message handlers only)
* add `call` option to `/key` command, add new key function "insert" to insert text on command line (task #6468)
* add event handler to plugin API
* add numeric argument for `/clear` command (buffer number) (patch #5372)
* add new key (kbd:[Ctrl+r]) for interactive and incremental search in buffer history (task #6628)
Bug fixes::
* fix color bug with IRC messages displayed by plugins (bug #19442)
* fix topic charset, now using channel charset if defined (bug #19386)
* fix crash when closing a pv if a DCC chat is open on same nick (bug #19147)
* fix bug with channel topic after reconnection (not erased) (bug #19384)
* fix bug with explode_string / free_exploded_string when max_items > 0
* fix `/topic` completion when no topic set on current channel (bug #19322)
* fix bug with server buffer when "look_one_server_buffer" is ON and server buffer is moved to any number > 1 (bug #19219)
* fix `/help` command: displays plugin help for redefined commands (bug #19166)
* prefix "/" disabled in commands (patch #5769)
* fix completion of redefined commands removed by plugins (bug #19176)
* fix memory leaks in perl and python plugins (bug #19163)
* fix permissions on "dcc" and "logs" directories (bug #18978)
* fix crash when `/away` command is issued with no server connection (bug #18839)
* fix crash when closing a buffer opened on many windows
* fix freeze with SSL server when disconnecting after connection loss (bug #18735)
Documentation::
* add Scots quickstart guide
[[v0.2.3]]
== Version 0.2.3 (2007-01-10)
Bug fixes::
* fix display bugs with nicklist at top/bottom when look_nicklist_separator is OFF (bug #18737)
* fix iconv problem, causing truncated words when using iso locale
* fix topic scroll when topic has multi-bytes chars
* fix bugs with charset: now decodes/encodes nicks and channels in IRC messages (bug #18716)
Build::
* fix compilation problem with iconv under FreeBSD
[[v0.2.2]]
== Version 0.2.2 (2007-01-06)
New features::
* add anti-flood option (irc_anti_flood) (task #5442)
* plugins: "add_message_handler" now accepts "*" for all IRC messages
* add keys (kbd:[F9] / kbd:[F10]) to scroll topic (task #6030)
* add auto completion with channels and filenames (task #5423)
* add option "look_nicklist_separator" (task #5437)
* add "irc_send_unknown_commands" option to send unknown commands to IRC server (OFF by default) (task #5947)
* `/charset` command and charset conversions now made by "charset" plugin
* add filename completion (task #5425)
* add "modifier" in plugins API
* improve `/plugin` command
* add date in plugin function get_buffer_data
* add more values for config boolean values: y/true/t/1 and n/false/f/0
Bug fixes::
* fix bug with status bar (missing refresh) when closing a buffer
* fix bug with use of first buffer for a channel if not connected to server (now allowed only for a server buffer)
* fix refresh bug with private buffer title
* fix bug with nick completion in command arguments (now uses option look_nick_completion_ignore)
* fix display bug with color for first line on screen (bug #17719)
* fix bug with set_config function in plugins API (bug #18448)
* fix memory leak in keyboard input
* fix refresh bug when changing config options if window is split
* add space between chat and nicklist when position is "right" (bug #17852)
* fix bug with DCC SEND when filename begins with "~"
* fix display bug in status bar, wrong length when using UTF-8
* fix bug with ignore: now any IRC command is allowed
* fix crash with kbd:[Ctrl+t] (transpose) and one char on line (bug #18153)
* fix bug on ignore with "mode" IRC command (bug #18058)
* fix crash when loading ruby script if file does not exist, with Ruby ≥ 1.9 only (bug #18064)
* mode changes with `/op`, `/deop`, `/voice`, `/devoice`, `/halfop`, `/dehalfop` are now sent in one mode command to server (task #5968)
* fix bug with `/alias` and arguments (like $1), now text after argument(s) is used (bug #17944)
* fix minor display bug with special chars on some arch like PPC
Build::
* fix some portability bugs (patch #5271)
* fix iconv detection for BSD (patch #5456)
* fix typo in configure.in (bash specific test) (patch #5450)
[[v0.2.1]]
== Version 0.2.1 (2006-10-01)
New features::
* command `/away -all` now allowed when not connected to current server
* new signals handled: SIGTERM and SIGHUP (received when terminal is closed): clean WeeChat quit (send quit to irc servers then quit WeeChat)
* add some new default key bindings for existing keys (for some OS)
* command `/key` now OK with one argument (key name): display key if found
* add current channel completion for `/ctcp` command
* values yes/no accepted (as on/off) for config boolean values (task #5454)
* add server default notify level (set by `/buffer notify` on server buffer) (task #5634)
* add special vars $nick/$channel/$server for server_command, alias and plugin command handlers
* add arguments $1,$2,..,$9 and $* for alias (task #5831)
* add hotlist in session file when using `/upgrade` command (task #5449)
Bug fixes::
* fix crash for DCC receiver when resuming a file (bug #17885)
* fix DCC error for sender when receiver cancels DCC (bug #17838)
* fix random crash with `/upgrade` command (error when loading buffers)
* fix buffer search by server/channel: now if only channel is specified, a channel of another server can be found
* fix highlight for DCC, invite and notice: when a window is displaying buffer, there's no highlight
* fix bug with CTCP VERSION sent on channels (bug #17547)
* fix bugs in get_buffer_data which breaks the retrieval of buffer content (perl, lua)
* fix nicklist display bug when top/bottom (not enough lines) (bug #17537)
* fix bug with auto-rejoin of keyed channels (bug #17534)
* add default nick completion when line starts with "//" (bug #17535)
* fix crashes with `/buffer` and `/charset` commands when not connected to any server (bug #17525)
* fix nick refresh problem with unrealircd specific modes: chan owner (~) and chan admin (&) (bug #17340)
[[v0.2.0]]
== Version 0.2.0 (2006-08-19)
New features::
* add "C"lear option on IRC raw buffer
* IRC raw buffer now uses join/part prefix with color to display messages
* add send of "quit" message to server when using `/disconnect`
* add "%m" for completion with self nick (on current server)
* add missing IRC commands (310, 326, 329, 338)
* improve DCC speed (up to x5 on LAN) by forking for DCC files and a new option "dcc_fast_send" (does not wait for ACK) (task #5758)
* add "look_save_on_exit" option (patch from Emanuele Giaquinta)
* add new functions in plugin/script API: get window info, get buffer info, get buffer content
* add color encoding for some commands like `/me`
* add aspell plugin
Bug fixes::
* fix "wallops" command when received, now displayed by WeeChat (bug #17441)
* fix `/wallops` command (now many words are correctly sent)
* fix command 348 (channel exception list, received by `/mode #chan e`)
* add missing modes (channel & user), now all modes are allowed (bug #16606)
* fix DCC restore after `/upgrade` (order is now correctly saved)
* fix away after server disconnection (now away is set again when reconnecting) (bug #16359)
* fix DCC file connection problem (connection from receiver to sender)
* fix crash when purging DCC with high number of DCC (> window size)
* fix completion for command handlers (now empty completion_template means nick completion, "-" string means no completion at all)
* fix nick alignment problem when look_nickmode is off
* add generic function for incoming numeric IRC commands (bug #16611)
* fix crash when doing `/part something` on a server buffer (bug #17201)
* charsets are now checked when set by `/charset` command
* fix crash on DCC buffer under Darwin 8 (bug #17115)
* fix bug with spaces in script names (bug #16957)
* fix random crash when "MODE #chan -l" is received
* fix bug in IRC parser (random crash with malformed IRC messages)
* fix refresh bugs when terminal is resized: too many refreshes, display bug with split windows
* case ignored for channel names in charset options (bug #16858)
* fix crash when setting look_one_server_buffer to ON (bug #16932)
* fix display bug with special char (bug #16732)
* rename plugins names (remove "lib" prefix in name)
* fix crash when closing DCC/raw buffer if 2 are open (bug #16808)
* fix crashes with DCC chat remove/purge on DCC view (bug #16775)
* fix bug with connection to bnc (bug #16760)
* command `/save` now writes plugins options (~/.weechat/plugins.rc)
* fix crash with register function in plugin scripts (bug #16701)
* fix random crash at exit (`/quit` or `/upgrade`) with split windows
Documentation::
* add Polish, Russian and Czech quickstart guide
Build::
* add configure option for doc XSL prefix (bug #16991)
[[v0.1.9]]
== Version 0.1.9 (2006-05-25)
New features::
* add backtrace when WeeChat crashes, log file automatically renamed
* add new key to find previous completion (kbd:[Shift+Tab] by default)
* add missing IRC commands (006, 007, 290, 292, 310, 379, 437, 974)
* add new option to customize input prompt
* add nick modes
* add hostnames associated to nicks (available for `/ban` completion)
* add "+p" mode for channels, fix mode display in status bar
* add nick alignment options
* add keyboard handler to plugin API
* improve script plugin loader
* add hostname/IP option for connection to server
* add `/setp` command (set plugin options)
* aliases are executed before WeeChat/IRC commands, add `/builtin` command
* add `/cycle` command, `/part` command does close buffer any more
Internationalization::
* add Russian translations (thanks to Pavel Shevchuk)
Bug fixes::
* fix `/squery` command (message sent to server, now OK with more than two arguments)
* fix `/alias` command (with an alias name, display content)
* add lock for log file (~/.weechat/weechat.log), only one WeeChat process can use this file (bug #16382)
* fix crash with malformed UTF-8 strings
* fix crash with ncurses color when too many colors defined in ncurses (bug #16556)
* fix bug with long outgoing IRC messages (> 512 bytes) (bug #16358)
* fix Ruby crash when handler does not return OK or KO (bug #16552)
* fix UTF-8 display bug with chars using more than one cell on screen (bug #16356)
* fix display bug with DCC file size when > 1 GB
* fix refresh bug (deadlock in curses) when terminal is resized (bug #16542)
* fix nicklist sort bug
* fix crash when multiple pv have same name: now it's forbidden and pv buffer is not renamed (when a nick changes) if another exists with same name (bug #16369)
* command `/clear [-all]` now clears hotlist
* fix crash after `/upgrade` if a line in history is empty (bug #16379)
* fix many crashes with DCC chat (bug #16416)
* fix commands 332, 333 (`/topic` now OK when channel is not opened)
* remove color encoding and charset conversion for commands (only allowed in text sent to channel/private)
* fix `/names` command: now displays result when not on a channel
* fix refresh bug (too many refresh) when terminal is resized
* fix nicklist display bugs when on top or bottom of chat window
* fix high CPU usage when running under a Screen that has been killed
Documentation::
* add German doc (thanks to Frank Zacharias)
Build::
* fix --disable-plugins option in configure script
* improve Lua detection (bug #16574)
[[v0.1.8]]
== Version 0.1.8 (2006-03-18)
New features::
* improve alias completion (now uses target command for completion)
* add missing IRC command (487)
* add inactivity time, available for plugins via get_info("inactivity")
* add keys kbd:[Alt+Home] / kbd:[Alt+End] to scroll top/bottom, kbd:[Alt+F11] / kbd:[Alt+F12] to scroll nicklist top/bottom
* add special names for plugin message handlers: weechat_pv, weechat_highlight, weechat_ctcp, weechat_dcc
* add IRC raw data buffer (new key: kbd:[Alt+j], kbd:[Alt+r])
* add new plugins functions: add_timer_handler, remove_timer_handler, remove_infobar
* plugin messages handlers now called when message is ignored (by `/ignore`)
* new behavior for messages ignored by a message handler: now WeeChat executes standard handler, treating message as "ignored"
* many commands allowed for aliases
* many commands allowed when connecting to server
* add Lua script plugin
* add functions in plugins API: get_server_info, free_server_info, get_channel_info, free_channel_info, get_nick_info, free_nick_info
* add option "look_nick_complete_first" (patch from Gwenn)
* add option "look_open_near_server" (patch from Gwenn)
* add new scroll keys for a few lines up/down (default: kbd:[Alt+PgUp] / kbd:[Alt+PgDn]) (patch from Pistos)
* add new option "irc_away_check_max_nicks" to disable away check on channels with high number of nicks (patch from Gwenn)
* add new command line argument for setting WeeChat home dir (-d or --dir) (patch from Gwenn)
* add option "irc_show_away_once", to show away message only once in pv
Internationalization::
* add partial Hungarian translations
Bug fixes::
* improve Ruby plugin
* fix `/set` command when internal server name contains one or many dots
* fix get_info plugin API function when no server at all is opened
* fix display bug when top of buffer is displayed and first line is removed (according to "history_max_lines" setting)
* fix `/mode` command output
* fix completion problem in private with nicks
* script plugins now load scripts in WeeChat system share directory
* `/msg` command does not open any buffer any more
* fix crash when using global history (when older entry is removed)
* fix display bug with `/kill` command
* fix bug with `/upgrade` and servers buffer
* fix bug with get_dcc_info plugin interface function
* fix bug with charset in infobar highlights
* fix bug with buffer detection in plugins/scripts commands
* fix bug with `/history` command
[[v0.1.7]]
== Version 0.1.7 (2006-01-14)
New features::
* remove "irc_default_msg_away" setting, for RFC 2812 conformity (`/away` command without argument only removes away status), new values for "irc_display_away" (off, local, channel)
* add color for window separators (when split)
* add completion system for plugins/scripts commands
* add charset by server and channel, new command: `/charset`
* add Ruby script plugin
* add `/upgrade` command
* add ETA (Estimated Time of Arrival) for DCC files
* `/nick` command is now allowed when not connected to server
* add server/channel argument to `/buffer` command for jumping to buffer
* add new keys for switching to other windows: kbd:[Alt+w], kbd:[Alt+Arrow]
* add new keys for scrolling to previous/next highlight: kbd:[Alt+p] / kbd:[Alt+n]
* add "read marker": an indicator for first unread line in a server or channel buffer (new key kbd:[Alt+u] to scroll to marker)
* new window management: custom size for windows, auto resize when terminal is resized
* add `/history` command
Bug fixes::
* fix msg command (now allowed in private buffer with "*" as target)
* fix refresh bug with Solaris when term size is changed
* fix plugins autoload
* fix display bug in chat window when a message length equals to window width
* fix infinite loop when resizing term to small size
Build::
* replace Texinfo doc by XML Docbook
[[v0.1.6]]
== Version 0.1.6 (2005-11-11)
New features::
* new color management system, IRC colors are now correctly displayed and can be removed by new options irc_colors_receive and irc_colors_send
* add setting for having one server buffer for all servers (look_one_server_buffer)
* add setting for ignoring some chars when completing nicks
* signal SIGPIPE is now ignored
* add partial match for highlights
* add dcc_own_ip and dcc_port_range settings
* full UTF-8 support, auto-detection of UTF-8 usage (locale)
* add "Day changed to [date]" message when day changes
* new plugin interface, rewritten from scratch: now loads dynamic C library, and perl/python are script plugins
* log options (for server/channel/private) can now be set while WeeChat is running
* add channel modes +e and +f
* add some missing IRC commands, fix command 367
* add colors for input buffer and current channel of status bar
* add online help for config options (with `/set` full_option_name)
* enhanced "smart" hotlist, with names (new options: look_hotlist_names_{count|level|length})
Bug fixes::
* fix scroll problem when one line is bigger than screen size
* fix IRC message parser bug
[[v0.1.5]]
== Version 0.1.5 (2005-09-24)
New features::
* add `/ame` command (send CTCP action to all channels of all connected servers)
* add setting "irc_notice_as_pv" to see notices as pv
* add nicks colors in setup file
* add some missing IRC commands
* add `/ignore` and `/unignore` commands
* signal SIGQUIT is now ignored
* jump to next server now saves current channel buffer for each server
* add keys kbd:[Ctrl+Up] / kbd:[Ctrl+Down] to call previous/next command in global history (common to all buffers)
Bug fixes::
* fix DCC bug: delete failed file only if really empty (on disk)
* fix IRC message parser bug
* fix scroll problem (screen moving when scrolling and new line displayed)
* fix infinite loop when scrolling back and displaying long lines
* fix crash when closing a buffer used by more than one window
* fix DCC display bug (now decodes string according to charset)
* fix bug with strings comparison (str[n]casecmp) and some locales (like Turkish), now using ASCII comparison (thanks to roktas)
* fix refresh bug when one line is bigger than screen size
* fix look_nicklist_min_size and look_nicklist_max_size options
* fix refresh bug when changing channel modes
[[v0.1.4]]
== Version 0.1.4 (2005-07-30)
New features::
* join and part/quit prefixes (arrows) now displayed with different colors
* add "irc_highlight" setting, to get highlight with any word
* add `/amsg` command (send text to all channels of all connected servers)
* add color for private in hotlist (different than color for highlight)
* add DCC resume and timeout
* add function for Perl/Python to get DCC list
* new keyboard management: keys are setup in config file, add new command `/key`, add some new default keys, kbd:[Alt+k] is used to grab key (useful for `/key` command)
* add seconds in infobar time (optional thanks to new setting)
* add auto-prefix with "#" for channels (if no prefix found), with `/join` command
Bug fixes::
* fix auto-rejoin for channels with key
* fix `/ctcp` command (now any command/data allowed)
* fix SIGSEGV handler (now write a core file by aborting program)
* fix statusbar & infobar background refresh problem with some systems
* fix FIFO pipe (command now authorized on a buffer not connected to an IRC server)
* topic completion now decodes UTF-8 string
* fix bug with IRC URL on command line (irc://)
* fix some curses refreshes
[[v0.1.3]]
== Version 0.1.3 (2005-07-02)
New features::
* proxy support (http, socks4, socks5) with authentication (http, socks5) and ipv6 support (client to proxy)
* add completion for config option (with `/set` command)
* commands from users outside channel now authorized (if special user or channel without "n" flag)
* add IPv6 support
* kill command now received and displayed
* add SSL support
* channel notify levels are saved in config file (new option "server_notify_levels" for server sections)
* part message now accepts %v (replaced by WeeChat version), like quit message
Bug fixes::
* errors while loading perl scripts are now displayed in server buffer (instead of current buffer)
* in python scripts, all messages written in stdin and stderr are redirected in server buffer
* fix a filename error while loading a python script manually
* fix plugins print and prnt functions: now OK for writing on server buffers
* fix color problem with new libcurses version
* fix crash when using kbd:[Alt+s] or kbd:[Alt+x] on DCC buffer (kbd:[Alt+d])
* fix startup crash when config file (~/.weechat/weechat.rc) is not found
Build::
* improve Perl/Python libs detection for ./configure script
[[v0.1.2]]
== Version 0.1.2 (2005-05-21)
New features::
* add Python plugin support, improve Perl interface (and now Perl/Python libraries are checked by configure script)
* add nicklist scroll keys (kbd:[Alt+Home] / kbd:[Alt+End] / kbd:[Alt+PgUp] / kbd:[Alt+PgDn] or kbd:[F11] / kbd:[F12])
* add transfer rate for DCC files
* add `-all` option for `/nick` command
* buffers timestamp can now be changed (new option in config file)
* add missing IRC commands (307, 341, 485, 671)
Bug fixes::
* fix nicklist sort
* fix crash when purging old DCC
* fix crash with 64-bits arch (like AMD64) when converting UTF-8
Build::
* WeeChat now OK under *BSD and macOS
[[v0.1.1]]
== Version 0.1.1 (2005-03-20)
New features::
* add nicks count for channel buffers
* add FIFO pipe for remote control
* add crash dump when WeeChat receives SIGSEGV (Segmentation fault)
* add new display engine: doesn't cut words at end of lines
* add DCC send and DCC chat
* add `/halfop` and `/dehalfop` commands, fix halfop display bug in nicklist
* add `/ban`, `/unban` and `/kickban` commands
* add --irc-commands and --weechat-commands command line options
* connection to IRC server is now made by child process (non blocking)
* add support for UnrealIrcd ("~" for chan owner, "&" for chan admin)
* new key for window switch (now: kbd:[F5] / kbd:[F6] = switch buffer, kbd:[F7] / kbd:[F8] = switch window)
* on server buffer, only server messages are logged
* improve `/help` command output
* plugins messages are logged with new config option (log_plugin_msg)
Internationalization::
* add Spanish translations
Bug fixes::
* fix `/kick` command
* fix `/invite` command (and now invite requests are displayed)
* fix `/buffer close` command (now OK when disconnected from server)
* fix display bugs when many windows are opened
[[v0.1.0]]
== Version 0.1.0 (2005-02-12)
New features::
* improve `/window` command: now split and merge are OK
* away nicks are now displayed with another color (new option: "irc_away_check")
* add away indicator in status bar
* add lag indicator (and auto-disconnect after a delay if important lag)
* improve completion: now completes commands arguments (IRC and internal), when only one completion matches, completion mechanism is stopped (to complete command argument for example)
* improve `/set` command: empty strings are allowed, new colors, server options can be changed while WeeChat is running
* add default away/part/quit messages in config file
* new [irc] section in config file, move option "look_display_away" to "irc_display_away"
* server messages & errors are all prefixed (by 3 chars, like "-@-")
* add new options for charset (UTF-8 support): look_charset_decode, look_charset_encode and look_charset_internal
Bug fixes::
* fix many memory leaks
* fix colors bug: remove "gray" color (replaced by "default"), colors are OK when terminal has white (or light) background
* fix crash when resizing terminal to small size
* fix crash when multiple servers and big messages received from server
* fix crash when closing some private buffers
* fix crash when unknown section with option(s) in config file
* fix `/op`, `/deop`, `/voice`, `/devoice` (now OK with many nicks)
* fix `/me` command (now OK without parameter)
* fix `/away` command (now OK if not away)
* logs are now disabled by default (server/channel/private)
[[v0.0.9]]
== Version 0.0.9 (2005-01-01)
New features::
* auto-reconnection to server (new options: server_autoreconnect (on/off), server_autoreconnect_delay (in seconds))
* new command `/buffer close` (close any server/channel/private buffer)
* new keys: kbd:[Ctrl+a] (home), kbd:[Ctrl+e] (end), kbd:[Ctrl+w] (same as kbd:[Ctrl+Backspace]), kbd:[Alt+s] (switch to server buffer), kbd:[Alt+x] (switch to first channel of next server)
* add new config option: "server_command_delay" (delay in seconds after startup command for each server)
Bug fixes::
* fix major bug when socket is closed by server (100% CPU usage), and disconnections are now OK (all channels are "closed", history is still visible, and buffer will be used again if reconnection to server)
* option "look_remove_colors_from_msgs" is now working
* fix display of nick mode changes
* fix `/notice` command (and display when received from server)
[[v0.0.8]]
== Version 0.0.8 (2004-10-30)
New features::
* nickserv passwords hidden (new config option: log_hide_nickserv_pwd on/off)
* auto-rejoin channels when kicked (new config option: server_autorejoin on/off)
* add IRC::command function for Perl scripts
* `/buffer` command developed (buffers list, move and notify)
* logging buffers to disk (server/channel/private according to user preferences)
* add config option "look_display_away" to announce away in channels
* DCC file receive OK (kbd:[Alt+d] for DCC view)
* add key kbd:[Ctrl+l] (`L`) for redrawing terminal
* add key kbd:[Alt+r] for clearing hotlist
Bug fixes::
* fix `/kick` command: now OK with many words as reason
* fix bug when adding alias with same name as other
* fix crash when resizing terminal to very small size
* "-MORE-" message is now erased when switching to another buffer
* `/query` command now reopens private buffer if already opened
[[v0.0.7]]
== Version 0.0.7 (2004-08-08)
New features::
* new "col_status_delimiters" config option
* add command `/buffer`, buffers ordered by number, auto-jump to active buffers (kbd:[Alt+a]), jump to buffers by number (kbd:[Alt+0...9])
* add command `/window`, split terminal horizontally/vertically
* unique color for each nick (based on nickname)
* add history limit (text buffer and commands)
Bug fixes::
* action messages are now considered as messages, not crappy joins/parts
* fix display bug when nicklist is displayed at bottom of screen
Build::
* replace --enable-debug with --with-debug option for ./configure
[[v0.0.6]]
== Version 0.0.6 (2004-06-05)
New features::
* improve channel highlight (priority to message vs join/part)
* add command `/query` (starts private conversation)
* add IRC messages 476, 477
Bug fixes::
* fix bug when opened private win and remote user changes his nick
* `/mode` command is now OK and channel flags are displayed in status bar
* fix display bug (text was blinking when scrolling)
* CTCP Version reply is now in English only and doesn't show host (security reason)
[[v0.0.5]]
== Version 0.0.5 (2004-02-07)
New features::
* `/set` command to modify config options when WeeChat is running
* URL command line parameter to connect to server(s)
* new Perl script function to display message in info bar ("IRC::print_infobar")
* info bar highlight notifications
* add info bar timestamp in config ("look_infobar_timestamp")
* add info bar (optional, "look_infobar" to enable it, "on" by default)
* add -c (or --config) command line parameter to see config file options
Bug fixes::
* fix look_nicklist config option, now enables/disables nicklist
* secure code to prevent buffer overflows and memory leaks
* fix QUIT IRC command: now sent to all connected servers (not only current)
* fix crash with `/oper` command
* for default config file, nick is now based on un*x username
* fix crash when config file cannot be written
* add highlight on action messages
[[v0.0.4]]
== Version 0.0.4 (2004-01-01)
New features::
* add Perl plugin
Bug fixes::
* fix switch to private buffer
* add highlight when our nick is written in a channel/private window
* catch kbd:[Ctrl+c] (ignored)
Build::
* debug messages can be enabled via ./configure --enable-debug option
[[v0.0.3]]
== Version 0.0.3 (2003-11-03)
New features::
* add new IRC commands: stats, service, squit, motd, lusers, links, time, trace, admin, info, servlist, squery, who, whowas, die, summon, users, wallops, userhost, ison, ctcp ping
Internationalization::
* add French translations
Bug fixes::
* for sort of nicks (op, halfop, voice, other)
* fix problem with "353" IRC message (nicklist)
* fix problem when nick is truncated by server
* fix crash when entering text without any server connection
* fix crash when `/set` command is executed
* fix display bug (text was blinking when scrolling)
* code cleanup
Build::
* add ./configure script to build WeeChat
[[v0.0.2]]
== Version 0.0.2 (2003-10-05)
New features::
* add commands `/rehash` and `/restart`
* and command and auto-join channels when connected to server
* new commands for alias: `/alias`, `/unalias` (new section in config file)
* config is now saved automatically when quitting WeeChat, add `/save` command
* new commands for servers: `/server`, `/connect`, `/disconnect`
* add autoconnect flag for each server in config file
* add "look_set_title" option in config file
* term window title is modified with WeeChat name and version
* CTCP version returns more info (about OS)
Bug fixes::
* fix nicklist display bug
* fix crash when sending command which can only be received
[[v0.0.1]]
== Version 0.0.1 (2003-09-27)
New features::
* ncurses GUI with color output
* multi-servers
* channel windows, with nicklist (position: top, bottom, left or right)
* private windows
* IRC commands: away, ctcp, deop, devoice, invite, join, kick, kill, list, me, mode, msg, names, nick, notice, op, oper, part, ping, pong, quit, quote, topic, version, voice, whois
* WeeChat commands: clear, help, set (partial)
* many config options
* log file (~/.weechat/weechat.log)
* nicklist can be moved on top, bottom, left or right of window
|