This file is indexed.

/usr/share/doc/vim/html/version5.html is in vim-doc 2:8.0.1453-1ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

   1
   2
   3
   4
   5
   6
   7
   8
   9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  25
  26
  27
  28
  29
  30
  31
  32
  33
  34
  35
  36
  37
  38
  39
  40
  41
  42
  43
  44
  45
  46
  47
  48
  49
  50
  51
  52
  53
  54
  55
  56
  57
  58
  59
  60
  61
  62
  63
  64
  65
  66
  67
  68
  69
  70
  71
  72
  73
  74
  75
  76
  77
  78
  79
  80
  81
  82
  83
  84
  85
  86
  87
  88
  89
  90
  91
  92
  93
  94
  95
  96
  97
  98
  99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 198
 199
 200
 201
 202
 203
 204
 205
 206
 207
 208
 209
 210
 211
 212
 213
 214
 215
 216
 217
 218
 219
 220
 221
 222
 223
 224
 225
 226
 227
 228
 229
 230
 231
 232
 233
 234
 235
 236
 237
 238
 239
 240
 241
 242
 243
 244
 245
 246
 247
 248
 249
 250
 251
 252
 253
 254
 255
 256
 257
 258
 259
 260
 261
 262
 263
 264
 265
 266
 267
 268
 269
 270
 271
 272
 273
 274
 275
 276
 277
 278
 279
 280
 281
 282
 283
 284
 285
 286
 287
 288
 289
 290
 291
 292
 293
 294
 295
 296
 297
 298
 299
 300
 301
 302
 303
 304
 305
 306
 307
 308
 309
 310
 311
 312
 313
 314
 315
 316
 317
 318
 319
 320
 321
 322
 323
 324
 325
 326
 327
 328
 329
 330
 331
 332
 333
 334
 335
 336
 337
 338
 339
 340
 341
 342
 343
 344
 345
 346
 347
 348
 349
 350
 351
 352
 353
 354
 355
 356
 357
 358
 359
 360
 361
 362
 363
 364
 365
 366
 367
 368
 369
 370
 371
 372
 373
 374
 375
 376
 377
 378
 379
 380
 381
 382
 383
 384
 385
 386
 387
 388
 389
 390
 391
 392
 393
 394
 395
 396
 397
 398
 399
 400
 401
 402
 403
 404
 405
 406
 407
 408
 409
 410
 411
 412
 413
 414
 415
 416
 417
 418
 419
 420
 421
 422
 423
 424
 425
 426
 427
 428
 429
 430
 431
 432
 433
 434
 435
 436
 437
 438
 439
 440
 441
 442
 443
 444
 445
 446
 447
 448
 449
 450
 451
 452
 453
 454
 455
 456
 457
 458
 459
 460
 461
 462
 463
 464
 465
 466
 467
 468
 469
 470
 471
 472
 473
 474
 475
 476
 477
 478
 479
 480
 481
 482
 483
 484
 485
 486
 487
 488
 489
 490
 491
 492
 493
 494
 495
 496
 497
 498
 499
 500
 501
 502
 503
 504
 505
 506
 507
 508
 509
 510
 511
 512
 513
 514
 515
 516
 517
 518
 519
 520
 521
 522
 523
 524
 525
 526
 527
 528
 529
 530
 531
 532
 533
 534
 535
 536
 537
 538
 539
 540
 541
 542
 543
 544
 545
 546
 547
 548
 549
 550
 551
 552
 553
 554
 555
 556
 557
 558
 559
 560
 561
 562
 563
 564
 565
 566
 567
 568
 569
 570
 571
 572
 573
 574
 575
 576
 577
 578
 579
 580
 581
 582
 583
 584
 585
 586
 587
 588
 589
 590
 591
 592
 593
 594
 595
 596
 597
 598
 599
 600
 601
 602
 603
 604
 605
 606
 607
 608
 609
 610
 611
 612
 613
 614
 615
 616
 617
 618
 619
 620
 621
 622
 623
 624
 625
 626
 627
 628
 629
 630
 631
 632
 633
 634
 635
 636
 637
 638
 639
 640
 641
 642
 643
 644
 645
 646
 647
 648
 649
 650
 651
 652
 653
 654
 655
 656
 657
 658
 659
 660
 661
 662
 663
 664
 665
 666
 667
 668
 669
 670
 671
 672
 673
 674
 675
 676
 677
 678
 679
 680
 681
 682
 683
 684
 685
 686
 687
 688
 689
 690
 691
 692
 693
 694
 695
 696
 697
 698
 699
 700
 701
 702
 703
 704
 705
 706
 707
 708
 709
 710
 711
 712
 713
 714
 715
 716
 717
 718
 719
 720
 721
 722
 723
 724
 725
 726
 727
 728
 729
 730
 731
 732
 733
 734
 735
 736
 737
 738
 739
 740
 741
 742
 743
 744
 745
 746
 747
 748
 749
 750
 751
 752
 753
 754
 755
 756
 757
 758
 759
 760
 761
 762
 763
 764
 765
 766
 767
 768
 769
 770
 771
 772
 773
 774
 775
 776
 777
 778
 779
 780
 781
 782
 783
 784
 785
 786
 787
 788
 789
 790
 791
 792
 793
 794
 795
 796
 797
 798
 799
 800
 801
 802
 803
 804
 805
 806
 807
 808
 809
 810
 811
 812
 813
 814
 815
 816
 817
 818
 819
 820
 821
 822
 823
 824
 825
 826
 827
 828
 829
 830
 831
 832
 833
 834
 835
 836
 837
 838
 839
 840
 841
 842
 843
 844
 845
 846
 847
 848
 849
 850
 851
 852
 853
 854
 855
 856
 857
 858
 859
 860
 861
 862
 863
 864
 865
 866
 867
 868
 869
 870
 871
 872
 873
 874
 875
 876
 877
 878
 879
 880
 881
 882
 883
 884
 885
 886
 887
 888
 889
 890
 891
 892
 893
 894
 895
 896
 897
 898
 899
 900
 901
 902
 903
 904
 905
 906
 907
 908
 909
 910
 911
 912
 913
 914
 915
 916
 917
 918
 919
 920
 921
 922
 923
 924
 925
 926
 927
 928
 929
 930
 931
 932
 933
 934
 935
 936
 937
 938
 939
 940
 941
 942
 943
 944
 945
 946
 947
 948
 949
 950
 951
 952
 953
 954
 955
 956
 957
 958
 959
 960
 961
 962
 963
 964
 965
 966
 967
 968
 969
 970
 971
 972
 973
 974
 975
 976
 977
 978
 979
 980
 981
 982
 983
 984
 985
 986
 987
 988
 989
 990
 991
 992
 993
 994
 995
 996
 997
 998
 999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286
5287
5288
5289
5290
5291
5292
5293
5294
5295
5296
5297
5298
5299
5300
5301
5302
5303
5304
5305
5306
5307
5308
5309
5310
5311
5312
5313
5314
5315
5316
5317
5318
5319
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
5342
5343
5344
5345
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
5363
5364
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388
5389
5390
5391
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445
5446
5447
5448
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468
5469
5470
5471
5472
5473
5474
5475
5476
5477
5478
5479
5480
5481
5482
5483
5484
5485
5486
5487
5488
5489
5490
5491
5492
5493
5494
5495
5496
5497
5498
5499
5500
5501
5502
5503
5504
5505
5506
5507
5508
5509
5510
5511
5512
5513
5514
5515
5516
5517
5518
5519
5520
5521
5522
5523
5524
5525
5526
5527
5528
5529
5530
5531
5532
5533
5534
5535
5536
5537
5538
5539
5540
5541
5542
5543
5544
5545
5546
5547
5548
5549
5550
5551
5552
5553
5554
5555
5556
5557
5558
5559
5560
5561
5562
5563
5564
5565
5566
5567
5568
5569
5570
5571
5572
5573
5574
5575
5576
5577
5578
5579
5580
5581
5582
5583
5584
5585
5586
5587
5588
5589
5590
5591
5592
5593
5594
5595
5596
5597
5598
5599
5600
5601
5602
5603
5604
5605
5606
5607
5608
5609
5610
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
5865
5866
5867
5868
5869
5870
5871
5872
5873
5874
5875
5876
5877
5878
5879
5880
5881
5882
5883
5884
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907
5908
5909
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931
5932
5933
5934
5935
5936
5937
5938
5939
5940
5941
5942
5943
5944
5945
5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968
5969
5970
5971
5972
5973
5974
5975
5976
5977
5978
5979
5980
5981
5982
5983
5984
5985
5986
5987
5988
5989
5990
5991
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
6003
6004
6005
6006
6007
6008
6009
6010
6011
6012
6013
6014
6015
6016
6017
6018
6019
6020
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
6055
6056
6057
6058
6059
6060
6061
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
6125
6126
6127
6128
6129
6130
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168
6169
6170
6171
6172
6173
6174
6175
6176
6177
6178
6179
6180
6181
6182
6183
6184
6185
6186
6187
6188
6189
6190
6191
6192
6193
6194
6195
6196
6197
6198
6199
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6213
6214
6215
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
6234
6235
6236
6237
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304
6305
6306
6307
6308
6309
6310
6311
6312
6313
6314
6315
6316
6317
6318
6319
6320
6321
6322
6323
6324
6325
6326
6327
6328
6329
6330
6331
6332
6333
6334
6335
6336
6337
6338
6339
6340
6341
6342
6343
6344
6345
6346
6347
6348
6349
6350
6351
6352
6353
6354
6355
6356
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367
6368
6369
6370
6371
6372
6373
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386
6387
6388
6389
6390
6391
6392
6393
6394
6395
6396
6397
6398
6399
6400
6401
6402
6403
6404
6405
6406
6407
6408
6409
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
6440
6441
6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
6457
6458
6459
6460
6461
6462
6463
6464
6465
6466
6467
6468
6469
6470
6471
6472
6473
6474
6475
6476
6477
6478
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
6509
6510
6511
6512
6513
6514
6515
6516
6517
6518
6519
6520
6521
6522
6523
6524
6525
6526
6527
6528
6529
6530
6531
6532
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
6547
6548
6549
6550
6551
6552
6553
6554
6555
6556
6557
6558
6559
6560
6561
6562
6563
6564
6565
6566
6567
6568
6569
6570
6571
6572
6573
6574
6575
6576
6577
6578
6579
6580
6581
6582
6583
6584
6585
6586
6587
6588
6589
6590
6591
6592
6593
6594
6595
6596
6597
6598
6599
6600
6601
6602
6603
6604
6605
6606
6607
6608
6609
6610
6611
6612
6613
6614
6615
6616
6617
6618
6619
6620
6621
6622
6623
6624
6625
6626
6627
6628
6629
6630
6631
6632
6633
6634
6635
6636
6637
6638
6639
6640
6641
6642
6643
6644
6645
6646
6647
6648
6649
6650
6651
6652
6653
6654
6655
6656
6657
6658
6659
6660
6661
6662
6663
6664
6665
6666
6667
6668
6669
6670
6671
6672
6673
6674
6675
6676
6677
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693
6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
6706
6707
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722
6723
6724
6725
6726
6727
6728
6729
6730
6731
6732
6733
6734
6735
6736
6737
6738
6739
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815
6816
6817
6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
6849
6850
6851
6852
6853
6854
6855
6856
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901
6902
6903
6904
6905
6906
6907
6908
6909
6910
6911
6912
6913
6914
6915
6916
6917
6918
6919
6920
6921
6922
6923
6924
6925
6926
6927
6928
6929
6930
6931
6932
6933
6934
6935
6936
6937
6938
6939
6940
6941
6942
6943
6944
6945
6946
6947
6948
6949
6950
6951
6952
6953
6954
6955
6956
6957
6958
6959
6960
6961
6962
6963
6964
6965
6966
6967
6968
6969
6970
6971
6972
6973
6974
6975
6976
6977
6978
6979
6980
6981
6982
6983
6984
6985
6986
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052
7053
7054
7055
7056
7057
7058
7059
7060
7061
7062
7063
7064
7065
7066
7067
7068
7069
7070
7071
7072
7073
7074
7075
7076
7077
7078
7079
7080
7081
7082
7083
7084
7085
7086
7087
7088
7089
7090
7091
7092
7093
7094
7095
7096
7097
7098
7099
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
7142
7143
7144
7145
7146
7147
7148
7149
7150
7151
7152
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272
7273
7274
7275
7276
7277
7278
7279
7280
7281
7282
7283
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295
7296
7297
7298
7299
7300
7301
7302
7303
7304
7305
7306
7307
7308
7309
7310
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
7361
7362
7363
7364
7365
7366
7367
7368
7369
7370
7371
7372
7373
7374
7375
7376
7377
7378
7379
7380
7381
7382
7383
7384
7385
7386
7387
7388
7389
7390
7391
7392
7393
7394
7395
7396
7397
7398
7399
7400
7401
7402
7403
7404
7405
7406
7407
7408
7409
7410
7411
7412
7413
7414
7415
7416
7417
7418
7419
7420
7421
7422
7423
7424
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
7449
7450
7451
7452
7453
7454
7455
7456
7457
7458
7459
7460
7461
7462
7463
7464
7465
7466
7467
7468
7469
7470
7471
7472
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
7490
7491
7492
7493
7494
7495
7496
7497
7498
7499
7500
7501
7502
7503
7504
7505
7506
7507
7508
7509
7510
7511
7512
7513
7514
7515
7516
7517
7518
7519
7520
7521
7522
7523
7524
7525
7526
7527
7528
7529
7530
7531
7532
7533
7534
7535
7536
7537
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557
7558
7559
7560
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577
7578
7579
7580
7581
7582
7583
7584
7585
7586
7587
7588
7589
7590
7591
7592
7593
7594
7595
7596
7597
7598
7599
7600
7601
7602
7603
7604
7605
7606
7607
7608
7609
7610
7611
7612
7613
7614
7615
7616
7617
7618
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631
7632
7633
7634
7635
7636
7637
7638
7639
7640
7641
7642
7643
7644
7645
7646
7647
7648
7649
7650
7651
7652
7653
7654
7655
7656
7657
7658
7659
7660
7661
7662
7663
7664
7665
7666
7667
7668
7669
7670
7671
7672
7673
7674
7675
7676
7677
7678
7679
7680
7681
7682
7683
7684
7685
7686
7687
7688
7689
7690
7691
7692
7693
7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
7705
7706
7707
7708
7709
7710
7711
7712
7713
7714
7715
7716
7717
7718
7719
7720
7721
7722
7723
7724
7725
7726
7727
7728
7729
7730
7731
7732
7733
7734
7735
7736
7737
7738
7739
7740
7741
7742
7743
7744
7745
7746
7747
7748
7749
7750
7751
7752
7753
7754
7755
7756
7757
7758
7759
7760
7761
7762
7763
7764
7765
7766
7767
7768
7769
7770
7771
7772
7773
7774
7775
7776
7777
7778
7779
7780
7781
7782
7783
7784
7785
7786
7787
7788
7789
7790
7791
7792
7793
7794
7795
7796
7797
7798
7799
7800
7801
7802
7803
7804
7805
7806
7807
7808
7809
7810
7811
7812
7813
7814
7815
7816
7817
7818
7819
7820
7821
7822
7823
7824
7825
7826
7827
7828
7829
7830
7831
7832
7833
7834
7835
7836
7837
7838
7839
7840
7841
7842
7843
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-type" content="text/html; charset=ISO-8859-1">
<TITLE>Vim documentation: version5</TITLE>
</HEAD>
<BODY BGCOLOR="#ffffff">
<H1>Vim documentation: version5</H1>
<A NAME="top"></A>
<A HREF="index.html">main help file</A>

<HR>
<PRE>

*<A NAME="version5.txt"></A><B>version5.txt</B>*  For Vim version 8.0.  Last change: 2016 Feb 27


		  VIM REFERENCE MANUAL    by <A HREF="intro.html#Bram">Bram</A> <A HREF="intro.html#Moolenaar">Moolenaar</A>

Welcome to Vim Version 5.0!

This document lists the differences between Vim 4.x and Vim 5.0.
Although 5.0 is mentioned here, this is also for version 5.1, 5.2, etc.
See |<A HREF="vi_diff.html">vi_diff.txt</A>| for an overview of differences between <A HREF="intro.html#Vi">Vi</A> and Vim 5.0.
See |<A HREF="version4.html">version4.txt</A>| for differences between Vim 3.0 and Vim 4.0.

INCOMPATIBLE:				|<A HREF="#incompatible-5">incompatible-5</A>|

Default value for <A HREF="options.html#'compatible'">'compatible'</A> changed	|<A HREF="#cp-default">cp-default</A>|
Text <A HREF="change.html#formatting">formatting</A> command &quot;Q&quot; changed	|<A HREF="#Q-command-changed">Q-command-changed</A>|
<A HREF="cmdline.html#Command-line">Command-line</A> arguments changed		|<A HREF="#cmdline-changed">cmdline-changed</A>|
Autocommands are kept			|<A HREF="#autocmds-kept">autocmds-kept</A>|
Use of <A HREF="options.html#'hidden'">'hidden'</A> changed			|<A HREF="#hidden-changed">hidden-changed</A>|
Text object commands changed		|<A HREF="#text-objects-changed">text-objects-changed</A>|
X-Windows Resources removed		|<A HREF="#x-resources">x-resources</A>|
Use of $VIM				|<A HREF="#$VIM-use">$VIM-use</A>|
Use of $HOME for <A HREF="os_msdos.html#MS-DOS">MS-DOS</A> and <A HREF="os_win32.html#Win32">Win32</A>	|<A HREF="#$HOME-use">$HOME-use</A>|
Tags file format changed		|<A HREF="#tags-file-changed">tags-file-changed</A>|
Options changed				|<A HREF="#options-changed">options-changed</A>|
CTRL-B in <A HREF="insert.html#Insert">Insert</A> mode gone		|<A HREF="#i_CTRL-B-gone">i_CTRL-B-gone</A>|

NEW FEATURES:				|<A HREF="#new-5">new-5</A>|

<A HREF="autocmd.html#Syntax">Syntax</A> highlighting			|<A HREF="#new-highlighting">new-highlighting</A>|
Built-in script language		|<A HREF="#new-script">new-script</A>|
<A HREF="if_perl.html#Perl">Perl</A> and <A HREF="if_pyth.html#Python">Python</A> support			|<A HREF="#new-perl-python">new-perl-python</A>|
<A HREF="os_win32.html#Win32">Win32</A> GUI version			|<A HREF="#added-win32-GUI">added-win32-GUI</A>|
VMS version				|<A HREF="#added-VMS">added-VMS</A>|
BeOS version				|<A HREF="#added-BeOS">added-BeOS</A>|
<A HREF="os_mac.html#Macintosh">Macintosh</A> <A HREF="gui.html#GUI">GUI</A> version			|<A HREF="#added-Mac">added-Mac</A>|
More <A HREF="intro.html#Vi">Vi</A> compatible			|<A HREF="#more-compatible">more-compatible</A>|
Read input from stdin			|<A HREF="#read-stdin">read-stdin</A>|
Regular <A HREF="eval.html#expression">expression</A> patterns		|<A HREF="#added-regexp">added-regexp</A>|
Overloaded <A HREF="tagsrch.html#tags">tags</A>				|<A HREF="#tag-overloaded">tag-overloaded</A>|
New commands				|<A HREF="#new-commands">new-commands</A>|
New options				|<A HREF="#added-options">added-options</A>|
New command-line arguments		|<A HREF="#added-cmdline-args">added-cmdline-args</A>|
Various additions			|<A HREF="#added-various">added-various</A>|

IMPROVEMENTS				|<A HREF="#improvements-5">improvements-5</A>|

COMPILE TIME CHANGES			|<A HREF="#compile-changes-5">compile-changes-5</A>|

BUG FIXES				|<A HREF="#bug-fixes-5">bug-fixes-5</A>|

VERSION 5.1			|<A HREF="#version-5.1">version-5.1</A>|
Changed					|<A HREF="#changed-5.1">changed-5.1</A>|
Added					|<A HREF="#added-5.1">added-5.1</A>|
Fixed					|<A HREF="#fixed-5.1">fixed-5.1</A>|

VERSION 5.2			|<A HREF="#version-5.2">version-5.2</A>|
Long lines editable			|<A HREF="#long-lines">long-lines</A>|
File browser added			|<A HREF="#file-browser-5.2">file-browser-5.2</A>|
Dialogs added				|<A HREF="#dialogs-added">dialogs-added</A>|
Popup menu added			|<A HREF="#popup-menu-added">popup-menu-added</A>|
Select mode added			|<A HREF="#new-Select-mode">new-Select-mode</A>|
<A HREF="starting.html#Session">Session</A> files added			|<A HREF="#new-session-files">new-session-files</A>|
<A HREF="autocmd.html#User">User</A> defined <A HREF="eval.html#functions">functions</A> and commands	|<A HREF="#new-user-defined">new-user-defined</A>|
New interfaces				|<A HREF="#interfaces-5.2">interfaces-5.2</A>|
New ports				|<A HREF="#ports-5.2">ports-5.2</A>|
Multi-byte support			|<A HREF="#new-multi-byte">new-multi-byte</A>|
New functions				|<A HREF="#new-functions-5.2">new-functions-5.2</A>|
New options				|<A HREF="#new-options-5.2">new-options-5.2</A>|
New <A HREF="intro.html#Ex">Ex</A> commands				|<A HREF="#new-ex-commands-5.2">new-ex-commands-5.2</A>|
Changed					|<A HREF="#changed-5.2">changed-5.2</A>|
Added					|<A HREF="#added-5.2">added-5.2</A>|
Fixed					|<A HREF="#fixed-5.2">fixed-5.2</A>|

VERSION 5.3			|<A HREF="#version-5.3">version-5.3</A>|
Changed					|<A HREF="#changed-5.3">changed-5.3</A>|
Added					|<A HREF="#added-5.3">added-5.3</A>|
Fixed					|<A HREF="#fixed-5.3">fixed-5.3</A>|

VERSION 5.4			|<A HREF="#version-5.4">version-5.4</A>|
Runtime directory introduced		|<A HREF="#new-runtime-dir">new-runtime-dir</A>|
Filetype introduced			|<A HREF="#new-filetype-5.4">new-filetype-5.4</A>|
Vim <A HREF="usr_41.html#script">script</A> line continuation		|<A HREF="#new-line-continuation">new-line-continuation</A>|
Improved session files			|<A HREF="#improved-sessions">improved-sessions</A>|
Autocommands improved			|<A HREF="#improved-autocmds-5.4">improved-autocmds-5.4</A>|
Encryption				|<A HREF="#new-encryption">new-encryption</A>|
GTK GUI port				|<A HREF="#new-GTK-GUI">new-GTK-GUI</A>|
Menu changes				|<A HREF="#menu-changes-5.4">menu-changes-5.4</A>|
Viminfo improved			|<A HREF="#improved-viminfo">improved-viminfo</A>|
Various new commands			|<A HREF="#new-commands-5.4">new-commands-5.4</A>|
Various new options			|<A HREF="#new-options-5.4">new-options-5.4</A>|
Vim scripts				|<A HREF="#new-script-5.4">new-script-5.4</A>|
Avoid hit-enter prompt			|<A HREF="#avoid-hit-enter">avoid-hit-enter</A>|
Improved quickfix			|<A HREF="#improved-quickfix">improved-quickfix</A>|
Regular expressions			|<A HREF="#regexp-changes-5.4">regexp-changes-5.4</A>|
Changed					|<A HREF="#changed-5.4">changed-5.4</A>|
Added					|<A HREF="#added-5.4">added-5.4</A>|
Fixed					|<A HREF="#fixed-5.4">fixed-5.4</A>|

VERSION 5.5			|<A HREF="#version-5.5">version-5.5</A>|
Changed					|<A HREF="#changed-5.5">changed-5.5</A>|
Added					|<A HREF="#added-5.5">added-5.5</A>|
Fixed					|<A HREF="#fixed-5.5">fixed-5.5</A>|

VERSION 5.6			|<A HREF="#version-5.6">version-5.6</A>|
Changed					|<A HREF="#changed-5.6">changed-5.6</A>|
Added					|<A HREF="#added-5.6">added-5.6</A>|
Fixed					|<A HREF="#fixed-5.6">fixed-5.6</A>|

VERSION 5.7			|<A HREF="#version-5.7">version-5.7</A>|
Changed					|<A HREF="#changed-5.7">changed-5.7</A>|
Added					|<A HREF="#added-5.7">added-5.7</A>|
Fixed					|<A HREF="#fixed-5.7">fixed-5.7</A>|

VERSION 5.8			|<A HREF="#version-5.8">version-5.8</A>|
Changed					|<A HREF="#changed-5.8">changed-5.8</A>|
Added					|<A HREF="#added-5.8">added-5.8</A>|
Fixed					|<A HREF="#fixed-5.8">fixed-5.8</A>|

==============================================================================

				 INCOMPATIBLE		*<A NAME="incompatible-5"></A><B>incompatible-5</B>*


Default value for <A HREF="options.html#'compatible'">'compatible'</A> changed			*<A NAME="cp-default"></A><B>cp-default</B>*

Vim version 5.0 tries to be more <A HREF="intro.html#Vi">Vi</A> compatible.  This helps people who use Vim
<A HREF="motion.html#as">as</A> a drop-in replacement for <A HREF="intro.html#Vi">Vi</A>, but causes some things to be incompatible
with version 4.x.

In version 4.x the default value for the <A HREF="options.html#'compatible'">'compatible'</A> option was off.  Now the
default is on.  The first thing you will notice is that the &quot;<A HREF="undo.html#u">u</A>&quot; command undoes
itself.  Other side effects will be that mappings may work differently or not
work at all.

Since a lot of people switching from Vim 4.x to 5.0 will find this annoying,
the <A HREF="options.html#'compatible'">'compatible'</A> option is switched off if Vim finds a <A HREF="starting.html#vimrc">vimrc</A> file.  This is a
bit of magic to make sure that 90&#37; of the Vim users will not be bitten by
this change.

What does this mean?
- If you prefer to run in <A HREF="options.html#'compatible'">'compatible'</A> mode and don't have a <A HREF="starting.html#vimrc">vimrc</A> file, you
  don't have to <A HREF="diff.html#do">do</A> anything.
- If you prefer to run in <A HREF="options.html#'nocompatible'">'nocompatible'</A> mode and <A HREF="diff.html#do">do</A> have a <A HREF="starting.html#vimrc">vimrc</A> file, you
  don't have to <A HREF="diff.html#do">do</A> anything.
- If you prefer to run in <A HREF="options.html#'compatible'">'compatible'</A> mode and <A HREF="diff.html#do">do</A> have a <A HREF="starting.html#vimrc">vimrc</A> file, you
  should put this line first in your <A HREF="starting.html#vimrc">vimrc</A> file:
<B>	:set compatible</B>
- If you prefer to run in <A HREF="options.html#'nocompatible'">'nocompatible'</A> mode and don't have a <A HREF="starting.html#vimrc">vimrc</A> file,
  you can <A HREF="diff.html#do">do</A> one of the following:
    - Create an empty <A HREF="starting.html#vimrc">vimrc</A> file (e.g.: &quot;~/.vimrc&quot; for <A HREF="os_unix.html#Unix">Unix</A>).
    - Put this command in your <A HREF="starting.html#.exrc">.exrc</A> file or $EXINIT:
<B>		:set nocompatible</B>
    - Start Vim with the &quot;<A HREF="starting.html#-N">-N</A>&quot; argument.

If you are new to <A HREF="intro.html#Vi">Vi</A> and Vim, using <A HREF="options.html#'nocompatible'">'nocompatible'</A> is strongly recommended,
because <A HREF="intro.html#Vi">Vi</A> has a lot of unexpected side effects, which are avoided by this
setting.  See <A HREF="options.html#'compatible'">'compatible'</A>.

If you like some things from <A HREF="options.html#'compatible'">'compatible'</A> and some not, you can tune the
compatibility with <A HREF="options.html#'cpoptions'">'cpoptions'</A>.

When you invoke Vim <A HREF="motion.html#as">as</A> &quot;<A HREF="starting.html#ex">ex</A>&quot; or &quot;<A HREF="starting.html#gex">gex</A>&quot;, Vim always starts in compatible mode.



Text <A HREF="change.html#formatting">formatting</A> command &quot;<A HREF="intro.html#Q">Q</A>&quot; changed			*<A NAME="Q-command-changed"></A><B>Q-command-changed</B>*

The &quot;<A HREF="intro.html#Q">Q</A>&quot; command formerly formatted lines to the width the <A HREF="options.html#'textwidth'">'textwidth'</A> option
specifies.  The command for this is now &quot;gq&quot; (see |<A HREF="change.html#gq">gq</A>| for more info).  The
reason for this change is that &quot;<A HREF="intro.html#Q">Q</A>&quot; is the standard <A HREF="intro.html#Vi">Vi</A> command to enter &quot;<A HREF="intro.html#Ex">Ex</A>&quot;
mode, and Vim now does in fact have an &quot;<A HREF="intro.html#Ex">Ex</A>&quot; mode (see |<A HREF="intro.html#Q">Q</A>| for more info).

If you still want to use &quot;<A HREF="intro.html#Q">Q</A>&quot; for <A HREF="change.html#formatting">formatting</A>, use this <A HREF="map.html#mapping">mapping</A>:
<B>	:noremap Q gq</B>
And if you also want to use the functionality of &quot;<A HREF="intro.html#Q">Q</A>&quot;:
<B>	:noremap gQ Q</B>



<A HREF="cmdline.html#Command-line">Command-line</A> arguments changed				*<A NAME="cmdline-changed"></A><B>cmdline-changed</B>*

<A HREF="cmdline.html#Command-line">Command-line</A> file-arguments and option-arguments can now be mixed.  You can
give <A HREF="options.html#options">options</A> after the file names.  Example:
<B>   vim main.c -g</B>

This is not possible when editing a file that starts with a '<A HREF="motion.html#-">-</A>'.  Use the &quot;<A HREF="starting.html#--">--</A>&quot;
argument then YXXY---|:
<B>   vim -g -- -main.c</B>

&quot;<A HREF="starting.html#-v">-v</A>&quot; now means to start <A HREF="intro.html#Ex">Ex</A> in <A HREF="intro.html#Vi">Vi</A> mode, use &quot;<A HREF="starting.html#-R">-R</A>&quot; for read-only mode.
old: &quot;vim -v file&quot;	|<A HREF="starting.html#-v">-v</A>|
new: &quot;vim -R file&quot;	|<A HREF="starting.html#-R">-R</A>|

&quot;<A HREF="starting.html#-e">-e</A>&quot; now means to start <A HREF="intro.html#Vi">Vi</A> in <A HREF="intro.html#Ex">Ex</A> mode, use &quot;<A HREF="starting.html#-q">-q</A>&quot; for <A HREF="quickfix.html#quickfix">quickfix</A>.
old: &quot;vim -e errorfile&quot;	|<A HREF="starting.html#-e">-e</A>|
new: &quot;vim -q errorfile&quot; |<A HREF="starting.html#-q">-q</A>|

&quot;-s&quot; in <A HREF="intro.html#Ex">Ex</A> mode now means to run in silent (batch) mode. |<A HREF="starting.html#-s-ex">-s-ex</A>|

&quot;<A HREF="starting.html#-x">-x</A>&quot; reserved for crypt, use &quot;<A HREF="starting.html#-f">-f</A>&quot; to avoid starting a new CLI (Amiga).
old: &quot;vim -x file&quot;	|<A HREF="starting.html#-x">-x</A>|
new: &quot;vim -f file&quot;	|<A HREF="starting.html#-f">-f</A>|

Vim allows up to ten &quot;<A HREF="editing.html#+cmd">+cmd</A>&quot; and &quot;<A HREF="starting.html#-c">-c</A> cmd&quot; arguments.  Previously Vim executed
only the last one.

&quot;<A HREF="starting.html#-n">-n</A>&quot; now overrides any setting for <A HREF="options.html#'updatecount'">'updatecount'</A> in a <A HREF="starting.html#vimrc">vimrc</A> file, but not in
a <A HREF="gui.html#gvimrc">gvimrc</A> file.



Autocommands are kept					*<A NAME="autocmds-kept"></A><B>autocmds-kept</B>*

Before version 5.0, autocommands with the same event, file name <A HREF="pattern.html#pattern">pattern</A>, and
command could appear only once.  This was fine for simple autocommands (like
setting option values), but for more complicated autocommands, where the same
command might appear <A HREF="if_cscop.html#twice">twice</A>, this restriction caused problems.  Therefore
Vim stores all autocommands and keeps them in the order that they are defined.

The most obvious side effect of this change is that when you source a <A HREF="starting.html#vimrc">vimrc</A>
file <A HREF="if_cscop.html#twice">twice</A>, the autocommands in <A HREF="motion.html#it">it</A> will be defined <A HREF="if_cscop.html#twice">twice</A>.  To avoid this, <A HREF="diff.html#do">do</A>
one of these:

- Remove any autocommands that might potentially defined <A HREF="if_cscop.html#twice">twice</A> before
  defining them.  Example:
<B>	:au! * *.ext</B>
<B>	:au BufEnter *.ext ...</B>

- Put the autocommands inside an &quot;<A HREF="eval.html#:if">:if</A>&quot; command.  Example:
<B>	if !exists("did_ext_autocmds")</B>
<B>	  let did_ext_autocmds = 1</B>
<B>	  autocmd BufEnter *.ext ...</B>
<B>	endif</B>

- Put your autocommands in a different <A HREF="autocmd.html#autocommand">autocommand</A> group so you can remove
  them before defining them YXXY:augroup|:
<B>	augroup uncompress</B>
<B>	  au!</B>
<B>	  au BufReadPost *.gz ...</B>
<B>	augroup END</B>



Use of <A HREF="options.html#'hidden'">'hidden'</A> changed					*<A NAME="hidden-changed"></A><B>hidden-changed</B>*

In version 4.x, only some commands used the <A HREF="options.html#'hidden'">'hidden'</A> option.  Now all commands
uses <A HREF="motion.html#it">it</A> whenever a buffer disappears from a <A HREF="windows.html#window">window</A>.

Previously you could <A HREF="diff.html#do">do</A> &quot;<A HREF="windows.html#:buf">:buf</A> xxx&quot; in a changed buffer and that buffer would
then become hidden.  Now you must set the <A HREF="options.html#'hidden'">'hidden'</A> option for this to work.

The new behavior is simpler: whether Vim hides <A HREF="windows.html#buffers">buffers</A> no longer depends on
the specific command that you use.
- with <A HREF="options.html#'hidden'">'hidden'</A> not set, you never get hidden <A HREF="windows.html#buffers">buffers</A>.  Exceptions are the
  &quot;<A HREF="windows.html#:hide">:hide</A>&quot; and &quot;:close!&quot; commands and, in rare cases, where you would otherwise
  lose changes to the buffer.
- With <A HREF="options.html#'hidden'">'hidden'</A> set, you almost never unload a buffer.  Exceptions are the
  &quot;<A HREF="windows.html#:bunload">:bunload</A>&quot; or &quot;<A HREF="windows.html#:bdel">:bdel</A>&quot; commands.

&quot;<A HREF="windows.html#:buffer">:buffer</A>&quot; now supports a &quot;<A HREF="change.html#!">!</A>&quot;: <A HREF="editing.html#abandon">abandon</A> changes in current buffer.  So <A HREF="diff.html#do">do</A>
&quot;<A HREF="windows.html#:bnext">:bnext</A>&quot;, &quot;<A HREF="windows.html#:brewind">:brewind</A>&quot;, etc.



Text object commands changed				*<A NAME="text-objects-changed"></A><B>text-objects-changed</B>*

Text object commands have new names.  This allows more text <A HREF="index.html#objects">objects</A> and makes
characters available for other <A HREF="visual.html#Visual">Visual</A> mode commands.  Since no more single
characters were available, text <A HREF="index.html#objects">objects</A> names now require two characters.
The first one is always '<A HREF="insert.html#i">i</A>' or '<A HREF="insert.html#a">a</A>'.
<B><FONT COLOR="PURPLE">	OLD	NEW	</FONT></B>
	a	aw	a <A HREF="motion.html#word">word</A>			|<A HREF="motion.html#v_aw">v_aw</A>|
	A	aW	a <A HREF="motion.html#WORD">WORD</A>			|<A HREF="motion.html#v_aW">v_aW</A>|
	s	as	a <A HREF="motion.html#sentence">sentence</A>		|<A HREF="motion.html#v_as">v_as</A>|
	p	ap	a <A HREF="motion.html#paragraph">paragraph</A>		|<A HREF="motion.html#v_ap">v_ap</A>|
	<A HREF="change.html#S">S</A>	ab	a () block		|<A HREF="motion.html#v_ab">v_ab</A>|
	<A HREF="change.html#P">P</A>	aB	a <A HREF="intro.html#{}">{}</A> block		|<A HREF="motion.html#v_aB">v_aB</A>|

There is another set of text <A HREF="index.html#objects">objects</A> that starts with &quot;<A HREF="insert.html#i">i</A>&quot;, for &quot;inner&quot;.  These
select the same <A HREF="index.html#objects">objects</A>, but exclude white space.



X-Windows Resources removed				*<A NAME="x-resources"></A><B>x-resources</B>*

Vim no longer supports the following X resources:
- boldColor
- italicColor
- underlineColor
- cursorColor

Vim now uses highlight groups to set colors.  This avoids the confusion of
using a <A HREF="syntax.html#bold">bold</A> Font, which would imply a certain color.  See |<A HREF="syntax.html#:highlight">:highlight</A>| and
|<A HREF="gui_x11.html#gui-resources">gui-resources</A>|.



Use of <A HREF="starting.html#$VIM">$VIM</A>						*<A NAME="$VIM-use"></A><B>$VIM-use</B>*

Vim now uses the VIM environment variable to find all Vim system files.  This
includes the global <A HREF="starting.html#vimrc">vimrc</A>, <A HREF="gui.html#gvimrc">gvimrc</A>, and <A HREF="gui.html#menu.vim">menu.vim</A> files and all on-line help
and <A HREF="syntax.html#syntax">syntax</A> files.  See |<A HREF="starting.html#$VIM">$VIM</A>|.  Starting with version 5.4, |<A HREF="starting.html#$VIMRUNTIME">$VIMRUNTIME</A>| can
also be used.
For <A HREF="os_unix.html#Unix">Unix</A>, Vim sets a default value for <A HREF="starting.html#$VIM">$VIM</A> when doing &quot;make install&quot;.
When <A HREF="starting.html#$VIM">$VIM</A> is not set, its default value is the directory from <A HREF="options.html#'helpfile'">'helpfile'</A>,
excluding &quot;/doc/help.txt&quot;.



Use of <A HREF="options.html#$HOME">$HOME</A> for <A HREF="os_msdos.html#MS-DOS">MS-DOS</A> and <A HREF="os_win32.html#Win32">Win32</A>			*<A NAME="$HOME-use"></A><B>$HOME-use</B>*

The <A HREF="os_msdos.html#MS-DOS">MS-DOS</A> and <A HREF="os_win32.html#Win32">Win32</A> versions of Vim now first check <A HREF="options.html#$HOME">$HOME</A> when searching for
a <A HREF="starting.html#vimrc">vimrc</A> or <A HREF="starting.html#exrc">exrc</A> file and for reading/storing the <A HREF="starting.html#viminfo">viminfo</A> file.  Previously Vim
used <A HREF="starting.html#$VIM">$VIM</A> for these systems, but this causes trouble on a system with several
users.  Now Vim uses <A HREF="starting.html#$VIM">$VIM</A> only when <A HREF="options.html#$HOME">$HOME</A> is not set or the file is not found
in <A HREF="options.html#$HOME">$HOME</A>.  See |<A HREF="starting.html#_vimrc">_vimrc</A>|.



Tags file format changed				*<A NAME="tags-file-changed"></A><B>tags-file-changed</B>*

Only tabs are allowed to separate fields in a <A HREF="tagsrch.html#tags">tags</A> file.  This allows for
spaces in a file name and is still <A HREF="intro.html#Vi">Vi</A> compatible.  In previous versions of
Vim, any white space was allowed to separate the fields.  If you have a file
which doesn't use a single <A HREF="intro.html#tab">tab</A> between fields, edit the <A HREF="tagsrch.html#tags">tags</A> file and execute
this command:
<B>	:%s/\(\S*\)\s\+\(\S*\)\s\+\(.*\)/\1\t\2\t\3/</B>



Options changed						*<A NAME="options-changed"></A><B>options-changed</B>*

The default value of <A HREF="options.html#'errorfile'">'errorfile'</A> has changed from &quot;errors.vim&quot; to &quot;errors.err&quot;.
The reason is that only Vim scripts should have the &quot;.vim&quot; extensions.

The &quot;<A HREF="quickfix.html#:make">:make</A>&quot; command no longer uses the <A HREF="options.html#'errorfile'">'errorfile'</A> option.  This prevents the
output of the &quot;<A HREF="quickfix.html#:make">:make</A>&quot; command from overwriting a manually saved error file.
&quot;<A HREF="quickfix.html#:make">:make</A>&quot; uses the <A HREF="options.html#'makeef'">'makeef'</A> option instead.  This also allows for generating a
unique name, to prevent concurrently running &quot;<A HREF="quickfix.html#:make">:make</A>&quot; commands from overwriting
each other's files.

With <A HREF="options.html#'insertmode'">'insertmode'</A> set, a few more things change:
- <A HREF="intro.html#&lt;Esc&gt;">&lt;Esc&gt;</A> in <A HREF="intro.html#Normal">Normal</A> mode goes to <A HREF="insert.html#Insert">Insert</A> mode.
- <A HREF="intro.html#&lt;Esc&gt;">&lt;Esc&gt;</A> in <A HREF="insert.html#Insert">Insert</A> mode doesn't leave <A HREF="insert.html#Insert">Insert</A> mode.
- When doing &quot;<A HREF="options.html#:set">:set</A> <A HREF="options.html#'im'">im</A>&quot; go to <A HREF="insert.html#Insert">Insert</A> mode immediately.

Vim considers a buffer to be changed when the <A HREF="options.html#'fileformat'">'fileformat'</A> (formerly the
<A HREF="options.html#'textmode'">'textmode'</A> option) is different from the buffer's initial format.



<A HREF="scroll.html#CTRL-B">CTRL-B</A> in <A HREF="insert.html#Insert">Insert</A> mode gone				*<A NAME="i_CTRL-B-gone"></A><B>i_CTRL-B-gone</B>*

When Vim was compiled with the |<A HREF="various.html#+rightleft">+rightleft</A>| feature, you could use <A HREF="scroll.html#CTRL-B">CTRL-B</A> to
toggle the <A HREF="options.html#'revins'">'revins'</A> option.  Unfortunately, some people hit the '<A HREF="motion.html#B">B</A>' key
accidentally when trying to type <A HREF="visual.html#CTRL-V">CTRL-V</A> or <A HREF="motion.html#CTRL-N">CTRL-N</A> and then didn't know how to
<A HREF="undo.html#undo">undo</A> this.  Since toggling the <A HREF="options.html#'revins'">'revins'</A> option can easily be done with the
<A HREF="map.html#mapping">mapping</A> below, this use of the <A HREF="scroll.html#CTRL-B">CTRL-B</A> key is disabled.  You can still use the
CTRL-_ key for this |<A HREF="insert.html#i_CTRL-_">i_CTRL-_</A>|.
<B>   :imap &lt;C-B&gt; &lt;C-O&gt;:set revins!&lt;CR&gt;</B>

==============================================================================

				 NEW FEATURES		*<A NAME="new-5"></A><B>new-5</B>*


<A HREF="autocmd.html#Syntax">Syntax</A> highlighting					*<A NAME="new-highlighting"></A><B>new-highlighting</B>*

Vim now has a very flexible way to highlighting just about any type of file.
See |<A HREF="syntax.html#syntax">syntax</A>|.  Summary:
<B>   :syntax on</B>

Colors and attributes can be set for the <A HREF="syntax.html#syntax">syntax</A> highlighting, and also for
other highlighted items with the '<A HREF="cmdline.html#:">:</A>' flag in the <A HREF="options.html#'highlight'">'highlight'</A> option.  All
highlighted items are assigned a highlight group which specifies their
highlighting.  See |<A HREF="syntax.html#:highlight">:highlight</A>|.  The default colors have been improved.

You can use the &quot;<A HREF="intro.html#Normal">Normal</A>&quot; group to set the default fore/background colors for a
color <A HREF="terminal.html#terminal">terminal</A>.  For the <A HREF="gui.html#GUI">GUI</A>, you can use this group to specify the font, too.

The &quot;<A HREF="syntax.html#2html.vim">2html.vim</A>&quot; <A HREF="usr_41.html#script">script</A> can be used to convert any file that has <A HREF="syntax.html#syntax">syntax</A>
highlighting to HTML.  The colors will be exactly the same <A HREF="motion.html#as">as</A> how you see them
in Vim.  With a HTML viewer you can also print the file with colors.



Built-in <A HREF="usr_41.html#script">script</A> language				*<A NAME="new-script"></A><B>new-script</B>*

A few extra commands and an <A HREF="eval.html#expression">expression</A> evaluator enable you to write simple
but powerful scripts.  Commands include &quot;<A HREF="eval.html#:if">:if</A>&quot; and &quot;<A HREF="eval.html#:while">:while</A>&quot;.  Expressions can
manipulate numbers and strings.  You can use the '<A HREF="change.html#=">=</A>' <A HREF="sponsor.html#register">register</A> to insert
directly the result of an expression.  See |<A HREF="eval.html#expression">expression</A>|.



<A HREF="if_perl.html#Perl">Perl</A> and <A HREF="if_pyth.html#Python">Python</A> support					*<A NAME="new-perl-python"></A><B>new-perl-python</B>*

Vim can call <A HREF="if_perl.html#Perl">Perl</A> commands with &quot;<A HREF="if_perl.html#:perldo">:perldo</A>&quot;, &quot;<A HREF="if_perl.html#:perl">:perl</A>&quot;, etc.  See |<A HREF="if_perl.html#perl">perl</A>|.
Patches made by Sven Verdoolaege and Matt Gerassimoff.

Vim can call <A HREF="if_pyth.html#Python">Python</A> commands with &quot;<A HREF="if_pyth.html#:python">:python</A>&quot; and &quot;<A HREF="if_pyth.html#:pyfile">:pyfile</A>&quot;.  See |<A HREF="if_pyth.html#python">python</A>|.

Both of these are only available when enabled at compile time.



<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A> version					*<A NAME="added-win32-GUI"></A><B>added-win32-GUI</B>*

The <A HREF="gui.html#GUI">GUI</A> has been ported to MS Windows 95 and NT.  All the features of the <A HREF="options.html#X11">X11</A>
<A HREF="gui.html#GUI">GUI</A> are available to Windows users now.  |<A HREF="gui_w32.html#gui-w32">gui-w32</A>|
This also fixes problems with running the <A HREF="os_win32.html#Win32">Win32</A> console version under Windows
95, where console support has always been bad.
There is also a version that supports OLE automation interface.  |<A HREF="if_ole.html">if_ole.txt</A>|
Vim can be integrated with Microsoft Developer Studio using the <A HREF="if_ole.html#VisVim">VisVim</A> DLL.
It is possible to produce a DLL version of <A HREF="starting.html#gvim">gvim</A> with Borland C++ (Aaron).



<A HREF="os_vms.html#VMS">VMS</A> version						*<A NAME="added-VMS"></A><B>added-VMS</B>*

Vim can now also be used on <A HREF="os_vms.html#VMS">VMS</A> systems.  Port done by Henk Elbers.
This has not been tested much, but <A HREF="motion.html#it">it</A> should work.
Sorry, no documentation!



<A HREF="os_beos.html#BeOS">BeOS</A> version						*<A NAME="added-BeOS"></A><B>added-BeOS</B>*

Vim can be used on <A HREF="os_beos.html#BeOS">BeOS</A> systems (including the <A HREF="os_beos.html#BeBox">BeBox</A>).  (Olaf Seibert)
See |<A HREF="os_beos.html">os_beos.txt</A>|.



<A HREF="os_mac.html#Macintosh">Macintosh</A> <A HREF="gui.html#GUI">GUI</A> version					*<A NAME="added-Mac"></A><B>added-Mac</B>*

Vim can now be used on the <A HREF="os_mac.html#Macintosh">Macintosh</A>.  (Dany St-Amant)
It has not been tested much yet, be careful!
See |<A HREF="os_mac.html">os_mac.txt</A>|.



More <A HREF="intro.html#Vi">Vi</A> compatible					*<A NAME="more-compatible"></A><B>more-compatible</B>*

There is now a real <A HREF="intro.html#Ex">Ex</A> mode.  Started with the &quot;<A HREF="intro.html#Q">Q</A>&quot; command, or by calling the
executable &quot;<A HREF="starting.html#ex">ex</A>&quot; or &quot;<A HREF="starting.html#gex">gex</A>&quot;.  |<A HREF="intro.html#Ex-mode">Ex-mode</A>|

Always allow multi-level <A HREF="undo.html#undo">undo</A>, also in <A HREF="intro.html#Vi">Vi</A> compatible mode.  When the '<A HREF="undo.html#u">u</A>' flag
in <A HREF="options.html#'cpoptions'">'cpoptions'</A> is included, <A HREF="undo.html#CTRL-R">CTRL-R</A> is used for <A HREF="repeat.html#repeating">repeating</A> the <A HREF="undo.html#undo">undo</A> or <A HREF="undo.html#redo">redo</A>
(like &quot;<A HREF="repeat.html#.">.</A>&quot; in <A HREF="intro.html#Nvi">Nvi</A>).



Read input from stdin					*<A NAME="read-stdin"></A><B>read-stdin</B>*

When using the &quot;<A HREF="motion.html#-">-</A>&quot; command-line argument, Vim reads its text input from stdin.
This can be used for putting Vim at the end of a pipe:
<B>   grep "^a.*" *.c | vim -</B>
See |<A HREF="starting.html#--">--</A>|.



Regular <A HREF="eval.html#expression">expression</A> patterns				*<A NAME="added-regexp"></A><B>added-regexp</B>*

Added specifying a range for the number of matches of an atom: &quot;\{a,b}&quot;. |<A HREF="pattern.html#/\{">/\{</A>|
Added the &quot;shortest match&quot; <A HREF="pattern.html#regexp">regexp</A> &quot;\{-}&quot; (Webb).
Added &quot;\s&quot;, matches a white character.  Can replace &quot;[ \t]&quot;.		 |<A HREF="pattern.html#/\s">/\s</A>|
Added &quot;\S&quot;, matches a non-white character.  Can replace &quot;[^ \t]&quot;.	 |<A HREF="pattern.html#/\S">/\S</A>|



Overloaded <A HREF="tagsrch.html#tags">tags</A>						*<A NAME="tag-overloaded"></A><B>tag-overloaded</B>*

When using a language like C++, there can be several <A HREF="tagsrch.html#tags">tags</A> for the same
tagname.  Commands have been added to be able to jump to any of these
overloaded <A HREF="tagsrch.html#tags">tags</A>:
|<A HREF="tagsrch.html#:tselect">:tselect</A>|	<A HREF="eval.html#List">List</A> matching <A HREF="tagsrch.html#tags">tags</A>, and jump to one of them.
|<A HREF="tagsrch.html#:stselect">:stselect</A>|	Idem, and split <A HREF="windows.html#window">window</A>.
|<A HREF="tagsrch.html#g_CTRL-]">g_CTRL-]</A>|	Do &quot;<A HREF="tagsrch.html#:tselect">:tselect</A>&quot; with the <A HREF="motion.html#word">word</A> under the cursor.

	After &quot;<A HREF="tagsrch.html#:ta">:ta</A> {tagname}&quot; with multiple matches:
|<A HREF="tagsrch.html#:tnext">:tnext</A>|	Go to next matching <A HREF="tagsrch.html#tag">tag</A>.
|<A HREF="tagsrch.html#:tprevious">:tprevious</A>|	Go to previous matching <A HREF="tagsrch.html#tag">tag</A>.
|<A HREF="tagsrch.html#:trewind">:trewind</A>|	Go to first matching <A HREF="tagsrch.html#tag">tag</A>.
|<A HREF="tagsrch.html#:tlast">:tlast</A>|	Go to last matching <A HREF="tagsrch.html#tag">tag</A>.

The &quot;<A HREF="tagsrch.html#:tag">:tag</A>&quot; command now also accepts <A HREF="editing.html#wildcards">wildcards</A>.  When doing command-line
completion on <A HREF="tagsrch.html#tags">tags</A>, case-insensitive matching is also available (at the end).



New commands						*<A NAME="new-commands"></A><B>new-commands</B>*

|<A HREF="gui.html#:amenu">:amenu</A>|	Define <A HREF="gui.html#menus">menus</A> for all modes, <A HREF="insert.html#inserting">inserting</A> a <A HREF="motion.html#CTRL-O">CTRL-O</A> for <A HREF="insert.html#Insert">Insert</A>
		mode, ESC for <A HREF="visual.html#Visual">Visual</A> and <A HREF="pattern.html#CTRL-C">CTRL-C</A> for <A HREF="cmdline.html#Cmdline">Cmdline</A> mode.  &quot;amenu&quot; is
		used for the default <A HREF="gui.html#menus">menus</A> and the <A HREF="autocmd.html#Syntax">Syntax</A> menu.

|<A HREF="autocmd.html#:augroup">:augroup</A>|	Set group to be used for following autocommands.  Allows the
		grouping of autocommands to enable deletion of a specific
		group.

|<A HREF="quickfix.html#:crewind">:crewind</A>|	Go to first error.
|<A HREF="quickfix.html#:clast">:clast</A>|	Go to last error.

|<A HREF="autocmd.html#:doautoall">:doautoall</A>|	Execute autocommands for all loaded <A HREF="windows.html#buffers">buffers</A>.

|<A HREF="eval.html#:echo">:echo</A>|		Echo its argument, which is an <A HREF="eval.html#expression">expression</A>.  Can be used to
		display <A HREF="message.html#messages">messages</A> which include <A HREF="eval.html#variables">variables</A>.

|<A HREF="eval.html#:execute">:execute</A>|	Execute its argument, which is an <A HREF="eval.html#expression">expression</A>.  Can be used to
		built up an <A HREF="intro.html#Ex">Ex</A> command with anything.

|<A HREF="windows.html#:hide">:hide</A>|		Works like &quot;<A HREF="windows.html#:close">:close</A>&quot;.

|<A HREF="eval.html#:if">:if</A>|		Conditional execution, for built-in <A HREF="usr_41.html#script">script</A> language.

|<A HREF="starting.html#:intro">:intro</A>|	Show introductory message.  This is always executed when Vim
		is started without file arguments.

|<A HREF="eval.html#:let">:let</A>|		Assign a value to an internal variable.

|<A HREF="map.html#:omap">:omap</A>|		Map only in operator-pending mode.  Makes <A HREF="motion.html#it">it</A> possible to map
		text-object commands.

|<A HREF="various.html#:redir">:redir</A>|	Redirect output of <A HREF="message.html#messages">messages</A> to a file.

|<A HREF="editing.html#:update">:update</A>|	Write when buffer has changed.

|<A HREF="eval.html#:while">:while</A>|	While-loop for built-in <A HREF="usr_41.html#script">script</A> language.

<A HREF="visual.html#Visual">Visual</A> mode:
|<A HREF="visual.html#v_O">v_O</A>|		&quot;O&quot; in <A HREF="visual.html#Visual">Visual</A> block mode, moves the cursor to the other corner
		horizontally.
|<A HREF="change.html#v_D">v_D</A>|		&quot;D&quot; in <A HREF="visual.html#Visual">Visual</A> block mode deletes till end of line.

<A HREF="insert.html#Insert">Insert</A> mode:
|<A HREF="insert.html#i_CTRL-]">i_CTRL-]</A>|	Triggers abbreviation, without <A HREF="insert.html#inserting">inserting</A> any character.



New <A HREF="options.html#options">options</A>						*<A NAME="added-options"></A><B>added-options</B>*

<A HREF="options.html#'background'">'background'</A>	Used for selecting highlight color defaults.  Also used in
		&quot;syntax.vim&quot; for selecting the <A HREF="syntax.html#syntax">syntax</A> colors.  Often set
		automatically, depending on the <A HREF="terminal.html#terminal">terminal</A> used.

<A HREF="options.html#'complete'">'complete'</A>	Specifies how <A HREF="insert.html#Insert">Insert</A> mode completion works.

<A HREF="options.html#'eventignore'">'eventignore'</A>	Makes <A HREF="motion.html#it">it</A> possible to ignore autocommands temporarily.

<A HREF="options.html#'fileformat'">'fileformat'</A>	Current file format.  Replaces <A HREF="options.html#'textmode'">'textmode'</A>.
<A HREF="options.html#'fileformats'">'fileformats'</A>	Possible file formats.  Replaces <A HREF="options.html#'textauto'">'textauto'</A>.
		New is that this also supports <A HREF="os_mac.html#Macintosh">Macintosh</A> format: A single <A HREF="motion.html#&lt;CR&gt;">&lt;CR&gt;</A>
		separates lines.
		The default for <A HREF="options.html#'fileformats'">'fileformats'</A> for <A HREF="os_msdos.html#MS-DOS">MS-DOS</A>, <A HREF="os_win32.html#Win32">Win32</A> and <A HREF="os_os2.html#OS/2">OS/2</A> is
		&quot;dos,unix&quot;, also when <A HREF="options.html#'compatible'">'compatible'</A> set.  <A HREF="os_unix.html#Unix">Unix</A> type files
		didn't work anyway when <A HREF="options.html#'fileformats'">'fileformats'</A> was empty.

<A HREF="options.html#'guicursor'">'guicursor'</A>	Set the cursor shape and blinking in various modes.
		Default is to adjust the cursor for <A HREF="insert.html#Insert">Insert</A> and <A HREF="insert.html#Replace">Replace</A> mode,
		and when an <A HREF="motion.html#operator">operator</A> is pending.  Blinking is default on.

<A HREF="options.html#'fkmap'">'fkmap'</A>		<A HREF="farsi.html#Farsi">Farsi</A> key <A HREF="map.html#mapping">mapping</A>.

<A HREF="options.html#'hlsearch'">'hlsearch'</A>	Highlight all matches with the last used search <A HREF="pattern.html#pattern">pattern</A>.

<A HREF="options.html#'hkmapp'">'hkmapp'</A>	Phonetic Hebrew <A HREF="map.html#mapping">mapping</A>. (Ilya Dogolazky)

<A HREF="options.html#'iconstring'">'iconstring'</A>	Define the name of the icon, when not empty.  (Version 5.2: the
		<A HREF="eval.html#string">string</A> is used literally, a newline can be used to make two
		lines.)

<A HREF="options.html#'lazyredraw'">'lazyredraw'</A>	Don't redraw the screen while executing macros, <A HREF="change.html#registers">registers</A> or
		other not typed commands.

<A HREF="options.html#'makeef'">'makeef'</A>	Errorfile to be used for &quot;<A HREF="quickfix.html#:make">:make</A>&quot;.  &quot;##&quot; is replaced with a
		unique number.  Avoids that two Vim sessions overwrite each
		others errorfile.  The <A HREF="os_unix.html#Unix">Unix</A> default is &quot;/tmp/vim##.err&quot;; for
		<A HREF="os_amiga.html#Amiga">Amiga</A> &quot;t:vim##.Err, for others &quot;vim##.err&quot;.

<A HREF="options.html#'matchtime'">'matchtime'</A>	1/10s of a second to show a matching paren, when <A HREF="options.html#'showmatch'">'showmatch'</A>
		is set.  Like <A HREF="intro.html#Nvi">Nvi</A>.

<A HREF="options.html#'mousehide'">'mousehide'</A>	Hide mouse pointer in <A HREF="gui.html#GUI">GUI</A> when typing text.

<A HREF="options.html#'nrformats'">'nrformats'</A>	Defines what bases Vim will consider for numbers when using
		the <A HREF="change.html#CTRL-A">CTRL-A</A> and <A HREF="change.html#CTRL-X">CTRL-X</A> commands.  Default: &quot;hex,octal&quot;.

<A HREF="options.html#'shellxquote'">'shellxquote'</A>	Add extra <A HREF="quotes.html#quotes">quotes</A> around the whole shell command, including
		redirection.

<A HREF="options.html#'softtabstop'">'softtabstop'</A>	Make typing behave like tabstop is set at this value, without
		<A HREF="change.html#changing">changing</A> the value of <A HREF="options.html#'tabstop'">'tabstop'</A>.  Makes <A HREF="motion.html#it">it</A> more <A HREF="starting.html#easy">easy</A> to keep
		<A HREF="options.html#'ts'">'ts'</A> at 8, while still getting four spaces for a <A HREF="motion.html#&lt;Tab&gt;">&lt;Tab&gt;</A>.

<A HREF="options.html#'titlestring'">'titlestring'</A>	<A HREF="eval.html#String">String</A> for the <A HREF="windows.html#window">window</A> title, when not empty.  (Version 5.2:
		this <A HREF="eval.html#string">string</A> is used literally, a newline can be used to make
		two lines.)

<A HREF="options.html#'verbose'">'verbose'</A>	Level of verbosity.  Makes <A HREF="motion.html#it">it</A> possible to show which <A HREF="starting.html#.vimrc">.vimrc</A>,
		<A HREF="starting.html#.exrc">.exrc</A>, .viminfo files etc. are used for initializing.  Also
		to show autocommands that are being executed.  Can also be set
		by using the &quot;<A HREF="starting.html#-V">-V</A>&quot; command-line argument.



New command-line arguments				*<A NAME="added-cmdline-args"></A><B>added-cmdline-args</B>*

|<A HREF="starting.html#-U">-U</A>|		Set the <A HREF="gui.html#gvimrc">gvimrc</A> file to be used.  Like &quot;<A HREF="starting.html#-u">-u</A>&quot; for the <A HREF="starting.html#vimrc">vimrc</A>.

|<A HREF="starting.html#-V">-V</A>|		Set the <A HREF="options.html#'verbose'">'verbose'</A> option.  E.g. &quot;vim -V10&quot;.

|<A HREF="starting.html#-N">-N</A>|		Start in non-compatible mode.

|<A HREF="starting.html#-C">-C</A>|		Start in compatible mode.

|<A HREF="starting.html#-Z">-Z</A>|		Start in restricted mode, disallow shell commands.  Can also
		be done by calling the executable &quot;<A HREF="starting.html#rvim">rvim</A>&quot;.

|<A HREF="starting.html#-h">-h</A>|		Show usage information and exit.



Various additions					*<A NAME="added-various"></A><B>added-various</B>*

Added support for SNiFF+ connection (submitted by Toni Leherbauer).  Vim can
be used <A HREF="motion.html#as">as</A> an editor for SNiFF.  No documentation available...

For producing a bug report, the <A HREF="intro.html#bugreport.vim">bugreport.vim</A> <A HREF="usr_41.html#script">script</A> has been included.
Can be used with &quot;<A HREF="repeat.html#:so">:so</A> $VIMRUNTIME/bugreport.vim&quot;, which creates the file
&quot;bugreport.txt&quot; in the current directory. |<A HREF="intro.html#bugs">bugs</A>|

Added range to &quot;<A HREF="various.html#:normal">:normal</A>&quot; command.  Now you can repeat the same command for
each line in the range.  |<A HREF="various.html#:normal-range">:normal-range</A>|

Included support for the <A HREF="farsi.html#Farsi">Farsi</A> language (Shiran).  Only when enabled at
compile time.  See |<A HREF="farsi.html#farsi">farsi</A>|.

==============================================================================

				 IMPROVEMENTS		*<A NAME="improvements-5"></A><B>improvements-5</B>*

Performance:
- When <A HREF="options.html#'showcmd'">'showcmd'</A> was set, mappings would execute much more slowly because the
  output would be flushed very often.  Helps a lot when executing the &quot;life&quot;
  macros with <A HREF="options.html#'showcmd'">'showcmd'</A> set.
- Included patches for binary searching in <A HREF="tagsrch.html#tags">tags</A> file (David O'Neill).
  Can be disabled by resetting the <A HREF="options.html#'tagbsearch'">'tagbsearch'</A> option.
- Don't update the ruler when <A HREF="repeat.html#repeating">repeating</A> insert (slowed <A HREF="motion.html#it">it</A> down a lot).
- For <A HREF="os_unix.html#Unix">Unix</A>, file name expansion is now done internally instead of starting a
  shell for <A HREF="motion.html#it">it</A>.
- Expand environment <A HREF="eval.html#variables">variables</A> with expand_env(), instead of calling the
  shell.  Makes &quot;<A HREF="repeat.html#:so">:so</A> $VIMRUNTIME/syntax/syntax.vim&quot; a LOT faster.
- Reduced output for cursor positioning: Use CR-LF for moving to first few
  columns in next few lines;  Don't output CR <A HREF="if_cscop.html#twice">twice</A> when using termios.
- Optimized cursor positioning.  Use CR, BS and NL when it's shorter than
  absolute cursor positioning.
- Disable redrawing while <A HREF="repeat.html#repeating">repeating</A> insert &quot;1000ii&lt;Esc&gt;&quot;.
- Made &quot;d$&quot; or &quot;<A HREF="change.html#D">D</A>&quot; for long lines a lot faster (delete all characters at once,
  instead of one by one).
- Access option table by first <A HREF="print.html#letter">letter</A>, instead of searching from start.
- Made setting special highlighting attributes a lot faster by using
  highlight_attr[], instead of searching in the <A HREF="options.html#'highlight'">'highlight'</A> <A HREF="eval.html#string">string</A>.
- Don't show the mode when redrawing is disabled.
- When setting an option, only redraw the screen when required.
- Improved performance of <A HREF="intro.html#Ex">Ex</A> commands by using a lookup table for the first
  character.

Options:
<A HREF="options.html#'cinoptions'">'cinoptions'</A>	Added '<A HREF="index.html#g">g</A>' flag, for C++ scope declarations.
<A HREF="options.html#'cpoptions'">'cpoptions'</A>	Added '<A HREF="motion.html#E">E</A>' flag: Disallow yanking, <A HREF="change.html#deleting">deleting</A>, etc. empty text
		area.  Default is to allow empty yanks.  When '<A HREF="motion.html#E">E</A>' is included,
		&quot;y$&quot; in an empty line now is handled <A HREF="motion.html#as">as</A> an error (Vi
		compatible).
		Added '<A HREF="motion.html#j">j</A>' flag: Only add two spaces for a join after a '<A HREF="repeat.html#.">.</A>',
		not after a '<A HREF="pattern.html#?">?</A>' or '<A HREF="change.html#!">!</A>'.
		Added '<A HREF="insert.html#A">A</A>' flag: don't give <A HREF="usr_11.html#ATTENTION">ATTENTION</A> message.
		Added '<A HREF="motion.html#L">L</A>' flag: When not included, and <A HREF="options.html#'list'">'list'</A> is set,
		<A HREF="options.html#'textwidth'">'textwidth'</A> <A HREF="change.html#formatting">formatting</A> works like <A HREF="options.html#'list'">'list'</A> is not set.
		Added '<A HREF="motion.html#W">W</A>' flag:  Let &quot;<A HREF="editing.html#:w!">:w!</A>&quot; behave like <A HREF="intro.html#Vi">Vi</A>: don't overwrite
		readonly files, or a file owned by someone else.
<A HREF="options.html#'highlight'">'highlight'</A>	Added '<A HREF="repeat.html#@">@</A>' flag, for '<A HREF="repeat.html#@">@</A>' characters after the last line on the
		screen, and '<A HREF="motion.html#$">$</A>' at the end of the line when <A HREF="options.html#'list'">'list'</A> is set.
		Added '<A HREF="insert.html#i">i</A>' flag: Set highlighting for <A HREF="options.html#'incsearch'">'incsearch'</A>.  Default
		uses &quot;IncSearch&quot; highlight group, which is linked to &quot;<A HREF="visual.html#Visual">Visual</A>&quot;.
		Disallow '<A HREF="motion.html#h">h</A>' flag in <A HREF="options.html#'highlight'">'highlight'</A> (wasn't used anymore since
		3.0).
<A HREF="options.html#'guifont'">'guifont'</A>	<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A> only: When set to &quot;*&quot; brings up a font requester.
<A HREF="options.html#'guipty'">'guipty'</A>	Default on, because so many people need <A HREF="motion.html#it">it</A>.
<A HREF="options.html#'path'">'path'</A>		Can contain <A HREF="editing.html#wildcards">wildcards</A>, and &quot;**&quot; for searching a whole tree.
<A HREF="options.html#'shortmess'">'shortmess'</A>	Added '<A HREF="insert.html#I">I</A>' flag to avoid the <A HREF="intro.html#intro">intro</A> message.
<A HREF="options.html#'viminfo'">'viminfo'</A>	Added '<A HREF="motion.html#&#37;">&#37;</A>' flag: Store buffer <A HREF="eval.html#list">list</A> in <A HREF="starting.html#viminfo">viminfo</A> file.

- Increased defaults for <A HREF="options.html#'maxmem'">'maxmem'</A> and <A HREF="options.html#'maxmemtot'">'maxmemtot'</A> for <A HREF="os_unix.html#Unix">Unix</A> and <A HREF="os_win32.html#Win32">Win32</A>.  Most
  machines have much more RAM now that prices have dropped.
- Implemented &quot;:set all&amp;&quot;, set all <A HREF="options.html#options">options</A> to their default value. |<A HREF="options.html#:set">:set</A>|

Swap file:
- Don't create a swap file for a readonly file.  Then create one on the first
  change.  Also create a swapfile when the amount of memory used is getting
  too high. |<A HREF="recover.html#swap-file">swap-file</A>|
- Make swap file &quot;hidden&quot;, if possible.  On <A HREF="os_unix.html#Unix">Unix</A> this is done by prepending a
  dot to the swap file name.  When long file names are used, the DJGPP and
  <A HREF="os_win32.html#Win32">Win32</A> versions also prepend a dot, in <A HREF="change.html#case">case</A> a file on a mounted <A HREF="os_unix.html#Unix">Unix</A> file
  system is edited.  |<A HREF="recover.html#:swapname">:swapname</A>|  On <A HREF="os_msdos.html#MSDOS">MSDOS</A> the hidden file attribute is NOT
  set, because this causes problems with share.exe.
- <A HREF="options.html#'updatecount'">'updatecount'</A> always defaults to non-zero, also for <A HREF="intro.html#Vi">Vi</A> compatible mode.
  This means there is a swap file, which can be used for <A HREF="recover.html#recovery">recovery</A>.

Tags:
- Included <A HREF="tagsrch.html#ctags">ctags</A> 2.0 (Darren Hiebert).  The <A HREF="syntax.html#syntax">syntax</A> for static <A HREF="tagsrch.html#tags">tags</A> changed
  from
	{tag}:{fname}	{fname}	{command}
  to
	{tag}	{fname}	{command};&quot;	file:
  Which is both faster to parse, shorter and <A HREF="intro.html#Vi">Vi</A> compatible.  The old format is
  also still accepted, unless disabled in src/feature.h (see OLD_STATIC_TAGS).
  |<A HREF="tagsrch.html#tags-file-format">tags-file-format</A>|
- Completion of <A HREF="tagsrch.html#tags">tags</A> now also includes static <A HREF="tagsrch.html#tags">tags</A> for other files, at the
  end.
- Included &quot;shtags&quot; from Stephen Riehm.
- When finding a matching <A HREF="tagsrch.html#tag">tag</A>, but the file doesn't exist, continue searching
  for another match.  Helps when using the same <A HREF="tagsrch.html#tags">tags</A> file (with links) for
  different versions of source code.
- Give a <A HREF="tagsrch.html#tag">tag</A> with a global match in the current file a higher priority than a
  global match in another file.

Included xxd version V1.8 (Juergen Weigert).

Autocommands:
- <A HREF="autocmd.html#VimLeave">VimLeave</A> autocommands are executed after <A HREF="editing.html#writing">writing</A> the <A HREF="starting.html#viminfo">viminfo</A> file, instead
  of before.  |<A HREF="autocmd.html#VimLeave">VimLeave</A>|
- Allow <A HREF="change.html#changing">changing</A> autocommands while executing them.  This allows for
  self-modifying autocommands.  (idea from Goldberg)
- When using autocommands with two or more patterns, could not split
  &quot;:if/:endif&quot; over two lines.  Now all matching autocommands are executed in
  one do_cmdline().
- Autocommands no longer change the command repeated with &quot;<A HREF="repeat.html#.">.</A>&quot;.
- Search patterns are restored after executing autocommands.  This avoids
  that the <A HREF="options.html#'hlsearch'">'hlsearch'</A> highlighting is messed up by autocommands.
- When trying to execute an <A HREF="autocmd.html#autocommand">autocommand</A>, also try matching the <A HREF="pattern.html#pattern">pattern</A> with
  the short file name.  Helps when short file name is different from full
  file name (expanded symbolic links). |<A HREF="autocmd.html#autocmd-patterns">autocmd-patterns</A>|
- Made the output of &quot;<A HREF="autocmd.html#:autocmd">:autocmd</A>&quot; shorter and look better.
- Expand &lt;sfile&gt; in an &quot;<A HREF="autocmd.html#:autocmd">:autocmd</A>&quot; when <A HREF="motion.html#it">it</A> is defined.  |<A HREF="cmdline.html#&lt;sfile&gt;">&lt;sfile&gt;</A>|
- Added &quot;nested&quot; flag to &quot;<A HREF="autocmd.html#:autocmd">:autocmd</A>&quot;, allows nesting.  |<A HREF="autocmd.html#autocmd-nested">autocmd-nested</A>|
- Added [group] argument to &quot;<A HREF="autocmd.html#:autocmd">:autocmd</A>&quot;.  Overrides the currently set group.
  |<A HREF="autocmd.html#autocmd-groups">autocmd-groups</A>|
- new events:
  |<A HREF="autocmd.html#BufUnload">BufUnload</A>|		before a buffer is unloaded
  |<A HREF="autocmd.html#BufDelete">BufDelete</A>|		before a buffer is deleted from the buffer <A HREF="eval.html#list">list</A>
  |<A HREF="autocmd.html#FileChangedShell">FileChangedShell</A>|	when a file's modification time has changed after
			executing a shell command
  |<A HREF="autocmd.html#User">User</A>|		user-defined <A HREF="autocmd.html#autocommand">autocommand</A>
- When <A HREF="options.html#'modified'">'modified'</A> was set by a BufRead* <A HREF="autocmd.html#autocommand">autocommand</A>, <A HREF="motion.html#it">it</A> was reset again
  afterwards.  Now the &quot;<A HREF="options.html#:set">:set</A> <A HREF="options.html#'modified'">modified</A>&quot; is remembered.

<A HREF="gui.html#GUI">GUI</A>:
- Improved <A HREF="gui.html#GUI">GUI</A> scrollbar handling when redrawing is slower than the scrollbar
  events are generated.
- &quot;vim -u NONE&quot; now also stops loading the <A HREF="gui.html#.gvimrc">.gvimrc</A> and other <A HREF="gui.html#GUI">GUI</A> inits.  |<A HREF="starting.html#-u">-u</A>|
  Use &quot;-U&quot; to use another <A HREF="gui.html#gvimrc">gvimrc</A> file.  |<A HREF="starting.html#-U">-U</A>|
- Handle <A HREF="pattern.html#CTRL-C">CTRL-C</A> for external command, also for systems where &quot;setsid()&quot; is
  supported.
- When starting the <A HREF="gui.html#GUI">GUI</A>, restrict the <A HREF="windows.html#window">window</A> size to the screen size.
- The default <A HREF="gui.html#menus">menus</A> are read from $VIMRUNTIME/menu.vim.  This allows for a
  customized default menu.  |<A HREF="menu.html">menu.vim</A>|
- Improved the default <A HREF="gui.html#menus">menus</A>.  Added File/Print, a Window menu, <A HREF="autocmd.html#Syntax">Syntax</A> menu,
  etc.
- Added priority to the &quot;<A HREF="gui.html#:menu">:menu</A>&quot; command.  Now each menu can be put in a place
  where you want <A HREF="motion.html#it">it</A>, independent of the order in which the <A HREF="gui.html#menus">menus</A> are defined.
  |<A HREF="gui.html#menu-priority">menu-priority</A>|

Give a warning in the <A HREF="intro.html#intro">intro</A> screen when running the <A HREF="os_win32.html#Win32">Win32</A> console version on
Windows 95 because there are problems using this version under Windows 95.
|<A HREF="os_win32.html#win32-problems">win32-problems</A>|

Added '<A HREF="motion.html#e">e</A>' flag for &quot;<A HREF="change.html#:substitute">:substitute</A>&quot; command: Don't complain when not finding a
match (Campbell).  |<A HREF="change.html#:s">:s</A>|

When using search commands in a <A HREF="map.html#mapping">mapping</A>, only the last one is kept in the
<A HREF="cmdline.html#history">history</A>.  Avoids that the <A HREF="cmdline.html#history">history</A> is trashed by long mappings.

Ignore characters after &quot;<A HREF="starting.html#ex">ex</A>&quot;, &quot;<A HREF="starting.html#view">view</A>&quot; and &quot;<A HREF="starting.html#gvim">gvim</A>&quot; when checking <A HREF="starting.html#startup">startup</A> mode.
Allows the use of &quot;gvim5&quot; et. al.  |<A HREF="starting.html#gvim">gvim</A>| &quot;<A HREF="starting.html#gview">gview</A>&quot; starts the <A HREF="gui.html#GUI">GUI</A> in readonly
mode.  |<A HREF="starting.html#gview">gview</A>|

When resizing <A HREF="windows.html#windows">windows</A>, the cursor is kept in the same relative position, if
possible.  (Webb)

&quot;<A HREF="windows.html#:all">:all</A>&quot; and &quot;<A HREF="windows.html#:ball">:ball</A>&quot; no longer close and then open a <A HREF="windows.html#window">window</A> for the same buffer.
Avoids losing <A HREF="options.html#options">options</A>, <A HREF="motion.html#jumplist">jumplist</A>, and other info.

&quot;<A HREF="starting.html#-f">-f</A>&quot; command-line argument is now ignored if Vim was compiled without <A HREF="gui.html#GUI">GUI</A>.
|<A HREF="starting.html#-f">-f</A>|

In <A HREF="visual.html#Visual">Visual</A> block mode, the right mouse button picks up the nearest corner.

Changed default mappings for <A HREF="os_dos.html#DOS">DOS</A> et al.  Removed the DOS-specific mappings,
only use the Windows ones.  Added Shift-Insert, Ctrl-Insert, Ctrl-Del and
Shift-Del.

Changed the numbers in the output of &quot;<A HREF="motion.html#:jumps">:jumps</A>&quot;, so you can see where {count}
<A HREF="motion.html#CTRL-O">CTRL-O</A> takes you.  |<A HREF="motion.html#:jumps">:jumps</A>|

Using &quot;<A HREF="change.html#~">~</A>&quot; for $HOME now works for all systems.  |<A HREF="options.html#$HOME">$HOME</A>|

<A HREF="os_unix.html#Unix">Unix</A>: Besides using <A HREF="pattern.html#CTRL-C">CTRL-C</A>, also use the INTR character from the tty settings.
Somebody has INTR set to DEL.

Allow a &lt;LF&gt; in a &quot;<A HREF="helphelp.html#:help">:help</A>&quot; command argument to end the help command, so another
command can follow.

Doing &quot;<A HREF="motion.html#&#37;">&#37;</A>&quot; on a line that starts with &quot;   #if&quot; didn't jump to matching &quot;#else&quot;.
Don't recognize &quot;#if&quot;, &quot;#else&quot; etc. for '<A HREF="motion.html#&#37;">&#37;</A>' when <A HREF="options.html#'cpo'">'cpo'</A> contains the '<A HREF="motion.html#&#37;">&#37;</A>' flag.
|<A HREF="motion.html#&#37;">&#37;</A>|

<A HREF="insert.html#Insert">Insert</A> mode expansion with &quot;<A HREF="motion.html#CTRL-N">CTRL-N</A>&quot;, &quot;<A HREF="motion.html#CTRL-P">CTRL-P</A>&quot; and &quot;<A HREF="change.html#CTRL-X">CTRL-X</A>&quot; improved
YXXYins-completion|:
- <A HREF="options.html#'complete'">'complete'</A> option added.
- When <A HREF="options.html#'nowrapscan'">'nowrapscan'</A> is set, and no match found, report the searched direction
  in the error message.
- Repeating <A HREF="change.html#CTRL-X">CTRL-X</A> commands adds following words/lines after the match.
- When adding-expansions, accept single character matches.
- Made repeated <A HREF="change.html#CTRL-X">CTRL-X</A> <A HREF="motion.html#CTRL-N">CTRL-N</A> not break <A HREF="undo.html#undo">undo</A>, and &quot;<A HREF="repeat.html#.">.</A>&quot; repeats the whole
  insertion.  Also fixes not being able to backspace over a <A HREF="motion.html#word">word</A> that has been
  inserted with <A HREF="motion.html#CTRL-N">CTRL-N</A>.

When <A HREF="uganda.html#copying">copying</A> characters in <A HREF="insert.html#Insert">Insert</A> mode from previous/next line, with <A HREF="scroll.html#CTRL-E">CTRL-E</A> or
<A HREF="scroll.html#CTRL-Y">CTRL-Y</A>, <A HREF="options.html#'textwidth'">'textwidth'</A> is no longer used.  |<A HREF="insert.html#i_CTRL-E">i_CTRL-E</A>|

Commands that move in the <A HREF="editing.html#arglist">arglist</A>, like &quot;<A HREF="editing.html#:n">:n</A>&quot; and &quot;<A HREF="editing.html#:rew">:rew</A>&quot;, keep the old cursor
position of the file (this is mostly <A HREF="intro.html#Vi">Vi</A> compatible).

Vim now remembers the <A HREF="motion.html#'&lt;">'&lt;</A> and <A HREF="motion.html#'&gt;">'&gt;</A> marks for each buffer.  This fixes a problem
that a line-delete in one buffer invalidated the <A HREF="motion.html#'&lt;">'&lt;</A> and <A HREF="motion.html#'&gt;">'&gt;</A> marks in another
buffer.  |<A HREF="motion.html#'&lt;">'&lt;</A>|

For <A HREF="os_msdos.html#MSDOS">MSDOS</A>, <A HREF="os_unix.html#Unix">Unix</A> and <A HREF="os_os2.html#OS/2">OS/2</A>: When <A HREF="starting.html#$VIM">$VIM</A> not set, use the path from the executable.
When using the executable path for <A HREF="starting.html#$VIM">$VIM</A>, remove &quot;src/&quot; when present.  Should
make Vim find the docs and <A HREF="syntax.html#syntax">syntax</A> files when <A HREF="motion.html#it">it</A> is run directly after
compiling.  |<A HREF="starting.html#$VIM">$VIM</A>|

When quitting <A HREF="visual.html#Visual">Visual</A> mode with <A HREF="intro.html#&lt;Esc&gt;">&lt;Esc&gt;</A>, the cursor is put at start of the <A HREF="visual.html#Visual">Visual</A>
area (like after executing an <A HREF="motion.html#operator">operator</A>).

<A HREF="os_win32.html#Win32">Win32</A> and <A HREF="os_unix.html#Unix">Unix</A> version: Removed 1100 character limit on external commands.

Added possibility to include a space in a &quot;<A HREF="editing.html#:edit">:edit</A> +command&quot; argument, by
putting a <A HREF="intro.html#backslash">backslash</A> before <A HREF="motion.html#it">it</A>.  |<A HREF="editing.html#+cmd">+cmd</A>|

After <A HREF="recover.html#recovery">recovery</A>, <A HREF="autocmd.html#BufReadPost">BufReadPost</A> autocommands are applied.  |<A HREF="recover.html#:recover">:recover</A>|

Added color support for &quot;os2ansi&quot;, <A HREF="os_os2.html#OS/2">OS/2</A> console. (Slootman)

Allow &quot;&#37;:p:h&quot; when &#37; is empty.  |<A HREF="cmdline.html#:_&#37;">:_&#37;</A>|

Included &quot;&lt;sfile&gt;&quot;: file name from the &quot;<A HREF="repeat.html#:source">:source</A>&quot; command.  |<A HREF="cmdline.html#&lt;sfile&gt;">&lt;sfile&gt;</A>|

Added &quot;<A HREF="intro.html#&lt;Bslash&gt;">&lt;Bslash&gt;</A>&quot; special character.  Helps for avoiding multiple backslashes
in mappings and <A HREF="gui.html#menus">menus</A>.

In a help <A HREF="windows.html#window">window</A>, a <A HREF="term.html#double-click">double-click</A> jumps to the <A HREF="tagsrch.html#tag">tag</A> under the cursor (like
<A HREF="tagsrch.html#CTRL-]">CTRL-]</A>).

<A HREF="motion.html#&lt;C-Left&gt;">&lt;C-Left&gt;</A> and <A HREF="motion.html#&lt;C-Right&gt;">&lt;C-Right&gt;</A> now work like <A HREF="motion.html#&lt;S-Left&gt;">&lt;S-Left&gt;</A> and <A HREF="motion.html#&lt;S-Right&gt;">&lt;S-Right&gt;</A>, move a <A HREF="motion.html#word">word</A>
forward/backward (Windows compatible). |<A HREF="motion.html#&lt;C-Left&gt;">&lt;C-Left&gt;</A>|

Removed the requirement for a &quot;<A HREF="various.html#:version">:version</A>&quot; command in a <A HREF="starting.html#.vimrc">.vimrc</A> file.  It wasn't
used for anything.  You can use &quot;<A HREF="eval.html#:if">:if</A>&quot; to handle differences between versions.
|<A HREF="various.html#:version">:version</A>|

For <A HREF="os_msdos.html#MS-DOS">MS-DOS</A>, <A HREF="os_win32.html#Win32">Win32</A> and <A HREF="os_os2.html#OS/2">OS/2</A>: When comparing file names for autocommands, don't
make a difference between '<A HREF="pattern.html#/">/</A>' and '\' for path separator.

New <A HREF="term.html#termcap">termcap</A> <A HREF="options.html#options">options</A>:
&quot;mb&quot;: blink.  Can only be used by assigning <A HREF="motion.html#it">it</A> to one of the other highlight
      <A HREF="options.html#options">options</A>.  |<A HREF="term.html#t_mb">t_mb</A>|
&quot;bc&quot;: backspace character.  |<A HREF="term.html#t_bc">t_bc</A>|
&quot;nd&quot;: Used for moving the cursor right in the <A HREF="gui.html#GUI">GUI</A>, to avoid removing one line
      of pixels from the last <A HREF="syntax.html#bold">bold</A> character.  |<A HREF="term.html#t_nd">t_nd</A>|
&quot;xs&quot;: highlighting not erased by overwriting, for <A HREF="term.html#hpterm">hpterm</A>.  Combined with
      <A HREF="options.html#'weirdinvert'">'weirdinvert'</A>.  <A HREF="visual.html#Visual">Visual</A> mode works on <A HREF="term.html#hpterm">hpterm</A> now.  |<A HREF="term.html#t_xs">t_xs</A>|

<A HREF="os_unix.html#Unix">Unix</A>: Set time of patch and <A HREF="editing.html#backup">backup</A> file same <A HREF="motion.html#as">as</A> original file.  (Hiebert).

<A HREF="os_amiga.html#Amiga">Amiga</A>: In QuickFix mode no longer opens another <A HREF="windows.html#window">window</A>.  Shell commands can be
used now.

Added decmouse patches from David Binette.  Can now use Dec and Netterm mouse.
But only when enabled at compile time.

Added '#' <A HREF="sponsor.html#register">register</A>: Alternate file name |<A HREF="change.html#quote#">quote#</A>|.  Display '#' <A HREF="sponsor.html#register">register</A> with
&quot;:dis&quot; command. |<A HREF="change.html#:display">:display</A>|

Removed '<A HREF="cmdline.html#:">:</A>' from <A HREF="options.html#'isfname'">'isfname'</A> default for <A HREF="os_unix.html#Unix">Unix</A>.  Check for &quot;://&quot; in a file name
anyway.  Also check for &quot;:\\&quot;, for <A HREF="os_msdos.html#MS-DOS">MS-DOS</A>.

Added <A HREF="intro.html#count">count</A> to &quot;K&quot;eyword command, when <A HREF="options.html#'keywordprg'">'keywordprg'</A> is &quot;man&quot;, is inserted in
the man command.  &quot;2K&quot; results in &quot;!man 2 &lt;cword&gt;&quot;.  |<A HREF="various.html#K">K</A>|

When using &quot;<A HREF="editing.html#gf">gf</A>&quot; on a relative path name, remove &quot;../&quot; from the file name, like
it's done for file names in the <A HREF="tagsrch.html#tags">tags</A> file. |<A HREF="editing.html#gf">gf</A>|

When finishing <A HREF="repeat.html#recording">recording</A>, don't make the recorded <A HREF="sponsor.html#register">register</A> the default put
<A HREF="sponsor.html#register">register</A>.

When using &quot;<A HREF="change.html#!!">!!</A>&quot;, don't put &quot;:5,5!&quot; on the command-line, but &quot;:.!&quot;.  And some
other enhancements to replace the line number with &quot;<A HREF="repeat.html#.">.</A>&quot; or &quot;<A HREF="motion.html#$">$</A>&quot; when possible.

<A HREF="os_msdos.html#MSDOS">MSDOS</A> et al.: Renamed $VIM/viminfo to $VIM/_viminfo.  It's more consistent:
.vimrc/_vimrc and .viminfo/_viminfo

For systems where <A HREF="change.html#case">case</A> doesn't matter in file names (MSDOS, Amiga), ignore
<A HREF="change.html#case">case</A> while <A HREF="change.html#sorting">sorting</A> file names.  For buffer names too.

When reading from stdin doesn't work, read from stderr (helps for &quot;foo &#124; xargs
vim&quot;).

32 bit <A HREF="os_msdos.html#MS-DOS">MS-DOS</A> version: Replaced csdpmi3 by csdpmi4.

Changed <A HREF="motion.html#&lt;C-Left&gt;">&lt;C-Left&gt;</A> and <A HREF="motion.html#&lt;C-Right&gt;">&lt;C-Right&gt;</A> to skip a <A HREF="motion.html#WORD">WORD</A> instead of a <A HREF="motion.html#word">word</A>.

Warning for changed modified time when overwriting a file now also works on
other systems than <A HREF="os_unix.html#Unix">Unix</A>.

<A HREF="os_unix.html#Unix">Unix</A>: Changed the defaults for configure to be the same <A HREF="motion.html#as">as</A> the defaults for
Makefile: include <A HREF="gui.html#GUI">GUI</A>, <A HREF="if_perl.html#Perl">Perl</A>, and <A HREF="if_pyth.html#Python">Python</A>.

Some versions of <A HREF="gui_x11.html#Motif">Motif</A> require &quot;-lXpm&quot;.  Added check for this in configure.

Don't add &quot;-L/usr/lib&quot; to the link line, causes problems on a few systems.

==============================================================================

			     COMPILE TIME CHANGES	*<A NAME="compile-changes-5"></A><B>compile-changes-5</B>*

When compiling, allow a choice for minimal, normal or maximal features in an
<A HREF="starting.html#easy">easy</A> way, by <A HREF="change.html#changing">changing</A> a single line in src/feature.h.
The DOS16 version has been compiled with minimal features to avoid running
out of memory too quickly.
The <A HREF="os_win32.html#Win32">Win32</A>, DJGPP, and <A HREF="os_os2.html#OS/2">OS/2</A> versions use maximal features, because they have
enough memory.
The <A HREF="os_amiga.html#Amiga">Amiga</A> version is available with normal and maximal features.

Added &quot;make test&quot; to <A HREF="os_unix.html#Unix">Unix</A> version Makefile.  Allows for a quick check if most
&quot;normal&quot; commands work properly.  Also tests a few specific commands.

Added setlocale() with codepage support for DJGPP version.

autoconf:
- Added autoconf check for -lXdmcp.
- Included check for -lXmu, no longer needed to edit the Makefile for this.
- Switched to autoconf 2.12.
- Added configure check for &lt;poll.h&gt;.  Seems to be needed when including
  <A HREF="if_perl.html#Perl">Perl</A> on Linux?
- termlib is now checked before <A HREF="term.html#termcap">termcap</A>.
- Added configure check for strncasecmp(), stricmp() and strnicmp().  Added
  vim_stricmp() for when there's no library function for stricmp().
- Use &quot;datadir&quot; in configure, instead of our own check for HELPDIR.

Removed &quot;make proto&quot; from Makefile.manx.  Could not make <A HREF="motion.html#it">it</A> work without a lot
of #ifdefs.

Removed &quot;proto/&quot; from paths in proto.h.  Needed for the <A HREF="os_mac.html#Mac">Mac</A> port.

Drastically changed Makefile.mint.  Now <A HREF="motion.html#it">it</A> includes the <A HREF="os_unix.html#Unix">Unix</A> Makefile.

Added support for Dos16 in Makefile.b32 (renamed Makefile.b32 to Makefile.bor)

All source files are now edited with a tabstop of 8 instead of 4, which is
better when debugging and using other tools.  <A HREF="options.html#'softtabstop'">'softtabstop'</A> is set to 4, to
make editing easier.

<A HREF="os_unix.html#Unix">Unix</A>: Added &quot;link.sh&quot; <A HREF="usr_41.html#script">script</A>, which removes a few unnecessary libraries from
the link command.

Don't use HPUX <A HREF="digraph.html#digraphs">digraphs</A> by default, but only when HPUX_DIGRAPHS is defined.
|<A HREF="digraph.html#digraphs-default">digraphs-default</A>|

==============================================================================

				 BUG FIXES		*<A NAME="bug-fixes-5"></A><B>bug-fixes-5</B>*

Note:	Some of these fixes may only apply to test versions which were
	created after version 4.6, but before 5.0.


When doing &quot;<A HREF="windows.html#:bdel">:bdel</A>&quot;, try going to the next loaded buffer.  Don't rewind to the
start of the buffer <A HREF="eval.html#list">list</A>.

mch_isdir() for <A HREF="os_unix.html#Unix">Unix</A> returned <A HREF="eval.html#TRUE">TRUE</A> for &quot;&quot; on some systems.

<A HREF="os_win32.html#Win32">Win32</A>: <A HREF="options.html#'shell'">'shell'</A> set to &quot;mksnt/sh.exe&quot; breaks &quot;<A HREF="various.html#:!">:!</A>&quot; commands.  Don't use
backslashes in the temp file names.

On linux, with a FAT file system, could get spurious &quot;file xxx changed since
editing started&quot; <A HREF="message.html#messages">messages</A>, because the time is rounded off to two seconds
unexpectedly.

Crash in <A HREF="gui.html#GUI">GUI</A>, when selecting a <A HREF="motion.html#word">word</A> (double click) and then extend until an
empty line.

For systems where isdigit() can't handle characters <A HREF="change.html#&gt;">&gt;</A> 255, get_number() caused
a crash when moving the mouse during the prompt for <A HREF="recover.html#recovery">recovery</A>.

In <A HREF="insert.html#Insert">Insert</A> mode, &quot;<A HREF="motion.html#CTRL-O">CTRL-O</A> P&quot; left the cursor on the last inserted character.
Now the cursor is left after the last putted character.

When <A HREF="quickfix.html#quickfix">quickfix</A> found an error type other than '<A HREF="motion.html#e">e</A>' or '<A HREF="motion.html#w">w</A>', <A HREF="motion.html#it">it</A> was never printed.

A setting for <A HREF="options.html#'errorfile'">'errorfile'</A> in a <A HREF="starting.html#.vimrc">.vimrc</A> overruled the &quot;<A HREF="starting.html#-q">-q</A> errorfile&quot; argument.

Some systems create a file when generating a temp file name.  Filtering would
then create a <A HREF="editing.html#backup">backup</A> file for this, which was never deleted.  Now no <A HREF="editing.html#backup">backup</A>
file is made when filtering.

simplify_filename() could remove a &quot;..&quot; after a link, resulting in the wrong
file name.  Made simplify_filename also work for <A HREF="os_msdos.html#MSDOS">MSDOS</A>.  Don't use <A HREF="motion.html#it">it</A> for
<A HREF="os_amiga.html#Amiga">Amiga</A>, since <A HREF="motion.html#it">it</A> doesn't have &quot;../&quot;.

otherfile() was unreliable when using links.  Could think that reading/writing
was for a different file, when <A HREF="motion.html#it">it</A> was the same.

Pasting with mouse in <A HREF="insert.html#Replace">Replace</A> mode didn't replace anything.

Window height computed wrong when resizing a <A HREF="windows.html#window">window</A> with an <A HREF="autocmd.html#autocommand">autocommand</A> (could
cause a crash).

&quot;:s!foo!bar!&quot; wasn't possible (Vi compatible).

do_bang() freed memory <A HREF="if_cscop.html#twice">twice</A> when called recursively, because of autocommands
(test11).  Thanks to Electric Fence!

&quot;v$d&quot; on an empty line didn't remove the &quot;<A HREF="starting.html#--">--</A> VISUAL --&quot; mode message from the
command-line, and inverted the cursor.

&quot;<A HREF="starting.html#:mkexrc">:mkexrc</A>&quot; didn't check for failure to open the file, causing a crash.
(Felderhoff).

<A HREF="os_win32.html#Win32">Win32</A> mch_write() wrote past fixed buffer, causing <A HREF="terminal.html#terminal">terminal</A> keys no longer to
be recognized.  Both console and <A HREF="gui.html#GUI">GUI</A> version.

<A HREF="gui_x11.html#Athena">Athena</A> <A HREF="gui.html#GUI">GUI</A>: Crash when removing a menu item.  Now Vim doesn't crash, but the
reversing of the menu item is still wrong.

Always reset <A HREF="options.html#'list'">'list'</A> option for the help <A HREF="windows.html#window">window</A>.

When <A HREF="options.html#'scrolloff'">'scrolloff'</A> is non-zero, a <A HREF="options.html#'showmatch'">'showmatch'</A> could cause the shown match to be
in the wrong line and the <A HREF="windows.html#window">window</A> to be scrolled (Acevedo).

After &quot;<A HREF="options.html#:set">:set</A> all&amp;&quot;, <A HREF="options.html#'lines'">'lines'</A> and <A HREF="options.html#'ttytype'">'ttytype'</A> were still non-default, because the
defaults never got set.  Now the defaults for <A HREF="options.html#'lines'">'lines'</A> and <A HREF="options.html#'columns'">'columns'</A> are set
after detecting the <A HREF="windows.html#window">window</A> size.  <A HREF="options.html#'term'">'term'</A> and <A HREF="options.html#'ttytype'">'ttytype'</A> defaults are set when
detecting the <A HREF="terminal.html#terminal">terminal</A> type.

For (most) non-Unix systems, don't add file names with illegal characters when
expanding.  Fixes &quot;cannot open swapfile&quot; error when doing &quot;<A HREF="editing.html#:e">:e</A> *.burp&quot;, when
there is no match.

In <A HREF="options.html#X11">X11</A> <A HREF="gui.html#GUI">GUI</A>, drawing part of the cursor obscured the text.  Now the text is
drawn over the cursor, like when <A HREF="motion.html#it">it</A> fills the block. (Seibert)

when started with &quot;<A HREF="starting.html#-c">-c</A> cmd <A HREF="starting.html#-q">-q</A> errfile&quot;, the cursor would be left in line 1.
Now a &quot;<A HREF="quickfix.html#:cc">:cc</A>&quot; is done after executing &quot;cmd&quot;.

&quot;<A HREF="tagsrch.html#:ilist">:ilist</A>&quot; never ignored <A HREF="change.html#case">case</A>, even when <A HREF="options.html#'ignorecase'">'ignorecase'</A> set.

&quot;vim <A HREF="starting.html#-r">-r</A> file&quot; for a readonly file, then making a change, got <A HREF="usr_11.html#ATTENTION">ATTENTION</A> message
in insert mode, display mixed up until <A HREF="intro.html#&lt;Esc&gt;">&lt;Esc&gt;</A> typed.  Also don't give <A HREF="usr_11.html#ATTENTION">ATTENTION</A>
message after recovering a file.

The abbreviation &quot;<A HREF="map.html#:ab">:ab</A> #i #include&quot; could not be removed.

<A HREF="various.html#CTRL-L">CTRL-L</A> completion (longest common match) on command-line didn't work properly
for case-insensitive systems (MS-DOS, Windows, etc.).  (suggested by Richard
Kilgore).

For terminals that can hide the cursor (&quot;vi&quot; <A HREF="term.html#termcap">termcap</A> entry), resizing the
<A HREF="windows.html#window">window</A> caused the cursor to disappear.

Using an invalid <A HREF="motion.html#mark">mark</A> in an <A HREF="intro.html#Ex">Ex</A> address didn't abort the command.

When <A HREF="options.html#'smarttab'">'smarttab'</A> set, would use <A HREF="options.html#'shiftround'">'shiftround'</A> when <A HREF="insert.html#inserting">inserting</A> a TAB after a
space.  Now <A HREF="motion.html#it">it</A> always rounds to a tabstop.

Set <A HREF="motion.html#'[">'[</A> and <A HREF="motion.html#']">']</A> marks for &quot;<A HREF="change.html#:copy">:copy</A>&quot;, &quot;<A HREF="change.html#:move">:move</A>&quot;, &quot;<A HREF="insert.html#:append">:append</A>&quot;, &quot;<A HREF="insert.html#:insert">:insert</A>&quot;, &quot;<A HREF="change.html#:substitute">:substitute</A>&quot;
and &quot;<A HREF="change.html#:change">:change</A>&quot;.  (Acevedo).

&quot;d$&quot; in an empty line still caused an error, even when '<A HREF="motion.html#E">E</A>' is not in
<A HREF="options.html#'cpoptions'">'cpoptions'</A>.

Help files were stored in the <A HREF="starting.html#viminfo">viminfo</A> buffer <A HREF="eval.html#list">list</A> without a path.

<A HREF="gui.html#GUI">GUI</A>: Displaying cursor was not synchronized with other displaying.  Caused
several display <A HREF="message.html#errors">errors</A>.  For example, when the last two lines in the file
start with spaces, &quot;<A HREF="change.html#dd">dd</A>&quot; on the last line copied text to the (then) last line.

<A HREF="os_win32.html#Win32">Win32</A>: Needed to type CTRL-SHIFT-- to get CTRL-_.

<A HREF="gui.html#GUI">GUI</A>: Moving the cursor forwards over <A HREF="syntax.html#bold">bold</A> text would remove one column of <A HREF="syntax.html#bold">bold</A>
pixels.

<A HREF="options.html#X11">X11</A> <A HREF="gui.html#GUI">GUI</A>: When a <A HREF="syntax.html#bold">bold</A> character in the last column was scrolled up or down, one
column of pixels would not be copied.

Using <A HREF="motion.html#&lt;BS&gt;">&lt;BS&gt;</A> to move the cursor left can sometimes erase a character.  Now use
&quot;le&quot; <A HREF="term.html#termcap">termcap</A> entry for this.

Keyword completion with <A HREF="pattern.html#regexp">regexp</A> didn't work.  e.g., for &quot;b.*crat&quot;.

Fixed: With <A HREF="motion.html#CTRL-O">CTRL-O</A> that jumps to another file, cursor could end up just after
the line.

<A HREF="os_amiga.html#Amiga">Amiga</A>: '<A HREF="motion.html#$">$</A>' was missing from character recognized <A HREF="motion.html#as">as</A> <A HREF="editing.html#wildcards">wildcards</A>, causing <A HREF="starting.html#$VIM">$VIM</A>
sometimes not to be expanded.

&quot;<A HREF="change.html#:change">:change</A>&quot; didn't adjust marks for deleted lines.

&quot;<A HREF="helphelp.html#:help">:help</A> [range]&quot; didn't work.  Also for <A HREF="pattern.html#[pattern]">[pattern]</A>, <A HREF="intro.html#[count]">[count]</A> and <A HREF="intro.html#[quotex]">[quotex]</A>.

For 'cindent'ing, typing &quot;class::method&quot; doesn't align like a label when the
second '<A HREF="cmdline.html#:">:</A>' is typed.
When <A HREF="insert.html#inserting">inserting</A> a CR with <A HREF="options.html#'cindent'">'cindent'</A> set (and a bunch of other conditions) the
cursor went to a wrong location.
<A HREF="options.html#'cindent'">'cindent'</A> was wrong for a line that ends in '<A HREF="motion.html#}">}</A>'.
<A HREF="options.html#'cindent'">'cindent'</A> was wrong after &quot;else {&quot;.

While editing the cmdline in the <A HREF="gui.html#GUI">GUI</A>, could not use the mouse to select text
from the command-line itself.

When <A HREF="change.html#deleting">deleting</A> lines, marks in <A HREF="tagsrch.html#tag">tag</A> stack were only adjusted for the current
<A HREF="windows.html#window">window</A>, not for other <A HREF="windows.html#windows">windows</A> on the same buffer.

Tag guessing could find a function &quot;some_func&quot; instead of the &quot;func&quot; we were
looking for.

Tags file name relative to the current file didn't work.

&quot;:g/pat2/s//pat2/g&quot;, causing the number of subs to be reported, used to cause
a scroll up.  Now you no longer have to hit <A HREF="motion.html#&lt;CR&gt;">&lt;CR&gt;</A>.

<A HREF="options.html#X11">X11</A> <A HREF="gui.html#GUI">GUI</A>: Selecting text could cause a crash.

32 bit <A HREF="os_dos.html#DOS">DOS</A> version: <A HREF="pattern.html#CTRL-C">CTRL-C</A> in external command killed Vim.  When <A HREF="starting.html#SHELL">SHELL</A> is set
to &quot;sh.exe&quot;, external commands didn't work.  Removed using of command.com, no
longer need to set <A HREF="options.html#'shellquote'">'shellquote'</A>.

Fixed crash when using &quot;:g/pat/i&quot;.

Fixed (potential) crash for <A HREF="options.html#X11">X11</A> <A HREF="gui.html#GUI">GUI</A>, when using an X selection.  Was giving a
pointer on the stack to a callback function, now it's static.

Using &quot;<A HREF="pattern.html##">#</A>&quot; and &quot;*&quot; with an <A HREF="motion.html#operator">operator</A> didn't work.  E.g. &quot;c#&quot;.

<A HREF="cmdline.html#Command-line">Command-line</A> expansion didn't work properly after &quot;:*&quot;. (Acevedo)

Setting <A HREF="options.html#'weirdinvert'">'weirdinvert'</A> caused highlighting to be wrong in the <A HREF="gui.html#GUI">GUI</A>.

&quot;<A HREF="editing.html#:e">:e</A> +4 #&quot; didn't work, because the &quot;4&quot; was in unallocated memory (could cause
a crash).

Cursor position was wrong for &quot;<A HREF="editing.html#:e">:e</A> #&quot;, after &quot;<A HREF="editing.html#:e">:e</A> #&quot; failed, because of changes
to the buffer.

When doing &quot;<A HREF="windows.html#:buf">:buf</A> N&quot;, going to a buffer that was edited with &quot;<A HREF="editing.html#:view">:view</A>&quot;, the
readonly flag was reset.  Now make a difference between &quot;<A HREF="editing.html#:e">:e</A> file&quot; and &quot;<A HREF="windows.html#:buf">:buf</A>
file&quot;: Only set/reset <A HREF="options.html#'ro'">'ro'</A> for the first one.

Avoid |<A HREF="message.html#hit-enter">hit-enter</A>| prompt when not able to write <A HREF="starting.html#viminfo">viminfo</A> on exit.

When giving error <A HREF="message.html#messages">messages</A> in the <A HREF="terminal.html#terminal">terminal</A> where the <A HREF="gui.html#GUI">GUI</A> was started, <A HREF="gui.html#GUI">GUI</A>
<A HREF="intro.html#escape">escape</A> codes would be written to the <A HREF="terminal.html#terminal">terminal</A>.  In an xterm this could be seen
<A HREF="motion.html#as">as</A> a '<A HREF="motion.html#$">$</A>' after the message.

Mouse would not work directly after &quot;<A HREF="gui_x11.html#:gui">:gui</A>&quot;, because full_screen isn't set,
which causes starttermcap() not to <A HREF="diff.html#do">do</A> its work.

<A HREF="options.html#'incsearch'">'incsearch'</A> did not scroll the <A HREF="windows.html#window">window</A> in the same way <A HREF="motion.html#as">as</A> the actual search.
When <A HREF="options.html#'nowrap'">'nowrap'</A> set, incsearch didn't show a match when <A HREF="motion.html#it">it</A> was off the side of
the screen.  Now <A HREF="motion.html#it">it</A> also shows the whole match, instead of just the cursor
position (if possible).

&quot;<A HREF="map.html#:unmap">:unmap</A>&quot;, &quot;:unab&quot; and &quot;<A HREF="gui.html#:unmenu">:unmenu</A>&quot; did not accept a double <A HREF="change.html#quote">quote</A>, <A HREF="motion.html#it">it</A> was seen <A HREF="motion.html#as">as</A>
the start of a comment.  Now it's <A HREF="intro.html#Vi">Vi</A> compatible.

Using &lt;Up&gt;&lt;Left&gt;&lt;Left&gt;&lt;Up&gt; in the command-line, when there is no previous
cmdline in the <A HREF="cmdline.html#history">history</A>, inserted a NUL on the command-line.

&quot;i&lt;Esc&gt;&quot; when on a <A HREF="motion.html#&lt;Tab&gt;">&lt;Tab&gt;</A> in column 0 left the cursor in the wrong place.

<A HREF="gui.html#GUI">GUI</A> <A HREF="gui_x11.html#Motif">Motif</A>: When adding a lot of menu items, the menu <A HREF="motion.html#bar">bar</A> goes into two rows.
Deleting menu items, reducing the number of rows, now also works.

With &quot;:g/pat/s//foo/c&quot;, a match in the first line was scrolled off of the
screen, so you could not see <A HREF="motion.html#it">it</A>.
When using &quot;:s//c&quot;, with <A HREF="options.html#'nowrap'">'nowrap'</A> set, a match could be off the side of the
screen, so you could not see <A HREF="motion.html#it">it</A>.

When <A HREF="options.html#'helpfile'">'helpfile'</A> was set to a fixed, non-absolute path in feature.h, Vim would
crash.  mch_Fullname can now handle file names in read-only memory. (Lottem)

When using <A HREF="change.html#CTRL-A">CTRL-A</A> or CTRL-@ in <A HREF="insert.html#Insert">Insert</A> mode, there could be strange effects
when using <A HREF="scroll.html#CTRL-D">CTRL-D</A> next.  Also, when <A HREF="repeat.html#repeating">repeating</A> inserted text that included &quot;<A HREF="motion.html#0">0</A>
CTRL-D&quot; or &quot;<A HREF="motion.html#^">^</A> CTRL-D&quot; this didn't work. (Acevedo)
Using <A HREF="scroll.html#CTRL-D">CTRL-D</A> after using <A HREF="scroll.html#CTRL-E">CTRL-E</A> or <A HREF="scroll.html#CTRL-Y">CTRL-Y</A> in <A HREF="insert.html#Insert">Insert</A> mode that inserted a '<A HREF="motion.html#0">0</A>'
or '<A HREF="motion.html#^">^</A>', removed the '<A HREF="motion.html#0">0</A>' or '<A HREF="motion.html#^">^</A>' and more indent.

The command &quot;2&quot;.p&quot; caused the last inserted text to be executed <A HREF="motion.html#as">as</A> commands.
(Acevedo)

Repeating the insert of &quot;<A HREF="visual.html#CTRL-V">CTRL-V</A> 048&quot; resulted in &quot;^@&quot; to be inserted.

Repeating <A HREF="insert.html#Insert">Insert</A> completion could fail if there are special characters in the
text. (Acevedo)

&quot;<A HREF="various.html#:normal">:normal</A> /string&lt;CR&gt;&quot; caused the <A HREF="windows.html#window">window</A> to scroll.  Now all &quot;<A HREF="various.html#:normal">:normal</A>&quot; commands
are executed without <A HREF="scroll.html#scrolling">scrolling</A> <A HREF="message.html#messages">messages</A>.

Redo of <A HREF="scroll.html#CTRL-E">CTRL-E</A> or <A HREF="scroll.html#CTRL-Y">CTRL-Y</A> in <A HREF="insert.html#Insert">Insert</A> mode interpreted special characters <A HREF="motion.html#as">as</A>
commands.

Line wrapping for <A HREF="options.html#'tw'">'tw'</A> was done one character off for insert expansion
inserts.

<A HREF="eval.html#buffer_exists()">buffer_exists()</A> function didn't work properly for buffer names with a symbolic
link in them (e.g. when using buffer_exists(#)).

Removed the &quot;MOTIF_COMMENT&quot; construction from Makefile.  It now works with
FreeBSD make, and probably with NeXT make too.

Matching the <A HREF="options.html#'define'">'define'</A> and <A HREF="options.html#'include'">'include'</A> arguments now honor the settings for
<A HREF="options.html#'ignorecase'">'ignorecase'</A>. (Acevedo)

When one file shown in two <A HREF="windows.html#windows">windows</A>, <A HREF="visual.html#Visual">Visual</A> selection mixed up cursor position
in current <A HREF="windows.html#window">window</A> and other <A HREF="windows.html#window">window</A>.

When doing &quot;<A HREF="editing.html#:e">:e</A> file&quot; from a help file, the <A HREF="options.html#'isk'">'isk'</A> option wasn't reset properly,
because of a <A HREF="options.html#modeline">modeline</A> in the help file.

When doing &quot;:e!&quot;, a cursor in another <A HREF="windows.html#window">window</A> on the same buffer could become
invalid, leading to &quot;ml_get: invalid lnum&quot; <A HREF="message.html#errors">errors</A>.

Matching buffer name for when expanded name has a different path from not
expanded name (Brugnara).

<A HREF="intro.html#Normal">Normal</A> mappings didn't work after an <A HREF="motion.html#operator">operator</A>.  For example, with &quot;<A HREF="map.html#:map">:map</A> <A HREF="intro.html#Q">Q</A> gq&quot;,
&quot;QQ&quot; didn't work.

When &quot;<A HREF="quickfix.html#:make">:make</A>&quot; resulted in zero <A HREF="message.html#errors">errors</A>, a &quot;No Errors&quot; error message was given
(which breaks mappings).

When &quot;:sourcing&quot; a file, line length was limited to 1024 characters.  <A HREF="visual.html#CTRL-V">CTRL-V</A>
before <A HREF="intro.html#&lt;EOL&gt;">&lt;EOL&gt;</A> was not handled <A HREF="intro.html#Vi">Vi</A> compatible.  (Acevedo)

Unexpected exit for <A HREF="options.html#X11">X11</A> <A HREF="gui.html#GUI">GUI</A>, caused by SAVE_YOURSELF event.  (Heimann)

<A HREF="change.html#CTRL-X">CTRL-X</A> <A HREF="motion.html#CTRL-I">CTRL-I</A> only found one match per line. (Acevedo)
When using an illegal <A HREF="change.html#CTRL-X">CTRL-X</A> key in <A HREF="insert.html#Insert">Insert</A> mode, the <A HREF="change.html#CTRL-X">CTRL-X</A> mode message
was stuck.

Finally managed to ignore the &quot;Quit&quot; menu entry of the Window manager!  Now
Vim only exists when there are no changed <A HREF="windows.html#buffers">buffers</A>.

Trying to start the <A HREF="gui.html#GUI">GUI</A> when $DISPLAY is not set resulted in a crash.
When $DISPLAY is not set and <A HREF="starting.html#gvim">gvim</A> starts vim, title was restored to &quot;Thanks
for flying Vim&quot;.
When $DISPLAY not set, starting &quot;<A HREF="starting.html#gvim">gvim</A>&quot; (dropping back to vim) and then
selecting text with the mouse caused a crash.

&quot;<A HREF="change.html#J">J</A>&quot;, with <A HREF="options.html#'joinspaces'">'joinspaces'</A> set, on a line ending in &quot;. &quot;<A HREF="motion.html#,">,</A> caused one space too
many to be added.  (Acevedo)

In insert mode, a <A HREF="undo.html#CTRL-R">CTRL-R</A> {regname} which didn't insert anything left the &#39;&#34;''
on the screen.

&quot;:z10&quot; didn't work. (Clapp)

&quot;Help &quot;*&quot; didn't work.

Renamed a lot of <A HREF="eval.html#functions">functions</A>, to avoid clashes with POSIX name space.

When adding characters to a line, making <A HREF="motion.html#it">it</A> wrap, the following lines were
sometimes not shifted down (e.g. after a <A HREF="tagsrch.html#tag">tag</A> jump).

<A HREF="scroll.html#CTRL-E">CTRL-E</A>, with <A HREF="options.html#'so'">'so'</A> set and cursor on last line, now does not move cursor <A HREF="motion.html#as">as</A>
long <A HREF="motion.html#as">as</A> the last line is on the screen.

When there are two <A HREF="windows.html#windows">windows</A>, doing &quot;^W+^W-&quot; in the bottom <A HREF="windows.html#window">window</A> could cause
the status line to be doubled (not redrawn correctly).

This command would hang: &quot;<A HREF="editing.html#:n">:n</A> `cat`&quot;.  Now connect stdin of the external
command to /dev/null, when expanding.

Fixed lalloc(0,) error for &quot;<A HREF="eval.html#:echo">:echo</A> &#37;:e:r&quot;.  (Acevedo)

The &quot;+command&quot; argument to &quot;<A HREF="windows.html#:split">:split</A>&quot; didn't work when there was no file name.

When selecting text in the <A HREF="gui.html#GUI">GUI</A>, which is the output of a command-line command
or an external command, the inversion would sometimes remain.

<A HREF="gui.html#GUI">GUI</A>: &quot;<A HREF="gui_x11.html#-mh">-mh</A> 70&quot; argument was broken.  Now, when menuheight is specified, <A HREF="motion.html#it">it</A> is
not changed anymore.

<A HREF="gui.html#GUI">GUI</A>: When using the scrollbar or mouse while executing an external command,
this caused garbage characters.

Showmatch sometimes jumped to the wrong position.  Was caused by a call to
findmatch() when redrawing the display (when <A HREF="syntax.html#syntax">syntax</A> highlighting is on).

Search <A HREF="pattern.html#pattern">pattern</A> &quot;\(a *\)\{3} did not work correctly, also matched &quot;a a&quot;.
Problem with brace_count not being decremented.

Wildcard expansion added too many non-matching file names.

When <A HREF="options.html#'iskeyword'">'iskeyword'</A> contains characters like '<A HREF="change.html#~">~</A>', &quot;*&quot; and &quot;<A HREF="pattern.html##">#</A>&quot; didn't work
properly. (Acevedo)

On Linux, on a FAT file system, modification time can change by one second.
Avoid a &quot;file has changed&quot; warning for a one second difference.

When using the page-switching in an xterm, Vim would position the cursor on
the last line of the <A HREF="windows.html#window">window</A> on exit.  Also removed the cursor positioning for
&quot;<A HREF="various.html#:!">:!</A>&quot; commands.

&quot;:g/pat/p&quot; command (partly) overwrote the command.  Now the output is on a
separate line.

With <A HREF="options.html#'ic'">'ic'</A> and <A HREF="options.html#'scs'">'scs'</A> set, a search for &quot;Keyword&quot;, ignore-case matches were
highlighted too.

&quot;<A HREF="motion.html#^">^</A>&quot; on a line with only white space, put cursor beyond the end of the line.

When <A HREF="change.html#deleting">deleting</A> characters before where insertion started ('bs' <A HREF="change.html#==">==</A> 2), could not
use <A HREF="map.html#abbreviations">abbreviations</A>.

<A HREF="scroll.html#CTRL-E">CTRL-E</A> at end of file puts cursor below the file, in <A HREF="visual.html#Visual">Visual</A> mode, when <A HREF="options.html#'so'">'so'</A> is
non-zero.  <A HREF="scroll.html#CTRL-E">CTRL-E</A> didn't work when <A HREF="options.html#'so'">'so'</A> is big and the line below the <A HREF="windows.html#window">window</A>
wraps.  <A HREF="scroll.html#CTRL-E">CTRL-E</A>, when <A HREF="options.html#'so'">'so'</A> is non-zero, at end of the file, caused jumping
up-down.

&quot;<A HREF="change.html#:retab">:retab</A>&quot; didn't work well when <A HREF="options.html#'list'">'list'</A> is set.

<A HREF="os_amiga.html#Amiga">Amiga</A>: When <A HREF="insert.html#inserting">inserting</A> characters at the last line on the screen, causing <A HREF="motion.html#it">it</A>
to wrap, messed up the display.  It appears that a '\n' on the last line
doesn't always cause a scroll up.

In <A HREF="insert.html#Insert">Insert</A> mode &quot;0&lt;C-D&gt;&lt;C-D&gt;&quot; deleted an extra character, because Vim thought
that the &quot;<A HREF="motion.html#0">0</A>&quot; was still there. (Acevedo)

&quot;z{count}l&quot; ignored the <A HREF="intro.html#count">count</A>.  Also for &quot;<A HREF="scroll.html#zh">zh</A>&quot; et. al. (Acevedo)

&quot;<A HREF="change.html#S">S</A>&quot; when <A HREF="options.html#'autoindent'">'autoindent'</A> is off didn't delete leading white space.

&quot;/&lt;Tab&gt;&quot; landed on the wrong character when <A HREF="options.html#'incsearch'">'incsearch'</A> is set.

Asking a yes/no question could cause a |<A HREF="message.html#hit-enter">hit-enter</A>| prompt.

When the file consists of one long line (&gt;4100 characters), making changes
caused various <A HREF="message.html#errors">errors</A> and a crash.

DJGPP version could not save long lines (&gt;64000) for <A HREF="undo.html#undo">undo</A>.

&quot;yw&quot; on the last char in the file didn't work.  Also fixed &quot;6x&quot; at the end of
the line.  &quot;6X&quot; at the start of a line fails, but does not break a <A HREF="map.html#mapping">mapping</A>.  In
general, a <A HREF="intro.html#movement">movement</A> for an <A HREF="motion.html#operator">operator</A> doesn't beep or flush a <A HREF="map.html#mapping">mapping</A>, but when
there is nothing to operate on <A HREF="motion.html#it">it</A> beeps (this is <A HREF="intro.html#Vi">Vi</A> compatible).

&quot;m&#39;&#34;' and &quot;<A HREF="motion.html#m`">m`</A>&quot; now set the <A HREF="motion.html#''">''</A> <A HREF="motion.html#mark">mark</A> at the cursor position.

<A HREF="os_unix.html#Unix">Unix</A>: Resetting of signals for external program didn't work, because SIG_DFL
and NULL are the same!  For &quot;!!yes|dd count=1|, the yes command kept on
running.

Partly fixed: <A HREF="os_unix.html#Unix">Unix</A> <A HREF="gui.html#GUI">GUI</A>: Typeahead while executing an external command was lost.
Now it's not lost while the command is producing output.

Typing <A HREF="term.html#&lt;S-Tab&gt;">&lt;S-Tab&gt;</A> in <A HREF="insert.html#Insert">Insert</A> mode, when <A HREF="motion.html#it">it</A> isn't mapped, inserted &quot;<A HREF="term.html#&lt;S-Tab&gt;">&lt;S-Tab&gt;</A>&quot;.  Now
<A HREF="motion.html#it">it</A> works like a normal <A HREF="motion.html#&lt;Tab&gt;">&lt;Tab&gt;</A>, just like &lt;C-Tab&gt; and &lt;M-Tab&gt;.

Redrawing ruler didn't check for old value correctly (caused UMR warnings in
Purify).

Negative array index in finish_viminfo_history().

&quot;:g/^/d|mo $&quot; deleted all the lines.  The &quot;<A HREF="change.html#:move">:move</A>&quot; command now removes the
<A HREF="repeat.html#:global">:global</A> <A HREF="motion.html#mark">mark</A> from the moved lines.

Using &quot;vG&quot; while the last line in the <A HREF="windows.html#window">window</A> is a &quot;<A HREF="repeat.html#@">@</A>&quot; line, didn't update
correctly.  Just the &quot;<A HREF="visual.html#v">v</A>&quot; showed &quot;<A HREF="change.html#~">~</A>&quot; lines.

&quot;<A HREF="motion.html#daw">daw</A>&quot; on the last char of the file, when it's a space, moved the cursor beyond
the end of the line.

When <A HREF="options.html#'hlsearch'">'hlsearch'</A> was set or reset, only the current buffer was redrawn, while
this affects all <A HREF="windows.html#windows">windows</A>.

<A HREF="editing.html#CTRL-^">CTRL-^</A>, positioning the cursor somewhere from 1/2 to 1 1/2 screen down the
file, put the cursor at the bottom of the <A HREF="windows.html#window">window</A>, instead of halfway.

When <A HREF="scroll.html#scrolling">scrolling</A> up for &quot;<A HREF="insert.html#:append">:append</A>&quot; command, not all <A HREF="windows.html#windows">windows</A> were updated
correctly.

When <A HREF="options.html#'hlsearch'">'hlsearch'</A> is set, and an auto-indent is highlighted, pressing <A HREF="intro.html#&lt;Esc&gt;">&lt;Esc&gt;</A>
didn't remove the highlighting, although the indent was deleted.

When <A HREF="options.html#'ru'">'ru'</A> set and <A HREF="options.html#'nosc'">'nosc'</A>, using &quot;$j&quot; showed a wrong ruler.

Under Xfree 3.2, Shift-Tab didn't work (wrong keysym is used).

Mapping <A HREF="term.html#&lt;S-Tab&gt;">&lt;S-Tab&gt;</A> didn't work.  Changed the key translations to use the shortest
key code possible.  This makes the termcode translations and mappings more
consistent.  Now all modifiers work in all combinations, not only with <A HREF="motion.html#&lt;Tab&gt;">&lt;Tab&gt;</A>,
but also with <A HREF="motion.html#&lt;Space&gt;">&lt;Space&gt;</A>, <A HREF="motion.html#&lt;CR&gt;">&lt;CR&gt;</A>, etc.

For <A HREF="os_unix.html#Unix">Unix</A>, restore three more signals.  And Vim catches SIGINT now, so <A HREF="pattern.html#CTRL-C">CTRL-C</A>
in <A HREF="intro.html#Ex">Ex</A> mode doesn't make Vim exit.

&quot;&quot;a5Y&quot; yanked 25 lines instead of 5.

&quot;vrxxx&lt;Esc&gt;&quot; in an empty line could not be undone.

A <A HREF="pattern.html#CTRL-C">CTRL-C</A> that breaks &quot;<A HREF="quickfix.html#:make">:make</A>&quot; caused the errorfile not to be read (annoying
when you want to handle what &quot;<A HREF="quickfix.html#:make">:make</A>&quot; produced so far).

&quot;:0;/pat&quot; didn't find &quot;pat&quot; in line 1.

Search for &quot;/test/s+1&quot; at first char of file gave bottom-top message, or
didn't work at all with <A HREF="options.html#'nowrapscan'">'nowrapscan'</A>.

Bug in <A HREF="starting.html#viminfo">viminfo</A> <A HREF="cmdline.html#history">history</A>.  Could cause a crash on exit.

&quot;<A HREF="various.html#:print">:print</A>&quot; didn't put cursor on first non-blank in line.

&quot;:0r !cat &lt;/dev/null&quot; left cursor in line zero, with very strange effects.

With <A HREF="options.html#'showcmd'">'showcmd'</A> set and <A HREF="options.html#'timeoutlen'">'timeoutlen'</A> set to a few seconds, trick to position
the cursor leftwards didn't work.

AIX stty settings were restored to cs5 instead of cs8 (Winn).

File name completion didn't work for &quot;zsh&quot; versions that put spaces between
file names, instead of NULs.

Changed &quot;XawChain*&quot; to &quot;XtChain*&quot;, should work for more systems.

Included quite a few fixes for rightleft mode (Lottem).

Didn't ask to |<A HREF="message.html#hit-enter">hit-enter</A>| when <A HREF="gui.html#GUI">GUI</A> is started and error <A HREF="message.html#messages">messages</A> are printed.

When trying to edit a file in a non-existent directory, ended up with editing
&quot;No file&quot;.

&quot;<A HREF="change.html#gqap">gqap</A>&quot; to format a <A HREF="motion.html#paragraph">paragraph</A> did too much redrawing.

When <A HREF="options.html#'hlsearch'">'hlsearch'</A> set, only the current <A HREF="windows.html#window">window</A> was updated for a new search
<A HREF="pattern.html#pattern">pattern</A>.

Sometimes error <A HREF="message.html#messages">messages</A> on <A HREF="starting.html#startup">startup</A> didn't cause a |<A HREF="message.html#hit-enter">hit-enter</A>| prompt,
because of autocommands containing an empty line.

Was possible to select part of the <A HREF="windows.html#window">window</A> in the border, below the command
line.

<A HREF="motion.html#'&lt;">'&lt;</A> and <A HREF="motion.html#'&gt;">'&gt;</A> marks were not at the correct position after <A HREF="motion.html#linewise">linewise</A> <A HREF="visual.html#Visual">Visual</A>
selection.

When translating a help argument to &quot;CTRL-x&quot;, prepend or append a '<A HREF="motion.html#_">_</A>', when
applicable.

Blockwise visual mode wasn't correct when moving vertically over a special
character (displayed <A HREF="motion.html#as">as</A> two screen characters).

Renamed &quot;struct option&quot; to &quot;struct vimoption&quot; to avoid name clash with GNU
getopt().

&quot;<A HREF="map.html#:abclear">:abclear</A>&quot; didn't work (but &quot;<A HREF="map.html#:iabclear">:iabclear</A>&quot; and &quot;<A HREF="map.html#:cabclear">:cabclear</A>&quot; did work).

When <A HREF="options.html#'nowrap'">'nowrap'</A> used, screen wasn't always updated correctly.

&quot;vim <A HREF="starting.html#-c">-c</A> split file&quot; displayed extra lines.

After starting the <A HREF="gui.html#GUI">GUI</A>, searched the <A HREF="term.html#termcap">termcap</A> for a &quot;<A HREF="gui.html#gui">gui</A>&quot; term.

When <A HREF="options.html#'hls'">'hls'</A> used, search for &quot;^$&quot; caused a hang.
When <A HREF="options.html#'hls'">'hls'</A> was set, an error in the last <A HREF="pattern.html#regexp">regexp</A> caused trouble.

<A HREF="os_unix.html#Unix">Unix</A>: Only output an extra <A HREF="intro.html#&lt;EOL&gt;">&lt;EOL&gt;</A> on exit when outputted something in the
alternate screen, or when there is a message that needs to be cleared.

&quot;/a\{&quot; did strange things, depending on previous search.

&quot;c}&quot; only redrew one line (with <A HREF="starting.html#-u">-u</A> NONE).

For mappings, CTRL-META-A was shown <A HREF="motion.html#as">as</A> &lt;M-^A&gt; instead of &lt;MC-A&gt;, while <A HREF="map.html#:map">:map</A>
only accepts &lt;MC-A&gt;.  Now &lt;M-C-A&gt; is shown.

<A HREF="os_unix.html#Unix">Unix</A>: When using full path name in a <A HREF="tagsrch.html#tags">tags</A> file, which contains a link, and
<A HREF="options.html#'hidden'">'hidden'</A> set and jumping to a <A HREF="tagsrch.html#tag">tag</A> in the current file, would get bogus
<A HREF="usr_11.html#ATTENTION">ATTENTION</A> message.  Solved by always expanding file names, even when starting
with '<A HREF="pattern.html#/">/</A>'.

<A HREF="options.html#'hlsearch'">'hlsearch'</A> highlighting of special characters (e.g., a TAB) didn't highlight
the whole thing.

&quot;r&lt;CR&gt;&quot; didn't work correctly on the last char of a line.

Sometimes a <A HREF="windows.html#window">window</A> resize or other signal caused an endless loop, involving
set_winsize().

&quot;vim -r&quot; didn't work, <A HREF="motion.html#it">it</A> would just hang (using tgetent() while <A HREF="options.html#'term'">'term'</A> is
empty).

&quot;<A HREF="motion.html#gk">gk</A>&quot; while <A HREF="options.html#'nowrap'">'nowrap'</A> set moved two lines up.

When <A HREF="windows.html#windows">windows</A> are split, a message that causes a <A HREF="scroll.html#scroll-up">scroll-up</A> messed up one of the
<A HREF="windows.html#windows">windows</A>, which required a <A HREF="various.html#CTRL-L">CTRL-L</A> to be typed.

Possible endless loop when using shell command in the <A HREF="gui.html#GUI">GUI</A>.

Menus defined in the <A HREF="starting.html#.vimrc">.vimrc</A> were removed when <A HREF="gui.html#GUI">GUI</A> started.

Crash when pasting with the mouse in insert mode.

Crash with &quot;<A HREF="gui.html#:unmenu">:unmenu</A> *&quot; in <A HREF="gui.html#.gvimrc">.gvimrc</A> for <A HREF="gui_x11.html#Athena">Athena</A>.

&quot;5&gt;&gt;&quot; shifted 5 lines 5 times, instead of 1 time.

<A HREF="pattern.html#CTRL-C">CTRL-C</A> when getting a prompt in &quot;<A HREF="repeat.html#:global">:global</A>&quot; didn't interrupt.

When <A HREF="options.html#'so'">'so'</A> is non-zero, and moving the scrollbar completely to the bottom,
there was a lot of flashing.

<A HREF="gui.html#GUI">GUI</A>: Scrollbar ident must be long for DEC Alpha.

Some <A HREF="eval.html#functions">functions</A> called vim_regcomp() without setting reg_magic, which could
lead to unpredictable magicness.

Crash when clicking around the status line, could get a selection with a
backwards range.

When <A HREF="change.html#deleting">deleting</A> more than one line <A HREF="motion.html#characterwise">characterwise</A>, the last character wasn't
deleted.

<A HREF="gui.html#GUI">GUI</A>: Status line could be overwritten when moving the scrollbar quickly (or
when <A HREF="options.html#'wd'">'wd'</A> is non-zero).

An ESC at the end of a &quot;<A HREF="various.html#:normal">:normal</A>&quot; command caused a wait for a <A HREF="terminal.html#terminal">terminal</A> code to
finish.  Now, a <A HREF="terminal.html#terminal">terminal</A> code is not recognized when its start comes from a
<A HREF="map.html#mapping">mapping</A> or &quot;<A HREF="various.html#:normal">:normal</A>&quot; command.

Included patches from Robert Webb for <A HREF="gui.html#GUI">GUI</A>.  Layout of the <A HREF="windows.html#windows">windows</A> is now done
inside Vim, instead of letting the layout manager <A HREF="diff.html#do">do</A> this.  Makes Vim work
with Lesstif!

UMR warning in set_expand_context().

Memory leak: b_winlnum <A HREF="eval.html#list">list</A> was never freed.

Removed TIOCLSET/TIOCLGET code from os_unix.c.  Was <A HREF="change.html#changing">changing</A> some of the
<A HREF="terminal.html#terminal">terminal</A> settings, and looked like <A HREF="motion.html#it">it</A> wasn't doing anything good.  (suggested
by Juergen Weigert).

Ruler overwrote &quot;is a directory&quot; message.  When starting up, and <A HREF="options.html#'cmdheight'">'cmdheight'</A>
set to <A HREF="change.html#&gt;">&gt;</A> 1, first message could still be in the last line.

Removed prototype for putenv() from proto.h, it's already in osdef2.h.in.

In replace mode, when moving the cursor and then backspacing, wrong characters
were inserted.

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A> was checking for a <A HREF="pattern.html#CTRL-C">CTRL-C</A> too often, making <A HREF="motion.html#it">it</A> slow.

Removed mappings for <A HREF="os_msdos.html#MS-DOS">MS-DOS</A> that were already covered by commands.

When visually selecting all lines in a file, cursor at last line, then &quot;<A HREF="change.html#J">J</A>&quot;.
Gave ml_get <A HREF="message.html#errors">errors</A>.  Was a problem with <A HREF="scroll.html#scrolling">scrolling</A> down during redrawing.

When doing a <A HREF="motion.html#linewise">linewise</A> <A HREF="motion.html#operator">operator</A>, and then an <A HREF="motion.html#operator">operator</A> with a mouse click, <A HREF="motion.html#it">it</A>
was also <A HREF="motion.html#linewise">linewise</A>, instead of <A HREF="motion.html#characterwise">characterwise</A>.

When <A HREF="options.html#'list'">'list'</A> is set, the column of the ruler was wrong.

Spurious error message for &quot;/\(b\+\)*&quot;.

When visually selected many lines, message from &quot;<A HREF="editing.html#:w">:w</A> file&quot; disappeared when
redrawing the screen.

&quot;<A HREF="options.html#:set">:set</A> &lt;M-b&gt;=^[b&quot;, then insert &quot;^[b&quot;, waited for another character.  And then
inserted &quot;&lt;M-b&gt;&quot; instead of the real &lt;M-b&gt; character.  Was trying to insert
K_SPECIAL <A HREF="change.html#x">x</A> NUL.

<A HREF="index.html#CTRL-W">CTRL-W</A> ] didn't use <A HREF="intro.html#count">count</A> to set <A HREF="windows.html#window">window</A> height.

<A HREF="gui.html#GUI">GUI</A>: &quot;<A HREF="gui_x11.html#-font">-font</A>&quot; command-line argument didn't override <A HREF="options.html#'guifont'">'guifont'</A> setting from
<A HREF="gui.html#.gvimrc">.gvimrc</A>. (Acevedo)

<A HREF="gui.html#GUI">GUI</A>: <A HREF="gui.html#clipboard">clipboard</A> wasn't used for &quot;*y&quot;.  And some more Win32/X11 differences
fixed for the <A HREF="gui.html#clipboard">clipboard</A> (Webb).

Jumping from one help file to another help file, with <A HREF="options.html#'compatible'">'compatible'</A> set,
removed the 'help' flag from the buffer.

File-writable bit could be reset when using &quot;<A HREF="editing.html#:w!">:w!</A>&quot; for a readonly file.

There was a wait for <A HREF="motion.html#CTRL-O">CTRL-O</A> <A HREF="pattern.html#n">n</A> in <A HREF="insert.html#Insert">Insert</A> mode, because the search <A HREF="pattern.html#pattern">pattern</A> was
shown.
Reduced wait, to allow reading a message, from 10 to 3 seconds.  It seemed
nothing was happening.

&quot;<A HREF="recover.html#:recover">:recover</A>&quot; found same swap file <A HREF="if_cscop.html#twice">twice</A>.

<A HREF="gui.html#GUI">GUI</A>: &quot;*yy only worked the second time (when pasting to an xterm).&quot;

DJGPP version (dos32): The system flags were cleared.

Dos32 version: Underscores were sometimes replaced with y-umlaut (Levin).

Version 4.1 of ncurses can't handle tputs(&quot;&quot;, ..).  Avoid calling tputs() with
an empty <A HREF="eval.html#string">string</A>.

<A HREF="term.html#&lt;S-Tab&gt;">&lt;S-Tab&gt;</A> in the command-line worked like <A HREF="motion.html#CTRL-P">CTRL-P</A> when no completion started yet.
Now <A HREF="motion.html#it">it</A> does completion, last match first.

<A HREF="os_unix.html#Unix">Unix</A>: Could get annoying &quot;can't write viminfo&quot; message after doing &quot;su&quot;.  Now
the <A HREF="starting.html#viminfo">viminfo</A> file is overwritten, and the user set back to the original one.

&quot;<A HREF="options.html#:set">:set</A> <A HREF="options.html#'term'">term</A>=builtin_gui&quot; started the <A HREF="gui.html#GUI">GUI</A> in a wrong way.  Now it's not
allowed anymore.  But &quot;vim <A HREF="starting.html#-T">-T</A> gui&quot; does start the <A HREF="gui.html#GUI">GUI</A> correctly now.

<A HREF="gui.html#GUI">GUI</A>: Triple click after a line only put last char in selection, when <A HREF="motion.html#it">it</A> is a
single character <A HREF="motion.html#word">word</A>.

When the <A HREF="windows.html#window">window</A> is bigger than the screen, the <A HREF="scroll.html#scrolling">scrolling</A> up of <A HREF="message.html#messages">messages</A> was
wrong (e.g. &quot;:vers&quot;, &quot;:hi&quot;).  Also when the bottom part of the <A HREF="windows.html#window">window</A> was
obscured by another <A HREF="windows.html#window">window</A>.

When using a wrong option only an error message is printed, to avoid that the
usage information makes <A HREF="motion.html#it">it</A> scroll off the screen.

When <A HREF="starting.html#exiting">exiting</A> because of not being able to read from stdin, didn't preserve the
swap files properly.

<A HREF="visual.html#Visual">Visual</A> selecting all chars in more than one line, then hit &quot;<A HREF="change.html#x">x</A>&quot; didn't leave an
empty line.  For one line <A HREF="motion.html#it">it</A> did leave an empty line.

Message for which <A HREF="autocmd.html#autocommand">autocommand</A> is executing messed up file write message (for
<A HREF="autocmd.html#FileWritePost">FileWritePost</A> event).

&quot;vim -h&quot; included &quot;<A HREF="starting.html#-U">-U</A>&quot; even when <A HREF="gui.html#GUI">GUI</A> is not available, and &quot;<A HREF="starting.html#-l">-l</A>&quot; when lisp is
not available.

Crash for &quot;:he &lt;C-A&gt;&quot; (command-line longer than screen).

&quot;:s/this/that/gc&quot;, type &quot;<A HREF="change.html#y">y</A>&quot; two times, then <A HREF="undo.html#undo">undo</A>, did reset the modified
option, even though the file is still modified.

Empty lines in a <A HREF="tagsrch.html#tags">tags</A> file caused a &quot;<A HREF="tagsrch.html#:tag">:tag</A>&quot; to be aborted.

When hitting '<A HREF="repeat.html#q">q</A>' at the more prompt for &quot;<A HREF="gui.html#:menu">:menu</A>&quot;, still scrolled a few lines.

In an xterm that uses the <A HREF="syntax.html#bold">bold</A> trick a single row of characters could remain
after an erased <A HREF="syntax.html#bold">bold</A> character.  Now erase one extra char after the <A HREF="syntax.html#bold">bold</A> char,
like for the <A HREF="gui.html#GUI">GUI</A>.

&quot;:pop!&quot; didn't work.

When the reading a buffer was interrupted, &quot;<A HREF="editing.html#:w">:w</A>&quot; should not be able to
overwrite the file, &quot;<A HREF="editing.html#:w!">:w!</A>&quot; is required.

&quot;:cf&#37;&quot; caused a crash.

&quot;<A HREF="gui_x11.html#:gui">:gui</A> longfilename&quot;, when forking is enabled, could leave part of the
longfilename at the shell prompt.

==============================================================================

VERSION 5.1						*<A NAME="version-5.1"></A><B>version-5.1</B>*

Improvements made between version 5.0 and 5.1.

This was mostly a bug-fix release, not many new features.



Changed							*<A NAME="changed-5.1"></A><B>changed-5.1</B>*

The <A HREF="eval.html#expand()">expand()</A> function now separates file names with <A HREF="motion.html#&lt;NL&gt;">&lt;NL&gt;</A> instead of a space.
This avoids problems for file names with embedded spaces.  To get the old
result, use substitute(expand(foo), &quot;\n&quot;, &quot; &quot;<A HREF="motion.html#,">,</A> &quot;g&quot;).

For Insert-expanding dictionaries allow a <A HREF="intro.html#backslash">backslash</A> to be used for
wildchars.  Allows expanding &quot;ze\kra&quot;, when <A HREF="options.html#'isk'">'isk'</A> includes a <A HREF="intro.html#backslash">backslash</A>.

New icon for the <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>.

&quot;<A HREF="tagsrch.html#:tag">:tag</A>&quot;, &quot;<A HREF="tagsrch.html#:tselect">:tselect</A>&quot; etc. only use the argument <A HREF="motion.html#as">as</A> a <A HREF="pattern.html#regexp">regexp</A> when <A HREF="motion.html#it">it</A> starts
with '<A HREF="pattern.html#/">/</A>'.  Avoids that &quot;<A HREF="tagsrch.html#:tag">:tag</A> xx~&quot; gives an error message: &quot;No previous sub.
regexp&quot;.  Also, when the <A HREF="tagsrch.html#:tag">:tag</A> argument contained <A HREF="editing.html#wildcard">wildcard</A> characters, <A HREF="motion.html#it">it</A> was
not <A HREF="intro.html#Vi">Vi</A> compatible.
When using '<A HREF="pattern.html#/">/</A>', the argument is taken literally too, with a higher priority,
so it's found before <A HREF="editing.html#wildcard">wildcard</A> matches.
Only when the '<A HREF="pattern.html#/">/</A>' is used are matches with different <A HREF="change.html#case">case</A> found, even though
<A HREF="options.html#'ignorecase'">'ignorecase'</A> isn't set.
Changed &quot;g^]&quot; to only <A HREF="diff.html#do">do</A> &quot;<A HREF="tagsrch.html#:tselect">:tselect</A>&quot; when there is more than on matching <A HREF="tagsrch.html#tag">tag</A>.

Changed some of the default colors, because they were not very readable on a
dark background.

A character offset to a search <A HREF="pattern.html#pattern">pattern</A> can move the cursor to the next or
previous line.  Also fixes that &quot;/pattern/e+2&quot; got stuck on &quot;<A HREF="pattern.html#pattern">pattern</A>&quot; at the
end of a line.

Double-clicks in the status line <A HREF="diff.html#do">do</A> no longer start <A HREF="visual.html#Visual">Visual</A> mode.  Dragging a
status line no longer stops <A HREF="visual.html#Visual">Visual</A> mode.

<A HREF="if_perl.html#Perl">Perl</A> interface: Buffers() and Windows() now use more logical arguments, like
they are used in the rest of Vim (Moore).

Init &#39;&#34;' <A HREF="motion.html#mark">mark</A> to the first character of the first line.  Makes <A HREF="motion.html#it">it</A> possible to
use &#39;&#34;' in an <A HREF="autocmd.html#autocommand">autocommand</A> without getting an error message.



Added							*<A NAME="added-5.1"></A><B>added-5.1</B>*

&quot;shell_error&quot; internal variable: result of last shell command.

&quot;<A HREF="eval.html#:echohl">:echohl</A>&quot; command: Set highlighting for &quot;<A HREF="eval.html#:echo">:echo</A>&quot;.

'<A HREF="change.html#S">S</A>' flag in <A HREF="options.html#'highlight'">'highlight'</A> and StatusLineNC highlight group: highlighting for
status line of not-current <A HREF="windows.html#window">window</A>.  Default is to use <A HREF="syntax.html#bold">bold</A> for current
<A HREF="windows.html#window">window</A>.

Added <A HREF="eval.html#buffer_name()">buffer_name()</A> and <A HREF="eval.html#buffer_number()">buffer_number()</A> <A HREF="eval.html#functions">functions</A> (Aaron).
Added flags argument &quot;<A HREF="index.html#g">g</A>&quot; to <A HREF="eval.html#substitute()">substitute()</A> function (Aaron).
Added <A HREF="eval.html#winheight()">winheight()</A> function.

<A HREF="os_win32.html#Win32">Win32</A>: When an external command starts with &quot;start &quot;<A HREF="motion.html#,">,</A> no console is opened
for <A HREF="motion.html#it">it</A> (Aaron).

<A HREF="os_win32.html#Win32">Win32</A> console: Use <A HREF="term.html#termcap">termcap</A> codes for bold/reverse based on the current
console attributes.

Configure check for &quot;strip&quot;. (Napier)

<A HREF="undo.html#CTRL-R">CTRL-R</A> <A HREF="undo.html#CTRL-R">CTRL-R</A> <A HREF="change.html#x">x</A> in <A HREF="insert.html#Insert">Insert</A> mode: <A HREF="insert.html#Insert">Insert</A> the contents of a <A HREF="sponsor.html#register">register</A> literally,
instead of <A HREF="motion.html#as">as</A> typed.

Made a few &quot;No match&quot; error <A HREF="message.html#messages">messages</A> more informative by adding the <A HREF="pattern.html#pattern">pattern</A>
that didn't match.

&quot;make install&quot; now also copies the <A HREF="map.html#macro">macro</A> files.

tools/tcltags, a shell <A HREF="usr_41.html#script">script</A> to generate a <A HREF="tagsrch.html#tags">tags</A> file from a <A HREF="if_tcl.html#TCL">TCL</A> file.

&quot;--with-tlib&quot; setting for configure.  Easy way to use termlib: &quot;./configure
--with-tlib=termlib&quot;.

'<A HREF="undo.html#u">u</A>' flag in <A HREF="options.html#'cino'">'cino'</A> for setting the indent for contained () parts.

When <A HREF="os_win32.html#Win32">Win32</A> OLE version can't load the registered type library, ask the user
if he wants to <A HREF="sponsor.html#register">register</A> Vim now. (Erhardt)
<A HREF="os_win32.html#Win32">Win32</A> with OLE: When registered automatically, exit Vim.
Included <A HREF="if_ole.html#VisVim">VisVim</A> 1.1b, with a few enhancements and the new icon (Heiko
Erhardt).

Added patch from Vince Negri for Win32s support.  Needs to be compiled with
VC 4.1!

<A HREF="if_perl.html#Perl">Perl</A> interface: Added $curbuf.  Rationalized Buffers() and Windows().
(Moore) Added &quot;group&quot; argument to Msg().

Included <A HREF="if_perl.html#Perl">Perl</A> files in <A HREF="os_dos.html#DOS">DOS</A> source archive.  Changed Makefile.bor and
Makefile.w32 to support building a <A HREF="os_win32.html#Win32">Win32</A> version with <A HREF="if_perl.html#Perl">Perl</A> included.

Included new Makefile.w32 from Ken Scott.  Now it's able to make all <A HREF="os_win32.html#Win32">Win32</A>
versions, including OLE, <A HREF="if_perl.html#Perl">Perl</A> and <A HREF="if_pyth.html#Python">Python</A>.

Added <A HREF="index.html#CTRL-W">CTRL-W</A> <A HREF="index.html#g">g</A> ] and <A HREF="index.html#CTRL-W">CTRL-W</A> <A HREF="index.html#g">g</A> ^]: split <A HREF="windows.html#window">window</A> and <A HREF="diff.html#do">do</A> <A HREF="tagsrch.html#g]">g]</A> or g^].

Added &quot;<A HREF="tagsrch.html#g]">g]</A>&quot; to always <A HREF="diff.html#do">do</A> &quot;<A HREF="tagsrch.html#:tselect">:tselect</A>&quot; for the ident under the cursor.
Added &quot;<A HREF="tagsrch.html#:tjump">:tjump</A>&quot; and &quot;<A HREF="tagsrch.html#:stjump">:stjump</A>&quot; commands.
Improved listing of &quot;<A HREF="tagsrch.html#:tselect">:tselect</A>&quot; when <A HREF="tagsrch.html#tag">tag</A> names are a bit long.

Included patches for the <A HREF="os_mac.html#Macintosh">Macintosh</A> version.  Also for <A HREF="if_pyth.html#Python">Python</A> interface.
(St-Amant)

&quot;<A HREF="windows.html#:buf">:buf</A> foo&quot; now also restores cursor column, when the buffer was used before.

Adjusted the Makefile for different final destinations for the <A HREF="syntax.html#syntax">syntax</A> files
and scripts (for Debian Linux).

<A HREF="os_amiga.html#Amiga">Amiga</A>: <A HREF="starting.html#$VIM">$VIM</A> can be used everywhere.  When <A HREF="starting.html#$VIM">$VIM</A> is not defined, &quot;VIM:&quot; is
used.  This fixes that &quot;VIM:&quot; had to be assigned for the help files, and
<A HREF="starting.html#$VIM">$VIM</A> set for the <A HREF="syntax.html#syntax">syntax</A> files.  Now either of these work.

Some xterms send vt100 compatible function keys F1-F4.  Since it's not
possible to detect this, recognize both type of keys and translate them to
<A HREF="helphelp.html#&lt;F1&gt;">&lt;F1&gt;</A> - <A HREF="term.html#&lt;F4&gt;">&lt;F4&gt;</A>.

Added &quot;<A HREF="autocmd.html#VimEnter">VimEnter</A>&quot; <A HREF="autocmd.html#autocommand">autocommand</A>.  Executed after loading all the <A HREF="starting.html#startup">startup</A> stuff.

<A HREF="os_beos.html#BeOS">BeOS</A> version now also runs on Intel CPUs (Seibert).



Fixed							*<A NAME="fixed-5.1"></A><B>fixed-5.1</B>*

&quot;<A HREF="tagsrch.html#:ts">:ts</A>&quot; changed position in the <A HREF="tagsrch.html#tag">tag</A> stack when cancelled with <A HREF="motion.html#&lt;CR&gt;">&lt;CR&gt;</A>.
&quot;<A HREF="tagsrch.html#:ts">:ts</A>&quot; changed the cursor position for <A HREF="tagsrch.html#CTRL-T">CTRL-T</A> when cancelled with <A HREF="motion.html#&lt;CR&gt;">&lt;CR&gt;</A>.
&quot;<A HREF="tagsrch.html#:tn">:tn</A>&quot; would always jump to the second match.	Was using the wrong entry in
the <A HREF="tagsrch.html#tag">tag</A> stack.
Doing &quot;<A HREF="tagsrch.html#tag">tag</A> foo&quot;, then &quot;<A HREF="tagsrch.html#:tselect">:tselect</A>&quot;, overwrote the original cursor position in
the <A HREF="tagsrch.html#tag">tag</A> stack.

&quot;make install&quot; changed the vim.1 manpage in a wrong way, causing &quot;doc/doc&quot;
to appear for the documentation files.

When compiled with MAX_FEAT, xterm mouse handling failed.  Was caused by DEC
mouse handling interfering.

Was leaking memory when using selection in <A HREF="options.html#X11">X11</A>.

<A HREF="scroll.html#CTRL-D">CTRL-D</A> halfway a command-line left some characters behind the first line(s)
of the listing.

When expanding directories for &quot;<A HREF="options.html#:set">:set</A> <A HREF="options.html#'path'">path</A>=&quot;, put two extra backslashes
before a space in a directory name.

When <A HREF="options.html#'lisp'">'lisp'</A> set, first line of a function would be indented.  Now its indent
is set to zero.  And use the indent of the first previous line that is at
the same () level.  Added test33.

&quot;so&lt;Esc&gt;u&quot; in an empty file didn't work.

<A HREF="os_dos.html#DOS">DOS</A>: &quot;seek error in swap file write&quot; <A HREF="message.html#errors">errors</A>, when using <A HREF="os_dos.html#DOS">DOS</A> 6.2 share.exe,
because the swap file was made hidden.  It's no longer hidden.

&quot;<A HREF="repeat.html#:global">:global</A>&quot; command would sometimes not execute on a matching line.  Happened
when a data block is full in ml_replace().

For AIX use a tgetent buffer of 2048 bytes, instead of 1024.

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="starting.html#gvim">gvim</A> now only sets the console size for external commands to 25x80
on Windows 95, not on NT.

<A HREF="os_win32.html#Win32">Win32</A> console: Dead key could cause a crash, because of a missing &quot;WINAPI&quot;
(Deshpande).

The right mouse button started <A HREF="visual.html#Visual">Visual</A> mode, even when <A HREF="options.html#'mouse'">'mouse'</A> is empty, and
in the command-line, a left click moved the cursor when <A HREF="options.html#'mouse'">'mouse'</A> is empty.
In <A HREF="visual.html#Visual">Visual</A> mode, '<A HREF="pattern.html#n">n</A>' in <A HREF="options.html#'mouse'">'mouse'</A> would be used instead of '<A HREF="visual.html#v">v</A>'.

A blinking cursor or focus change cleared a non-Visual selection.

CTRL-Home and CTRL-End didn't work for <A HREF="os_msdos.html#MS-DOS">MS-DOS</A> versions.

Could include NUL in <A HREF="options.html#'iskeyword'">'iskeyword'</A>, causing a crash when doing insert mode
completion.

Use _dos_commit() to flush the swap file to disk for <A HREF="os_msdos.html#MSDOS">MSDOS</A> 16 bit version.

In mappings, <A HREF="motion.html#CTRL-H">CTRL-H</A> was replaced by the backspace key code.  This caused
problems when <A HREF="motion.html#it">it</A> was used <A HREF="motion.html#as">as</A> text, e.g. &quot;<A HREF="map.html#:map">:map</A> _U :&#37;s/.^H//g&lt;CR&gt;&quot;.

&quot;<A HREF="options.html#:set">:set</A> <A HREF="term.html#'t_Co'">t_Co</A>=0&quot; was not handled like a normal term.  Now it's translated into
&quot;<A HREF="options.html#:set">:set</A> <A HREF="term.html#'t_Co'">t_Co</A>=&quot;, which works.

For &quot;<A HREF="syntax.html#:syntax">:syntax</A> keyword&quot; the &quot;transparent&quot; option did work, although not
mentioned in the help.  But <A HREF="eval.html#synID()">synID()</A> returned wrong name.

&quot;gqG&quot; in a file with one-word-per-line (e.g. a dictionary) was very slow and
not interruptible.

&quot;<A HREF="change.html#gq">gq</A>&quot; <A HREF="motion.html#operator">operator</A> inserted screen lines in the wrong situation.  Now screen
lines are inserted or deleted when this speeds up displaying.

cindent was wrong when an &quot;if&quot; contained &quot;((&quot;.

'<A HREF="change.html#r">r</A>' flag in <A HREF="options.html#'viminfo'">'viminfo'</A> was not used for '<A HREF="motion.html#&#37;">&#37;</A>'.  Could get files in the buffer
<A HREF="eval.html#list">list</A> from removable media.

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A> with OLE: if_ole_vc.mak could not be converted into a project.
Hand-edited to fix this...

With <A HREF="options.html#'nosol'">'nosol'</A> set, doing &quot;$kdw&quot; below an empty line positioned the cursor at
the end of the line.

Dos32 version changed &quot;\dir\file&quot; into &quot;/dir/file&quot;, to work around a DJGPP
bug.  That bug appears to have been fixed, therefore this translation has
been removed.

&quot;/^*&quot; didn't work (find '*' in first column).

&quot;<A HREF="cmdline.html#&lt;afile&gt;">&lt;afile&gt;</A>&quot; was not always set for autocommands.  E.g., for &quot;<A HREF="autocmd.html#:au">:au</A> <A HREF="autocmd.html#BufEnter">BufEnter</A> *
let &amp;tags = expand(&quot;&lt;afile&gt;:p:h&quot;) . &quot;/tags&quot;.

In an xterm, the <A HREF="windows.html#window">window</A> may be a child of the outer xterm <A HREF="windows.html#window">window</A>.  Use the
parent <A HREF="windows.html#window">window</A> when getting the title and icon names. (Smith)

When starting with &quot;<A HREF="starting.html#gvim">gvim</A> <A HREF="gui_x11.html#-bg">-bg</A> black <A HREF="gui_x11.html#-fg">-fg</A> white&quot;, the value of <A HREF="options.html#'background'">'background'</A> is
only set after reading the <A HREF="gui.html#.gvimrc">.gvimrc</A> file.  This causes a &quot;<A HREF="syntax.html#:syntax">:syntax</A> on&quot; to use
the wrong colors.  Now allow using &quot;<A HREF="gui_x11.html#:gui">:gui</A>&quot; to open the <A HREF="gui.html#GUI">GUI</A> <A HREF="windows.html#window">window</A> and set the
colors.  Previously &quot;<A HREF="gui_x11.html#:gui">:gui</A>&quot; in a <A HREF="gui.html#gvimrc">gvimrc</A> crashed Vim.

<A HREF="eval.html#tempname()">tempname()</A> returned the same name all the time, unless the file was actually
created.  Now there are at least 26 different names.

File name used for <A HREF="cmdline.html#&lt;afile&gt;">&lt;afile&gt;</A> was sometimes full path, sometimes file name
relative to current directory.

When <A HREF="options.html#'background'">'background'</A> was set after the <A HREF="gui.html#GUI">GUI</A> <A HREF="windows.html#window">window</A> was opened, <A HREF="motion.html#it">it</A> could change
colors that were set by the user in the <A HREF="gui.html#.gvimrc">.gvimrc</A> file.  Now <A HREF="motion.html#it">it</A> only changes
colors that have not been set by the user.

Ignore special characters after a CSI in the <A HREF="gui.html#GUI">GUI</A> version.  These could be
interpreted <A HREF="motion.html#as">as</A> special characters in a wrong way. (St-Amant)

Memory leak in <A HREF="farsi.html#farsi">farsi</A> code, when using search or &quot;<A HREF="change.html#:s">:s</A>&quot; command.
<A HREF="farsi.html#Farsi">Farsi</A> <A HREF="eval.html#string">string</A> reversing for a <A HREF="map.html#mapping">mapping</A> was only done for new mappings.  Now <A HREF="motion.html#it">it</A>
also works for <A HREF="change.html#replacing">replacing</A> a <A HREF="map.html#mapping">mapping</A>.

Crash in <A HREF="os_win32.html#Win32">Win32</A> when using a file name longer than _MAX_PATH. (Aaron)

When <A HREF="autocmd.html#BufDelete">BufDelete</A> autocommands were executed, some things for the buffer were
already deleted (esp. <A HREF="if_perl.html#Perl">Perl</A> stuff).

<A HREF="if_perl.html#Perl">Perl</A> interface: Buffer specific items were deleted too soon; fixes &quot;screen
no longer exists&quot; <A HREF="message.html#messages">messages</A>.  (Moore)

The <A HREF="if_perl.html#Perl">Perl</A> <A HREF="eval.html#functions">functions</A> didn't set the <A HREF="options.html#'modified'">'modified'</A> flag.

link.sh did not return an error on exit, which may cause Vim to start
installing, even though there is no executable to <A HREF="usr_90.html#install">install</A>. (Riehm)

<A HREF="intro.html#Vi">Vi</A> incompatibility: In <A HREF="intro.html#Vi">Vi</A> &quot;<A HREF="repeat.html#.">.</A>&quot; redoes the &quot;<A HREF="change.html#y">y</A>&quot; command.  Added the '<A HREF="change.html#y">y</A>' flag to
<A HREF="options.html#'cpoptions'">'cpoptions'</A>.  Only for <A HREF="options.html#'compatible'">'compatible'</A> mode.

&quot;<A HREF="eval.html#:echohl">:echohl</A>&quot; defined a new group, when the argument was not an existing group.

&quot;syn on&quot; and &quot;<A HREF="syntax.html#:syn">:syn</A> off&quot; could move the cursor, if there is a hidden buffer
that is shorter that the current cursor position.

The &quot; <A HREF="motion.html#mark">mark</A> was not set when doing &quot;<A HREF="windows.html#:b">:b</A> file&quot;.

When a &quot;nextgroup&quot; is used with &quot;skipwhite&quot; in <A HREF="syntax.html#syntax">syntax</A> highlighting, space at
the end of the line made the nextgroup also be found in the next line.

&quot;:he g&lt;CTRL-D&gt;&quot;, then &quot;<A HREF="cmdline.html#:">:</A>&quot; and backspace to the start didn't redraw.

<A HREF="options.html#X11">X11</A> <A HREF="gui.html#GUI">GUI</A>: &quot;<A HREF="starting.html#gvim">gvim</A> -rv&quot; reversed the colors <A HREF="if_cscop.html#twice">twice</A> on Sun.  Now Vim checks if the
result is really reverse video (background darker than foreground).

&quot;cat link.sh &#124; vim -&quot; didn't set <A HREF="syntax.html#syntax">syntax</A> highlighting.

<A HREF="os_win32.html#Win32">Win32</A>: Expanding &quot;file.sw?&quot; matched &quot;.file.swp&quot;.  This is an error of
FindnextFile() that we need to work around.  (Kilgore)

&quot;<A HREF="change.html#gqgq">gqgq</A>&quot; gave an &quot;Invalid lnum&quot; error on the last line.
Formatting with &quot;<A HREF="change.html#gq">gq</A>&quot; didn't format the first line after a change of comment
leader.

There was no check for out-of-memory in win_alloc().

&quot;vim -h&quot; didn't mention &quot;<A HREF="if_ole.html#-register">-register</A>&quot; and &quot;<A HREF="if_ole.html#-unregister">-unregister</A>&quot; for the OLE version.

Could not increase <A HREF="options.html#'cmdheight'">'cmdheight'</A> when the last <A HREF="windows.html#window">window</A> is only one line.  Now
other <A HREF="windows.html#windows">windows</A> are also made smaller, when necessary.

Added a few <A HREF="intro.html#{}">{}</A> to avoid &quot;suggest braces around&quot; warnings from gcc 2.8.x.
Changed return type of main() from void to int. (Nam)

Using '<A HREF="change.html#~">~</A>' <A HREF="if_cscop.html#twice">twice</A> in a substitute <A HREF="pattern.html#pattern">pattern</A> caused a crash.

&quot;syn on&quot; and &quot;<A HREF="syntax.html#:syn">:syn</A> off&quot; could scroll the <A HREF="windows.html#window">window</A>, if there is a hidden buffer
that is shorter that the current cursor position.

&quot;<A HREF="eval.html#:if">:if</A> 0 &#124; if 1 &#124; endif &#124; endif&quot; didn't work.  Same for &quot;<A HREF="eval.html#:while">:while</A>&quot; and &quot;elseif&quot;.

With two <A HREF="windows.html#windows">windows</A> on modified files, with <A HREF="options.html#'autowrite'">'autowrite'</A> set, cursor in second
<A HREF="windows.html#window">window</A>, &quot;<A HREF="editing.html#:qa">:qa</A>&quot; gave a warning for the file in the first <A HREF="windows.html#window">window</A>, but then
auto-wrote the file in the second <A HREF="windows.html#window">window</A>. (Webb)

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A> scrollbar could only handle 32767 lines.  Also makes the
intellimouse wheel use the configurable number of scrolls. (Robinson)

When using <A HREF="options.html#'patchmode'">'patchmode'</A>, and the <A HREF="editing.html#backup">backup</A> file is on another partition, the file
<A HREF="uganda.html#copying">copying</A> messed up the write-file message.

<A HREF="gui.html#GUI">GUI</A> <A HREF="options.html#X11">X11</A>: Alt-Backspace and Alt-Delete didn't work.

&quot;<A HREF="motion.html#`0">`0</A>&quot; could put the cursor after the last character in the line, causing
trouble for other commands, like &quot;<A HREF="insert.html#i">i</A>&quot;.

When completing <A HREF="tagsrch.html#tags">tags</A> in insert mode with ^X^], some matches were skipped,
because the compare with other <A HREF="tagsrch.html#tags">tags</A> was wrong.  E.g., when &quot;mnuFileSave&quot; was
already there, &quot;mnuFile&quot; would be skipped. (Negri)

When <A HREF="scroll.html#scrolling">scrolling</A> up/down, a <A HREF="syntax.html#syntax">syntax</A> item with &quot;keepend&quot; didn't work properly.
Now the flags are also stored for the <A HREF="syntax.html#syntax">syntax</A> state at the start of each line.

When <A HREF="options.html#'ic'">'ic'</A> was changed while <A HREF="options.html#'hlsearch'">'hlsearch'</A> is on, there was no redraw to show the
effect.

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Don't display &quot;No write since last chance&quot; in a message box, but in
the Vim <A HREF="windows.html#window">window</A>.

==============================================================================

VERSION 5.2						*<A NAME="version-5.2"></A><B>version-5.2</B>*

Improvements made between version 5.1 and 5.2.



Long lines editable					*<A NAME="long-lines"></A><B>long-lines</B>*

A single long line that doesn't fit in the <A HREF="windows.html#window">window</A> doesn't show a line of @@@
anymore.  Redrawing starts at a character further on in the line, such that
the text around the cursor can be seen.  This makes <A HREF="motion.html#it">it</A> possible to edit these
long lines when wrapping is on.



File browser added					*<A NAME="file-browser-5.2"></A><B>file-browser-5.2</B>*

The <A HREF="os_win32.html#Win32">Win32</A>, <A HREF="gui_x11.html#Athena">Athena</A> and <A HREF="gui_x11.html#Motif">Motif</A> <A HREF="gui.html#GUI">GUI</A> bring up a file requester if the user asks to
&quot;<A HREF="editing.html#:browse">:browse</A>&quot; for the &quot;<A HREF="editing.html#:e">:e</A>&quot;, &quot;<A HREF="editing.html#:w">:w</A>&quot;, &quot;<A HREF="insert.html#:r">:r</A>&quot;, &quot;<A HREF="repeat.html#:so">:so</A>&quot;, &quot;:redirect&quot; and
&quot;:mkexrc/vimrc/vsess&quot; commands.  &quot;<A HREF="editing.html#:browse">:browse</A> <A HREF="motion.html#e">e</A> /foo/bar&quot; opens the requester in
the /foo/bar directory, so you can have <A HREF="todo.html#nice">nice</A> <A HREF="map.html#mapping">mapping</A> rhs's like &quot;<A HREF="editing.html#:browse">:browse</A> so
$vim/macros&quot;.  If no initial dir specified for &quot;<A HREF="editing.html#:browse">:browse</A> e&quot;, can be compiled to
either begin in the current directory, or that of the current buffer. (Negri
and Kahn)
Added the <A HREF="options.html#'browsedir'">'browsedir'</A> option, with value &quot;current&quot;, &quot;last&quot; or &quot;buffer&quot;.  Tells
whether a browse <A HREF="gui_w32.html#dialog">dialog</A> starts in last used dir, dir of current buffer, or
current dir.  &quot;<A HREF="editing.html#:browse">:browse</A> w&quot; is unaffected.
The default <A HREF="gui.html#menus">menus</A> have been changed to use the &quot;<A HREF="editing.html#:browse">:browse</A>&quot; command.



Dialogs added						*<A NAME="dialogs-added"></A><B>dialogs-added</B>*

Added the &quot;<A HREF="editing.html#:confirm">:confirm</A>&quot; command.  Works on &quot;<A HREF="editing.html#:e">:e</A>&quot;, &quot;<A HREF="editing.html#:q">:q</A>&quot;, &quot;<A HREF="editing.html#:w">:w</A>&quot;, &quot;<A HREF="quickfix.html#:cl">:cl</A>&quot;.  <A HREF="os_win32.html#Win32">Win32</A>,
<A HREF="gui_x11.html#Athena">Athena</A> and <A HREF="gui_x11.html#Motif">Motif</A> <A HREF="gui.html#GUI">GUI</A> uses a window-dialog.  All other platforms can use
prompt in command-line.  &quot;<A HREF="editing.html#:confirm">:confirm</A> qa&quot; offers a choice to save all modified
files.

<A HREF="eval.html#confirm()">confirm()</A> function: allows user access to the confirm engine.

Added '<A HREF="visual.html#v">v</A>' flag to <A HREF="options.html#'guioptions'">'guioptions'</A>.  When included, a vertical button layout is
always used for the <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A> <A HREF="gui_w32.html#dialog">dialog</A>.  Otherwise, a horizontal layout is
preferred.

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: &quot;<A HREF="change.html#:promptfind">:promptfind</A>&quot; and &quot;<A HREF="change.html#:promptrepl">:promptrepl</A>&quot; pop up a <A HREF="gui_w32.html#dialog">dialog</A> to find/replace.
To be used from a menu entry. (Negri)



Popup menu added					*<A NAME="popup-menu-added"></A><B>popup-menu-added</B>*

When the <A HREF="options.html#'mousemodel'">'mousemodel'</A> option is set to &quot;popup&quot;, the right mouse button
displays the top level menu headed with &quot;PopUp&quot; <A HREF="motion.html#as">as</A> pop-up context menu.  The
&quot;PopUp&quot; menu is not displayed in the normal menu <A HREF="motion.html#bar">bar</A>.  This currently only
works for <A HREF="os_win32.html#Win32">Win32</A> and <A HREF="gui_x11.html#Athena">Athena</A> <A HREF="gui.html#GUI">GUI</A>.



<A HREF="visual.html#Select">Select</A> mode added					*<A NAME="new-Select-mode"></A><B>new-Select-mode</B>*

A new mode has been added: &quot;<A HREF="visual.html#Select">Select</A> mode&quot;.  It is like <A HREF="visual.html#Visual">Visual</A> mode, but typing
a printable character replaces the selection.
- <A HREF="editing.html#CTRL-G">CTRL-G</A> can be used to toggle between <A HREF="visual.html#Visual">Visual</A> mode and <A HREF="visual.html#Select">Select</A> mode.
- <A HREF="motion.html#CTRL-O">CTRL-O</A> can be used to switch from <A HREF="visual.html#Select">Select</A> mode to <A HREF="visual.html#Visual">Visual</A> mode for one command.
- Added <A HREF="options.html#'selectmode'">'selectmode'</A> option: tells when to start <A HREF="visual.html#Select">Select</A> mode instead of <A HREF="visual.html#Visual">Visual</A>
  mode.
- Added <A HREF="options.html#'mousemodel'">'mousemodel'</A> option: Change use of mouse buttons.
- Added <A HREF="options.html#'keymodel'">'keymodel'</A> option: tells to use shifted special keys to start a
  <A HREF="visual.html#Visual">Visual</A> or <A HREF="visual.html#Select">Select</A> mode selection.
- Added &quot;<A HREF="gui.html#:behave">:behave</A>&quot;.  Can be used to quickly set <A HREF="options.html#'selectmode'">'selectmode'</A>, <A HREF="options.html#'mousemodel'">'mousemodel'</A>
  and <A HREF="options.html#'keymodel'">'keymodel'</A> for <A HREF="os_win32.html#MS-Windows">MS-Windows</A> and xterm behavior.
- The xterm-like selection is now called modeless selection.
- <A HREF="visual.html#Visual">Visual</A> mode mappings and <A HREF="gui.html#menus">menus</A> are used in <A HREF="visual.html#Select">Select</A> mode.  They automatically
  switch to <A HREF="visual.html#Visual">Visual</A> mode first.  Afterwards, reselect the area, unless <A HREF="motion.html#it">it</A> was
  deleted.  The &quot;<A HREF="visual.html#gV">gV</A>&quot; command can be used in a <A HREF="map.html#mapping">mapping</A> to skip the reselection.
- Added the &quot;<A HREF="visual.html#gh">gh</A>&quot;, &quot;<A HREF="visual.html#gH">gH</A>&quot; and &quot;g^H&quot; commands: start <A HREF="visual.html#Select">Select</A> (highlight) mode.
- Backspace in <A HREF="visual.html#Select">Select</A> mode deletes the selected area.

&quot;<A HREF="gui_w32.html#mswin.vim">mswin.vim</A>&quot; <A HREF="usr_41.html#script">script</A>.  Sets behavior mostly like <A HREF="os_win32.html#MS-Windows">MS-Windows</A>.



<A HREF="starting.html#Session">Session</A> files added					*<A NAME="new-session-files"></A><B>new-session-files</B>*

&quot;:mks[ession]&quot; acts like &quot;mkvimrc&quot;, but also writes the full filenames of the
currently loaded <A HREF="windows.html#buffers">buffers</A> and current directory, so that :so'ing the file
re-loads those files and cd's to that directory.  Also stores and restores
<A HREF="windows.html#windows">windows</A>.  File names are made relative to session file.
The <A HREF="options.html#'sessionoptions'">'sessionoptions'</A> option sets behavior of &quot;<A HREF="starting.html#:mksession">:mksession</A>&quot;. (Negri)



<A HREF="autocmd.html#User">User</A> defined <A HREF="eval.html#functions">functions</A> and commands			*<A NAME="new-user-defined"></A><B>new-user-defined</B>*

Added user defined <A HREF="eval.html#functions">functions</A>.  Defined with &quot;<A HREF="eval.html#:function">:function</A>&quot; until &quot;<A HREF="eval.html#:endfunction">:endfunction</A>&quot;.
Called with &quot;Func()&quot;.  Allows the use of a variable number of arguments.
Included support for local <A HREF="eval.html#variables">variables</A> &quot;l:name&quot;.  Return a value with &quot;<A HREF="eval.html#:return">:return</A>&quot;.
See |<A HREF="eval.html#:function">:function</A>|.
Call a function with &quot;<A HREF="eval.html#:call">:call</A>&quot;.  When using a range, the function is called for
each line in the range. |<A HREF="eval.html#:call">:call</A>|
&quot;macros/justify.vim&quot; is an example of using user defined <A HREF="eval.html#functions">functions</A>.
<A HREF="autocmd.html#User">User</A> <A HREF="eval.html#functions">functions</A> <A HREF="diff.html#do">do</A> not change the last used search <A HREF="pattern.html#pattern">pattern</A> or the command to be
redone with &quot;<A HREF="repeat.html#.">.</A>&quot;.
<A HREF="options.html#'maxfuncdepth'">'maxfuncdepth'</A> option.  Restricts the depth of function calls.  Avoids trouble
(crash because of out-of-memory) when a function uses endless recursion.

<A HREF="autocmd.html#User">User</A> definable <A HREF="intro.html#Ex">Ex</A> commands: &quot;<A HREF="map.html#:command">:command</A>&quot;, &quot;<A HREF="map.html#:delcommand">:delcommand</A>&quot; and &quot;<A HREF="map.html#:comclear">:comclear</A>&quot;.
(Moore)  See |<A HREF="map.html#user-commands">user-commands</A>|.



New interfaces						*<A NAME="interfaces-5.2"></A><B>interfaces-5.2</B>*

<A HREF="if_tcl.html#Tcl">Tcl</A> interface. (Wilken)  See |<A HREF="if_tcl.html#tcl">tcl</A>|.
Uses the &quot;<A HREF="if_tcl.html#:tcl">:tcl</A>&quot;, &quot;<A HREF="if_tcl.html#:tcldo">:tcldo</A>&quot; and &quot;tclfile&quot; commands.

<A HREF="if_cscop.html#Cscope">Cscope</A> support. (Kahn) (Sekera)  See |<A HREF="if_cscop.html#cscope">cscope</A>|.
Uses the &quot;<A HREF="if_cscop.html#:cscope">:cscope</A>&quot; and &quot;<A HREF="if_cscop.html#:cstag">:cstag</A>&quot; commands.  Uses the <A HREF="options.html#options">options</A> <A HREF="options.html#'cscopeprg'">'cscopeprg'</A>,
<A HREF="options.html#'cscopetag'">'cscopetag'</A>, <A HREF="options.html#'cscopetagorder'">'cscopetagorder'</A> and <A HREF="options.html#'cscopeverbose'">'cscopeverbose'</A>.



New ports						*<A NAME="ports-5.2"></A><B>ports-5.2</B>*

<A HREF="os_amiga.html#Amiga">Amiga</A> <A HREF="gui.html#GUI">GUI</A> port. (Nielsen)  Not tested much yet!

RISC OS version. (Thomas Leonard)  See |<A HREF="os_risc.html#riscos">riscos</A>|.
This version can run either with a <A HREF="gui.html#GUI">GUI</A> or in text mode, depending upon where
<A HREF="motion.html#it">it</A> is invoked.
Deleted the &quot;os_archie&quot; files, they were not working anyway.



Multi-byte support					*<A NAME="new-multi-byte"></A><B>new-multi-byte</B>*

MultiByte support for <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>. (Baek)
The <A HREF="options.html#'fileencoding'">'fileencoding'</A> option decides how the text in the file is encoded.
&quot;<A HREF="various.html#:ascii">:ascii</A>&quot; works for <A HREF="mbyte.html#multi-byte">multi-byte</A> characters.  Multi-byte characters work on
Windows 95, even when using the US version. (Aaron)
Needs to be enabled in feature.h.
This has not been tested much yet!



New <A HREF="eval.html#functions">functions</A>						*<A NAME="new-functions-5.2"></A><B>new-functions-5.2</B>*

|<A HREF="eval.html#browse()">browse()</A>|	puts up a file requester when available. (Negri)
|<A HREF="eval.html#escape()">escape()</A>|	escapes characters in a <A HREF="eval.html#string">string</A> with a <A HREF="intro.html#backslash">backslash</A>.
|<A HREF="eval.html#fnamemodify()">fnamemodify()</A>|	modifies a file name.
|<A HREF="eval.html#input()">input()</A>|	asks the user to enter a line. (Aaron)  There is a separate
		<A HREF="cmdline.html#history">history</A> for lines typed for the <A HREF="eval.html#input()">input()</A> function.
|<A HREF="eval.html#argc()">argc()</A>|
|<A HREF="eval.html#argv()">argv()</A>|	can be used to access the argument <A HREF="eval.html#list">list</A>.
|<A HREF="eval.html#winbufnr()">winbufnr()</A>|	buffer number of a <A HREF="windows.html#window">window</A>. (Aaron)
|<A HREF="eval.html#winnr()">winnr()</A>|	<A HREF="windows.html#window">window</A> number. (Aaron)
|<A HREF="eval.html#matchstr()">matchstr()</A>|	Return matched <A HREF="eval.html#string">string</A>.
|<A HREF="eval.html#setline()">setline()</A>|	Set a line to a <A HREF="eval.html#string">string</A> value.



New <A HREF="options.html#options">options</A>						*<A NAME="new-options-5.2"></A><B>new-options-5.2</B>*

<A HREF="options.html#'allowrevins'">'allowrevins'</A>	Enable the CTRL-_ command in <A HREF="insert.html#Insert">Insert</A> and <A HREF="cmdline.html#Command-line">Command-line</A> mode.
<A HREF="options.html#'browsedir'">'browsedir'</A>	Tells in which directory a browse <A HREF="gui_w32.html#dialog">dialog</A> starts.
<A HREF="options.html#'confirm'">'confirm'</A>	when set, <A HREF="editing.html#:q">:q</A> <A HREF="editing.html#:w">:w</A> and <A HREF="editing.html#:e">:e</A> commands always act <A HREF="motion.html#as">as</A> if &quot;<A HREF="editing.html#:confirm">:confirm</A>&quot;
		is used.  (Negri)
<A HREF="options.html#'cscopeprg'">'cscopeprg'</A>
<A HREF="options.html#'cscopetag'">'cscopetag'</A>
<A HREF="options.html#'cscopetagorder'">'cscopetagorder'</A>
<A HREF="options.html#'cscopeverbose'">'cscopeverbose'</A>	Set the |<A HREF="if_cscop.html#cscope">cscope</A>| behavior.
<A HREF="options.html#'filetype'">'filetype'</A>	<A HREF="os_risc.html#RISC-OS">RISC-OS</A> specific type of file.
<A HREF="options.html#'grepformat'">'grepformat'</A>
<A HREF="options.html#'grepprg'">'grepprg'</A>	For the |<A HREF="quickfix.html#:grep">:grep</A>| command.
<A HREF="options.html#'keymodel'">'keymodel'</A>	Tells to use shifted special keys to start a <A HREF="visual.html#Visual">Visual</A> or <A HREF="visual.html#Select">Select</A>
		mode selection.
<A HREF="options.html#'listchars'">'listchars'</A>	Set character to show in <A HREF="options.html#'list'">'list'</A> mode for end-of-line, tabs and
		trailing spaces. (partly by Smith) Also sets character to
		display if a line doesn't fit when <A HREF="options.html#'nowrap'">'nowrap'</A> is set.
<A HREF="options.html#'matchpairs'">'matchpairs'</A>	Allows matching '<A HREF="change.html#&lt;">&lt;</A>' with '<A HREF="change.html#&gt;">&gt;</A>', and other single character
		pairs.
<A HREF="options.html#'mousefocus'">'mousefocus'</A>	Window focus follows mouse (partly by Terhaar).  Changing the
		focus with a keyboard command moves the pointer to that
		<A HREF="windows.html#window">window</A>.  Also move the pointer when <A HREF="change.html#changing">changing</A> the <A HREF="windows.html#window">window</A> layout
		(split <A HREF="windows.html#window">window</A>, change <A HREF="windows.html#window">window</A> height, etc.).
<A HREF="options.html#'mousemodel'">'mousemodel'</A>	Change use of mouse buttons.
<A HREF="options.html#'selection'">'selection'</A>	When set to &quot;<A HREF="motion.html#inclusive">inclusive</A>&quot; or &quot;<A HREF="motion.html#exclusive">exclusive</A>&quot;, the cursor can go one
		character past the end of the line in <A HREF="visual.html#Visual">Visual</A> or <A HREF="visual.html#Select">Select</A> mode.
		When set to &quot;old&quot; the old behavior is used.  When
		&quot;<A HREF="motion.html#inclusive">inclusive</A>&quot;, the character under the cursor is included in the
		operation.  When using &quot;<A HREF="motion.html#exclusive">exclusive</A>&quot;, the new &quot;ve&quot; entry of
		<A HREF="options.html#'guicursor'">'guicursor'</A> is used.  The default is a vertical <A HREF="motion.html#bar">bar</A>.
<A HREF="options.html#'selectmode'">'selectmode'</A>	Tells when to start <A HREF="visual.html#Select">Select</A> mode instead of <A HREF="visual.html#Visual">Visual</A> mode.
<A HREF="options.html#'sessionoptions'">'sessionoptions'</A> Sets behavior of &quot;<A HREF="starting.html#:mksession">:mksession</A>&quot;. (Negri)
<A HREF="options.html#'showfulltag'">'showfulltag'</A>	When completing a <A HREF="tagsrch.html#tag">tag</A> in <A HREF="insert.html#Insert">Insert</A> mode, show the <A HREF="tagsrch.html#tag">tag</A> search
		<A HREF="pattern.html#pattern">pattern</A> (tidied up) <A HREF="motion.html#as">as</A> a choice <A HREF="motion.html#as">as</A> well (if there is one).
<A HREF="options.html#'swapfile'">'swapfile'</A>	Whether to use a swap file for a buffer.
<A HREF="options.html#'syntax'">'syntax'</A>	When <A HREF="motion.html#it">it</A> is set, the <A HREF="syntax.html#syntax">syntax</A> by that name is loaded.  Allows for
		setting a specific <A HREF="syntax.html#syntax">syntax</A> from a <A HREF="options.html#modeline">modeline</A>.
<A HREF="options.html#'ttymouse'">'ttymouse'</A>	Allows using xterm mouse codes for terminals which name
		doesn't start with &quot;xterm&quot;.
<A HREF="options.html#'wildignore'">'wildignore'</A>	<A HREF="eval.html#List">List</A> of patterns for files that should not be completed at
		all.
<A HREF="options.html#'wildmode'">'wildmode'</A>	Can be used to set the type of expansion for <A HREF="options.html#'wildchar'">'wildchar'</A>.
		Replaces the <A HREF="tagsrch.html#CTRL-T">CTRL-T</A> command for command line completion.
		Don't beep when listing all matches.
<A HREF="options.html#'winaltkeys'">'winaltkeys'</A>	<A HREF="os_win32.html#Win32">Win32</A> and <A HREF="gui_x11.html#Motif">Motif</A> <A HREF="gui.html#GUI">GUI</A>.  When &quot;yes&quot;, ALT keys are handled
		entirely by the <A HREF="windows.html#window">window</A> system.  When &quot;no&quot;, ALT keys are never
		used by the <A HREF="windows.html#window">window</A> system.  When &quot;menu&quot; <A HREF="motion.html#it">it</A> depends on whether
		a key is a menu shortcut.
<A HREF="options.html#'winminheight'">'winminheight'</A>	Minimal height for each <A HREF="windows.html#window">window</A>.  Default is 1.  Set to 0 if
		you want zero-line <A HREF="windows.html#windows">windows</A>.  Scrollbar is removed for
		zero-height <A HREF="windows.html#windows">windows</A>. (Negri)




New <A HREF="intro.html#Ex">Ex</A> commands						*<A NAME="new-ex-commands-5.2"></A><B>new-ex-commands-5.2</B>*

|<A HREF="windows.html#:badd">:badd</A>|		Add file name to buffer <A HREF="eval.html#list">list</A> without side effects.  (Negri)
|<A HREF="gui.html#:behave">:behave</A>|	Quickly set <A HREF="os_win32.html#MS-Windows">MS-Windows</A> or xterm behavior.
|<A HREF="editing.html#:browse">:browse</A>|	Use file selection <A HREF="gui_w32.html#dialog">dialog</A>.
|<A HREF="eval.html#:call">:call</A>|		Call a function, optionally with a range.
|<A HREF="quickfix.html#:cnewer">:cnewer</A>|
|<A HREF="quickfix.html#:colder">:colder</A>|	To access a stack of <A HREF="quickfix.html#quickfix">quickfix</A> error lists.
|<A HREF="map.html#:comclear">:comclear</A>|	Clear all user-defined commands.
|<A HREF="map.html#:command">:command</A>|	Define a user command.
|<A HREF="eval.html#:continue">:continue</A>|	Go back to &quot;<A HREF="eval.html#:while">:while</A>&quot;.
|<A HREF="editing.html#:confirm">:confirm</A>|	Ask confirmation if something unexpected happens.
|<A HREF="if_cscop.html#:cscope">:cscope</A>|	Execute cscope command.
|<A HREF="if_cscop.html#:cstag">:cstag</A>|	Use <A HREF="if_cscop.html#cscope">cscope</A> to jump to a tag.
|<A HREF="map.html#:delcommand">:delcommand</A>|	Delete a user-defined command.
|<A HREF="eval.html#:delfunction">:delfunction</A>|	Delete a user-defined function.
|<A HREF="eval.html#:endfunction">:endfunction</A>|	End of user-defined function.
|<A HREF="eval.html#:function">:function</A>|	Define a user function.
|<A HREF="quickfix.html#:grep">:grep</A>|		Works similar to &quot;<A HREF="quickfix.html#:make">:make</A>&quot;. (Negri)
|<A HREF="starting.html#:mksession">:mksession</A>|	Create a session file.
|<A HREF="pattern.html#:nohlsearch">:nohlsearch</A>|	Stop <A HREF="options.html#'hlsearch'">'hlsearch'</A> highlighting for a moment.
|<A HREF="various.html#:Print">:Print</A>|	This is <A HREF="intro.html#Vi">Vi</A> compatible.  Does the same <A HREF="motion.html#as">as</A> &quot;<A HREF="various.html#:print">:print</A>&quot;.
|<A HREF="change.html#:promptfind">:promptfind</A>|	Search <A HREF="gui_w32.html#dialog">dialog</A> (Win32 <A HREF="gui.html#GUI">GUI</A>).
|<A HREF="change.html#:promptrepl">:promptrepl</A>|	Search/replace <A HREF="gui_w32.html#dialog">dialog</A> (Win32 <A HREF="gui.html#GUI">GUI</A>).
|<A HREF="eval.html#:return">:return</A>|	Return from a user-defined function.
|<A HREF="gui_w32.html#:simalt">:simalt</A>|	<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Simulate alt-key pressed.  (Negri)
|<A HREF="change.html#:smagic">:smagic</A>|	Like &quot;<A HREF="change.html#:substitute">:substitute</A>&quot;, but always use <A HREF="options.html#'magic'">'magic'</A>.
|<A HREF="change.html#:snomagic">:snomagic</A>|	Like &quot;<A HREF="change.html#:substitute">:substitute</A>&quot;, but always use <A HREF="options.html#'nomagic'">'nomagic'</A>.
|<A HREF="if_tcl.html#:tcl">:tcl</A>|		Execute <A HREF="if_tcl.html#TCL">TCL</A> command.
|<A HREF="if_tcl.html#:tcldo">:tcldo</A>|	Execute <A HREF="if_tcl.html#TCL">TCL</A> command for a range of lines.
|<A HREF="if_tcl.html#:tclfile">:tclfile</A>|	Execute a <A HREF="if_tcl.html#TCL">TCL</A> <A HREF="usr_41.html#script">script</A> file.
|<A HREF="gui_w32.html#:tearoff">:tearoff</A>|	Tear-off a menu (Win32 <A HREF="gui.html#GUI">GUI</A>).
|<A HREF="gui.html#:tmenu">:tmenu</A>|
|<A HREF="gui.html#:tunmenu">:tunmenu</A>|	<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: menu tooltips.  (Negri)
|<A HREF="repeat.html#:star">:star</A>|	:*	Execute a <A HREF="sponsor.html#register">register</A>.



Changed							*<A NAME="changed-5.2"></A><B>changed-5.2</B>*

Renamed <A HREF="eval.html#functions">functions</A>:
		<A HREF="eval.html#buffer_exists()">buffer_exists()</A>	   -&gt; <A HREF="eval.html#bufexists()">bufexists()</A>
		<A HREF="eval.html#buffer_name()">buffer_name()</A>      -&gt; <A HREF="eval.html#bufname()">bufname()</A>
		<A HREF="eval.html#buffer_number()">buffer_number()</A>    -&gt; <A HREF="eval.html#bufnr()">bufnr()</A>
		<A HREF="eval.html#file_readable()">file_readable()</A>    -&gt; <A HREF="eval.html#filereadable()">filereadable()</A>
		<A HREF="eval.html#highlight_exists()">highlight_exists()</A> -&gt; <A HREF="eval.html#hlexists()">hlexists()</A>
		<A HREF="eval.html#highlightID()">highlightID()</A>      -&gt; <A HREF="eval.html#hlID()">hlID()</A>
		<A HREF="eval.html#last_buffer_nr()">last_buffer_nr()</A>   -&gt; bufnr(&quot;$&quot;)
The old ones are still there, for backwards compatibility.

The CTRL-_ command in <A HREF="insert.html#Insert">Insert</A> and <A HREF="cmdline.html#Command-line">Command-line</A> mode is only available when the
new <A HREF="options.html#'allowrevins'">'allowrevins'</A> option is set.  Avoids that people who want to type SHIFT-_
accidentally enter reverse <A HREF="insert.html#Insert">Insert</A> mode, and don't know how to get out.

When a file name path in &quot;<A HREF="tagsrch.html#:tselect">:tselect</A>&quot; listing is too long, remove a part in the
middle and put &quot;<A HREF="eval.html#...">...</A>&quot; there.

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Made font selector appear inside Vim <A HREF="windows.html#window">window</A>, not just any odd
place. (Negri)

&quot;<A HREF="windows.html#:bn">:bn</A>&quot; skips help <A HREF="windows.html#buffers">buffers</A>, unless currently in a help buffer. (Negri)

When there is a status line and only one <A HREF="windows.html#window">window</A>, don't show '<A HREF="motion.html#^">^</A>' in the status
line of the current <A HREF="windows.html#window">window</A>.

&quot;:*&quot; used to be used for &quot;'&lt;,'&gt;&quot;, the <A HREF="visual.html#Visual">Visual</A> area.  But in <A HREF="intro.html#Vi">Vi</A> it's used <A HREF="motion.html#as">as</A> an
alternative for &quot;<A HREF="repeat.html#:@">:@</A>&quot;.  When <A HREF="options.html#'cpoptions'">'cpoptions'</A> includes '*' this is <A HREF="intro.html#Vi">Vi</A> compatible.

When <A HREF="options.html#'insertmode'">'insertmode'</A> is set, using <A HREF="motion.html#CTRL-O">CTRL-O</A> to execute a <A HREF="map.html#mapping">mapping</A> will work like
<A HREF="options.html#'insertmode'">'insertmode'</A> was not set.  This allows &quot;normal&quot; mappings to be used even when
<A HREF="options.html#'insertmode'">'insertmode'</A> is set.

When <A HREF="options.html#'mouse'">'mouse'</A> was set already (e.g., in the <A HREF="starting.html#.vimrc">.vimrc</A> file), don't automatically
set <A HREF="options.html#'mouse'">'mouse'</A> when the <A HREF="gui.html#GUI">GUI</A> starts.

Removed the '<A HREF="pattern.html#N">N</A>', '<A HREF="insert.html#I">I</A>' and '<A HREF="insert.html#A">A</A>' flags from the <A HREF="options.html#'mouse'">'mouse'</A> option.

Renamed &quot;toggle option&quot; to &quot;<A HREF="options.html#boolean">boolean</A> option&quot;.  Some people thought that &quot;<A HREF="options.html#:set">:set</A>
xyz&quot; would toggle 'xyz' on/off each time.

The internal variable &quot;shell_error&quot; contains the error code from the shell,
instead of just 0 or 1.

When <A HREF="insert.html#inserting">inserting</A> or <A HREF="change.html#replacing">replacing</A>, typing <A HREF="visual.html#CTRL-V">CTRL-V</A> CTRL-&lt;CR&gt; used to insert &quot;&lt;C-CR&gt;&quot;.
That is not very useful.  Now the CTRL key is ignored and a <A HREF="motion.html#&lt;CR&gt;">&lt;CR&gt;</A> is inserted.
Same for all other &quot;normal&quot; keys with modifiers.  Mapping these modified key
combinations is still possible.
In <A HREF="insert.html#Insert">Insert</A> mode, &lt;C-CR&gt; and &lt;S-Space&gt; can be inserted by using CTRL-K and then
the special character.

Moved &quot;<A HREF="quotes.html#quotes">quotes</A>&quot; file to doc/quotes.txt, and &quot;<A HREF="todo.html#todo">todo</A>&quot; file to doc/todo.txt.  They
are now installed like other documentation files.

<A HREF="eval.html#winheight()">winheight()</A> function returns -1 for a non-existing <A HREF="windows.html#window">window</A>.  It used to be
zero, but that is a valid height now.

The default for <A HREF="options.html#'selection'">'selection'</A> is &quot;<A HREF="motion.html#inclusive">inclusive</A>&quot;, which makes a difference when
using &quot;<A HREF="motion.html#$">$</A>&quot; or the mouse to move the cursor in <A HREF="visual.html#Visual">Visual</A> mode.

&quot;:q!&quot; does not exit when there are changed <A HREF="windows.html#buffers">buffers</A> which are hidden.  Use
&quot;:qa!&quot; to exit anyway.

Disabled the Perl/Python/Tcl interfaces by default.  Not many people use them
and they make the executable a lot bigger.  The internal scripting language is
now powerful enough for most tasks.

The strings from the <A HREF="options.html#'titlestring'">'titlestring'</A> and <A HREF="options.html#'iconstring'">'iconstring'</A> <A HREF="options.html#options">options</A> are used
untranslated for the Window title and icon.  This allows for including a <A HREF="motion.html#&lt;CR&gt;">&lt;CR&gt;</A>.
Previously a <A HREF="motion.html#&lt;CR&gt;">&lt;CR&gt;</A> would be shown <A HREF="motion.html#as">as</A> &quot;^M&quot; (two characters).

When a <A HREF="map.html#mapping">mapping</A> is started in <A HREF="visual.html#Visual">Visual</A> or <A HREF="visual.html#Select">Select</A> mode which was started from
<A HREF="insert.html#Insert">Insert</A> mode (the mode shows &quot;(insert) Visual&quot;), don't return to <A HREF="insert.html#Insert">Insert</A> mode
until the <A HREF="map.html#mapping">mapping</A> has ended.  Makes <A HREF="motion.html#it">it</A> possible to use a <A HREF="map.html#mapping">mapping</A> in <A HREF="visual.html#Visual">Visual</A>
mode that also works when the <A HREF="visual.html#Visual">Visual</A> mode was started from <A HREF="visual.html#Select">Select</A> mode.

Menus in $VIMRUNTIME/menu.vim no longer overrule existing <A HREF="gui.html#menus">menus</A>.  This helps
when defining <A HREF="gui.html#menus">menus</A> in the <A HREF="starting.html#.vimrc">.vimrc</A> file, or when sourcing <A HREF="gui_w32.html#mswin.vim">mswin.vim</A>.

<A HREF="os_unix.html#Unix">Unix</A>: Use /var/tmp for .swp files, if <A HREF="motion.html#it">it</A> exists.  Files there survive a
reboot (at least on Linux).



Added							*<A NAME="added-5.2"></A><B>added-5.2</B>*

--with-motif-lib configure argument.  Allows for using a static <A HREF="gui_x11.html#Motif">Motif</A> library.

Support for <A HREF="map.html#mapping">mapping</A> numeric keypad +,-,*,/ keys. (Negri)
When not mapped, they produce the normal character.

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When directory dropped on Gvim, cd there and edit new buffer.
(Negri)

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Made CTRL-Break work <A HREF="motion.html#as">as</A> interrupt, so that <A HREF="pattern.html#CTRL-C">CTRL-C</A> can be
used for mappings.

In the output of &quot;<A HREF="map.html#:map">:map</A>&quot;, highlight the &quot;*&quot; to make clear it's not part of the
rhs. (Roemer)

When showing the <A HREF="visual.html#Visual">Visual</A> area, the cursor is not switched off, so that <A HREF="motion.html#it">it</A> can
be located.  The <A HREF="visual.html#Visual">Visual</A> area is now highlighted with a grey background in the
<A HREF="gui.html#GUI">GUI</A>.  This makes the cursor visible when it's also reversed.

<A HREF="os_win32.html#Win32">Win32</A>: When started with single full pathname (e.g. via double-clicked file),
cd to that file's directory. (Negri)

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Tear-off <A HREF="gui.html#menus">menus</A>, with &quot;<A HREF="gui_w32.html#:tearoff">:tearoff</A> &lt;menu-name&gt;&quot; command. (Negri)
'<A HREF="motion.html#t">t</A>' option to <A HREF="options.html#'guioptions'">'guioptions'</A>: Add tearoff menu items for <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A> and <A HREF="gui_x11.html#Motif">Motif</A>.
It's included by default.
<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: tearoff menu with submenus is indicated with a &quot;<A HREF="change.html#&gt;&gt;">&gt;&gt;</A>&quot;. (Negri)

Added ^Kaa and ^KAA <A HREF="digraph.html#digraphs">digraphs</A>.
Added &quot;euro&quot; symbol to digraph.c. (Corry)

Support for <A HREF="gui_x11.html#Motif">Motif</A> menu shortcut keys, using '<A HREF="change.html#&amp;">&amp;</A>' like <A HREF="os_win32.html#MS-Windows">MS-Windows</A> (Ollis).
Other GUIs ignore '<A HREF="change.html#&amp;">&amp;</A>' in a menu name.

DJGPP: Faster screen updating (John Lange).

Clustering of <A HREF="syntax.html#syntax">syntax</A> groups &quot;<A HREF="syntax.html#:syntax">:syntax</A> cluster&quot; (Bigham).
Including <A HREF="syntax.html#syntax">syntax</A> files: &quot;<A HREF="syntax.html#:syntax">:syntax</A> include&quot; (Bigham).

Keep column when switching <A HREF="windows.html#buffers">buffers</A>, when <A HREF="options.html#'nosol'">'nosol'</A> is set (Radics).

<A HREF="eval.html#Number">Number</A> function for <A HREF="if_perl.html#Perl">Perl</A> interface.

Support for Intellimouse in <A HREF="gui_x11.html#Athena">Athena</A> <A HREF="gui.html#GUI">GUI</A>. (Jensen)

&quot;<A HREF="various.html#:sleep">:sleep</A>&quot; also accepts an argument in milliseconds, when &quot;<A HREF="motion.html#m">m</A>&quot; is used.

Added '<A HREF="change.html#p">p</A>' flag in <A HREF="options.html#'guioptions'">'guioptions'</A>: Install callbacks for enter/leave <A HREF="windows.html#window">window</A>
events.  Makes cursor blinking work for Terhaar, breaks <A HREF="motion.html#it">it</A> for me.

&quot;<A HREF="starting.html#--help">--help</A>&quot; and &quot;<A HREF="starting.html#--version">--version</A>&quot; command-line arguments.

Non-text in &quot;<A HREF="various.html#:list">:list</A>&quot; output is highlighted with NonText.

Added text <A HREF="index.html#objects">objects</A>: &quot;<A HREF="motion.html#i(">i(</A>&quot; and &quot;<A HREF="motion.html#i)">i)</A>&quot; <A HREF="motion.html#as">as</A> synonym for &quot;<A HREF="motion.html#ib">ib</A>&quot;.  &quot;<A HREF="motion.html#i{">i{</A>&quot; and &quot;<A HREF="motion.html#i}">i}</A>&quot; <A HREF="motion.html#as">as</A>
synonym for &quot;<A HREF="motion.html#iB">iB</A>&quot;.  New: &quot;<A HREF="motion.html#i&lt;">i&lt;</A>&quot; and &quot;<A HREF="motion.html#i&gt;">i&gt;</A>&quot;, to select &lt;thing&gt;.  All this also for
&quot;<A HREF="insert.html#a">a</A>&quot; <A HREF="index.html#objects">objects</A>.

'<A HREF="insert.html#O">O</A>' flag in <A HREF="options.html#'shortmess'">'shortmess'</A>: message for reading a file overwrites any previous
message. (Negri)

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: '<A HREF="motion.html#T">T</A>' flag in <A HREF="options.html#'guioptions'">'guioptions'</A>: switch toolbar on/off.
Included a <A HREF="eval.html#list">list</A> with self-made toolbar bitmaps.  (Negri)

Added menu priority for sub-menus.  Implemented for <A HREF="os_win32.html#Win32">Win32</A> and <A HREF="gui_x11.html#Motif">Motif</A> <A HREF="gui.html#GUI">GUI</A>.
Display menu priority with &quot;<A HREF="gui.html#:menu">:menu</A>&quot; command.
Default and <A HREF="autocmd.html#Syntax">Syntax</A> <A HREF="gui.html#menus">menus</A> now include priority for items.  Allows <A HREF="insert.html#inserting">inserting</A>
menu items in between the default ones.

When the <A HREF="options.html#'number'">'number'</A> option is on, highlight line numbers with the LineNr group.

&quot;Ignore&quot; highlight group: Text highlighted with this is made blank.  It is
used to hide special characters in the help text.

Included Exuberant Ctags version 2.3, with C++ support, Java support and
recurse into directories. (Hiebert)

When a <A HREF="tagsrch.html#tags">tags</A> file is not sorted, and this is detected (in a simplistic way), an
error message is given.

&quot;<A HREF="eval.html#:unlet">:unlet</A>&quot; accepts a &quot;<A HREF="change.html#!">!</A>&quot;, to ignore non-existing <A HREF="eval.html#variables">variables</A>, and accepts more
than one argument. (Roemer)
Completion of variable names for &quot;<A HREF="eval.html#:unlet">:unlet</A>&quot;. (Roemer)

When there is an error in a function which is called by another function, show
the call stack in the error message.

New file name modifiers:
&quot;<A HREF="cmdline.html#:.">:.</A>&quot;: reduce file name to be relative to current dir.
&quot;<A HREF="change.html#:~">:~</A>&quot;: reduce file name to be relative to home dir.
&quot;:s?pat?sub?&quot;: substitute &quot;pat&quot; with &quot;sub&quot; once.
&quot;:gs?pat?sub?&quot;: substitute &quot;pat&quot; with &quot;sub&quot; globally.

New configure arguments: --enable-min-features and --enable-max-features.
Easy way to switch to minimum or maximum features.

New compile-time feature: modify_fname.  For file name modifiers, e.g,
&quot;&#37;:p:h&quot;.  Can be disabled to save some code (16 bit <A HREF="os_dos.html#DOS">DOS</A>).

When using whole-line completion in <A HREF="insert.html#Insert">Insert</A> mode, and <A HREF="options.html#'cindent'">'cindent'</A> is set, indent
the line properly.

<A HREF="os_msdos.html#MSDOS">MSDOS</A> and <A HREF="os_win32.html#Win32">Win32</A> console: <A HREF="options.html#'guicursor'">'guicursor'</A> sets cursor thickness. (Negri)

Included new set of <A HREF="farsi.html#Farsi">Farsi</A> fonts. (Shiran)

Accelerator text now also works in <A HREF="gui_x11.html#Motif">Motif</A>.  All <A HREF="gui.html#menus">menus</A> can be defined with <A HREF="change.html#&amp;">&amp;</A> for
mnemonic and TAB for accelerator text.  They are ignored on systems that don't
support them.
When removing or <A HREF="change.html#replacing">replacing</A> a menu, compare the menu name only up to the <A HREF="motion.html#&lt;Tab&gt;">&lt;Tab&gt;</A>
before the mnemonic.

'<A HREF="insert.html#i">i</A>' and '<A HREF="insert.html#I">I</A>' flags after &quot;<A HREF="change.html#:substitute">:substitute</A>&quot;: ignore <A HREF="change.html#case">case</A> or not.

&quot;make install&quot; complains if the runtime files are missing.

<A HREF="os_unix.html#Unix">Unix</A>: When finding an existing swap file that can't be opened, mention the
owner of the file in the <A HREF="usr_11.html#ATTENTION">ATTENTION</A> message.

The '<A HREF="insert.html#i">i</A>', '<A HREF="motion.html#t">t</A>' and '<A HREF="motion.html#k">k</A>' <A HREF="options.html#options">options</A> in <A HREF="options.html#'complete'">'complete'</A> now also print the place where they
are looking for matches. (Acevedo)

&quot;<A HREF="change.html#gJ">gJ</A>&quot; command: Join lines without <A HREF="insert.html#inserting">inserting</A> a space.

Setting <A HREF="options.html#'keywordprg'">'keywordprg'</A> to &quot;man -s&quot; is handled specifically.  The &quot;<A HREF="starting.html#-s">-s</A>&quot; is removed
when no <A HREF="intro.html#count">count</A> given, the <A HREF="intro.html#count">count</A> is added otherwise.  Configure checks if &quot;man
<A HREF="starting.html#-s">-s</A> 2 read&quot; works, and sets the default for <A HREF="options.html#'keywordprg'">'keywordprg'</A> accordingly.

If you <A HREF="diff.html#do">do</A> a &quot;<A HREF="windows.html#:bd">:bd</A>&quot; and there is only one <A HREF="windows.html#window">window</A> open, Vim tries to move to a
buffer of the same type (i.e. non-help to non-help, help to help), for
consistent behavior to :bnext/:bprev. (Negri)

Allow &quot;<A HREF="map.html#&lt;Nop&gt;">&lt;Nop&gt;</A>&quot; to be used <A HREF="motion.html#as">as</A> the rhs of a <A HREF="map.html#mapping">mapping</A>.  &quot;<A HREF="map.html#:map">:map</A> xx &lt;Nop&gt;&quot;, maps &quot;xx&quot;
to nothing at all.

In a &quot;<A HREF="gui.html#:menu">:menu</A>&quot; command, &quot;<A HREF="motion.html#&lt;Tab&gt;">&lt;Tab&gt;</A>&quot; can be used instead of a real <A HREF="intro.html#tab">tab</A>, in the menu
path.  This makes <A HREF="motion.html#it">it</A> more <A HREF="starting.html#easy">easy</A> to type, no <A HREF="intro.html#backslash">backslash</A> needed.

POSIX compatible character classes for <A HREF="pattern.html#regexp">regexp</A> patterns: <A HREF="pattern.html#[:alnum:]">[:alnum:]</A>, <A HREF="pattern.html#[:alpha:]">[:alpha:]</A>,
<A HREF="pattern.html#[:blank:]">[:blank:]</A>, <A HREF="pattern.html#[:cntrl:]">[:cntrl:]</A>, <A HREF="pattern.html#[:digit:]">[:digit:]</A>, <A HREF="pattern.html#[:graph:]">[:graph:]</A>, <A HREF="pattern.html#[:lower:]">[:lower:]</A>, <A HREF="pattern.html#[:print:]">[:print:]</A>, <A HREF="pattern.html#[:punct:]">[:punct:]</A>,
<A HREF="pattern.html#[:space:]">[:space:]</A>, <A HREF="pattern.html#[:upper:]">[:upper:]</A> and <A HREF="pattern.html#[:xdigit:]">[:xdigit:]</A>. (Briscoe)

<A HREF="pattern.html#regexp">regexp</A> character classes (for fast <A HREF="syntax.html#syntax">syntax</A> highlight matching):
	digits:	    \d [0-9]		\D  not digit (Roemer)
	hex:	    \x [0-9a-fA-F]	\X  not hex
	<A HREF="eval.html#octal">octal</A>:	    \o [0-7]		\O  not <A HREF="eval.html#octal">octal</A>
	<A HREF="motion.html#word">word</A>:	    \w [a-zA-Z0-9_]	\W  not <A HREF="motion.html#word">word</A>
	head:	    \h [a-zA-Z_]	\H  not head
	alphabetic: \a [a-zA-Z]		\A  not alphabetic
	<A HREF="change.html#lowercase">lowercase</A>:  \l [a-z]		\L  not <A HREF="change.html#lowercase">lowercase</A>
	<A HREF="change.html#uppercase">uppercase</A>:  \u [A-Z]		\U  not <A HREF="change.html#uppercase">uppercase</A>

&quot;<A HREF="options.html#:set">:set</A>&quot; now accepts &quot;+=&quot;, |^=&quot; and &quot;-=&quot;: add or remove parts of a <A HREF="eval.html#string">string</A>
option, add or subtract a number from a number option.  A comma is
automagically inserted or deleted for <A HREF="options.html#options">options</A> that are a comma separated <A HREF="eval.html#list">list</A>.

Filetype feature, for autocommands.  Uses a file type instead of a <A HREF="pattern.html#pattern">pattern</A> to
match a file.  Currently only used for RISC OS.  (Leonard)

In a <A HREF="pattern.html#pattern">pattern</A> for an <A HREF="autocmd.html#autocommand">autocommand</A>, environment <A HREF="eval.html#variables">variables</A> can be used.  They are
expanded when the <A HREF="autocmd.html#autocommand">autocommand</A> is defined.

&quot;<A HREF="autocmd.html#BufFilePre">BufFilePre</A>&quot; and &quot;<A HREF="autocmd.html#BufFilePost">BufFilePost</A>&quot; <A HREF="autocmd.html#autocommand">autocommand</A> evens: Before and after applying
the &quot;<A HREF="editing.html#:file">:file</A>&quot; command to change the name of a buffer.
&quot;<A HREF="autocmd.html#VimLeavePre">VimLeavePre</A>&quot; <A HREF="autocmd.html#autocommand">autocommand</A> event: before <A HREF="editing.html#writing">writing</A> the .viminfo file.

For autocommands argument: <A HREF="cmdline.html#&lt;abuf&gt;">&lt;abuf&gt;</A> is buffer number, like <A HREF="cmdline.html#&lt;afile&gt;">&lt;afile&gt;</A>.

Made <A HREF="syntax.html#syntax">syntax</A> highlighting a bit faster when <A HREF="scroll.html#scrolling">scrolling</A> backwards, by keeping
more syncing context.

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Made <A HREF="scroll.html#scrolling">scrolling</A> faster by avoiding a redraw when <A HREF="change.html#deleting">deleting</A> or
<A HREF="insert.html#inserting">inserting</A> screen lines.

<A HREF="gui.html#GUI">GUI</A>: Made <A HREF="scroll.html#scrolling">scrolling</A> faster by not redrawing the scrollbar when the thumb moved
<A HREF="various.html#less">less</A> than a pixel.

Included &quot;<A HREF="syntax.html#:highlight">:highlight</A>&quot; in <A HREF="intro.html#bugreport.vim">bugreport.vim</A>.

Created install.exe program, for simplistic installation on <A HREF="os_dos.html#DOS">DOS</A> and
<A HREF="os_win32.html#MS-Windows">MS-Windows</A>.

New <A HREF="sponsor.html#register">register</A>: '<A HREF="motion.html#_">_</A>', the black hole.  When <A HREF="editing.html#writing">writing</A> to <A HREF="motion.html#it">it</A>, nothing happens.  When
reading from <A HREF="motion.html#it">it</A>, it's always empty.  Can be used to avoid a delete or change
command to modify the <A HREF="change.html#registers">registers</A>, or reduce memory use for big changes.

<A HREF="visual.html#CTRL-V">CTRL-V</A> xff enters character by hex number.  <A HREF="visual.html#CTRL-V">CTRL-V</A> o123 enters character by
<A HREF="eval.html#octal">octal</A> number. (Aaron)

Improved performance of <A HREF="syntax.html#syntax">syntax</A> highlighting by skipping check for &quot;keepend&quot;
when there isn't any.

Moved the mode message (&quot;-- INSERT --&quot;) to the last line of the screen.  When
<A HREF="options.html#'cmdheight'">'cmdheight'</A> is more than one, <A HREF="message.html#messages">messages</A> will remain readable.

When listing matching files, they are also sorted on <A HREF="options.html#'suffixes'">'suffixes'</A>, such that
they are listed in the same order <A HREF="motion.html#as">as</A> <A HREF="motion.html#CTRL-N">CTRL-N</A> retrieves them.

<A HREF="eval.html#synIDattr()">synIDattr()</A> takes a third argument (optionally), which tells for which
<A HREF="terminal.html#terminal">terminal</A> type to get the attributes for.  This makes <A HREF="motion.html#it">it</A> possible to run
<A HREF="syntax.html#2html.vim">2html.vim</A> outside of <A HREF="starting.html#gvim">gvim</A> (using color names instead of #RRGGBB).

Memory <A HREF="repeat.html#profiling">profiling</A>, only for debugging.  Prints at exit, and with &quot;g^A&quot; command.
(Kahn)

<A HREF="os_dos.html#DOS">DOS</A>: When using a file in the current drive, remove the drive name:
&quot;A:\dir\file&quot; -&gt; &quot;\dir\file&quot;.  This helps when moving a session file on a
floppy from &quot;A:\dir&quot; to &quot;B:\dir&quot;.

Increased number of remembered jumps from 30 to 50 per <A HREF="windows.html#window">window</A>.

Command to temporarily disable <A HREF="options.html#'hls'">'hls'</A> highlighting until the next search:
&quot;<A HREF="pattern.html#:nohlsearch">:nohlsearch</A>&quot;.

&quot;<A HREF="change.html#gp">gp</A>&quot; and &quot;<A HREF="change.html#gP">gP</A>&quot; commands: like &quot;<A HREF="change.html#p">p</A>&quot; and &quot;<A HREF="change.html#P">P</A>&quot;, but leave the cursor just after the
inserted text.  Used for the <A HREF="visual.html#CTRL-V">CTRL-V</A> command in <A HREF="os_win32.html#MS-Windows">MS-Windows</A> mode.



Fixed							*<A NAME="fixed-5.2"></A><B>fixed-5.2</B>*

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Could draw text <A HREF="if_cscop.html#twice">twice</A> in one place, for fake-bold text.  Removed
this, Windows will handle the <A HREF="syntax.html#bold">bold</A> text anyway. (Negri)

patch 5.1.1: Win32s <A HREF="gui.html#GUI">GUI</A>: pasting caused a crash (Negri)

patch 5.1.2: When entering another <A HREF="windows.html#window">window</A>, where characters before the cursor
have been deleted, could have a cursor beyond the end of the line.

patch 5.1.3: Win32s <A HREF="gui.html#GUI">GUI</A>: Didn't wait for external command to finish. (Negri)

patch 5.1.4: Makefile.w32 can now also be used to generate the OLE version
(Scott).

patch 5.1.5: Crashed when using <A HREF="syntax.html#syntax">syntax</A> highlighting: cursor on a line that
doesn't fit in the <A HREF="windows.html#window">window</A>, and splitting that line in two.

patch 5.1.6: <A HREF="visual.html#Visual">Visual</A> highlighting bug: After &quot;<A HREF="options.html#:set">:set</A> <A HREF="options.html#'nowrap'">nowrap</A>&quot; go to end of line
(so that the <A HREF="windows.html#window">window</A> scrolls horizontally), &quot;<A HREF="options.html#:set">:set</A> <A HREF="options.html#'wrap'">wrap</A>&quot;  Following <A HREF="visual.html#Visual">Visual</A>
selection was wrong.

patch 5.1.7: When <A HREF="options.html#'tagbsearch'">'tagbsearch'</A> off, and <A HREF="options.html#'ignorecase'">'ignorecase'</A> off, still could <A HREF="diff.html#do">do</A>
binary searching.

patch 5.1.8: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: dragging the scrollbar didn't update the ruler.

patch 5.1.9: Using &quot;<A HREF="gui_x11.html#:gui">:gui</A>&quot; in <A HREF="starting.html#.vimrc">.vimrc</A>, caused xterm cursor to disappear.

patch 5.1.10: A <A HREF="motion.html#CTRL-N">CTRL-N</A> in <A HREF="insert.html#Insert">Insert</A> mode could cause a crash, when a buffer
without a name exists.

patch 5.1.11: &quot;make test&quot; didn't work in the shadow directory.  Also adjusted
&quot;make shadow&quot; for the links in the <A HREF="tagsrch.html#ctags">ctags</A> directory.

patch 5.1.12: &quot;buf 123foo&quot; used &quot;123&quot; <A HREF="motion.html#as">as</A> a <A HREF="intro.html#count">count</A>, instead <A HREF="motion.html#as">as</A> the start of a
buffer name.

patch 5.1.13: When completing file names on the command-line, reallocating the
command-line may go wrong.

patch 5.1.14: &quot;:[nvci]unmenu&quot; removed menu for all modes, when full menu patch
specified.

Graceful handling of NULLs in drag-dropped file <A HREF="eval.html#list">list</A>.  Handle passing NULL to
Fullname_save(). (Negri)

<A HREF="os_win32.html#Win32">Win32</A>: &quot;<A HREF="os_win32.html#:!start">:!start</A>&quot; to invoke a program without opening a console, swapping
screens, or waiting for completion in either console or <A HREF="gui.html#gui">gui</A> version, e.g. you
can type &quot;<A HREF="os_win32.html#:!start">:!start</A> winfile&quot;.  ALSO fixes &quot;can't delete swapfile after spawning
a shell&quot; bug. (enhancement of Aaron patch) (Negri)

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Fix <A HREF="change.html#CTRL-X">CTRL-X</A> default keymapping to be more Windows-like. (Negri)

Shorten filenames on <A HREF="starting.html#startup">startup</A>.  If in /foo/bar, entering &quot;vim ../bar/bang.c&quot;
displays &quot;bang.c&quot; in status <A HREF="motion.html#bar">bar</A>, not &quot;/foo/bar/bang.c&quot;  (Negri)

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: No copy to Windows <A HREF="gui.html#clipboard">clipboard</A> when it's not desired.

Win32s: Fix pasting from <A HREF="gui.html#clipboard">clipboard</A> - made an assumption not valid under
Win32s. (Negri)

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Speed up calls to gui_mch_draw_string() and cursor drawing
<A HREF="eval.html#functions">functions</A>. (Negri)

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Middle mouse button emulation now works in <A HREF="gui.html#GUI">GUI</A>! (Negri)

Could skip <A HREF="message.html#messages">messages</A> when combining commands in one line, e.g.:
&quot;<A HREF="eval.html#:echo">:echo</A> &quot;hello&quot; &#124; write&quot;.

<A HREF="if_perl.html#Perl">Perl</A> interpreter was disabled before executing <A HREF="autocmd.html#VimLeave">VimLeave</A> autocommands.  Could
not use &quot;<A HREF="if_perl.html#:perl">:perl</A>&quot; in them.  (Aaron)

Included patch for the Intellimouse (Aaron/Robinson).

Could not set <A HREF="options.html#'ls'">'ls'</A> to one, when last <A HREF="windows.html#window">window</A> has only one line.  (Mitterand)

Fixed a memory leak when removing <A HREF="gui.html#menus">menus</A>.

After &quot;<A HREF="windows.html#:only">:only</A>&quot; the ruler could overwrite a message.

Dos32: removed <A HREF="change.html#changing">changing</A> of __system_flags.  It appears to work better when
it's left at the default value.

p_aleph was an int instead of along, caused trouble on systems where
sizeof(int) != sizeof(long). (Schmidt)

Fixed enum problems for Ultrix. (Seibert)

Small redraw problem: &quot;<A HREF="change.html#dd">dd</A>&quot; on last line in file cleared wrong line.

Didn't interpret &quot;cmd &#124; endif&quot; when &quot;cmd&quot; starts with a range.  E.g. &quot;if 0 |
.d &#124; endif&quot;.

Command &quot;+|&quot; on the last line of the file caused ml_get <A HREF="message.html#errors">errors</A>.

Memory underrun in eval_vars(). (Aaron)

Don't rename files in a difficult way, except on Windows 95 (was also done on
Windows NT).

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: An external command that produces an error code put the error
message in a <A HREF="gui_w32.html#dialog">dialog</A> box.  had to close the <A HREF="windows.html#window">window</A> and close the <A HREF="gui_w32.html#dialog">dialog</A>.  Now
the error code is displayed in the console. (Negri)

&quot;comctl32.lib&quot; was missing from the <A HREF="gui.html#GUI">GUI</A> libraries in Makefile.w32. (Battle)

In <A HREF="insert.html#Insert">Insert</A> mode, when entering a <A HREF="windows.html#window">window</A> in <A HREF="insert.html#Insert">Insert</A> mode, allow the cursor to be
one char beyond the text.

Renamed machine dependent <A HREF="eval.html#rename()">rename()</A> to mch_rename().  Define mch_rename() to
<A HREF="eval.html#rename()">rename()</A> when <A HREF="motion.html#it">it</A> works properly.

Rename vim_chdir() to mch_chdir(), because it's machine dependent.

When using an <A HREF="editing.html#arglist">arglist</A>, and editing file 5 of 4, &quot;<A HREF="editing.html#:q">:q</A>&quot; could cause &quot;-1 more
files to edit&quot; error.

In if_python.c, VimCommand() caused an assertion when a do_cmdline() failed.
Moved the Python_Release_Vim() to before the VimErrorCheck().  (Harkins)

Give an error message for an unknown argument after &quot;<A HREF="starting.html#--">--</A>&quot;.  E.g. for &quot;vim
--xyz&quot;.

The <A HREF="autocmd.html#FileChangedShell">FileChangedShell</A> <A HREF="autocmd.html#autocommand">autocommand</A> didn't set <A HREF="cmdline.html#&lt;afile&gt;">&lt;afile&gt;</A> to the name of the changed
file.

When doing &quot;<A HREF="editing.html#:e">:e</A> file&quot;, causing the attention message, there sometimes was no
<A HREF="message.html#hit-enter">hit-enter</A> prompt.  Caused by empty line or &quot;endif&quot; at end of sourced file.

A large number of patches for the <A HREF="os_vms.html#VMS">VMS</A> version. (Hunsaker)

When <A HREF="various.html#CTRL-L">CTRL-L</A> completion (find longest match) results in a shorter <A HREF="eval.html#string">string</A>, no
completion is done (happens with &quot;:help&quot;).

Crash in <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A> version, when using an <A HREF="intro.html#Ex">Ex</A> &quot;<A HREF="repeat.html#@">@</A>&quot; command, because
LinePointers[] was used while not initialized.

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: allow <A HREF="map.html#mapping">mapping</A> of Alt-Space.

Output from &quot;vim -h&quot; was sent to stderr.  Sending <A HREF="motion.html#it">it</A> to stdout is better, so
one can use &quot;vim <A HREF="starting.html#-h">-h</A> &#124; more&quot;.

In command-line mode, &quot;:vi[!]&quot; should <A HREF="editing.html#reload">reload</A> the file, just like &quot;:e[!]&quot;.
In <A HREF="intro.html#Ex">Ex</A> mode, &quot;<A HREF="editing.html#:vi">:vi</A>&quot; stops <A HREF="intro.html#Ex">Ex</A> mode, but doesn't <A HREF="editing.html#reload">reload</A> the file.  This is <A HREF="intro.html#Vi">Vi</A>
compatible.

When using a &quot;<A HREF="options.html#:set">:set</A> <A HREF="options.html#'ls'">ls</A>=1&quot; in the <A HREF="gui.html#.gvimrc">.gvimrc</A> file, would get a status line for a
single <A HREF="windows.html#window">window</A>.  (Robinson)

Didn't give an error message for &quot;<A HREF="options.html#:set">:set</A> ai,xx&quot;. (Roemer)
Didn't give an error message for &quot;<A HREF="options.html#:set">:set</A> ai?xx&quot;, &quot;<A HREF="options.html#:set">:set</A> ai&amp;xx&quot;, &quot;<A HREF="options.html#:set">:set</A> ai!xx&quot;.

Non-Unix systems: That a file exists but is unreadable is recognized <A HREF="motion.html#as">as</A> &quot;new
file&quot;.  Now check for existence when file can't be opened (like <A HREF="os_unix.html#Unix">Unix</A>).

<A HREF="os_unix.html#Unix">Unix</A>: osdef.sh didn't handle declarations where the function name is at the
first column of the line.

DJGPP: Shortening of file names didn't work properly, because get_cwd()
returned a path with backslashes. (Negri)

When using a <A HREF="options.html#'comments'">'comments'</A> part where a space is required after the middle part,
always insert a space when starting a new line.  Helps for C comments, below a
line with &quot;/****&quot;.

Replacing path of home directory with &quot;~/&quot; could be wrong for file names
with embedded spaces or commas.

A few fixes for the Sniff interface. (Leherbauer)

When asking to hit '<A HREF="change.html#y">y</A>' or '<A HREF="pattern.html#n">n</A>' (e.g. for &quot;:3,1d&quot;), using the mouse caused
trouble.  Same for &quot;:s/x/y/c&quot; prompt.

With <A HREF="options.html#'nowrap'">'nowrap'</A> and <A HREF="options.html#'list'">'list'</A>, a <A HREF="intro.html#Tab">Tab</A> halfway on the screen was displayed <A HREF="motion.html#as">as</A> blanks,
instead of the characters specified with <A HREF="options.html#'listchars'">'listchars'</A>.  Also for other
characters that take more than one screen character.

When setting <A HREF="options.html#'guifont'">'guifont'</A> to an unknown font name, the previous font was lost and
a default font would be used. (Steed)

<A HREF="os_dos.html#DOS">DOS</A>: Filenames in the root directory didn't get shortened properly. (Negri)

DJGPP: making a full path name out of a file name didn't work properly when
there is no _fullpath() function. (Negri)

<A HREF="os_win32.html#Win32">Win32</A> console: &quot;<A HREF="various.html#:sh">:sh</A>&quot; caused a crash. (Negri)

<A HREF="os_win32.html#Win32">Win32</A> console: Setting <A HREF="options.html#'lines'">'lines'</A> and/or <A HREF="options.html#'columns'">'columns'</A> in the <A HREF="starting.html#_vimrc">_vimrc</A> failed miserably
(could hang Windows 95). (Negri)

<A HREF="os_win32.html#Win32">Win32</A>: The change-drive function was not correct, went to the wrong drive.
(Tsindlekht)

<A HREF="gui.html#GUI">GUI</A>: When editing a command line in <A HREF="intro.html#Ex">Ex</A> mode, Tabs were sometimes not
backspaced properly, and unprintable characters were displayed directly.
non-GUI can still be wrong, because a system function is called for this.

&quot;<A HREF="options.html#:set">:set</A>&quot; didn't stop after an error.  For example &quot;<A HREF="options.html#:set">:set</A> no ai&quot; gave an error for
&quot;no&quot;, but still set &quot;ai&quot;.  Now &quot;<A HREF="options.html#:set">:set</A>&quot; stops after the first error.

When running configure for <A HREF="tagsrch.html#ctags">ctags</A>, $LDFLAGS wasn't passed to <A HREF="motion.html#it">it</A>, causing
trouble for IRIX.

&quot;@&#37;&quot; and &quot;@#&quot; when file name not set gave an error message.  Now they just
return an empty <A HREF="eval.html#string">string</A>. (Steed)

<A HREF="change.html#CTRL-X">CTRL-X</A> and <A HREF="change.html#CTRL-A">CTRL-A</A> didn't work correctly with negative hex and <A HREF="eval.html#octal">octal</A> numbers.
(Steed)

&quot;<A HREF="eval.html#:echo">:echo</A>&quot; always started with a blank.

Updating <A HREF="gui.html#GUI">GUI</A> cursor shape didn't always work (e.g., when blinking is off).

In silent <A HREF="intro.html#Ex">Ex</A> mode (&quot;ex -s&quot; or &quot;<A HREF="starting.html#ex">ex</A> &lt;file&quot;) &quot;:s///p&quot; didn't print a line.  Also
a few other commands that explicitly print a text line didn't work.  Made this
<A HREF="intro.html#Vi">Vi</A> compatible.

<A HREF="os_win32.html#Win32">Win32</A> version of _chdrive() didn't return correct value. (Tsindlekht)

When using '<A HREF="motion.html#t">t</A>' in <A HREF="options.html#'complete'">'complete'</A> option, no longer give an error message for a
missing <A HREF="tagsrch.html#tags">tags</A> file.

<A HREF="os_unix.html#Unix">Unix</A>: tgoto() can return NULL, which was not handled correctly in configure.

When doing &quot;<A HREF="helphelp.html#:help">:help</A>&quot; from a buffer where <A HREF="options.html#'binary'">'binary'</A> is set, also edited the help
file in binary mode.  Caused extra ^Ms for <A HREF="os_dos.html#DOS">DOS</A> systems.

Cursor position in a file was reset to 1 when closing a <A HREF="windows.html#window">window</A>.

&quot;:!ls&quot; in <A HREF="intro.html#Ex">Ex</A> mode switched off echo.

When doing a double click in <A HREF="windows.html#window">window</A> A, while currently in <A HREF="windows.html#window">window</A> <A HREF="motion.html#B">B</A>, first
click would reset double click time, had to click three times to select a
<A HREF="motion.html#word">word</A>.

When using <A HREF="term.html#&lt;F11&gt;">&lt;F11&gt;</A> in mappings, &quot;<A HREF="starting.html#:mkexrc">:mkexrc</A>&quot; produced an <A HREF="starting.html#exrc">exrc</A> file that can't be
used in <A HREF="intro.html#Vi">Vi</A> compatible mode.  Added setting of <A HREF="options.html#'cpo'">'cpo'</A> to avoid this.  Also, add
a <A HREF="visual.html#CTRL-V">CTRL-V</A> in front of a '<A HREF="change.html#&lt;">&lt;</A>', to avoid a normal <A HREF="eval.html#string">string</A> to be interpreted <A HREF="motion.html#as">as</A> a
special key name.

Gave confusing error message for &quot;<A HREF="options.html#:set">:set</A> <A HREF="options.html#'guifont'">guifont</A>=-*-lucida-*&quot;: first &quot;font is
not fixed width&quot;, then &quot;Unknown font&quot;.

Some <A HREF="options.html#options">options</A> were still completely left out, instead of included <A HREF="motion.html#as">as</A> hidden
<A HREF="options.html#options">options</A>.

While running the <A HREF="options.html#X11">X11</A> <A HREF="gui.html#GUI">GUI</A>, ignore SIGHUP signals.  Avoids a crash after
executing an external command (in rare cases).

In os_unixx.h, signal() was defined to sigset(), while <A HREF="motion.html#it">it</A> already was.

Memory leak when executing autocommands (was reported <A HREF="motion.html#as">as</A> a memory leak in
<A HREF="syntax.html#syntax">syntax</A> highlighting).

Didn't print source of error sometimes, because pointers were the same,
although names were different.

Avoid a number of UMR <A HREF="message.html#errors">errors</A> from Purify (third argument to open()).

A swap file could still be created just after setting <A HREF="options.html#'updatecount'">'updatecount'</A> to zero,
when there is an empty buffer and doing &quot;<A HREF="editing.html#:e">:e</A> file&quot;. (Kutschera)

Test 35 failed on 64 bit machines. (Schild)

With &quot;<A HREF="change.html#p">p</A>&quot; and &quot;<A HREF="change.html#P">P</A>&quot; commands, redrawing was slow.

Awk <A HREF="usr_41.html#script">script</A> for html documentation didn't work correctly with AIX awk.
Replaced &quot;[ ,.);\]	]&quot; with &quot;<A HREF="motion.html#[]">[]</A> ,.);	]&quot;. (Briscoe)
The makehtml.awk <A HREF="usr_41.html#script">script</A> had a small problem, causing extra lines to be
inserted. (Briscoe)

&quot;<A HREF="change.html#gqgq">gqgq</A>&quot; could not be repeated.  Repeating for &quot;<A HREF="change.html#gugu">gugu</A>&quot; and &quot;<A HREF="change.html#gUgU">gUgU</A>&quot; worked in a
wrong way.  Also made &quot;<A HREF="change.html#gqq">gqq</A>&quot; work to be consistent with &quot;<A HREF="change.html#guu">guu</A>&quot;.

C indent was wrong after &quot;<A HREF="change.html#case">case</A> ':':&quot;.

&quot;<A HREF="autocmd.html#:au">:au</A> <A HREF="autocmd.html#BufReadPre">BufReadPre</A> *.c put&quot;: Line from put text was deleted, because the buffer
was still assumed to be empty.

Text pasted with the Edit/Paste menu was subject to <A HREF="options.html#'textwidth'">'textwidth'</A> and
<A HREF="options.html#'autoindent'">'autoindent'</A>.  That was inconsistent with using the mouse to paste.  Now &quot;*p
is used.

When using <A HREF="index.html#CTRL-W">CTRL-W</A> <A HREF="tagsrch.html#CTRL-]">CTRL-]</A> on a <A HREF="motion.html#word">word</A> that's not a <A HREF="tagsrch.html#tag">tag</A>, and then <A HREF="tagsrch.html#CTRL-]">CTRL-]</A> on a <A HREF="tagsrch.html#tag">tag</A>,
<A HREF="windows.html#window">window</A> was split.

&quot;<A HREF="tagsrch.html#:ts">:ts</A>&quot; got stuck on a <A HREF="tagsrch.html#tags">tags</A> line that has two extra fields.

In <A HREF="insert.html#Insert">Insert</A> mode, with <A HREF="options.html#'showmode'">'showmode'</A> on, &lt;C-O&gt;&lt;C-G&gt; message was directly
overwritten by mode message, if preceded with search command warning message.

When putting the result of an <A HREF="eval.html#expression">expression</A> with &quot;=&lt;expr&gt;p, newlines were
inserted like ^@ (NUL in the file).  Now the <A HREF="eval.html#string">string</A> is split up in lines at
the newline.

putenv() was declared with &quot;const char *&quot; in pty.c, but with &quot;char *&quot; in
osdef2.h.in.  Made the last one also &quot;const char *&quot;.

&quot;<A HREF="helphelp.html#:help">:help</A> {word}&quot;, where +{word} is a feature, jumped to the feature <A HREF="eval.html#list">list</A> instead
of where the command was explained.  E.g., &quot;<A HREF="helphelp.html#:help">:help</A> browse&quot;, &quot;<A HREF="helphelp.html#:help">:help</A> autocmd&quot;.

Using the &quot;\&lt;xx&gt;&quot; form in an <A HREF="eval.html#expression">expression</A> only got one byte, even when using a
special character that uses several bytes (e.g., &quot;\&lt;F9&gt;&quot;).
Changed &quot;\&lt;BS&gt;&quot; to produce <A HREF="motion.html#CTRL-H">CTRL-H</A> instead of the special key code for the
backspace key.  &quot;\&lt;Del&gt;&quot; produces 0x7f.

&quot;<A HREF="starting.html#:mkvimrc">:mkvimrc</A>&quot; didn't write a command to set <A HREF="options.html#'compatible'">'compatible'</A> or <A HREF="options.html#'nocompatible'">'nocompatible'</A>.

The shell <A HREF="syntax.html#syntax">syntax</A> didn't contain a &quot;syn sync maxlines&quot; setting.  In a long file
without recognizable items, syncing took so long <A HREF="motion.html#it">it</A> looked like Vim hangs.
Added a maxlines setting, and made syncing interruptible.

The &quot;<A HREF="various.html#gs">gs</A>&quot; command didn't flush output before waiting.

Memory leaks for:
    &quot;<A HREF="eval.html#:if">:if</A> 0 &#124; let a = &#98; . <A HREF="change.html#c">c</A> &#124; endif&quot;
    &quot;let a = b[c]&quot;
    &quot;<A HREF="repeat.html#:so">:so</A> {file}&quot; where <A HREF="editing.html#{file}">{file}</A> contains a &quot;<A HREF="eval.html#:while">:while</A>&quot;

<A HREF="gui.html#GUI">GUI</A>: allocated fonts were never released. (Leonard)

Makefile.bor:
- Changed $(DEFINES) into a <A HREF="eval.html#list">list</A> of &quot;<A HREF="starting.html#-D">-D</A>&quot; <A HREF="options.html#options">options</A>, so that <A HREF="motion.html#it">it</A> can also be used
  for the resource compiler. (not tested!)
- &quot;bcc.cfg&quot; was used for all configurations.  When building for another
  configuration, the settings for the previous one would be used.  Moved
  &quot;bcc.cfg&quot; to the object directory. (Geddes)
- Included targets for vimrun, <A HREF="usr_90.html#install">install</A>, <A HREF="tagsrch.html#ctags">ctags</A> and xxd.  Changed the default to
  use the Borland DLL Runtime Library, makes Vim.exe a log smaller. (Aaron)

&quot;2*&quot; search for the <A HREF="motion.html#word">word</A> under the cursor with &quot;2&quot; prepended. (Leonard)

When <A HREF="change.html#deleting">deleting</A> into a specific <A HREF="sponsor.html#register">register</A>, would still overwrite the non-Win32
<A HREF="gui.html#GUI">GUI</A> selection.  Now &quot;&quot;x&quot;*P works.

When <A HREF="change.html#deleting">deleting</A> into the &quot;&quot; <A HREF="sponsor.html#register">register</A>, would write to the last used <A HREF="sponsor.html#register">register</A>.
Now &quot;&quot;x always writes to the unnamed <A HREF="sponsor.html#register">register</A>.

<A HREF="gui.html#GUI">GUI</A> <A HREF="gui_x11.html#Athena">Athena</A>: A submenu with a '<A HREF="repeat.html#.">.</A>' in <A HREF="motion.html#it">it</A> didn't work.  E.g.,
&quot;<A HREF="gui.html#:amenu">:amenu</A> Syntax.XY\.Z.foo lll&quot;.

When first doing &quot;<A HREF="tagsrch.html#:tag">:tag</A> foo&quot; and then &quot;<A HREF="tagsrch.html#:tnext">:tnext</A>&quot; and/or &quot;<A HREF="tagsrch.html#:tselect">:tselect</A>&quot; the order of
matching <A HREF="tagsrch.html#tags">tags</A> could change, because the current file is different.  Now the
existing matches are kept in the same order, newly found matches are added
after them, not matter what the current file is.

&quot;<A HREF="tagsrch.html#:ta">:ta</A>&quot; didn't find the second entry in a <A HREF="tagsrch.html#tags">tags</A> file, if the second entry was
longer than the first one.

When using &quot;<A HREF="options.html#:set">:set</A> <A HREF="options.html#'si'">si</A> tw=7&quot; <A HREF="insert.html#inserting">inserting</A> &quot;foo {^P}&quot; made the &quot;<A HREF="motion.html#}">}</A>&quot; inserted at the
wrong position.  can_si was still <A HREF="eval.html#TRUE">TRUE</A> when the cursor is not in the indent of
the line.

Running an external command in <A HREF="os_win32.html#Win32">Win32</A> version had the problem that Vim exits
when the X on the console is hit (and confirmed).  Now use the &quot;vimrun&quot;
command to start the external command indirectly. (Negri)

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When running an external <A HREF="change.html#filter">filter</A>, <A HREF="diff.html#do">do</A> <A HREF="motion.html#it">it</A> in a minimized <A HREF="os_dos.html#DOS">DOS</A> box.
(Negri)

&quot;<A HREF="eval.html#:let">:let</A>&quot; listed <A HREF="eval.html#variables">variables</A> without translation into printable characters.

<A HREF="os_win32.html#Win32">Win32</A> console: When resizing the <A HREF="windows.html#window">window</A>, switching back to the old size
(when <A HREF="starting.html#exiting">exiting</A> or executing an external command) sometimes failed. (Negri)
This appears to also fix a &quot;non fixable&quot; problem:
<A HREF="os_win32.html#Win32">Win32</A> console in NT 4.0: When running Vim in a cmd <A HREF="windows.html#window">window</A> with a scrollbar,
the scrollbar disappeared and was not restored when Vim exits.  This does work
under NT 3.51, <A HREF="motion.html#it">it</A> appears not to be a Vim problem.

When executing <A HREF="autocmd.html#BufDelete">BufDelete</A> and <A HREF="autocmd.html#BufUnload">BufUnload</A> autocommands for a buffer without a
name, the name of the current buffer was used for <A HREF="cmdline.html#&lt;afile&gt;">&lt;afile&gt;</A>.

When jumping to a <A HREF="tagsrch.html#tag">tag</A> <A HREF="motion.html#it">it</A> reported &quot;<A HREF="tagsrch.html#tag">tag</A> 1 of &gt;2&quot;, while in fact there could be
only two matches.  Changed to &quot;<A HREF="tagsrch.html#tag">tag</A> 1 of 2 or more&quot;.

&quot;<A HREF="tagsrch.html#:tjump">:tjump</A> tag&quot; did a linear search in the <A HREF="tagsrch.html#tags">tags</A> file, which can be slow.

Configure didn't find &quot;LibXm.so.2.0&quot;, a Xm library with a version number.

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When using a shifted key with ALT, the <A HREF="intro.html#shift">shift</A> modifier would remain
set, even when <A HREF="motion.html#it">it</A> was already used by <A HREF="change.html#changing">changing</A> the used key.  E.g., &quot;&lt;M-S-9&gt;&quot;
resulted in &quot;&lt;M-S-(&gt;&quot;, but <A HREF="motion.html#it">it</A> should be &quot;&lt;M-(&gt;&quot;. (Negri)

A call to ga_init() was often followed by setting growsize and itemsize.
Created ga_init2() for this, which looks better. (Aaron)

Function <A HREF="eval.html#filereadable()">filereadable()</A> could call fopen() with an empty <A HREF="eval.html#string">string</A>, which might
be illegal.

X Windows <A HREF="gui.html#GUI">GUI</A>: When executing an external command that outputs text, could
write one character beyond the end of a buffer, which caused a crash. (Kohan)

When using &quot;*&quot; or &quot;<A HREF="pattern.html##">#</A>&quot; on a <A HREF="eval.html#string">string</A> that includes '<A HREF="pattern.html#/">/</A>' or '<A HREF="pattern.html#?">?</A>' (when these are
included in 'isk'), they were not escaped. (Parmelan)

When adding a ToolBar menu in the <A HREF="gui_x11.html#Motif">Motif</A> <A HREF="gui.html#GUI">GUI</A>, the submenu_id field was not
cleared, causing random problems.

When adding a menu, the check if this menu (or submenu) name already exists
didn't compare with the simplified version (no mnemonic or accelerator) of the
new menu.  Could get two <A HREF="gui.html#menus">menus</A> with the same name, e.g., &quot;File&quot; and &quot;&amp;File&quot;.

Breaking a line because of <A HREF="options.html#'textwidth'">'textwidth'</A> at the last line in the <A HREF="windows.html#window">window</A> caused a
redraw of the whole <A HREF="windows.html#window">window</A> instead of a scroll.  Speeds up normal typing with
<A HREF="options.html#'textwidth'">'textwidth'</A> a lot for slow terminals.

An invalid line number produced an &quot;invalid range&quot; error, even when <A HREF="motion.html#it">it</A> wasn't
to be executed (inside &quot;if 0&quot;).

When the unnamed, first buffer is re-used, the &quot;<A HREF="autocmd.html#BufDelete">BufDelete</A>&quot; <A HREF="autocmd.html#autocommand">autocommand</A> was
not called.  It would stick in a buffer <A HREF="eval.html#list">list</A> menu.

When doing &quot;<A HREF="motion.html#&#37;">&#37;</A>&quot; on the NUL after the line, a &quot;<A HREF="motion.html#{">{</A>&quot; or &quot;<A HREF="motion.html#}">}</A>&quot; in the last character
of the line was not found.

The <A HREF="insert.html#Insert">Insert</A> mode menu was not used for the &quot;<A HREF="change.html#s">s</A>&quot; command, the <A HREF="intro.html#Operator-pending">Operator-pending</A>
menu was used instead.

With <A HREF="options.html#'compatible'">'compatible'</A> set, some <A HREF="syntax.html#syntax">syntax</A> highlighting was not correct, because of
using &quot;[\t]&quot; for a search <A HREF="pattern.html#pattern">pattern</A>.  Now use the regexps for <A HREF="syntax.html#syntax">syntax</A>
highlighting like the <A HREF="options.html#'cpoptions'">'cpoptions'</A> option is empty (as was documented already).

When using &quot;map &lt;M-Space&gt; ms&quot; or &quot;map <A HREF="motion.html#&lt;Space&gt;">&lt;Space&gt;</A> sss&quot; the output of &quot;<A HREF="map.html#:map">:map</A>&quot; didn't
show any lhs for the <A HREF="map.html#mapping">mapping</A> (if <A HREF="options.html#'isprint'">'isprint'</A> includes 160).  Now always use
<A HREF="motion.html#&lt;Space&gt;">&lt;Space&gt;</A> and &lt;M-Space&gt;, even when they are printable.

Adjusted the <A HREF="autocmd.html#Syntax">Syntax</A> menu, so that the lowest entry fits on a small screen (for
<A HREF="gui_x11.html#Athena">Athena</A>, where <A HREF="gui.html#menus">menus</A> don't wrap).

When using <A HREF="scroll.html#CTRL-E">CTRL-E</A> or <A HREF="scroll.html#CTRL-Y">CTRL-Y</A> in <A HREF="insert.html#Insert">Insert</A> mode for characters like '<A HREF="insert.html#o">o</A>', '<A HREF="change.html#x">x</A>' and
digits, <A HREF="repeat.html#repeating">repeating</A> the insert didn't work.

The file &quot;tools/ccfilter.README.txt&quot; could not be unpacked when using short
file names, because of the two dots.  Renamed <A HREF="motion.html#it">it</A> to
&quot;tools/ccfilter_README.txt&quot;.

For a dark <A HREF="options.html#'background'">'background'</A>, using Blue for Directory and SpecialKey highlight
groups is not very readable.  Use Cyan instead.

In the function uc_scan_attr() in ex_docmd.c there was a goto that jumped into
a block with a local variable.  That's illegal for some compilers.

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: There was a row of pixels at the bottom of the <A HREF="windows.html#window">window</A> which was not
drawn. (Aaron)

Under <A HREF="os_dos.html#DOS">DOS</A>, editing &quot;filename/&quot; created a swap file of &quot;filename/.swp&quot;.  Should
be &quot;filename/_swp&quot;.

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: pointer was hidden when executing an external command.

When <A HREF="options.html#'so'">'so'</A> is 999, &quot;<A HREF="change.html#J">J</A>&quot; near the end of the file didn't redisplay correctly.

&quot;:0a&quot; inserted after the first line, instead of before the first line.

<A HREF="os_unix.html#Unix">Unix</A>: Wildcard expansion didn't handle single <A HREF="quotes.html#quotes">quotes</A> and <A HREF="intro.html#{}">{}</A> patterns.  Now
&quot;<A HREF="editing.html#:file">:file</A> 'window.c&#39;&#34;' removes the <A HREF="quotes.html#quotes">quotes</A> and &quot;<A HREF="editing.html#:e">:e</A> 'main*.c&#39;&#34;' works (literal '*').
&quot;<A HREF="editing.html#:file">:file</A> {o}{n}{e}&quot; now results in file name &quot;one&quot;.

Memory leak when setting a <A HREF="eval.html#string">string</A> option back to its default value.

==============================================================================

VERSION 5.3						*<A NAME="version-5.3"></A><B>version-5.3</B>*

Version 5.3 was a bug-fix version of 5.2.  There are not many changes.
Improvements made between version 5.2 and 5.3:


Changed							*<A NAME="changed-5.3"></A><B>changed-5.3</B>*

Renamed &quot;IDE&quot; menu to &quot;Tools&quot; menu.



Added							*<A NAME="added-5.3"></A><B>added-5.3</B>*

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Give a warning when Vim is activated, and one of the files changed
since editing started. (Negri)



Fixed							*<A NAME="fixed-5.3"></A><B>fixed-5.3</B>*

5.2.1: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: space for external command was not properly allocated, could
cause a crash. (Aaron)  This was the reason to bring out 5.3 quickly after
5.2.

5.2.2: Some commands didn't complain when used without an argument, although
they need one: &quot;<A HREF="windows.html#:badd">:badd</A>&quot;, &quot;<A HREF="editing.html#:browse">:browse</A>&quot;, &quot;<A HREF="eval.html#:call">:call</A>&quot;, &quot;<A HREF="editing.html#:confirm">:confirm</A>&quot;, &quot;<A HREF="gui.html#:behave">:behave</A>&quot;,
&quot;<A HREF="eval.html#:delfunction">:delfunction</A>&quot;, &quot;<A HREF="map.html#:delcommand">:delcommand</A>&quot; and &quot;<A HREF="gui_w32.html#:tearoff">:tearoff</A>&quot;.
&quot;<A HREF="eval.html#:endfunction">:endfunction</A>&quot; outside of a function gave wrong error message: &quot;Command not
implemented&quot;.  Should be &quot;<A HREF="eval.html#:endfunction">:endfunction</A> not inside a function&quot;.

5.2.3: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When <A HREF="starting.html#gvim">gvim</A> was installed in &quot;Program files&quot;, or another path
with a space in <A HREF="motion.html#it">it</A>, executing external commands with vimrun didn't work.

5.2.4: Pasting with the mouse in <A HREF="insert.html#Insert">Insert</A> mode left the cursor on the last
pasted character, instead of behind <A HREF="motion.html#it">it</A>.

5.2.5: In <A HREF="insert.html#Insert">Insert</A> mode, cursor after the end of the line, a shift-cursor-left
didn't include the last character in the selection.

5.2.6: When <A HREF="change.html#deleting">deleting</A> text from <A HREF="insert.html#Insert">Insert</A> mode (with &quot;&lt;C-O&gt;D&quot; or the mouse), which
includes the last character in the line, the cursor could be left on the last
character in the line, instead of just after <A HREF="motion.html#it">it</A>.

5.2.7: <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: scrollbar was one pixel too big.

5.2.8: Completion of &quot;PopUp&quot; menu showed the derivatives &quot;PopUpc&quot;, &quot;PopUPi&quot;,
etc.  &quot;<A HREF="gui.html#:menu">:menu</A>&quot; also showed these.

5.2.9: When using two <A HREF="eval.html#input()">input()</A> <A HREF="eval.html#functions">functions</A> on a row, the prompt would not be
drawn in column 0.

5.2.10: A loop with <A HREF="eval.html#input()">input()</A> could not be broken with <A HREF="pattern.html#CTRL-C">CTRL-C</A>.

5.2.11: &quot;<A HREF="eval.html#:call">:call</A> asdf&quot; and &quot;<A HREF="eval.html#:call">:call</A> asdf(&quot; didn't give an error message.

5.2.12: Recursively using &quot;<A HREF="various.html#:normal">:normal</A>&quot; crashes Vim after a while.  E.g.:
&quot;<A HREF="map.html#:map">:map</A> <A HREF="change.html#gq">gq</A> <A HREF="various.html#:normal">:normal</A> gq&lt;CR&gt;&quot;

5.2.13: <A HREF="autocmd.html#Syntax">Syntax</A> highlighting used <A HREF="options.html#'iskeyword'">'iskeyword'</A> from wrong buffer.  When using
&quot;<A HREF="helphelp.html#:help">:help</A>&quot;, then &quot;/\k*&quot; in another <A HREF="windows.html#window">window</A> with <A HREF="options.html#'hlsearch'">'hlsearch'</A> set.

5.2.14: When using &quot;<A HREF="repeat.html#:source">:source</A>&quot; from a function, global <A HREF="eval.html#variables">variables</A> would not be
available unless &quot;<A HREF="eval.html#g:">g:</A>&quot; was used.

5.2.15: XPM files can have the extension &quot;.pm&quot;, which is the same <A HREF="motion.html#as">as</A> for <A HREF="if_perl.html#Perl">Perl</A>
modules.  Added &quot;syntax/pmfile.vim&quot; to handle this.

5.2.16: On <A HREF="os_win32.html#Win32">Win32</A> and <A HREF="os_amiga.html#Amiga">Amiga</A>, &quot;echo expand(&quot;&#37;:p:h&quot;)&quot; removed one dirname in an
empty buffer.  mch_Fullname() didn't append a slash at the end of a directory
name.

Should include the character under the cursor in the <A HREF="visual.html#Visual">Visual</A> area when using
<A HREF="options.html#'selection'">'selection'</A> &quot;<A HREF="motion.html#exclusive">exclusive</A>&quot;.  This wasn't done for &quot;<A HREF="motion.html#&#37;">&#37;</A>&quot;, &quot;<A HREF="motion.html#e">e</A>&quot;, &quot;<A HREF="motion.html#E">E</A>&quot;, &quot;<A HREF="motion.html#t">t</A>&quot; and &quot;<A HREF="motion.html#f">f</A>&quot;.

&quot;&quot;p would always put <A HREF="sponsor.html#register">register</A> 0, instead of the unnamed (last used) <A HREF="sponsor.html#register">register</A>.
Reverse the change that &quot;&quot;x doesn't write in the unnamed (last used) <A HREF="sponsor.html#register">register</A>.
It would always write in <A HREF="sponsor.html#register">register</A> 0, which isn't very useful.  Use &quot;<A HREF="starting.html#-x">-x</A> for the
paste mappings in <A HREF="visual.html#Visual">Visual</A> mode.

When there is one long line on the screen, and <A HREF="options.html#'showcmd'">'showcmd'</A> is off, &quot;0$&quot; didn't
redraw the screen.

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When using <A HREF="options.html#'mousehide'">'mousehide'</A>, the pointer would flicker when the cursor
shape is changed. (Negri)

When cancelling <A HREF="visual.html#Visual">Visual</A> mode, and the cursor moves to the start, the wanted
column wasn't set, &quot;<A HREF="motion.html#k">k</A>&quot; or &quot;<A HREF="motion.html#j">j</A>&quot; moved to the wrong column.

When using &quot;<A HREF="editing.html#:browse">:browse</A>&quot; or &quot;<A HREF="editing.html#:confirm">:confirm</A>&quot;, was checking for a comment and separating
<A HREF="motion.html#bar">bar</A>, which can break some commands.

Included fixes for <A HREF="os_mac.html#Macintosh">Macintosh</A>. (Kielhorn)

==============================================================================

VERSION 5.4						*<A NAME="version-5.4"></A><B>version-5.4</B>*

Version 5.4 adds new features, useful changes and a lot of bug fixes.



Runtime directory introduced				*<A NAME="new-runtime-dir"></A><B>new-runtime-dir</B>*

The distributed runtime files are now in <A HREF="starting.html#$VIMRUNTIME">$VIMRUNTIME</A>, the user files in <A HREF="starting.html#$VIM">$VIM</A>.
You normally don't set <A HREF="starting.html#$VIMRUNTIME">$VIMRUNTIME</A> but let Vim find <A HREF="motion.html#it">it</A>, by using
$VIM/vim{version}, or use <A HREF="starting.html#$VIM">$VIM</A> when that doesn't exist.  This allows for
separating the user files from the distributed files and makes <A HREF="motion.html#it">it</A> more <A HREF="starting.html#easy">easy</A> to
upgrade to another version.  It also makes <A HREF="motion.html#it">it</A> possible to keep two versions of
Vim around, each with their own runtime files.

In the <A HREF="os_unix.html#Unix">Unix</A> <A HREF="intro.html#distribution">distribution</A> the runtime files have been moved to the &quot;runtime&quot;
directory.  This makes <A HREF="motion.html#it">it</A> possible to copy all the runtime files at once,
without the need to know what needs to be copied.

The archives for <A HREF="os_dos.html#DOS">DOS</A>, Windows, <A HREF="os_amiga.html#Amiga">Amiga</A> and <A HREF="os_os2.html#OS/2">OS/2</A> now have an extra top-level
&quot;vim&quot; directory.  This is to make clear that user-modified files should be put
here.  The directory that contains the executables doesn't have '<A HREF="motion.html#-">-</A>' or '<A HREF="repeat.html#.">.</A>'
characters.  This avoids strange extensions.

The <A HREF="starting.html#$VIM">$VIM</A> and <A HREF="starting.html#$VIMRUNTIME">$VIMRUNTIME</A> <A HREF="eval.html#variables">variables</A> are set when they are first used.  This
allows them to be used by <A HREF="if_perl.html#Perl">Perl</A>, for example.

The runtime files are also found in a directory called &quot;$VIM/runtime&quot;.  This
helps when running Vim after just unpacking the runtime archive.  When using
an executable in the &quot;src&quot; directory, Vim checks if &quot;vim54&quot; or &quot;runtime&quot; can
be added after removing <A HREF="motion.html#it">it</A>.  This make the runtime files be found just after
compiling.

A default for <A HREF="starting.html#$VIMRUNTIME">$VIMRUNTIME</A> can be given in the <A HREF="os_unix.html#Unix">Unix</A> Makefile.  This is useful
if <A HREF="starting.html#$VIM">$VIM</A> doesn't point to above the runtime directory but to e.g., &quot;/etc/&quot;.



Filetype introduced					*<A NAME="new-filetype-5.4"></A><B>new-filetype-5.4</B>*

<A HREF="autocmd.html#Syntax">Syntax</A> files are now loaded with the new <A HREF="autocmd.html#FileType">FileType</A> <A HREF="autocmd.html#autocommand">autocommand</A>.  Old
&quot;<A HREF="syntax.html#mysyntaxfile">mysyntaxfile</A>&quot; files will no longer work. |<A HREF="filetype.html#filetypes">filetypes</A>|

The scripts for loading <A HREF="syntax.html#syntax">syntax</A> highlighting have been changed to use the
new <A HREF="autocmd.html#Syntax">Syntax</A> <A HREF="autocmd.html#autocommand">autocommand</A> event.

This combination of Filetype and <A HREF="autocmd.html#Syntax">Syntax</A> events allows tuning the <A HREF="syntax.html#syntax">syntax</A>
highlighting a bit more, also when selected from the <A HREF="autocmd.html#Syntax">Syntax</A> menu.  The
<A HREF="autocmd.html#FileType">FileType</A> <A HREF="autocmd.html#autocommand">autocommand</A> can also be used to set <A HREF="options.html#options">options</A> and mappings specifically
for that type of file.

The &quot;$VIMRUNTIME/filetype.vim&quot; file is not loaded automatically.  The
&quot;<A HREF="filetype.html#:filetype">:filetype</A> on&quot; command has been added for this.  &quot;<A HREF="syntax.html#:syntax">:syntax</A> on&quot; also loads <A HREF="motion.html#it">it</A>.

The <A HREF="options.html#'filetype'">'filetype'</A> option has been added.  It is used to trigger the <A HREF="autocmd.html#FileType">FileType</A>
<A HREF="autocmd.html#autocommand">autocommand</A> event, like the <A HREF="options.html#'syntax'">'syntax'</A> option does for the <A HREF="autocmd.html#Syntax">Syntax</A> event.

&quot;<A HREF="options.html#:set">:set</A> <A HREF="options.html#'syntax'">syntax</A>=OFF&quot; and &quot;<A HREF="options.html#:set">:set</A> <A HREF="options.html#'syntax'">syntax</A>=ON&quot; can be used (in a <A HREF="options.html#modeline">modeline</A>) to switch
<A HREF="syntax.html#syntax">syntax</A> highlighting on/off for the current file.

The <A HREF="autocmd.html#Syntax">Syntax</A> menu commands have been moved to $VIMRUNTIME/menu.vim.  The <A HREF="autocmd.html#Syntax">Syntax</A>
menu is included both when &quot;<A HREF="filetype.html#:filetype">:filetype</A> on&quot; and when &quot;<A HREF="syntax.html#:syntax">:syntax</A> manual&quot; is used.

Renamed the old <A HREF="options.html#'filetype'">'filetype'</A> option to <A HREF="options.html#'osfiletype'">'osfiletype'</A>.  It was only used for
<A HREF="os_risc.html#RISCOS">RISCOS</A>.  <A HREF="options.html#'filetype'">'filetype'</A> is now used for the common file type.

Added the &quot;<A HREF="syntax.html#:syntax">:syntax</A> manual&quot; command.  Allows manual selection of the <A HREF="syntax.html#syntax">syntax</A> to
be used, e.g., from a <A HREF="options.html#modeline">modeline</A>.



Vim <A HREF="usr_41.html#script">script</A> line continuation			*<A NAME="new-line-continuation"></A><B>new-line-continuation</B>*

When an <A HREF="intro.html#Ex">Ex</A> line starts with a <A HREF="intro.html#backslash">backslash</A>, <A HREF="motion.html#it">it</A> is concatenated to the previous
line.  This avoids the need for long lines. |<A HREF="repeat.html#line-continuation">line-continuation</A>| (Roemer)
Example:
<B>	if   has("dialog_con") ||</B>
<B>	   \ has("dialog_gui")</B>
<B>	    :let result = confirm("Enter your choice",</B>
<B>				\ "&amp;Yes\n&amp;No\n&amp;Maybe",</B>
<B>				\ 2)</B>
<B>	endif</B>



Improved session files				*<A NAME="improved-sessions"></A><B>improved-sessions</B>*

New words for <A HREF="options.html#'sessionoptions'">'sessionoptions'</A>:
- &quot;help&quot;	Restore the help <A HREF="windows.html#window">window</A>.
- &quot;blank&quot;	Restore empty <A HREF="windows.html#windows">windows</A>.
- &quot;winpos&quot;	Restore the Vim <A HREF="windows.html#window">window</A> position.  Uses the new &quot;<A HREF="gui.html#:winpos">:winpos</A>&quot;
		command
- &quot;<A HREF="windows.html#buffers">buffers</A>&quot;	Restore hidden and unloaded <A HREF="windows.html#buffers">buffers</A>.  Without <A HREF="motion.html#it">it</A> only the
		<A HREF="windows.html#buffers">buffers</A> in <A HREF="windows.html#windows">windows</A> are restored.
- &quot;slash&quot;	<A HREF="insert.html#Replace">Replace</A> backward by forward slashes in file names.
- &quot;globals&quot;	Store global <A HREF="eval.html#variables">variables</A>.
- &quot;<A HREF="os_unix.html#unix">unix</A>&quot;	Use <A HREF="os_unix.html#unix">unix</A> file format (&lt;NL&gt; instead of &lt;CR&gt;&lt;NL&gt;)

The &quot;<A HREF="starting.html#:mksession">:mksession</A>&quot; and <A HREF="options.html#'sessionoptions'">'sessionoptions'</A> are now in the <A HREF="various.html#+mksession">+mksession</A> feature.

The top line of the <A HREF="windows.html#window">window</A> is also restored when using a session file.

&quot;<A HREF="starting.html#:mksession">:mksession</A>&quot; and &quot;<A HREF="starting.html#:mkvimrc">:mkvimrc</A>&quot; don't store <A HREF="options.html#'fileformat'">'fileformat'</A>, <A HREF="motion.html#it">it</A> should be detected
when loading a file.

(Most of this was done by Vince Negri and Robert Webb)



Autocommands improved				*<A NAME="improved-autocmds-5.4"></A><B>improved-autocmds-5.4</B>*

New events:
|<A HREF="autocmd.html#FileType">FileType</A>|	When the file type has been detected.
|<A HREF="autocmd.html#FocusGained">FocusGained</A>|	When Vim got input focus. (Negri)
|<A HREF="autocmd.html#FocusLost">FocusLost</A>|	When Vim lost input focus. (Negri)
|<A HREF="autocmd.html#BufCreate">BufCreate</A>|	Called just after a new buffer has been created or has been
		renamed. (Madsen)
|<A HREF="autocmd.html#CursorHold">CursorHold</A>|	Triggered when no key has been typed for <A HREF="options.html#'updatetime'">'updatetime'</A>.  Can be
		used to <A HREF="diff.html#do">do</A> something with the <A HREF="motion.html#word">word</A> under the cursor. (Negri)
		Implemented <A HREF="autocmd.html#CursorHold">CursorHold</A> <A HREF="autocmd.html#autocommand">autocommand</A> event for <A HREF="os_unix.html#Unix">Unix</A>. (Zellner)
		Also for <A HREF="os_amiga.html#Amiga">Amiga</A> and <A HREF="os_msdos.html#MS-DOS">MS-DOS</A>.
|<A HREF="autocmd.html#GUIEnter">GUIEnter</A>|	Can be used to <A HREF="diff.html#do">do</A> something with the GUI <A HREF="windows.html#window">window</A> after <A HREF="motion.html#it">it</A> has
		been created (e.g., a &quot;<A HREF="gui.html#:winpos">:winpos</A> 100 50&quot;).
|<A HREF="autocmd.html#BufHidden">BufHidden</A>|	When a buffer becomes hidden.  Used to delete the
		<A HREF="options.html#option-window">option-window</A> when <A HREF="motion.html#it">it</A> becomes hidden.

Also trigger |<A HREF="autocmd.html#BufDelete">BufDelete</A>| just before a buffer is going to be renamed. (Madsen)

The &quot;<A HREF="cmdline.html#&lt;amatch&gt;">&lt;amatch&gt;</A>&quot; <A HREF="pattern.html#pattern">pattern</A> can be used like &quot;<A HREF="cmdline.html#&lt;afile&gt;">&lt;afile&gt;</A>&quot; for autocommands, except
that <A HREF="motion.html#it">it</A> is the matching value for the <A HREF="autocmd.html#FileType">FileType</A> and <A HREF="autocmd.html#Syntax">Syntax</A> events.

When &quot;<A HREF="eval.html#:let">:let</A> <A HREF="change.html#@/">@/</A> = &lt;string&gt;&quot; is used in an <A HREF="autocmd.html#autocommand">autocommand</A>, this last search <A HREF="pattern.html#pattern">pattern</A>
will be used after the <A HREF="autocmd.html#autocommand">autocommand</A> finishes.

Made loading autocommands a bit faster.  Avoid doing <A HREF="eval.html#strlen()">strlen()</A> on each <A HREF="starting.html#exiting">exiting</A>
<A HREF="pattern.html#pattern">pattern</A> for each new <A HREF="pattern.html#pattern">pattern</A> by remembering the length.



Encryption						*<A NAME="new-encryption"></A><B>new-encryption</B>*

Files can be encrypted when <A HREF="editing.html#writing">writing</A> and decrypted when reading.  Added the
<A HREF="options.html#'key'">'key'</A> option, &quot;<A HREF="starting.html#-x">-x</A>&quot; command line argument and &quot;<A HREF="editing.html#:X">:X</A>&quot; command. |<A HREF="editing.html#encryption">encryption</A>| (based
on patch from Mohsin Ahmed)

When reading a file, there is an automatic detection whether <A HREF="motion.html#it">it</A> has been
crypted.  Vim will then prompt for the key.

Note that the <A HREF="editing.html#encryption">encryption</A> method is not compatible with <A HREF="intro.html#Vi">Vi</A>.  The <A HREF="editing.html#encryption">encryption</A> is
not unbreakable.  This allows <A HREF="motion.html#it">it</A> to be exported from the US.



<A HREF="gui_x11.html#GTK">GTK</A> <A HREF="gui.html#GUI">GUI</A> port						*<A NAME="new-GTK-GUI"></A><B>new-GTK-GUI</B>*

New <A HREF="gui.html#GUI">GUI</A> port for <A HREF="gui_x11.html#GTK+">GTK+</A>.  Includes a toolbar, menu tearoffs, etc. |<A HREF="gui_x11.html#gui-gtk">gui-gtk</A>|
Added the |<A HREF="helphelp.html#:helpfind">:helpfind</A>| command. (Kahn and Dalecki)



Menu changes						*<A NAME="menu-changes-5.4"></A><B>menu-changes-5.4</B>*

Menus can now also be used in the console.  It is enabled by the new
<A HREF="options.html#'wildmenu'">'wildmenu'</A> option.  This shows matches for command-line completion like a
menu.  This works <A HREF="motion.html#as">as</A> a minimal file browser.

The new |<A HREF="gui.html#:emenu">:emenu</A>| command can be used to execute a menu item.

Uses the last status line to <A HREF="eval.html#list">list</A> items, or inserts a line just above the
command line.  (Negri)

The 'wildcharx' option can be used to trigger <A HREF="options.html#'wildmenu'">'wildmenu'</A> completion from a
<A HREF="map.html#mapping">mapping</A>.

When compiled without <A HREF="gui.html#menus">menus</A>, this can be detected with has(&quot;menu&quot;).  Also show
this in the &quot;<A HREF="various.html#:version">:version</A>&quot; output.  Allow compiling <A HREF="gui.html#GUI">GUI</A> versions without menu
support.  Only include toolbar support when there is menu support.

Moved the &quot;Window&quot; menu all the way to the right (priority 70).  Looks more
familiar for people working with <A HREF="os_win32.html#MS-Windows">MS-Windows</A>, shouldn't matter for others.

Included &quot;Buffers&quot; menu.  Works with existing autocommands and <A HREF="eval.html#functions">functions</A>.  It
can be disabled by setting the &quot;<A HREF="gui.html#no_buffers_menu">no_buffers_menu</A>&quot; variable.  (Aaron and Madsen)

<A HREF="os_win32.html#Win32">Win32</A> supports separators in a menu: &quot;-.*-&quot;. (Geddes)
Menu separators for <A HREF="gui_x11.html#Motif">Motif</A> now work too.

Made Popup menu for <A HREF="gui_x11.html#Motif">Motif</A> <A HREF="gui.html#GUI">GUI</A> work. (Madsen)

'<A HREF="motion.html#M">M</A>' flag in <A HREF="options.html#'guioptions'">'guioptions'</A>: Don't source the system menu.

All the menu code has been moved from gui.c to menu.c.



Viminfo improved					*<A NAME="improved-viminfo"></A><B>improved-viminfo</B>*

New flags for <A HREF="options.html#'viminfo'">'viminfo'</A>:
'<A HREF="change.html#!">!</A>'	Store global <A HREF="eval.html#variables">variables</A> in the <A HREF="starting.html#viminfo">viminfo</A> file if they are in <A HREF="change.html#uppercase">uppercase</A>
	letters. (Negri)
'<A HREF="motion.html#h">h</A>'	Do &quot;<A HREF="pattern.html#:nohlsearch">:nohlsearch</A>&quot; when loading a <A HREF="starting.html#viminfo">viminfo</A> file.

Store search patterns in the <A HREF="starting.html#viminfo">viminfo</A> file with their offset, magic, etc.  Also
store the flag whether <A HREF="options.html#'hlsearch'">'hlsearch'</A> highlighting is on or off (which is not used
if the '<A HREF="motion.html#h">h</A>' flag is in <A HREF="options.html#'viminfo'">'viminfo'</A>).

Give an error message when setting <A HREF="options.html#'viminfo'">'viminfo'</A> without commas.



Various new commands					*<A NAME="new-commands-5.4"></A><B>new-commands-5.4</B>*

Operator |g?|: <A HREF="change.html#rot13">rot13</A> encoding. (Negri)

|<A HREF="scroll.html#zH">zH</A>| and |<A HREF="scroll.html#zL">zL</A>| commands: Horizontal <A HREF="scroll.html#scrolling">scrolling</A> by half a page.
|<A HREF="motion.html#gm">gm</A>| move cursor to middle of screen line. (Ideas by Campbell)

Operations on <A HREF="visual.html#Visual">Visual</A> blocks: |<A HREF="visual.html#v_b_I">v_b_I</A>|, |<A HREF="visual.html#v_b_A">v_b_A</A>|, |<A HREF="visual.html#v_b_c">v_b_c</A>|, |<A HREF="visual.html#v_b_C">v_b_C</A>|, |<A HREF="visual.html#v_b_r">v_b_r</A>|,
|<A HREF="visual.html#v_b_&lt;">v_b_&lt;</A>| and |<A HREF="visual.html#v_b_&gt;">v_b_&gt;</A>|. (Kelly)

New command: CTRL-\ <A HREF="motion.html#CTRL-N">CTRL-N</A>, which does nothing in <A HREF="intro.html#Normal">Normal</A> mode, and goes to
<A HREF="intro.html#Normal">Normal</A> mode when in <A HREF="insert.html#Insert">Insert</A> or <A HREF="cmdline.html#Command-line">Command-line</A> mode.  Can be used by <A HREF="if_ole.html#VisVim">VisVim</A> or
other OLE programs to make sure Vim is in <A HREF="intro.html#Normal">Normal</A> mode, without causing a beep.
|<A HREF="intro.html#CTRL-\_CTRL-N">CTRL-\_CTRL-N</A>|

&quot;:cscope kill&quot; command to use the connection filename. |<A HREF="if_cscop.html#:cscope">:cscope</A>| (Kahn)

|<A HREF="insert.html#:startinsert">:startinsert</A>| command: Start <A HREF="insert.html#Insert">Insert</A> mode next.

|<A HREF="cmdline.html#:history">:history</A>| command, to show all four types of histories. (Roemer)

|<A HREF="motion.html#[m">[m</A>|, |<A HREF="motion.html#[M">[M</A>|, |<A HREF="motion.html#]m">]m</A>| and |<A HREF="motion.html#]M">]M</A>| commands, for jumping backward/forward to start/end
of method in a (Java) class.

&quot;:@*&quot; executes the &#42; <A HREF="sponsor.html#register">register</A>. |<A HREF="repeat.html#:@">:@</A>| (Acevedo)

|<A HREF="motion.html#go">go</A>| and |<A HREF="motion.html#:goto">:goto</A>| commands: Jump to byte offset in the file.

|<A HREF="change.html#gR">gR</A>| and |<A HREF="change.html#gr">gr</A>| command: Virtual <A HREF="insert.html#Replace">Replace</A> mode.  <A HREF="insert.html#Replace">Replace</A> characters without
<A HREF="change.html#changing">changing</A> the layout. (Webb)

&quot;<A HREF="editing.html#:cd">:cd</A> -&quot; changes to the directory from before the previous &quot;<A HREF="editing.html#:cd">:cd</A>&quot; command.
|<A HREF="editing.html#:cd-">:cd-</A>| (Webb)

Tag preview commands |<A HREF="windows.html#:ptag">:ptag</A>|.  Shows the result of a &quot;<A HREF="tagsrch.html#:tag">:tag</A>&quot; in a dedicated
<A HREF="windows.html#window">window</A>.  Can be used to see the context of the <A HREF="tagsrch.html#tag">tag</A> (e.g., function arguments).
(Negri)
|<A HREF="windows.html#:pclose">:pclose</A>| command, and <A HREF="index.html#CTRL-W">CTRL-W</A> <A HREF="starting.html#CTRL-Z">CTRL-Z</A>: Close preview <A HREF="windows.html#window">window</A>. (Moore)
<A HREF="options.html#'previewheight'">'previewheight'</A> option, height for the preview <A HREF="windows.html#window">window</A>.
Also |<A HREF="windows.html#:ppop">:ppop</A>|, |<A HREF="tagsrch.html#:ptnext">:ptnext</A>|, |<A HREF="tagsrch.html#:ptprevious">:ptprevious</A>|, |<A HREF="tagsrch.html#:ptNext">:ptNext</A>|, |<A HREF="tagsrch.html#:ptrewind">:ptrewind</A>|, |<A HREF="tagsrch.html#:ptlast">:ptlast</A>|.

|<A HREF="editing.html#:find">:find</A>| and |<A HREF="windows.html#:sfind">:sfind</A>| commands: Find a file in <A HREF="options.html#'path'">'path'</A>, (split <A HREF="windows.html#window">window</A>) and edit
<A HREF="motion.html#it">it</A>.

The |<A HREF="options.html#:options">:options</A>| command opens an option <A HREF="windows.html#window">window</A> that shows the current option
values.  Or use &quot;<A HREF="editing.html#:browse">:browse</A> set&quot; to open <A HREF="motion.html#it">it</A>.  Options are grouped by function.
Offers short help on each option.  Hit <A HREF="motion.html#&lt;CR&gt;">&lt;CR&gt;</A> to jump to more help.  Edit the
option value and hit <A HREF="motion.html#&lt;CR&gt;">&lt;CR&gt;</A> on a &quot;set&quot; line to set a new value.



Various new <A HREF="options.html#options">options</A>					*<A NAME="new-options-5.4"></A><B>new-options-5.4</B>*

Scroll-binding: <A HREF="options.html#'scrollbind'">'scrollbind'</A> and <A HREF="options.html#'scrollopt'">'scrollopt'</A> <A HREF="options.html#options">options</A>.  Added |<A HREF="scroll.html#:syncbind">:syncbind</A>|
command.  Makes <A HREF="windows.html#windows">windows</A> scroll the same amount (horizontally and/or
vertically). (Ralston)

<A HREF="options.html#'conskey'">'conskey'</A> option for <A HREF="os_msdos.html#MS-DOS">MS-DOS</A>.  Use direct console I/O.  This should work with
telnet (untested!).

<A HREF="options.html#'statusline'">'statusline'</A> option: Configurable contents of the status line.  Also allows
showing the byte offset in the file.  Highlighting with &#37;1* to &#37;9*, using the
new highlight groups User1 to User9.  (Madsen)

<A HREF="options.html#'rulerformat'">'rulerformat'</A> option: Configurable contents of the ruler, like <A HREF="options.html#'statusline'">'statusline'</A>.
(Madsen)

<A HREF="options.html#'write'">'write'</A> option: When off, <A HREF="editing.html#writing">writing</A> files is not allowed.  Avoids overwriting a
file even with &quot;<A HREF="editing.html#:w!">:w!</A>&quot;.  The |<A HREF="starting.html#-m">-m</A>| command line option resets <A HREF="options.html#'write'">'write'</A>.

<A HREF="options.html#'clipboard'">'clipboard'</A> option: How the <A HREF="gui.html#clipboard">clipboard</A> is used.  Value &quot;unnamed&quot;: Use unnamed
<A HREF="sponsor.html#register">register</A> like &quot;*. (Cortopassi)  Value &quot;autoselect&quot;: Like what '<A HREF="insert.html#a">a</A>' in
<A HREF="options.html#'guioptions'">'guioptions'</A> does but works in the <A HREF="terminal.html#terminal">terminal</A>.

<A HREF="options.html#'guifontset'">'guifontset'</A> option: Specify fonts for the +fontset feature, for the <A HREF="options.html#X11">X11</A> <A HREF="gui.html#GUI">GUI</A>
versions.  Allows using normal fonts when vim is compiled with this feature.
(Nam)

<A HREF="options.html#'guiheadroom'">'guiheadroom'</A> option: How much room to allow above/below the <A HREF="gui.html#GUI">GUI</A> <A HREF="windows.html#window">window</A>.
Used for <A HREF="gui_x11.html#Motif">Motif</A>, <A HREF="gui_x11.html#Athena">Athena</A> and <A HREF="gui_x11.html#GTK">GTK</A>.

Implemented <A HREF="options.html#'tagstack'">'tagstack'</A> option: When off, pushing <A HREF="tagsrch.html#tags">tags</A> onto the stack is
disabled (Vi compatible).  Useful for mappings.

<A HREF="options.html#'shellslash'">'shellslash'</A> option.  Only for systems that use a <A HREF="intro.html#backslash">backslash</A> <A HREF="motion.html#as">as</A> a file
separator.  This option will use a forward slash in file names when expanding
<A HREF="motion.html#it">it</A>.  Useful when <A HREF="options.html#'shell'">'shell'</A> is sh or csh.

<A HREF="options.html#'pastetoggle'">'pastetoggle'</A> option: Key sequence that toggles <A HREF="options.html#'paste'">'paste'</A>.  Works around the
problem that mappings don't work in <A HREF="insert.html#Insert">Insert</A> mode when <A HREF="options.html#'paste'">'paste'</A> is set.

<A HREF="options.html#'display'">'display'</A> option: When set to &quot;lastline&quot;, the last line fills the <A HREF="windows.html#window">window</A>,
instead of being replaced with &quot;<A HREF="repeat.html#@">@</A>&quot; lines.  Only the last three characters are
replaced with &quot;@@@&quot;, to indicate that the line has not finished yet.

<A HREF="options.html#'switchbuf'">'switchbuf'</A> option: Allows re-using existing <A HREF="windows.html#windows">windows</A> on a buffer that is being
jumped to, or split the <A HREF="windows.html#window">window</A> to open a new buffer. (Roemer)

<A HREF="options.html#'titleold'">'titleold'</A> option.  Replaces the fixed <A HREF="eval.html#string">string</A> &quot;Thanks for flying Vim&quot;, which
is used to set the title when <A HREF="starting.html#exiting">exiting</A>. (Schild)



Vim scripts						*<A NAME="new-script-5.4"></A><B>new-script-5.4</B>*

The |<A HREF="eval.html#exists()">exists()</A>| function can also check for existence of a function. (Roemer)
An internal function is now found with a binary search, should be a bit
faster. (Roemer)

New <A HREF="eval.html#functions">functions</A>:
- |<A HREF="eval.html#getwinposx()">getwinposx()</A>| and |<A HREF="eval.html#getwinposy()">getwinposy()</A>|: get Vim <A HREF="windows.html#window">window</A> position. (Webb)
- |<A HREF="eval.html#histnr()">histnr()</A>|, |<A HREF="eval.html#histadd()">histadd()</A>|, |<A HREF="eval.html#histget()">histget()</A>| and |<A HREF="eval.html#histdel()">histdel()</A>|: Make <A HREF="cmdline.html#history">history</A>
  available. (Roemer)
- |maparg()|: Returns rhs of a <A HREF="map.html#mapping">mapping</A>.  Based on a patch from Vikas.
- |mapcheck()|: Check if a map name matches with an existing one.
- |visualmode()|: Return type of last <A HREF="visual.html#Visual">Visual</A> mode. (Webb)
- |libcall()|: Call a function in a library.  Currently only for <A HREF="os_win32.html#Win32">Win32</A>. (Negri)
- |bufwinnr()|: find <A HREF="windows.html#window">window</A> that contains the specified buffer. (Roemer)
- |bufloaded()|: Whether a buffer exists and is loaded.
- |<A HREF="eval.html#localtime()">localtime()</A>| and |<A HREF="eval.html#getftime()">getftime()</A>|: wall clock time and last modification time
  of a file (Webb)
- |glob()|: expand file name <A HREF="editing.html#wildcards">wildcards</A> only.
- |system()|: get the raw output of an external command. (based on a patch
  from Aaron).
- |strtrans()|: Translate <A HREF="eval.html#String">String</A> into printable characters.  Used for
  <A HREF="syntax.html#2html.vim">2html.vim</A> <A HREF="usr_41.html#script">script</A>.
- |append()|: <A HREF="starting.html#easy">easy</A> way to append a line of text in a buffer.

Changed <A HREF="eval.html#functions">functions</A>:
- Optional argument to |<A HREF="eval.html#strftime()">strftime()</A>| to give the time in seconds. (Webb)
- |<A HREF="eval.html#expand()">expand()</A>| now also returns names for files that don't exist.

Allow numbers in the name of a user command. (Webb)

Use &quot;<A HREF="eval.html#v:">v:</A>&quot; for internal Vim <A HREF="eval.html#variables">variables</A>: &quot;<A HREF="eval.html#v:errmsg">v:errmsg</A>&quot;, &quot;<A HREF="eval.html#v:shell_error">v:shell_error</A>&quot;, etc.  The
ones from version 5.3 can be used without &quot;<A HREF="eval.html#v:">v:</A>&quot; too, for backwards
compatibility.

New <A HREF="eval.html#variables">variables</A>:
&quot;<A HREF="eval.html#v:warningmsg">v:warningmsg</A>&quot; and &quot;<A HREF="eval.html#v:statusmsg">v:statusmsg</A>&quot; internal <A HREF="eval.html#variables">variables</A>.  Contain the last given
warning and status message. |<A HREF="eval.html#v:warningmsg">v:warningmsg</A>| |<A HREF="eval.html#v:statusmsg">v:statusmsg</A>| (Madsen)
&quot;<A HREF="eval.html#v:count1">v:count1</A>&quot; variable: like &quot;<A HREF="eval.html#v:count">v:count</A>&quot;, but defaults to one when no <A HREF="intro.html#count">count</A> is
used. |<A HREF="eval.html#v:count1">v:count1</A>|

When compiling without <A HREF="eval.html#expression">expression</A> evaluation, &quot;if 1&quot; can be used around the
not supported commands to avoid <A HREF="motion.html#it">it</A> being executed.  Works like in Vim 4.x.
Some of the runtime scripts gave <A HREF="message.html#errors">errors</A> when used with a Vim that was compiled
with minimal features.  Now &quot;if 1&quot; is used around code that is not always
supported.

When evaluating an <A HREF="eval.html#expression">expression</A> with &amp;&amp; and &#124;&#124;, skip the parts that will not
influence the outcome.  This makes <A HREF="motion.html#it">it</A> faster and avoids error <A HREF="message.html#messages">messages</A>. (Webb)
Also optimized the skipping of expressions inside an &quot;if 0&quot;.



Avoid <A HREF="message.html#hit-enter">hit-enter</A> prompt					*<A NAME="avoid-hit-enter"></A><B>avoid-hit-enter</B>*

Added '<A HREF="motion.html#T">T</A>' flag to <A HREF="options.html#'shortmess'">'shortmess'</A>: Truncate all <A HREF="message.html#messages">messages</A> that would cause the
<A HREF="message.html#hit-enter">hit-enter</A> prompt (unless that would happen anyway).
The '<A HREF="insert.html#O">O</A>' flag in <A HREF="options.html#'shortmess'">'shortmess'</A> now also applies to <A HREF="quickfix.html#quickfix">quickfix</A> <A HREF="message.html#messages">messages</A>, e.g., from
the &quot;<A HREF="quickfix.html#:cn">:cn</A>&quot; command.

The default for <A HREF="options.html#'shortmess'">'shortmess'</A> is now &quot;filnxtToO&quot;, to make most <A HREF="message.html#messages">messages</A> fit on
the command line, and not cause the <A HREF="message.html#hit-enter">hit-enter</A> prompt.

Previous messages can be viewed with the new |<A HREF="message.html#:messages">:messages</A>| command.

Some <A HREF="message.html#messages">messages</A> are shown fully, even when <A HREF="options.html#'shortmess'">'shortmess'</A> tells to shorten
<A HREF="message.html#messages">messages</A>, because the user is expected to want to see them in full: <A HREF="editing.html#CTRL-G">CTRL-G</A> and
some <A HREF="quickfix.html#quickfix">quickfix</A> commands.



Improved <A HREF="quickfix.html#quickfix">quickfix</A>					*<A NAME="improved-quickfix"></A><B>improved-quickfix</B>*

Parse change-directory lines for gmake: &quot;make[1]: Entering directory 'name&#39;&#34;'.
Uses &quot;&#37;D&quot; and &quot;&#37;X&quot; in <A HREF="options.html#'errorformat'">'errorformat'</A>.
Also parse &quot;Making {target} in {dir}&quot; <A HREF="message.html#messages">messages</A> from make.  Helps when not
using GNU make. (Schandl)

Use <A HREF="options.html#'isfname'">'isfname'</A> for &quot;&#37;f&quot; in <A HREF="options.html#'errorformat'">'errorformat'</A>.

Parsing of multi-line <A HREF="message.html#messages">messages</A>. |<A HREF="quickfix.html#errorformat-multi-line">errorformat-multi-line</A>|

Allow a range for the |<A HREF="quickfix.html#:clist">:clist</A>| command. (Roemer)

Support for &quot;global&quot; file names, for error formats that output the file name
once for several <A HREF="message.html#errors">errors</A>. (Roemer)

|<A HREF="quickfix.html#:cnfile">:cnfile</A>| jumps to first error in next file.

&quot;$*&quot; in <A HREF="options.html#'makeprg'">'makeprg'</A> is replaced by arguments to &quot;<A HREF="quickfix.html#:make">:make</A>&quot;. (Roemer)



Regular expressions					*<A NAME="regexp-changes-5.4"></A><B>regexp-changes-5.4</B>*

In a <A HREF="pattern.html#regexp">regexp</A>, a '$' before &quot;\)&quot; is also considered to be an end-of-line. |<A HREF="pattern.html#/$">/$</A>|
In patterns &quot;^&quot; after &quot;\|&quot; or &quot;\(&quot; is a start-of-line. |/^| (Robinson)|||

In a <A HREF="pattern.html#regexp">regexp</A>, in front of &quot;\)&quot; and &quot;\|&quot; both &quot;<A HREF="motion.html#$">$</A>&quot; and &quot;\$&quot; were considered
end-of-line.  Now use &quot;<A HREF="motion.html#$">$</A>&quot; <A HREF="motion.html#as">as</A> end-of-line and &quot;\$&quot; for a literal dollar.  Same
for '^' after &quot;\(&quot; and &quot;\|&quot;. |/\$| |/\^||||||

Some search patterns can be extremely slow, even though they are not really
illegal.  For example: &quot;\([^a-z]\+\)\+Q&quot;.  Allow interrupting any <A HREF="pattern.html#regexp">regexp</A>
search with <A HREF="pattern.html#CTRL-C">CTRL-C</A>.

Register &quot;/: last search <A HREF="eval.html#string">string</A> (read-only). (Kohan)  Changed to use last used
search <A HREF="pattern.html#pattern">pattern</A> (like what <A HREF="options.html#'hlsearch'">'hlsearch'</A> uses).  Can set the search <A HREF="pattern.html#pattern">pattern</A> with
&quot;<A HREF="eval.html#:let">:let</A> <A HREF="change.html#@/">@/</A> = {expr}&quot;.

Added character classes to search patterns, to avoid the need for removing the
'<A HREF="motion.html#l">l</A>' flag from <A HREF="options.html#'cpoptions'">'cpoptions'</A>: |<A HREF="pattern.html#[:tab:]">[:tab:]</A>|, |<A HREF="pattern.html#[:return:]">[:return:]</A>|, |<A HREF="pattern.html#[:backspace:]">[:backspace:]</A>| and
|<A HREF="pattern.html#[:escape:]">[:escape:]</A>|.

By adding a '<A HREF="pattern.html#?">?</A>' after a comparative <A HREF="motion.html#operator">operator</A> in an <A HREF="eval.html#expression">expression</A>, the comparison
is done by ignoring <A HREF="change.html#case">case</A>. |<A HREF="eval.html#expr-==?">expr-==?</A>|


Other improvements made between version 5.3 and 5.4


Changed							*<A NAME="changed-5.4"></A><B>changed-5.4</B>*

<A HREF="os_unix.html#Unix">Unix</A>: Use $TMPDIR for temporary files, if <A HREF="motion.html#it">it</A> is set and exists.

Removed &quot;Empty buffer&quot; message.  It isn't useful and can cause a <A HREF="message.html#hit-enter">hit-enter</A>
prompt. (Negri)

&quot;<A HREF="starting.html#ex">ex</A> -&quot; now reads commands from stdin and works in silent mode.  This is to be
compatible with the original &quot;<A HREF="starting.html#ex">ex</A>&quot; command that is used for scripts.

Default range for &quot;<A HREF="if_tcl.html#:tcldo">:tcldo</A>&quot; is the whole file.

Cancelling <A HREF="visual.html#Visual">Visual</A> mode with ESC moved the cursor.  There appears to be no
reason for this.  Now leave the cursor where <A HREF="motion.html#it">it</A> is.

The &quot;<A HREF="quickfix.html#:grep">:grep</A>&quot; and &quot;<A HREF="quickfix.html#:make">:make</A>&quot; commands see &quot; <A HREF="motion.html#as">as</A> part of the arguments, instead of
the start of a comment.

In expressions the &quot;=~&quot; and &quot;!~&quot; operators no longer are affected by
<A HREF="options.html#'ignorecase'">'ignorecase'</A>.

Renamed vimrc_example to <A HREF="usr_05.html#vimrc_example.vim">vimrc_example.vim</A> and gvimrc_example to
gvimrc_example.vim.  Makes them being recognized <A HREF="motion.html#as">as</A> vim scripts.

&quot;<A HREF="pattern.html#gd">gd</A>&quot; no longer starts searching at the end of the previous function, but at
the first blank line above the start of the current function.  Avoids that
using &quot;<A HREF="pattern.html#gd">gd</A>&quot; in the first function finds global a variable.

Default for <A HREF="options.html#'complete'">'complete'</A> changed from &quot;.,b&quot; to &quot;.,w,b,u,t,i&quot;.  Many more matches
will be found, at the cost of time (the search can be interrupted).

It is no longer possible to set 'shell*' <A HREF="options.html#options">options</A> from a <A HREF="options.html#modeline">modeline</A>.  Previously
only a warning message was given.  This reduces security risks.

The ordering of the index of documentation files was changed to make <A HREF="motion.html#it">it</A> more
<A HREF="starting.html#easy">easy</A> to find a subject.

On <A HREF="os_msdos.html#MS-DOS">MS-DOS</A> and <A HREF="os_win32.html#win32">win32</A>, when <A HREF="starting.html#$VIM">$VIM</A> was not set, <A HREF="options.html#$HOME">$HOME</A> was used.  This caused
trouble if <A HREF="options.html#$HOME">$HOME</A> was set to e.g., &quot;C:\&quot; for some other tool, the runtime files
would not be found.  Now use <A HREF="options.html#$HOME">$HOME</A> only for <A HREF="starting.html#_vimrc">_vimrc</A>, <A HREF="gui.html#_gvimrc">_gvimrc</A>, etc., not to find
the runtime file.

When <A HREF="options.html#'tags'">'tags'</A> is &quot;./{fname}&quot; and there is no file name for the current buffer,
just use <A HREF="motion.html#it">it</A>.  Previously <A HREF="motion.html#it">it</A> was skipped, causing &quot;vim <A HREF="starting.html#-t">-t</A> {tag}&quot; not to find
many <A HREF="tagsrch.html#tags">tags</A>.

When trying to select text in the <A HREF="options.html#'scrolloff'">'scrolloff'</A> area by mouse dragging, the
resulting <A HREF="scroll.html#scrolling">scrolling</A> made this difficult.  Now <A HREF="options.html#'scrolloff'">'scrolloff'</A> is temporarily set
to 0 or 1 to avoid this.  But still allow <A HREF="scroll.html#scrolling">scrolling</A> in the top line to extend
to above the displayed text.

Default for <A HREF="options.html#'comments'">'comments'</A> now includes &quot;sl:/*,mb: *,ex:*/&quot;, to make javadoc
comments work.  Also helps for C comments that start with &quot;/*******&quot;.

<A HREF="change.html#CTRL-X">CTRL-X</A> <A HREF="tagsrch.html#CTRL-]">CTRL-]</A> <A HREF="insert.html#Insert">Insert</A> mode <A HREF="tagsrch.html#tag">tag</A> expansion tried to expand to all <A HREF="tagsrch.html#tags">tags</A> when used
after a non-ID character, which can take a very long time.  Now limit this to
200 matches.  Also used for command-line <A HREF="tagsrch.html#tag">tag</A> completion.

The <A HREF="os_os2.html#OS/2">OS/2</A> <A HREF="intro.html#distribution">distribution</A> has been split in two files.  It was too big to fit on a
floppy.  The same runtime archive <A HREF="motion.html#as">as</A> for the PC is now used.

In the documentation, items like &lt;a-z&gt; have been replaced with {a-z} for
non-optional arguments.  This avoids confusion with key names: &lt;C-Z&gt; is a
<A HREF="starting.html#CTRL-Z">CTRL-Z</A>, not a character between C and Z, that is {C-Z}.



Added							*<A NAME="added-5.4"></A><B>added-5.4</B>*

Color support for the iris-ansi builtin <A HREF="term.html#termcap">termcap</A> entry. (Tubman)

Included <A HREF="if_ole.html#VisVim">VisVim</A> version 1.3a. (Erhardt)

<A HREF="os_win32.html#Win32">Win32</A> port for SNiFF+ interface. (Leherbauer)
Documentation file for sniff interface: <A HREF="if_sniff.html#if_sniff.txt">if_sniff.txt</A>. (Leherbauer)

Included the &quot;SendToVim&quot; and &quot;OpenWithVim&quot; programs in the OleVim directory.
To be used with the OLE version of <A HREF="starting.html#gvim">gvim</A> under <A HREF="os_win32.html#MS-Windows">MS-Windows</A>. (Schaller)

Included Exuberant Ctags version 3.2.4 with Eiffel support. (Hiebert)

When a file that is being edited is deleted, give a warning (like when the
time stamp changed).

Included newer versions of the HTML-generating Awk and <A HREF="if_perl.html#Perl">Perl</A> scripts. (Colombo)

Linux console mouse support through &quot;gpm&quot;. (Tsindlekht)

Security fix: Disallow <A HREF="change.html#changing">changing</A> <A HREF="options.html#'secure'">'secure'</A> and <A HREF="options.html#'exrc'">'exrc'</A> from a <A HREF="options.html#modeline">modeline</A>.  When
<A HREF="options.html#'secure'">'secure'</A> is set, give a warning for <A HREF="change.html#changing">changing</A> <A HREF="options.html#options">options</A> that contain a program
name.

Made the <A HREF="if_perl.html#Perl">Perl</A> interface work with <A HREF="if_perl.html#Perl">Perl</A> 5.005 and threads. (Verdoolaege)

When giving an error message for an ambiguous <A HREF="map.html#mapping">mapping</A>, include the offending
<A HREF="map.html#mapping">mapping</A>. (Roemer)

Command line editing:
- Command line completion of mappings. (Roemer)
- Command line completion for &quot;<A HREF="eval.html#:function">:function</A>&quot;, &quot;<A HREF="eval.html#:delfunction">:delfunction</A>&quot;, &quot;<A HREF="eval.html#:let">:let</A>&quot;, &quot;<A HREF="eval.html#:call">:call</A>&quot;,
  &quot;<A HREF="eval.html#:if">:if</A>&quot;, etc. (Roemer)
- When using <A HREF="scroll.html#CTRL-D">CTRL-D</A> completion for user commands that have
  &quot;-complete=tag_listfiles&quot; also <A HREF="eval.html#list">list</A> the file names.  (Madsen)
- Complete the arguments of the &quot;<A HREF="map.html#:command">:command</A>&quot; command. (Webb)
- <A HREF="undo.html#CTRL-R">CTRL-R</A> . in command line inserts last inserted text.  <A HREF="scroll.html#CTRL-F">CTRL-F</A>, <A HREF="motion.html#CTRL-P">CTRL-P</A>, <A HREF="index.html#CTRL-W">CTRL-W</A>
  and <A HREF="change.html#CTRL-A">CTRL-A</A> after <A HREF="undo.html#CTRL-R">CTRL-R</A> are used to insert an object from under the cursor.
  (Madsen)

Made the text in <A HREF="uganda.html#uganda.txt">uganda.txt</A> about <A HREF="uganda.html#copying">copying</A> Vim a bit more clear.

Updated the Vim <A HREF="usr_01.html#tutor">tutor</A>.  Added the &quot;<A HREF="usr_01.html#vimtutor">vimtutor</A>&quot; command, which copies the <A HREF="usr_01.html#tutor">tutor</A>
and starts Vim on <A HREF="motion.html#it">it</A>.  &quot;make install&quot; now also copies the <A HREF="usr_01.html#tutor">tutor</A>.

In the output of &quot;<A HREF="quickfix.html#:clist">:clist</A>&quot; the current entry is highlighted, with the '<A HREF="insert.html#i">i</A>'
highlighting (same <A HREF="motion.html#as">as</A> used for <A HREF="options.html#'incsearch'">'incsearch'</A>).

For the &quot;<A HREF="quickfix.html#:clist">:clist</A>&quot; command, you can scroll backwards with &quot;<A HREF="motion.html#b">b</A>&quot; (one screenful),
&quot;<A HREF="undo.html#u">u</A>&quot; (half a screenful) and &quot;<A HREF="motion.html#k">k</A>&quot; (one line).

Multi-byte support:
- X-input method for <A HREF="mbyte.html#multi-byte">multi-byte</A> characters.  And various fixes for <A HREF="mbyte.html#multi-byte">multi-byte</A>
  support. (Nam)
- Hangul input method feature: |<A HREF="hangulin.html#hangul">hangul</A>|. (Nam)
- Cleaned up configuration of <A HREF="mbyte.html#multi-byte">multi-byte</A> support, <A HREF="mbyte.html#XIM">XIM</A>, <A HREF="mbyte.html#fontset">fontset</A> and Hangul
  input.  Each is now configurable separately.
- Changed check for GTK_KEYBOARD to HANGUL_KEYBOARD_TYPE. (Nam)
- Added doc/hangulin.txt: Documentation for the Hangul input code. (Nam)
- <A HREF="mbyte.html#XIM">XIM</A> support for <A HREF="gui_x11.html#GTK+">GTK+</A>. (Nam)
- First attempt to include support for SJIS encoding. (Nagano)
- When a double-byte character doesn't fit at the end of the line, put a &quot;<A HREF="change.html#~">~</A>&quot;
  there and print <A HREF="motion.html#it">it</A> on the next line.
- Optimize output of <A HREF="mbyte.html#multi-byte">multi-byte</A> text. (Park)
- <A HREF="os_win32.html#Win32">Win32</A> <A HREF="mbyte.html#IME">IME</A>: preedit style is like over-the-spot. (Nagano)
- <A HREF="os_win32.html#Win32">Win32</A> <A HREF="mbyte.html#IME">IME</A>: <A HREF="mbyte.html#IME">IME</A> mode change now done with ImmSetOpenStatus. (Nagano)
- <A HREF="gui.html#GUI">GUI</A> <A HREF="gui_x11.html#Athena">Athena</A>: file selection <A HREF="gui_w32.html#dialog">dialog</A> can display <A HREF="mbyte.html#multi-byte">multi-byte</A> characters.
  (Nagano)
- Selection reply for XA_TEXT <A HREF="motion.html#as">as</A> XA_STRING. (Nagano)

&quot;runtime/macros/diffwin.vim&quot;.  Mappings to make a <A HREF="diff.html#diff">diff</A> <A HREF="windows.html#window">window</A>. (Campbell)

Added &quot;.obj&quot; to the <A HREF="options.html#'suffixes'">'suffixes'</A> option.

Reduced size of syntax/synload.vim by using the &quot;:SynAu&quot; user command.
Automated numbering of <A HREF="autocmd.html#Syntax">Syntax</A> menu entries in <A HREF="gui.html#menu.vim">menu.vim</A>.
In the <A HREF="autocmd.html#Syntax">Syntax</A> menu, insert separators between <A HREF="syntax.html#syntax">syntax</A> names that start with
a different <A HREF="print.html#letter">letter</A>. (Geddes)

Xterm:
- Clipboard support when using the mouse in an xterm. (Madsen)
- When using the xterm mouse, track dragging of the mouse.  Use xterm <A HREF="intro.html#escape">escape</A>
  sequences when possible.  It is more precise than other methods, but
  requires a fairly recent xterm version.  It is enabled with &quot;xterm2&quot; in
  <A HREF="options.html#'ttymouse'">'ttymouse'</A>.  (Madsen)
- Check xterm patch level, to set the value of <A HREF="options.html#'ttymouse'">'ttymouse'</A>.  Has only been
  added to xterm recently (patch level <A HREF="change.html#&gt;">&gt;</A> 95).  Uses the new <A HREF="term.html#'t_RV'">'t_RV'</A> <A HREF="term.html#termcap">termcap</A>
  option.  Set <A HREF="options.html#'ttymouse'">'ttymouse'</A> to &quot;xterm2&quot; when a correct response is recognized.
  Will make xterm mouse dragging work better.
- Support for shifted function keys on xterm.  Changed codes for shifted
  cursor keys to what the xterm actually produces.  Added codes for shifted
  <A HREF="motion.html#&lt;End&gt;">&lt;End&gt;</A> and <A HREF="motion.html#&lt;Home&gt;">&lt;Home&gt;</A>.
- Added <A HREF="term.html#'t_WP'">'t_WP'</A> to set the <A HREF="windows.html#window">window</A> position in pixels and <A HREF="term.html#'t_WS'">'t_WS'</A> to set the
  <A HREF="windows.html#window">window</A> size in characters.  Xterm can now move (used for &quot;<A HREF="gui.html#:winpos">:winpos</A>&quot;) and
  resize (use for &quot;<A HREF="options.html#:set">:set</A> <A HREF="options.html#'lines'">lines</A>=&quot; and &quot;<A HREF="options.html#:set">:set</A> <A HREF="options.html#'columns'">columns</A>=&quot;).

<A HREF="options.html#X11">X11</A>:
- When in <A HREF="visual.html#Visual">Visual</A> mode but not owning the selection, display the <A HREF="visual.html#Visual">Visual</A> area
  with the VisualNOS group to show this. (Madsen)
- Support for requesting the type of <A HREF="gui.html#clipboard">clipboard</A> support.  Used for AIX and
  dtterm. (Wittig)
- Support compound_text selection (even when compiled without <A HREF="mbyte.html#multi-byte">multi-byte</A>).

Swap file:
- New variation for naming swap files: <A HREF="insert.html#Replace">Replace</A> path separators into <A HREF="motion.html#&#37;">&#37;</A>, place
  all swap files in one directory.  Used when a name in <A HREF="options.html#'dir'">'dir'</A> ends in two path
  separators. (Madsen)
- When a swap file is found, show whether <A HREF="motion.html#it">it</A> contains modifications or not in
  the informative message. (Madsen)
- When dialogs are supported, use a <A HREF="gui_w32.html#dialog">dialog</A> to ask the user what to <A HREF="diff.html#do">do</A> when a
  swapfile already exists.

&quot;popup_setpos&quot; in <A HREF="options.html#'mousemodel'">'mousemodel'</A> option.  Allows for moving the cursor when
using the right mouse button.

When a buffer is deleted, the selection for which buffer to display instead
now uses the most recent entry from the jump <A HREF="eval.html#list">list</A>. (Madsen)

When using CTRL-O/CTRL-I, skip deleted <A HREF="windows.html#buffers">buffers</A>.

A percentage is shown in the ruler, when there is room.

Used autoconf 1.13 to generate configure.

Included get_lisp_indent() from Dirk van Deun.  Does better Lisp indenting
when '<A HREF="change.html#p">p</A>' flag in <A HREF="options.html#'cpoptions'">'cpoptions'</A> is not included.

Made the <A HREF="syntax.html#2html.vim">2html.vim</A> <A HREF="usr_41.html#script">script</A> quite a bit faster.  (based on ideas from Geddes)

<A HREF="os_unix.html#Unix">Unix</A>:
- Included the name of the user that compiled Vim and the system name <A HREF="motion.html#it">it</A> was
  compiled on in the version message.
- &quot;make install&quot; now also installs the &quot;tools&quot; directory.  Makes them
  available for everybody.
- &quot;make check&quot; now does the same <A HREF="motion.html#as">as</A> &quot;make test&quot;.  &quot;make test&quot; checks for
  <A HREF="visual.html#Visual">Visual</A> block mode <A HREF="intro.html#shift">shift</A>, insert, replace and change.
- Speed up comparing a file name with existing <A HREF="windows.html#buffers">buffers</A> by storing the
  device/inode number with the buffer.
- Added configure arguments &quot;--disable-gtk&quot;, &quot;--disable-motif&quot; and
  &quot;--disable-athena&quot;, to be able to disable a specific <A HREF="gui.html#GUI">GUI</A> (when <A HREF="motion.html#it">it</A> doesn't
  work).
- Renamed the configure arguments for disabling the check for specific GUIs.
  Should be clearer now. (Kahn)
- On a Digital <A HREF="os_unix.html#Unix">Unix</A> system (&quot;OSF1&quot;) check for the curses library before
  termlib and <A HREF="term.html#termcap">termcap</A>. (Schild)
- &quot;make uninstall_runtime&quot; will only delete the version-specific files.  Can
  be used to delete the runtime files of a previous version.

<A HREF="os_mac.html#Macintosh">Macintosh</A>: (St-Amant)
- Dragging the scrollbar, like it's done for the <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>.  Moved common code
  from gui_w32.c to gui.c
- Added dialogs and file browsing.
- Resource <A HREF="os_unix.html#fork">fork</A> preserved, warning when <A HREF="motion.html#it">it</A> will be lost.
- Copy original file attributes to newly written file.
- Set title/notitle bug solved.
- Filename completion improved.
- Grow box limit resize to a char by char size.
- Use of <A HREF="gui_w32.html#rgb.txt">rgb.txt</A> for more colors (but give back bad color).
- Apple menu works (beside the about...).
- Internal border now vim compliant.
- Removing a menu doesn't crash anymore.
- Weak-linking of <A HREF="if_pyth.html#Python">Python</A> 1.5.1 (only on PPC).  <A HREF="if_pyth.html#Python">Python</A> is supported when the
  library is available.
- If an error is encountered when sourcing the users <A HREF="starting.html#.vimrc">.vimrc</A>, the alert box now
  shows right away with the OK button defaulted.  There's no more &quot;Delete&quot;-key
  sign at the start of each line
- Better management of environment <A HREF="eval.html#variables">variables</A>.  Now <A HREF="starting.html#$VIM">$VIM</A> is calculated only
  once, not regenerated every time <A HREF="motion.html#it">it</A> is used.
- No more CPU hog when in background.
- In a sourced Vim <A HREF="usr_41.html#script">script</A> the <A HREF="os_mac.html#Mac">Mac</A> file format can be recognized, just like <A HREF="os_dos.html#DOS">DOS</A>
  file format is.

When both &quot;<A HREF="os_unix.html#unix">unix</A>&quot; and &quot;<A HREF="os_mac.html#mac">mac</A>&quot; are present in <A HREF="options.html#'fileformats'">'fileformats'</A>, prefer &quot;<A HREF="os_mac.html#mac">mac</A>&quot; format
when there are more CR than NL characters.
When using &quot;<A HREF="os_mac.html#mac">mac</A>&quot; fileformat, use CR instead of a NL, because NL is used for
NUL.  Will preserve all characters in a file. (Madsen)

The <A HREF="os_dos.html#DOS">DOS</A> install.exe now contains checks for an existing installation.  It
avoids setting <A HREF="starting.html#$VIM">$VIM</A> and $PATH again.
The <A HREF="usr_90.html#install">install</A> program for Dos/Windows can now <A HREF="usr_90.html#install">install</A> Vim in the popup menu, by
adding two registry keys.

Port to EGCS/mingw32.  New Makefile.ming. (Aaron)

<A HREF="os_dos.html#DOS">DOS</A> 16 bit: Don't include cursor shape stuff.  Save some bytes.

<A HREF="if_tcl.html#TCL">TCL</A> support to Makefile.w32. (Duperval)

<A HREF="os_os2.html#OS/2">OS/2</A>: Use argv[0] to find runtime files.

When using &quot;<A HREF="editing.html#gf">gf</A>&quot; to go to a buffer that has already been used, jump to the
line where the cursor last was.

Colored the output of &quot;<A HREF="tagsrch.html#:tselect">:tselect</A>&quot; a bit more.  Different highlighting between
<A HREF="tagsrch.html#tag">tag</A> name and file name.  Highlight field name (&quot;struct:&quot;) separately from
argument.

Backtick expansion for non-Unix systems.  Based on a patch from Aaron.
Allows the use of things like &quot;<A HREF="editing.html#:n">:n</A> `grep <A HREF="starting.html#-l">-l</A> test *.c`&quot; and
&quot;echo expand('`ls m*`')&quot;.

Check for the <A HREF="options.html#'complete'">'complete'</A> option when <A HREF="motion.html#it">it</A> is set. (Acevedo)
'<A HREF="change.html#d">d</A>' flag in <A HREF="options.html#'complete'">'complete'</A> searches for defined names or macros.
While searching for <A HREF="insert.html#Insert">Insert</A> mode completions in include files and <A HREF="tagsrch.html#tags">tags</A> files,
check for typeahead, so that you can use matches early. (Webb)
The '<A HREF="repeat.html#.">.</A>' flag in <A HREF="options.html#'complete'">'complete'</A> now scans the current buffer completely, ignoring
<A HREF="options.html#'nowrapscan'">'nowrapscan'</A>.  (Webb)

Added '<A HREF="change.html#~">~</A>' flag to <A HREF="options.html#'whichwrap'">'whichwrap'</A>. (Acevedo)

When ending the <A HREF="visual.html#Visual">Visual</A> mode (e.g., with ESC) don't grab ownership of the
selection.

In a color <A HREF="terminal.html#terminal">terminal</A>, &quot;fg&quot; and &quot;bg&quot; can be used <A HREF="motion.html#as">as</A> color names.  They stand for
the &quot;<A HREF="intro.html#Normal">Normal</A>&quot; colors.

A few <A HREF="if_cscop.html#cscope">cscope</A> cleanups. (Kahn)

Included changed vimspell.sh from Schemenauer.

Concatenation of strings in an <A HREF="eval.html#expression">expression</A> with &quot;<A HREF="repeat.html#.">.</A>&quot; is a bit faster. (Roemer)

The &quot;<A HREF="various.html#:redir">:redir</A>&quot; command can now redirect to a <A HREF="sponsor.html#register">register</A>: &quot;<A HREF="various.html#:redir">:redir</A> @r&quot;. (Roemer)

Made the output of &quot;<A HREF="motion.html#:marks">:marks</A>&quot; and &quot;<A HREF="motion.html#:jumps">:jumps</A>&quot; look similar.  When the <A HREF="motion.html#mark">mark</A> is in
the current file, show the text at the <A HREF="motion.html#mark">mark</A>.  Also for &quot;<A HREF="tagsrch.html#:tags">:tags</A>&quot;.

When configure finds ftello() and fseeko(), they are used in tag.c (for when
you have extremely big <A HREF="tagsrch.html#tags">tags</A> files).

Configure check for &quot;-FOlimit,2000&quot; argument for the compiler. (Borsenkow)

<A HREF="gui.html#GUI">GUI</A>:
- When using &quot;<A HREF="gui_x11.html#:gui">:gui</A>&quot; in a non-GUI Vim, give a clear error message.
- &quot;<A HREF="starting.html#gvim">gvim</A> -v&quot; doesn't start the <A HREF="gui.html#GUI">GUI</A> (if console support is present).
- When in <A HREF="intro.html#Ex">Ex</A> mode, use non-Visual selection for the whole screen.
- When starting with &quot;<A HREF="starting.html#gvim">gvim</A> -f&quot; and using &quot;<A HREF="gui_x11.html#:gui">:gui</A>&quot; in the <A HREF="gui.html#.gvimrc">.gvimrc</A> file, Vim
  forked anyway.  Now the &quot;<A HREF="starting.html#-f">-f</A>&quot; flag is remembered for &quot;<A HREF="gui_x11.html#:gui">:gui</A>&quot;.  Added &quot;<A HREF="gui.html#gui">gui</A> -b&quot;
  to run <A HREF="starting.html#gvim">gvim</A> in the background anyway.

<A HREF="gui_x11.html#Motif">Motif</A> <A HREF="gui.html#GUI">GUI</A>:
- Check for &quot;-lXp&quot; library in configure (but <A HREF="motion.html#it">it</A> doesn't work yet...).
- Let configure check for Lesstif in &quot;/usr/local/Lesstif/Motif*&quot;.  Changed the
  order to let a local <A HREF="gui_x11.html#Motif">Motif</A> version override a system standard version.

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>:
- When using &quot;<A HREF="if_ole.html#-register">-register</A>&quot; or &quot;<A HREF="if_ole.html#-unregister">-unregister</A>&quot; in the non-OLE version, give an
  error message.
- Use <A HREF="gui_x11.html#GTK">GTK</A> toolbar icons.  Make <A HREF="windows.html#window">window</A> border look better.  Use sizing handles
  on the lower left&amp;right corners of the <A HREF="windows.html#window">window</A>. (Negri)
- When starting an external command with &quot;<A HREF="os_win32.html#:!start">:!start</A>&quot; and the command can not be
  executed, give an error message. (Webb)
- Use sizing handles for the grey rectangles below the scrollbars.  Can draw
  toolbar in flat mode now, looks better. (Negri)
- Preparations for <A HREF="os_win32.html#MS-Windows">MS-Windows</A> 3.1 addition.  Mostly <A HREF="change.html#changing">changing</A> WIN32 to MSWIN
  and USE_GUI_WIN32 to USE_GUI_MSWIN. (Negri)

Avoid allocating the same <A HREF="eval.html#string">string</A> four times in buflist_findpat(). (Williams)

Set title and icon text with <A HREF="term.html#termcap">termcap</A> <A HREF="options.html#options">options</A> <A HREF="term.html#'t_ts'">'t_ts'</A>, <A HREF="term.html#'t_fs'">'t_fs'</A>, <A HREF="term.html#'t_IS'">'t_IS'</A> and
<A HREF="term.html#'t_IE'">'t_IE'</A>.  Allows doing this on any <A HREF="terminal.html#terminal">terminal</A> that supports setting the title
and/or icon text. (Schild)

New '<A HREF="change.html#x">x</A>' flag in <A HREF="options.html#'comments'">'comments'</A>: Automatically insert the end part when its last
character is typed.  Helps to close a /* */ comment in C. (Webb)

When <A HREF="eval.html#expand()">expand()</A> has a second argument which is non-zero, don't use <A HREF="options.html#'suffixes'">'suffixes'</A>
and <A HREF="options.html#'wildignore'">'wildignore'</A>, return all matches.

'<A HREF="insert.html#O">O</A>' flag in <A HREF="options.html#'cpoptions'">'cpoptions'</A> When not included, Vim will not overwrite a file, if
<A HREF="motion.html#it">it</A> didn't exist when editing started but <A HREF="motion.html#it">it</A> does exist when the buffer is
written to the file.  The file must have been created outside of Vim, possibly
without the user knowing <A HREF="motion.html#it">it</A>.  When this is detected after a shell command,
give a warning message.

When editing a new file, <A HREF="editing.html#CTRL-G">CTRL-G</A> will show [New file].  When there were <A HREF="message.html#errors">errors</A>
while reading the file, <A HREF="editing.html#CTRL-G">CTRL-G</A> will show [Read errors].

&quot;<A HREF="editing.html#:wall">:wall</A>&quot; can now use a <A HREF="gui_w32.html#dialog">dialog</A> and file-browsing when needed.

Grouped functionality into new features, mainly to reduce the size of the
minimal version:
<A HREF="various.html#+linebreak">+linebreak</A>:	<A HREF="options.html#'showbreak'">'showbreak'</A>, <A HREF="options.html#'breakat'">'breakat'</A> and <A HREF="options.html#'linebreak'">'linebreak'</A>
<A HREF="various.html#+visualextra">+visualextra</A>:	&quot;I&quot;nsert and &quot;A&quot;ppend in <A HREF="visual.html#Visual">Visual</A> block mode, &quot;c&quot;hange all lines
		in a block, &quot;<A HREF="change.html#&gt;">&gt;</A>&quot; and &quot;<A HREF="change.html#&lt;">&lt;</A>&quot;: Shifting a block, &quot;<A HREF="change.html#r">r</A>&quot;: Replacing a
		<A HREF="visual.html#Visual">Visual</A> area with one character.
<A HREF="various.html#+comments">+comments</A>:	<A HREF="options.html#'comments'">'comments'</A>
<A HREF="various.html#+cmdline_info">+cmdline_info</A>:	<A HREF="options.html#'ruler'">'ruler'</A> and <A HREF="options.html#'showcmd'">'showcmd'</A>.  Replaces +showcmd.
&quot;<A HREF="various.html#+title">+title</A>&quot;	Don't add code to set title or icon for <A HREF="os_msdos.html#MSDOS">MSDOS</A>, this was not
		possible anyway.
<A HREF="various.html#+cmdline_compl">+cmdline_compl</A>	Disable commandline completion at compile time, except for
		files, directories and help items.

Moved features from a <A HREF="eval.html#list">list</A> of function calls into an array.  Should save a bit
of space.

While entering the body of a function, adjust indent according to &quot;if&quot; and
&quot;while&quot; commands.

<A HREF="os_vms.html#VMS">VMS</A>: Adjusted os_vms.mms a bit according to suggestions from Arpadffy.

The flags in the <A HREF="options.html#'comments'">'comments'</A> option can now include an offset.  This makes <A HREF="motion.html#it">it</A>
possible to align &quot;/*****&quot;, &quot;/*   xxx&quot; and &quot;/*&quot; comments with the same
<A HREF="options.html#'comments'">'comments'</A> setting.  The default value for <A HREF="options.html#'comments'">'comments'</A> uses this.
Added '<A HREF="insert.html#O">O</A>' flag: Don't use this part for the &quot;<A HREF="insert.html#O">O</A>&quot; command.  Useful for &quot;set
com=sO:*\ -,mO:*\ \ ,exO:*/&quot;

<A HREF="autocmd.html#FileType">FileType</A> autocommands recognize &quot;.bak&quot;, &quot;.orig&quot; and &quot;<A HREF="change.html#~">~</A>&quot; extensions and remove
them to find the relevant extension.

The tutorial for <A HREF="editing.html#writing">writing</A> a Vim <A HREF="usr_41.html#script">script</A> file has been extended.

Some more highlighting in help files, for items that are not typed literally.

Can use &quot;<A HREF="index.html#CTRL-W">CTRL-W</A> CTRL-G&quot; like &quot;<A HREF="index.html#CTRL-W">CTRL-W</A> g&quot;.

&quot;make test&quot; for <A HREF="os_os2.html#OS/2">OS/2</A>.

Adjusted configure to automatically use the <A HREF="gui.html#GUI">GUI</A> for <A HREF="os_beos.html#BeOS">BeOS</A>.



Fixed							*<A NAME="fixed-5.4"></A><B>fixed-5.4</B>*

5.3.1: When using an <A HREF="autocmd.html#autocommand">autocommand</A> for <A HREF="autocmd.html#BufWritePre">BufWritePre</A> that changes the name of the
buffer, freed memory would be used. (Geddes)

<A HREF="os_mac.html#Mac">Mac</A>: Compiler didn't understand start of skip_class_name().

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>:
- When cancelling the font requester, don't give an error message.
- When a tearoff-menu is open and its menu is deleted, Vim could crash.
  (Negri)
- There was a problem on Windows 95 with (un)maximizing the <A HREF="windows.html#window">window</A>.
  (Williams)
- when <A HREF="options.html#'mousehide'">'mousehide'</A> is set, the mouse would stay hidden when a menu is dropped
  with the keyboard. (Ralston)
- The <A HREF="eval.html#tempname()">tempname()</A> function already created the file.  Caused problems when
  using &quot;<A HREF="editing.html#:w">:w</A>&quot;.  Now the file is deleted.
- Cursor disappeared when ending up in the top-left character on the screen
  after <A HREF="scroll.html#scrolling">scrolling</A>. (Webb)
- When adding a submenu for a torn-off menu, <A HREF="motion.html#it">it</A> was not updated.
- Menu tooltip was using the toolbar tooltip. (Negri)
- Setting <A HREF="options.html#'notitle'">'notitle'</A> didn't remove the title. (Steed)
- Using &quot;<A HREF="os_win32.html#:!start">:!start</A> cmd&quot; scrolled the screen one line up, and didn't wait for
  return when the command wasn't found.

<A HREF="if_cscop.html#Cscope">Cscope</A> interface: Sorting of matches was wrong.  Starting the interface could
fail. (Kahn)

<A HREF="gui_x11.html#Motif">Motif</A> <A HREF="gui.html#GUI">GUI</A>: Could not compile with <A HREF="gui_x11.html#Motif">Motif</A> 1.1, because some tear-off
functionality was not in #ifdefs.

Configure could sometimes not compile or link the test program for sizeof(int)
properly.  This caused alignment problems for the <A HREF="undo.html#undo">undo</A> structure allocations.
Added a safety check that SIZEOF_INT is not zero.

Added configure check to test if strings.h can be included after string.h.
Some systems can't handle <A HREF="motion.html#it">it</A>.
Some systems need both string.h and strings.h included.  Adjusted vim.h for
that.  Removed including string.h from os_unixx.h, since it's already in
vim.h. (Savage)
AIX: defining _NO_PROTO in os_unix.h causes a conflict between string.h and
strings.h, but after the configure check said <A HREF="motion.html#it">it</A> was OK.  Also define
_NO_PROTO for AIX in the configure check. (Winn)

When closing a <A HREF="windows.html#window">window</A> with <A HREF="index.html#CTRL-W">CTRL-W</A> <A HREF="change.html#c">c</A>, the value of <A HREF="options.html#'hidden'">'hidden'</A> was not taken into
account, the buffer was always unloaded. (Negri)

<A HREF="os_unix.html#Unix">Unix</A> Makefile: &quot;make install&quot; always tried to rename an older executable and
remove <A HREF="motion.html#it">it</A>.  This caused an error message when <A HREF="motion.html#it">it</A> didn't exit.  Added a check
for the existence of an old executable.
The command line for &quot;make install&quot; could get too long, because of the many
<A HREF="syntax.html#syntax">syntax</A> files.  Now first <A HREF="diff.html#do">do</A> a &quot;cd&quot; to reduce the length.

On <A HREF="os_risc.html#RISCOS">RISCOS</A> and <A HREF="os_msdos.html#MSDOS">MSDOS</A>, reading a file could fail, because the short filename was
used, which can be wrong after a &quot;:!cd&quot;.

In the <A HREF="os_dos.html#DOS">DOS</A> versions, the wrong install.exe was included (required Windows).
Now the install.exe version is included that is the same <A HREF="motion.html#as">as</A> the Vim version.
This also supports long file names where possible.

When <A HREF="repeat.html#recording">recording</A>, and stopping while in <A HREF="insert.html#Insert">Insert</A> mode with <A HREF="motion.html#CTRL-O">CTRL-O</A> <A HREF="repeat.html#q">q</A>, the <A HREF="motion.html#CTRL-O">CTRL-O</A>
would also be recorded.

32bit <A HREF="os_dos.html#DOS">DOS</A> version: &quot;vim \file&quot;, while in a subdirectory, resulted in &quot;new
file&quot; for &quot;file&quot; in the local directory, while &quot;\file&quot; did exist.  When
&quot;file&quot; in the current directory existed, this didn't happen.

<A HREF="os_msdos.html#MSDOS">MSDOS</A>: Mouse could not go beyond 80 columns in 132 columns mode. (Young)

&quot;make test&quot; failed in the RedHat RPM, because compatible is off by default.

In <A HREF="insert.html#Insert">Insert</A> mode &lt;C-O&gt;&lt;C-W&gt;&lt;C-W&gt; changes to other <A HREF="windows.html#window">window</A>, but the status <A HREF="help.html#bars">bars</A>
were not updated until another character was typed.

<A HREF="os_msdos.html#MSDOS">MSDOS</A>: environment <A HREF="options.html#options">options</A> in <A HREF="change.html#lowercase">lowercase</A> didn't work, although they did in the
<A HREF="os_win32.html#Win32">Win32</A> versions. (Negri)

After &quot;<A HREF="pattern.html#:nohlsearch">:nohlsearch</A>&quot;, a <A HREF="tagsrch.html#tag">tag</A> command switched highlighting back on.

When using &quot;append&quot; command <A HREF="motion.html#as">as</A> the last line in an <A HREF="autocmd.html#autocommand">autocommand</A>, Vim would
crash.

<A HREF="os_risc.html#RISCOS">RISCOS</A>: The scroll bumpers (?) were not working properly. (Leonard)

&quot;<A HREF="scroll.html#zl">zl</A>&quot; and &quot;<A HREF="scroll.html#zh">zh</A>&quot; could move the cursor, but this didn't set the column in which
e.g., &quot;<A HREF="motion.html#k">k</A>&quot; would move the cursor.

When doing &quot;<A HREF="options.html#:set">:set</A> all&amp;&quot; the value of <A HREF="options.html#'scroll'">'scroll'</A> was not set correctly.  This
caused an error message when later setting any other number option.

When <A HREF="options.html#'hlsearch'">'hlsearch'</A> highlighting has been disabled with &quot;<A HREF="pattern.html#:nohlsearch">:nohlsearch</A>&quot;,
incremental searching would switch <A HREF="motion.html#it">it</A> back on too early.

When listing <A HREF="tagsrch.html#tags">tags</A> for &quot;<A HREF="tagsrch.html#:tselect">:tselect</A>&quot;, and using a non-search command, and the last
character was equal to the first (e.g., &quot;99&quot;), the last char would not be
shown.

When searching for <A HREF="tagsrch.html#tags">tags</A> with &quot;<A HREF="tagsrch.html#:tag">:tag</A>&quot; Vim would assume that all matches had been
found when there were still more (e.g. from another <A HREF="tagsrch.html#tags">tags</A> file).

<A HREF="os_win32.html#Win32">Win32</A>: Didn't recognize &quot;c:\&quot; (e.g., in <A HREF="tagsrch.html#tags">tags</A> file) <A HREF="motion.html#as">as</A> absolute path when
upper/lowercase was different.

Some xterms (Debian) send &lt;Esc&gt;OH for HOME and &lt;Esc&gt;OF for END.  Added these
to the builtin-xterm.

In <A HREF="starting.html#ex">ex</A> mode, any CR was seen <A HREF="motion.html#as">as</A> the end of the line.  Only a NL should be
handled that way.  broke &quot;:s/foo/some^Mtext/&quot;.

In <A HREF="gui.html#menu.vim">menu.vim</A>, a vmenu was used to override an amenu.  That didn't work, because
the system menu file doesn't overwrite existing <A HREF="gui.html#menus">menus</A>.  Added explicit vunmenu
to solve this.

Configure check for <A HREF="terminal.html#terminal">terminal</A> library could find a library that doesn't work at
runtime (Solaris: shared library not found).  Added a check that a program
with tgoto() can run correctly.

<A HREF="os_unix.html#Unix">Unix</A>: &quot;echo -n&quot; in the Makefile doesn't work on all systems, causing <A HREF="message.html#errors">errors</A>
compiling pathdef.c.  Replaced <A HREF="motion.html#it">it</A> with &quot;tr&quot;.

<A HREF="if_perl.html#Perl">Perl</A>: DO_JOIN was redefined by <A HREF="if_perl.html#Perl">Perl</A>.  Undefined <A HREF="motion.html#it">it</A> in the <A HREF="if_perl.html#perl">perl</A> files.

Various <A HREF="mbyte.html#XIM">XIM</A> and <A HREF="mbyte.html#multi-byte">multi-byte</A> fixes:
- Fix user cannot see his language while he is typing his language with
  off-the-spot method. (Nagano)
- Fix preedit position using text/edit area (using gui.wid). (Nagano)
- remove 'fix dead key' codes.  It was needed since XNFocusWindow was
  &quot;x11_window&quot;, XNFocusWindow is now gui.wid. (Nagano)
- Remove some compile warnings and fix typos. (Namsh)
- For status area, check the gtk+ version while Vim runs.  I believe <A HREF="motion.html#it">it</A> is
  better than compile time check. (Namsh)
- Remove one FIXME for gtk+-xim. (Namsh)
- <A HREF="mbyte.html#XIM">XIM</A>: Dead keys didn't work for Czech. (Vyskovsky)
- Multibyte: If user input only 3byte such <A HREF="motion.html#as">as</A> mb1_mb2_eng or eng_mb1_mb2 VIM
  could convert <A HREF="motion.html#it">it</A> to special character. (Nam)
- Athena/Motif with <A HREF="mbyte.html#XIM">XIM</A>: fix preedit area. (Nam)
- <A HREF="mbyte.html#XIM">XIM</A>: Composed strings were sometimes ignored.  Vim crashed when compose
  <A HREF="eval.html#string">string</A> was longer than 256 bytes.  IM's geometry <A HREF="intro.html#control">control</A> is fixed. (Nam,
  Nagano)
- <A HREF="os_win32.html#Win32">Win32</A> <A HREF="mbyte.html#multi-byte">multi-byte</A>: hollowed cursor width on a double byte char was wrong.
  (Nagano)
- When there is no <A HREF="gui.html#GUI">GUI</A>, selecting <A HREF="mbyte.html#XIM">XIM</A> caused compilation problems.
  Automatically disable <A HREF="mbyte.html#XIM">XIM</A> when there is no <A HREF="gui.html#GUI">GUI</A> in configure.
- <A HREF="gui_x11.html#Motif">Motif</A> and <A HREF="gui_x11.html#Athena">Athena</A>: When compiled with <A HREF="mbyte.html#XIM">XIM</A>, but the input method was not
  enabled, there would still be a status line.  Now the status line is gone if
  the input method doesn't work. (Nam)

<A HREF="os_win32.html#Win32">Win32</A>: tooltip was not removed when selecting a parent menu (it was when
selecting a menu entry). (Negri)

<A HREF="os_unix.html#Unix">Unix</A> with X: Some systems crash on exit, because of the XtCloseDisplay() call.
Removed <A HREF="motion.html#it">it</A>, <A HREF="motion.html#it">it</A> should not be necessary when <A HREF="starting.html#exiting">exiting</A>.

<A HREF="os_win32.html#Win32">Win32</A>: Crash on keypress when compiled with Borland C++. (Aaron)

When checking for <A HREF="gui_x11.html#Motif">Motif</A> library files, prefer the same location <A HREF="motion.html#as">as</A> the include
files (with &quot;include&quot; replaced with &quot;lib&quot;) above another entry.

<A HREF="gui_x11.html#Athena">Athena</A> <A HREF="gui.html#GUI">GUI</A>: Changed &quot;XtOffset()&quot; in gui_at_fs.c to &quot;XtOffsetOf()&quot;, like it's
used in gui_x11.c.

<A HREF="os_win32.html#Win32">Win32</A>: When <A HREF="eval.html#testing">testing</A> for a <A HREF="editing.html#timestamp">timestamp</A> of a file on floppy, would get a <A HREF="gui_w32.html#dialog">dialog</A>
box when the floppy has been removed.  Now return with an error.  (Negri)

<A HREF="os_win32.html#Win32">Win32</A> OLE: When forced to come to the foreground, a minimized <A HREF="windows.html#window">window</A> was still
minimized, now it's restored. (Zivkov)

There was no check for a positive <A HREF="options.html#'shiftwidth'">'shiftwidth'</A>.  A negative value could cause
a hangup, a zero value a crash.

<A HREF="gui_x11.html#Athena">Athena</A> <A HREF="gui.html#GUI">GUI</A>: horizontal scrollbar wasn't updated correctly when clicking right
or left of the thumb.

When making a Visual-block selection in one <A HREF="windows.html#window">window</A>, and trying to scroll
another, could cause <A HREF="message.html#errors">errors</A> for accessing non-existent line numbers.

When <A HREF="options.html#'matchpairs'">'matchpairs'</A> contains &quot;`:&#39;&#34;', jumping from the ` to the '' didn't work
properly.

Changed '\&quot;' to &#39;&#34;'' to make <A HREF="motion.html#it">it</A> compatible with old C compilers.

The command line expansion for mappings caused a <A HREF="usr_41.html#script">script</A> with a TAB between lhs
and rhs of a map command to fail.  Assume the TAB is to separate lhs and rhs
when there are no mappings to expand.

When editing a file with very long lines with <A HREF="options.html#'scrolloff'">'scrolloff'</A> set, &quot;<A HREF="motion.html#j">j</A>&quot; would
sometimes end up in a line which wasn't displayed.

When editing a read-only file, <A HREF="motion.html#it">it</A> was completely read into memory, even when
<A HREF="motion.html#it">it</A> would not fit.  Now create a swap file for a read-only file when running
out of memory while reading the file.

When using &quot;<A HREF="options.html#:set">:set</A> <A HREF="options.html#'cino'">cino</A>={s,e-s&quot;, a line after &quot;<A HREF="motion.html#}">}</A> else {&quot; was not indented
properly.  Also added a check for this in test3.in.

The Hebrew <A HREF="map.html#mapping">mapping</A> for the command line was remembered for the next command
line.  That isn't very useful, a command is not Hebrew. (Kol)

When completing file names with embedded spaces, like &quot;Program\ files&quot;, this
didn't work.  Also for user commands.  Moved backslash_halve() down to
mch_expandpath().

When using &quot;set mouse=a&quot; in <A HREF="intro.html#Ex">Ex</A> mode, mouse events were handled like typed
text.  Then typing &quot;quit&quot; screwed up the mouse behavior of the xterm.

When <A HREF="repeat.html#repeating">repeating</A> an insert with &quot;<A HREF="repeat.html#.">.</A>&quot; that contains a <A HREF="scroll.html#CTRL-Y">CTRL-Y</A>, a number 5 was
inserted <A HREF="motion.html#as">as</A> &quot;053&quot;.

Yanking a <A HREF="visual.html#Visual">Visual</A> area, with the cursor past the line, didn't move the cursor
back onto the line.  Same for &quot;<A HREF="change.html#~">~</A>&quot;, &quot;<A HREF="undo.html#u">u</A>&quot;, &quot;<A HREF="undo.html#U">U</A>&quot; and &quot;<A HREF="change.html#g?">g?</A>&quot;

<A HREF="os_win32.html#Win32">Win32</A>: Default for <A HREF="options.html#'grepprg'">'grepprg'</A> could be &quot;findstr /n&quot; even though there is no
findstr.exe (Windows 95).  Check if <A HREF="motion.html#it">it</A> exists, and fall back to &quot;<A HREF="quickfix.html#grep">grep</A> -n&quot; if
<A HREF="motion.html#it">it</A> doesn't.

Because gui_mouse_moved() inserted a leftmouse click in the input buffer,
remapping a leftmouse click caused strange effects.  Now <A HREF="insert.html#Insert">Insert</A> another code
in the input buffer.  Also insert a leftmouse release, to avoid the problem
with &quot;<A HREF="map.html#:map">:map</A> <A HREF="visual.html#&lt;LeftMouse&gt;">&lt;LeftMouse&gt;</A> l&quot; that the next release is seen <A HREF="motion.html#as">as</A> the release for the
focus click.

With <A HREF="options.html#'wrap'">'wrap'</A> on, when using a line that doesn't fit on the screen, if the start
of the <A HREF="visual.html#Visual">Visual</A> area is before the start of the screen, there was no
highlighting.  Also, <A HREF="options.html#'showbreak'">'showbreak'</A> doesn't work properly.

<A HREF="os_dos.html#DOS">DOS</A>, <A HREF="os_win32.html#Win32">Win32</A>: A <A HREF="pattern.html#pattern">pattern</A> &quot;[0-9]\+&quot; didn't work in autocommands.

When creating a swap file for a buffer which isn't the current buffer, could
get a mixup of short file name, resulting in a long file name when a short
file name was required.  makeswapname() was calling modname() instead of
buf_modname().

When a function caused an error, and the error message was very long because
of recursiveness, this would cause a crash.

<A HREF="options.html#'suffixes'">'suffixes'</A> were always compared with matching <A HREF="change.html#case">case</A>.  For <A HREF="os_msdos.html#MS-DOS">MS-DOS</A>, <A HREF="os_win32.html#Win32">Win32</A> and
<A HREF="os_os2.html#OS/2">OS/2</A> <A HREF="change.html#case">case</A> is now ignored.

The use of CHARBITS in regexp.c didn't work on some Linux.  Don't use <A HREF="motion.html#it">it</A>.

When generating a <A HREF="usr_41.html#script">script</A> file, <A HREF="options.html#'cpo'">'cpo'</A> was made empty.  This caused backslashes
to disappear from mappings.  Set <A HREF="motion.html#it">it</A> to &quot;<A HREF="motion.html#B">B</A>&quot; to avoid that.

Lots of typos in the documentation. (Campbell)

When editing an existing (hidden) buffer, jump to the last used cursor
position. (Madsen)

On a Sun the xterm screen was not restored properly when suspending. (Madsen)

When $VIMINIT is processed, <A HREF="options.html#'nocompatible'">'nocompatible'</A> was only set after processing <A HREF="motion.html#it">it</A>.

<A HREF="os_unix.html#Unix">Unix</A>: Polling for a character wasn't done for GPM, Sniff and Xterm <A HREF="gui.html#clipboard">clipboard</A>
all together.  Cleaned up the code for using select() too.

When executing external commands from the <A HREF="gui.html#GUI">GUI</A>, some typeahead was lost.  Added
some code to regain <A HREF="motion.html#as">as</A> much typeahead <A HREF="motion.html#as">as</A> possible.

When the <A HREF="windows.html#window">window</A> height is 5 lines or fewer, <A HREF="scroll.html#&lt;PageDown&gt;">&lt;PageDown&gt;</A> didn't use a one-line
overlap, while <A HREF="scroll.html#&lt;PageUp&gt;">&lt;PageUp&gt;</A> does.  Made sure that <A HREF="scroll.html#&lt;PageUp&gt;">&lt;PageUp&gt;</A> uses the same overlap
<A HREF="motion.html#as">as</A> <A HREF="scroll.html#&lt;PageDown&gt;">&lt;PageDown&gt;</A>, so that using them both always displays the same lines.

Removed a few unused <A HREF="eval.html#functions">functions</A> and <A HREF="eval.html#variables">variables</A> (found with lint).

<A HREF="eval.html#Dictionary">Dictionary</A> completion didn't use <A HREF="options.html#'infercase'">'infercase'</A>. (Raul)

Configure tests failed when the <A HREF="if_perl.html#Perl">Perl</A> library was not in LD_LIBRARY_PATH.
Don't use the <A HREF="if_perl.html#Perl">Perl</A> library for configure tests, add <A HREF="motion.html#it">it</A> to the linker line only
when linking Vim.

When using ncurses/terminfo, could get a <A HREF="term.html#'t_Sf'">'t_Sf'</A> and <A HREF="term.html#'t_Sb'">'t_Sb'</A> <A HREF="term.html#termcap">termcap</A> entry that
has &quot;&#37;d&quot; instead of &quot;&#37;p1&#37;d&quot;.  The light background colors didn't work then.

<A HREF="gui_x11.html#GTK">GTK</A> <A HREF="gui.html#GUI">GUI</A> with ncurses: Crashed when starting up in tputs().  Don't use tputs()
when the <A HREF="gui.html#GUI">GUI</A> is active.

Could use the &quot;<A HREF="eval.html#:let">:let</A>&quot; command to set the &quot;<A HREF="intro.html#count">count</A>&quot;, &quot;shell_error&quot; and &quot;version&quot;
<A HREF="eval.html#variables">variables</A>, but that didn't work.  Give an error message when trying to set
them.

On FreeBSD 3.0, tclsh is called tclsh8.0.  Adjusted configure.in to find <A HREF="motion.html#it">it</A>.

When Vim is linked with -lncurses, but <A HREF="if_pyth.html#python">python</A> uses -ltermcap, this causes
trouble: &quot;OOPS&quot;.  Configure now removes the -ltermcap.

:@&quot; and :*&quot; didn't work properly, because the &quot; was recognized <A HREF="motion.html#as">as</A> the start of
a comment.

Win32s <A HREF="gui.html#GUI">GUI</A>: Minimizing the console where a <A HREF="change.html#filter">filter</A> command runs in caused
trouble for detecting that the <A HREF="change.html#filter">filter</A> command has finished. (Negri)

After executing a <A HREF="change.html#filter">filter</A> command from an xterm, the mouse would be disabled.
It would work again after <A HREF="change.html#changing">changing</A> the mode.

<A HREF="os_mac.html#Mac">Mac</A> <A HREF="gui.html#GUI">GUI</A>: Crashed in newenv(). (St-Amant)

The <A HREF="gui.html#menus">menus</A> and mappings in <A HREF="gui_w32.html#mswin.vim">mswin.vim</A> didn't handle text ending in a NL
correctly. (Acevedo)

The &quot;<A HREF="motion.html#:k">:k</A>&quot; command didn't check if <A HREF="motion.html#it">it</A> had a valid argument or extra characters.
Now give a meaningful error message. (Webb)

On SGI, the signal function doesn't always have three arguments.  Check for
struct sigcontext to find out.  Might still be wrong...

Could crash when using <A HREF="options.html#'hlsearch'">'hlsearch'</A> and search <A HREF="pattern.html#pattern">pattern</A> is &quot;<A HREF="motion.html#^">^</A>&quot;.

When search patterns were saved and restored, status of no_hlsearch was not
also saved and restored (from &quot;<A HREF="pattern.html#:nohlsearch">:nohlsearch</A>&quot; command).

When using <A HREF="eval.html#setline()">setline()</A> to make a line shorter, the cursor position was not
adjusted.

<A HREF="os_msdos.html#MS-DOS">MS-DOS</A> and Win95: When trying to edit a file and accidentally adding a slash
or <A HREF="intro.html#backslash">backslash</A> at the end, the file was deleted.  Probably when trying to create
the swap file.  Explicitly check for a trailing slash or <A HREF="intro.html#backslash">backslash</A> before
trying to read a file.

<A HREF="options.html#X11">X11</A> <A HREF="gui.html#GUI">GUI</A>: When starting the <A HREF="gui.html#GUI">GUI</A> failed and received a deadly signal while
setting the title, would lock up when trying to exit, because the title is
reset again.  Avoid using mch_settitle() recursively.

<A HREF="options.html#X11">X11</A> <A HREF="gui.html#GUI">GUI</A>: When starting the <A HREF="gui.html#GUI">GUI</A> fails, and then trying <A HREF="motion.html#it">it</A> again, would crash,
because argv[] has been freed and x11_display was reset to NULL.

<A HREF="os_win32.html#Win32">Win32</A>: When <A HREF="options.html#$HOME">$HOME</A> was set, would put &quot;~user&quot; in the swap file, which would
never compare with a file name, and never cause the attention message.  Put
the full path in the swap file instead.

<A HREF="os_win32.html#Win32">Win32</A> console: There were funny characters at the end of the &quot;vim -r&quot; swap
files message (direct output of CR CR LF).

<A HREF="os_dos.html#DOS">DOS</A> 32 bit: &quot;vim -r&quot; put the text at the top of the <A HREF="windows.html#window">window</A>.

<A HREF="gui.html#GUI">GUI</A>: With <A HREF="options.html#'mousefocus'">'mousefocus'</A> set, got mouse codes <A HREF="motion.html#as">as</A> text with &quot;!sleep 100&quot; or &quot;<A HREF="intro.html#Q">Q</A>&quot;.

<A HREF="gui_x11.html#Motif">Motif</A> and <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When <A HREF="change.html#changing">changing</A> <A HREF="options.html#'guifont'">'guifont'</A> to a font of the same size the
screen wasn't redrawn.

<A HREF="os_unix.html#Unix">Unix</A>: When using &quot;<A HREF="quickfix.html#:make">:make</A>&quot;, jumping to a file b.c, which is already open <A HREF="motion.html#as">as</A> a
symbolic link a.c, opened a new buffer instead of using the existing one.

Inserting text in the current buffer while sourcing the <A HREF="starting.html#.vimrc">.vimrc</A> file would
cause a crash or hang.  The memfile for the current buffer was never
allocated.  Now it's allocated <A HREF="motion.html#as">as</A> soon <A HREF="motion.html#as">as</A> something is written in the buffer.

<A HREF="os_dos.html#DOS">DOS</A> 32 bit: &quot;lightblue&quot; background worked for text, but not drawn parts were
black.

<A HREF="os_dos.html#DOS">DOS</A>: Colors of console were not restored upon <A HREF="starting.html#exiting">exiting</A>.

When <A HREF="repeat.html#recording">recording</A>, with <A HREF="options.html#'cmdheight'">'cmdheight'</A> set to 2 and typing Esc&gt; in <A HREF="insert.html#Insert">Insert</A> mode
caused the &quot;<A HREF="repeat.html#recording">recording</A>&quot; message to be doubled.

Spurious &quot;file changed&quot; <A HREF="message.html#messages">messages</A> could happen on Windows.  Now tolerate a one
second difference, like for Linux.

<A HREF="gui.html#GUI">GUI</A>: When returning from <A HREF="intro.html#Ex">Ex</A> mode, scrollbars were not updated.

<A HREF="os_win32.html#Win32">Win32</A>: Copying text to the <A HREF="gui.html#clipboard">clipboard</A> containing a <A HREF="motion.html#&lt;CR&gt;">&lt;CR&gt;</A>, pasting <A HREF="motion.html#it">it</A> would
replace <A HREF="motion.html#it">it</A> with a <A HREF="motion.html#&lt;NL&gt;">&lt;NL&gt;</A> and drop the next character.

Entering a double byte character didn't work if the second byte is in [xXoO].
(Eric Lee)

vim_realloc was both defined and had a prototype in proto/misc2.pro.  Caused
conflicts on Solaris.

A <A HREF="pattern.html#pattern">pattern</A> in an <A HREF="autocmd.html#autocommand">autocommand</A> was treated differently on <A HREF="os_dos.html#DOS">DOS</A> et al. than on
<A HREF="os_unix.html#Unix">Unix</A>.  Now it's the same, also when using backslashes.

When using <A HREF="motion.html#&lt;Tab&gt;">&lt;Tab&gt;</A> <A HREF="if_cscop.html#twice">twice</A> for command line completion, without a match, the <A HREF="motion.html#&lt;Tab&gt;">&lt;Tab&gt;</A>
would be inserted. (Negri)

Bug in MS-Visual C++ 6.0 when compiling ex_docmd.c with optimization. (Negri)

Testing the result of mktemp() for failure was wrong.  Could cause a crash.
(Peters)

<A HREF="gui.html#GUI">GUI</A>: When checking for a &quot;<A HREF="gui.html#.gvimrc">.gvimrc</A>&quot; file in the current directory, didn't check
for a &quot;<A HREF="gui.html#_gvimrc">_gvimrc</A>&quot; file too.

<A HREF="gui_x11.html#Motif">Motif</A> <A HREF="gui.html#GUI">GUI</A>: When using the popup menu and then adding an item to the menu <A HREF="motion.html#bar">bar</A>,
the menu <A HREF="motion.html#bar">bar</A> would get very high.

Mouse clicks and special keys (e.g. cursor keys) quit the more prompt and
dialogs.  Now they are ignored.

When at the <A HREF="message.html#more-prompt">more-prompt</A>, xterm selection didn't work.  Now use the '<A HREF="change.html#r">r</A>' flag in
<A HREF="options.html#'mouse'">'mouse'</A> also for the <A HREF="message.html#more-prompt">more-prompt</A>.

When selecting a <A HREF="visual.html#Visual">Visual</A> area of more than 1023 lines, with <A HREF="options.html#'guioptions'">'guioptions'</A> set to
&quot;<A HREF="insert.html#a">a</A>&quot;, could mess up the display because of a message in free_yank().  Removed
that message, except for the <A HREF="os_amiga.html#Amiga">Amiga</A>.

Moved auto-selection from ui_write() to the screen update <A HREF="eval.html#functions">functions</A>.  Avoids
unexpected behavior from a low-level function.  Also makes the different
feedback of owning the selection possible.

<A HREF="intro.html#Vi">Vi</A> incompatibility: Using &quot;i&lt;CR&gt;&quot; in an indent, with <A HREF="options.html#'ai'">'ai'</A> set, used the
original indent instead of truncating <A HREF="motion.html#it">it</A> at the cursor. (Webb)

&quot;<A HREF="eval.html#:echo">:echo</A> x&quot; didn't stop at &quot;<A HREF="repeat.html#q">q</A>&quot; for the more prompt.

Various fixes for <A HREF="os_mac.html#Macintosh">Macintosh</A>. (St-Amant)

When using <A HREF="options.html#'selectmode'">'selectmode'</A> set to &quot;<A HREF="motion.html#exclusive">exclusive</A>&quot;, selecting a <A HREF="motion.html#word">word</A> and then using
<A HREF="tagsrch.html#CTRL-]">CTRL-]</A> included the character under the cursor.

Using &quot;<A HREF="eval.html#:let">:let</A> a:name&quot; in a function caused a crash. (Webb)

When using &quot;<A HREF="insert.html#:append">:append</A>&quot;, an empty line didn't scroll up.

<A HREF="os_dos.html#DOS">DOS</A> etc.: A file name starting with '<A HREF="change.html#!">!</A>' didn't work.  Added '<A HREF="change.html#!">!</A>' to default for
<A HREF="options.html#'isfname'">'isfname'</A>.

<A HREF="os_beos.html#BeOS">BeOS</A>: Compilation problem with prototype of skip_class_name(). (Price)

When <A HREF="change.html#deleting">deleting</A> more than one line, e.g., with &quot;de&quot;, could still use &quot;<A HREF="undo.html#U">U</A>&quot;
command, which didn't work properly then.

<A HREF="os_amiga.html#Amiga">Amiga</A>: Could not compile ex_docmd.c, <A HREF="motion.html#it">it</A> was getting too big.  Moved some
<A HREF="eval.html#functions">functions</A> to ex_cmds.c.

The <A HREF="eval.html#expand()">expand()</A> function would add a trailing slash for directories.

Didn't give an error message when trying to assign a value to an argument of a
function.  (Webb)

Moved including sys/ptem.h to after termios.h.  Needed for Sinix.

OLE interface: Don't delete the object in CVimCF::Release() when the reference
<A HREF="intro.html#count">count</A> becomes zero. (Cordell)
<A HREF="if_ole.html#VisVim">VisVim</A> could still crash on exit. (Erhardt)

&quot;<A HREF="change.html#case">case</A> a: <A HREF="change.html#case">case</A> b:&quot; (two <A HREF="change.html#case">case</A> statements in one line) aligned with the second
<A HREF="change.html#case">case</A>.  Now <A HREF="motion.html#it">it</A> uses one <A HREF="options.html#'sw'">'sw'</A> for indent. (Webb)

Font initialisation wasn't right for Athena/Motif <A HREF="gui.html#GUI">GUI</A>.  Moved the call to
highlight_gui_started() gui_mch_init() to gui_mch_open(). (Nam)

In <A HREF="insert.html#Replace">Replace</A> mode, backspacing over a TAB before where the replace mode started
while <A HREF="options.html#'sts'">'sts'</A> is different from <A HREF="options.html#'ts'">'ts'</A>, would delete the TAB.

<A HREF="os_win32.html#Win32">Win32</A> console: When executing external commands and switching between the two
console screens, Vim would copy the text between the <A HREF="windows.html#buffers">buffers</A>.  That caused the
screen to be messed up for backtick expansion.

&quot;<A HREF="gui.html#:winpos">:winpos</A> -1&quot; then &quot;<A HREF="gui.html#:winpos">:winpos</A>&quot; gave wrong error message.

Windows commander creates files called c:\tmp\$wc\abc.txt.  Don't remove the
<A HREF="intro.html#backslash">backslash</A> before the $.  Environment <A HREF="eval.html#variables">variables</A> were not expanded anyway,
because of the <A HREF="intro.html#backslash">backslash</A> before the dollar.

Using &quot;-=&quot; with &quot;<A HREF="options.html#:set">:set</A>&quot; could remove half a part when <A HREF="motion.html#it">it</A> contains a &quot;\,&quot;.
E.g., &quot;<A HREF="options.html#:set">:set</A> path+=a\\,b&quot; and then &quot;set path-=b&quot;  removed &quot;,b&quot;.

When Visually selecting lines, with <A HREF="options.html#'selection'">'selection'</A> set to &quot;<A HREF="motion.html#inclusive">inclusive</A>&quot;, including
the last char of the line, &quot;<A HREF="change.html#&lt;&lt;">&lt;&lt;</A>&quot; moved an extra line.  Also for other operators
that always work on lines.

link.sh changed &quot;-lnsl_s&quot; to &quot;_s&quot; when looking for &quot;nsl&quot; to be removed.
Now <A HREF="motion.html#it">it</A> only remove whole words.

When jumped to a <A HREF="motion.html#mark">mark</A> or using &quot;fz&quot;, and there is an error, the current column
was lost.  E.g. when using &quot;$fzj&quot;.

The &quot;g CTRL-G&quot; command could not be interrupted, even though <A HREF="motion.html#it">it</A> can take a
long time.

Some terminals <A HREF="diff.html#do">do</A> have <A HREF="term.html#&lt;F4&gt;">&lt;F4&gt;</A> and <A HREF="term.html#&lt;xF4&gt;">&lt;xF4&gt;</A>.  <A HREF="term.html#&lt;xF4&gt;">&lt;xF4&gt;</A> was always interpreted <A HREF="motion.html#as">as</A> <A HREF="term.html#&lt;F4&gt;">&lt;F4&gt;</A>.
Now map <A HREF="term.html#&lt;xF4&gt;">&lt;xF4&gt;</A> to <A HREF="term.html#&lt;F4&gt;">&lt;F4&gt;</A>, so that the user can override this.

When compiling os_win32.c with MIN_FEAT the apply_autocmds() should not be
used. (Aaron)

This <A HREF="autocmd.html#autocommand">autocommand</A> looped forever: &quot;<A HREF="autocmd.html#:au">:au</A> <A HREF="autocmd.html#FileChangedShell">FileChangedShell</A> &#42; nested <A HREF="motion.html#e">e</A> &lt;afile&gt;&quot;
Now FileChangeShell never nests. (Roemer)

When evaluating an &quot;<A HREF="eval.html#:elseif">:elseif</A>&quot; that was not going to matter anyway, ignore
<A HREF="message.html#errors">errors</A>. (Roemer)

<A HREF="gui.html#GUI">GUI</A> Lesstif: Tearoff <A HREF="motion.html#bar">bar</A> was the last item, instead of the first.

<A HREF="gui.html#GUI">GUI</A> <A HREF="gui_x11.html#Motif">Motif</A>: Colors of tear-off widgets was wrong when '<A HREF="motion.html#t">t</A>' flag added to
<A HREF="options.html#'guioptions'">'guioptions'</A> afterwards.  When '<A HREF="motion.html#t">t</A>' flag in <A HREF="options.html#'guioptions'">'guioptions'</A> is excluded, would
still get a tearoff item in a new menu.

An inode number can be &quot;long long&quot;.  Use ino_t instead of long.  Added
configure check for ino_t.

Binary search for <A HREF="tagsrch.html#tags">tags</A> was using a file offset &quot;long&quot; instead of &quot;off_t&quot;.

<A HREF="insert.html#Insert">Insert</A> mode completion of <A HREF="tagsrch.html#tags">tags</A> was not using <A HREF="options.html#'ignorecase'">'ignorecase'</A> properly.

In <A HREF="insert.html#Insert">Insert</A> mode, the &lt;xFn&gt; keys were not properly mapped to &lt;Fn&gt; for the
default mappings.  Also caused <A HREF="message.html#errors">errors</A> for &quot;<A HREF="starting.html#:mkvimrc">:mkvimrc</A>&quot; and &quot;<A HREF="starting.html#:mksession">:mksession</A>&quot;.

When jumping to another <A HREF="windows.html#window">window</A> while in <A HREF="insert.html#Insert">Insert</A> mode, would get the &quot;warning:
<A HREF="change.html#changing">changing</A> readonly file&quot; even when not making a change.

A '<A HREF="motion.html#(">(</A>' or '<A HREF="motion.html#{">{</A>' inside a trailing &quot;<A HREF="version7.html#//">//</A>&quot; comment would disturb <A HREF="indent.html#C-indenting">C-indenting</A>.
When using two labels below each other, the second one was not indented
properly.  Comments could mess up <A HREF="indent.html#C-indenting">C-indenting</A> in many places.  (Roemer)

Could delete or redefine a function while <A HREF="motion.html#it">it</A> was being used.  Could cause a
crash.
In a function it's logical to prepend &quot;<A HREF="eval.html#g:">g:</A>&quot; to a system variable, but this
didn't work. (Roemer)

Hangul input: Buffer would overflow when user inputs invalid key sequence.
(Nam)

When BufLoad or <A HREF="autocmd.html#BufEnter">BufEnter</A> autocommands change the topline of the buffer in the
<A HREF="windows.html#window">window</A>, <A HREF="motion.html#it">it</A> was overruled and the cursor put halfway the <A HREF="windows.html#window">window</A>.  Now only put
the cursor halfway if the autocommands didn't change the topline.

Calling exists(&quot;&amp;option&quot;) always returned 1. (Roemer)

<A HREF="os_win32.html#Win32">Win32</A>: Didn't take actually available memory into account. (Williams)

White space after an automatically inserted comment leader was not removed
when <A HREF="options.html#'ai'">'ai'</A> is not set and <A HREF="motion.html#&lt;CR&gt;">&lt;CR&gt;</A> hit just after <A HREF="insert.html#inserting">inserting</A> <A HREF="motion.html#it">it</A>. (Webb)

A few <A HREF="gui.html#menus">menus</A> had duplicated accelerators. (Roemer)

Spelling <A HREF="message.html#errors">errors</A> in documentation, quite a few &quot;the the&quot;. (Roemer)

Missing prototypes for <A HREF="os_mac.html#Macintosh">Macintosh</A>. (Kielhorn)

<A HREF="os_win32.html#Win32">Win32</A>: When using <A HREF="options.html#'shellquote'">'shellquote'</A> or <A HREF="options.html#'shellxquote'">'shellxquote'</A>, the &quot;!start cmd&quot; wasn't
executed in a disconnected process.

When resizing the <A HREF="windows.html#window">window</A>, causing a line before the cursor to wrap or unwrap,
the cursor was displayed in the wrong position.

There was quite a bit of dead code when compiling with minimal features.

When doing a &quot;:&#37;s///&quot; command that makes lines shorter, such that lines above
the final cursor position no longer wrap, the cursor position was not updated.

get_id_list() could allocate an array one too small, when a &quot;contains=&quot; item
has a <A HREF="editing.html#wildcard">wildcard</A> that matches a group name that is added just after <A HREF="motion.html#it">it</A>.  E.g.:
&quot;contains=a.*b,axb&quot;.  Give an error message for <A HREF="motion.html#it">it</A>.

When yanking a <A HREF="visual.html#Visual">Visual</A> area and using the middle mouse button -&gt; crash.  When
<A HREF="gui.html#clipboard">clipboard</A> doesn't work, now make &quot;* always use &quot;&quot;.

<A HREF="os_win32.html#Win32">Win32</A>: Using &quot;<A HREF="windows.html#:buf">:buf</A> a\ b\file&quot; didn't work, <A HREF="motion.html#it">it</A> was interpreted <A HREF="motion.html#as">as</A> &quot;ab\file&quot;.

Using &quot;<A HREF="tagsrch.html#:ts">:ts</A> ident&quot;, then hit <A HREF="motion.html#&lt;CR&gt;">&lt;CR&gt;</A>, with <A HREF="options.html#'cmdheight'">'cmdheight'</A> set to 2: command line was
not cleared, the tselect prompt was on the last but one line.

mksession didn't restore the cursor column properly when <A HREF="motion.html#it">it</A> was after a <A HREF="intro.html#tab">tab</A>.
Could not get all <A HREF="windows.html#windows">windows</A> back when using a smaller <A HREF="terminal.html#terminal">terminal</A> screen.  Didn't
restore all <A HREF="windows.html#windows">windows</A> when &quot;winsize&quot; was not in <A HREF="options.html#'sessionoptions'">'sessionoptions'</A>. (Webb)

Command line completion for &quot;<A HREF="windows.html#:buffer">:buffer</A>&quot; depended on <A HREF="options.html#'ignorecase'">'ignorecase'</A> for <A HREF="os_unix.html#Unix">Unix</A>, but
not for <A HREF="os_dos.html#DOS">DOS</A> et al.  Now don't use <A HREF="options.html#'ignorecase'">'ignorecase'</A>, but let <A HREF="motion.html#it">it</A> depend on whether
file names are <A HREF="change.html#case">case</A> sensitive or not (like when expanding file names).

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: (Negri)
- Redrawing the background caused flicker when resizing the <A HREF="windows.html#window">window</A>.  Removed
  _OnEraseBG().  Removed CS_HREDRAW and CS_VREDRAW flags from the
  sndclass.style.
- Some parts of the <A HREF="windows.html#window">window</A> were drawn in grey, instead of using the color from
  the user color scheme.
- Dropping a file on <A HREF="starting.html#gvim">gvim</A> didn't activate the <A HREF="windows.html#window">window</A>.
- When there is no menu ('guioptions' excludes 'm'), never use the ALT key for
  <A HREF="motion.html#it">it</A>.

<A HREF="gui.html#GUI">GUI</A>: When resizing the <A HREF="windows.html#window">window</A>, would make the <A HREF="windows.html#window">window</A> height a bit smaller.
Now round off to the nearest char cell size. (Negri)

In <A HREF="intro.html#Vi">Vi</A> the &quot;<A HREF="motion.html#)">)</A>&quot; and &quot;<A HREF="motion.html#(">(</A>&quot; commands don't stop at a single space after a dot.
Added '<A HREF="change.html#J">J</A>' flag in <A HREF="options.html#'cpoptions'">'cpoptions'</A> to make this behave <A HREF="intro.html#Vi">Vi</A> compatible. (Roemer)

When saving a session without any <A HREF="windows.html#buffers">buffers</A> loaded, there would be a &quot;<A HREF="various.html#:normal">:normal</A>&quot;
command without arguments in <A HREF="motion.html#it">it</A>. (Webb)

Memory leaks fixed: (Madsen)
- eval.c: forgot to release func structure when func deleted
- ex_docmd.c: forgot to release <A HREF="eval.html#string">string</A> after &quot;<A HREF="cmdline.html#&lt;sfile&gt;">&lt;sfile&gt;</A>&quot;
- misc1.c: leak when completion <A HREF="pattern.html#pattern">pattern</A> had no matches.
- os_unix.c: forgot to release <A HREF="pattern.html#regexp">regexp</A> after file completions

Could crash when using a buffer without a name. (Madsen)
Could crash when doing file name completion, because of backslash_halve().
(Madsen)

&quot;:@a&quot; would <A HREF="diff.html#do">do</A> mappings on <A HREF="sponsor.html#register">register</A> a, which is not <A HREF="intro.html#Vi">Vi</A> compatible. (Roemer)

&quot;:g/foo.*()/s/foobar/_&amp;/gc&quot; worked fine, but then &quot;<A HREF="pattern.html#n">n</A>&quot; searched for &quot;foobar&quot;
and displayed &quot;/foo.*()&quot;. (Roemer)

<A HREF="os_os2.html#OS/2">OS/2</A>: get_cmd_output() was not included.  Didn't check for $VIM/.vimrc file.

Command line completion of <A HREF="options.html#options">options</A> didn't work after &quot;+=&quot; and &quot;-=&quot;.

<A HREF="os_unix.html#Unix">Unix</A> configure: Test for memmove()/bcopy()/memcpy() tried redefining these
<A HREF="eval.html#functions">functions</A>, which could fail if they are defined already.  Use mch_memmove() to
redefine.

<A HREF="os_unix.html#Unix">Unix</A>: &quot;<A HREF="eval.html#:let">:let</A> a = expand(&quot;`xterm`&amp;&quot;)&quot; started an xterm asynchronously, but
&quot;<A HREF="eval.html#:let">:let</A> a = expand(&quot;`xterm&amp;`&quot;)&quot; generated an error message, because the
redirection was put after the '<A HREF="change.html#&amp;">&amp;</A>'.

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Dialog buttons could not be selected properly with cursor keys,
when the default is not the first button. (Webb)

The &quot;File has changed since editing started&quot; (when regaining focus) could not
always be seen. (Webb)

When starting with &quot;<A HREF="starting.html#ex">ex</A> filename&quot;, the file message was overwritten with
the &quot;entering <A HREF="intro.html#Ex">Ex</A> mode&quot; message.

Output of &quot;<A HREF="tagsrch.html#:tselect">:tselect</A>&quot; listed name of file directly from the <A HREF="tagsrch.html#tags">tags</A> file.  Now <A HREF="motion.html#it">it</A>
is corrected for the position of the <A HREF="tagsrch.html#tags">tags</A> file.

When <A HREF="options.html#'backspace'">'backspace'</A> is 0, could backspace over autoindent.  Now <A HREF="motion.html#it">it</A> is no longer
allowed (Vi compatible).

In <A HREF="insert.html#Replace">Replace</A> mode, when <A HREF="options.html#'noexpandtab'">'noexpandtab'</A> and <A HREF="options.html#'smarttab'">'smarttab'</A> were set, and <A HREF="insert.html#inserting">inserting</A>
Tabs, backspacing didn't work correctly for Tabs inserted at the start of the
line (unless <A HREF="options.html#'sts'">'sts'</A> was set too).  Also, when <A HREF="change.html#replacing">replacing</A> the first non-blank
after which is a space, rounding the indent was done on the first non-blank
instead of on the character under the cursor.

When <A HREF="options.html#'sw'">'sw'</A> at 4, <A HREF="options.html#'ts'">'ts'</A> at 8 and <A HREF="options.html#'smarttab'">'smarttab'</A> set: When a <A HREF="intro.html#tab">tab</A> was appended after
four spaces (they are replaced with a <A HREF="intro.html#tab">tab</A>) couldn't backspace over the <A HREF="intro.html#tab">tab</A>.

In <A HREF="insert.html#Insert">Insert</A> mode, with <A HREF="options.html#'bs'">'bs'</A> set to 0, couldn't backspace to before autoindent,
even when <A HREF="motion.html#it">it</A> was removed with <A HREF="scroll.html#CTRL-D">CTRL-D</A>.

When <A HREF="repeat.html#repeating">repeating</A> an insert command where a <A HREF="motion.html#&lt;BS&gt;">&lt;BS&gt;</A>, <A HREF="motion.html#&lt;Left&gt;">&lt;Left&gt;</A> or other key causes an
error, would flush <A HREF="windows.html#buffers">buffers</A> and remain in <A HREF="insert.html#Insert">Insert</A> mode.  No longer flush
<A HREF="windows.html#buffers">buffers</A>, only beep and continue with the insert command.

Dos and <A HREF="os_win32.html#Win32">Win32</A> console: Setting <A HREF="term.html#t_me">t_me</A> didn't work to get another color.  Made
this works backwards compatible.

For Turkish (LANG = &quot;tr&quot;) <A HREF="change.html#uppercase">uppercase</A> '<A HREF="insert.html#i">i</A>' is not an '<A HREF="insert.html#I">I</A>'.  Use ASCII <A HREF="change.html#uppercase">uppercase</A>
translation in vim_strup() to avoid language problems. (Komur)

<A HREF="os_unix.html#Unix">Unix</A>: Use usleep() or nanosleep() for mch_delay() when available.  Hopefully
this avoids a hangup in select(0, ..) for Solaris 2.6.

Vim would crash when using a <A HREF="usr_41.html#script">script</A> file with 'let &amp;sp = &quot;| tee&quot;', starting
vim with &quot;vim <A HREF="starting.html#-u">-u</A> test&quot;, then doing &quot;<A HREF="options.html#:set">:set</A> <A HREF="options.html#'sp'">sp</A>=&quot;.  The P_WAS_SET flag wasn't set
for a <A HREF="eval.html#string">string</A> option, could cause problems with any <A HREF="eval.html#string">string</A> option.

When using &quot;cmd &#124; vim -&quot;, stdin is not a <A HREF="terminal.html#terminal">terminal</A>.  This gave problems with
GPM (Linux console mouse) and when executing external commands.  Now close
stdin and re-open <A HREF="motion.html#it">it</A> <A HREF="motion.html#as">as</A> a copy of stderr.

<A HREF="autocmd.html#Syntax">Syntax</A> highlighting: A &quot;nextgroup&quot; item was not properly stored in the state
<A HREF="eval.html#list">list</A>.  This caused missing of next groups when not redrawing from start to
end, but starting halfway.

Didn't check for valid values of <A HREF="options.html#'ttymouse'">'ttymouse'</A>.

When executing an external command from the <A HREF="gui.html#GUI">GUI</A>, waiting for the child to
terminate might not work, causing a hang. (Parmelan)

&quot;make uninstall&quot; didn't delete the <A HREF="usr_05.html#vimrc_example.vim">vimrc_example.vim</A> and gvimrc_example.vim
files and the <A HREF="usr_01.html#vimtutor">vimtutor</A>.

<A HREF="os_win32.html#Win32">Win32</A>: &quot;expand(&quot;&#37;:p:h&quot;)&quot; with no buffer name removed the directory name.
&quot;fnamemodify(&quot;&quot;, &quot;:p&quot;)&quot; did not add a trailing slash, fname_case() removed <A HREF="motion.html#it">it</A>.

Fixed: When <A HREF="options.html#'hlsearch'">'hlsearch'</A> was set and the '<A HREF="change.html#c">c</A>' flag was not in <A HREF="options.html#'cpoptions'">'cpoptions'</A>:
highlighting was not correct.  Now overlapping matches are handled correctly.

<A HREF="gui_x11.html#Athena">Athena</A>, <A HREF="gui_x11.html#Motif">Motif</A> and <A HREF="gui_x11.html#GTK">GTK</A> <A HREF="gui.html#GUI">GUI</A>: When started without focus, cursor was shown <A HREF="motion.html#as">as</A> if
with focus.

Don't include <A HREF="options.html#'shellpipe'">'shellpipe'</A> when compiled without <A HREF="quickfix.html#quickfix">quickfix</A>, it's not used.
Don't include <A HREF="options.html#'dictionary'">'dictionary'</A> option when compiled without the <A HREF="various.html#+insert_expand">+insert_expand</A>
feature.
Only include the <A HREF="options.html#'shelltype'">'shelltype'</A> option for the <A HREF="os_amiga.html#Amiga">Amiga</A>.

When making a change to a line, with <A HREF="options.html#'hlsearch'">'hlsearch'</A> on, causing <A HREF="motion.html#it">it</A> to wrap, while
executing a <A HREF="sponsor.html#register">register</A>, the screen would not be updated correctly.  This was a
generic problem in update_screenline() being called while must_redraw is
VALID.

Using &quot;<A HREF="windows.html#:bdelete">:bdelete</A>&quot; in a <A HREF="autocmd.html#BufUnload">BufUnload</A> <A HREF="autocmd.html#autocommand">autocommand</A> could cause a crash.  The <A HREF="windows.html#window">window</A>
height was added to another <A HREF="windows.html#window">window</A> <A HREF="if_cscop.html#twice">twice</A> in close_window().

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When removing a menu item, the tearoff wasn't updated. (Negri)

Some performance bottlenecks removed.  Allocating memory was not efficient.
For <A HREF="os_win32.html#Win32">Win32</A> checking for available memory was slow, don't check <A HREF="motion.html#it">it</A> every time
now.  On NT obtaining the user name takes a long time, cache the result (for
all systems).

<A HREF="eval.html#fnamemodify()">fnamemodify()</A> with an argument &quot;:~:.&quot; or &quot;:.:~&quot; didn't work properly.

When editing a new file and <A HREF="starting.html#exiting">exiting</A>, the marks for the buffer were not saved
in the <A HREF="starting.html#viminfo">viminfo</A> file.

&quot;<A HREF="editing.html#:confirm">:confirm</A> only&quot; didn't put up a <A HREF="gui_w32.html#dialog">dialog</A>.

These text <A HREF="index.html#objects">objects</A> didn't work when <A HREF="options.html#'selection'">'selection'</A> was &quot;<A HREF="motion.html#exclusive">exclusive</A>&quot;: va( vi( va{
vi{ va&lt; vi&lt; vi[ va[.

The <A HREF="gui_w32.html#dialog">dialog</A> for <A HREF="editing.html#writing">writing</A> a readonly file didn't have a valid default. (Negri)

The line number used for error <A HREF="message.html#messages">messages</A> when sourcing a file was reset when
modelines were inspected.  It was wrong when executing a function.

The file name and line number for an error message wasn't displayed when <A HREF="motion.html#it">it</A>
was the same <A HREF="motion.html#as">as</A> for the last error, even when this was long ago.  Now reset
the name/lnum after a <A HREF="message.html#hit-enter">hit-enter</A> prompt.

In a session file, a &quot;<A HREF="motion.html#&#37;">&#37;</A>&quot; in a file name caused trouble, because fprintf() was
used to write <A HREF="motion.html#it">it</A> to the file.

When skipping statements, a <A HREF="motion.html#mark">mark</A> in an address wasn't skipped correctly:
&quot;ka|if 0|'ad|else|echo|endif&quot;. (Roemer)

&quot;<A HREF="editing.html#:wall">:wall</A>&quot; could overwrite a <A HREF="editing.html#not-edited">not-edited</A> file without asking.

<A HREF="gui.html#GUI">GUI</A>: When $DISPLAY was not set or starting the <A HREF="gui.html#GUI">GUI</A> failed in another way, the
console mode then started with wrong colors and skipped initializations.  Now
<A HREF="diff.html#do">do</A> an early check if the <A HREF="gui.html#GUI">GUI</A> can be started.  Don't source the <A HREF="gui.html#menu.vim">menu.vim</A> or
<A HREF="gui.html#gvimrc">gvimrc</A> when <A HREF="motion.html#it">it</A> will not.  Also <A HREF="diff.html#do">do</A> normal <A HREF="terminal.html#terminal">terminal</A> initializations if the <A HREF="gui.html#GUI">GUI</A>
might not start.

When using a <A HREF="autocmd.html#BufEnter">BufEnter</A> <A HREF="autocmd.html#autocommand">autocommand</A> to position the cursor and scroll the
<A HREF="windows.html#window">window</A>, the cursor was always put at the last used line and halfway the <A HREF="windows.html#window">window</A>
anyhow.

When <A HREF="options.html#'wildmode'">'wildmode'</A> was set to &quot;longest,list:full&quot;, &quot;<A HREF="editing.html#:e">:e</A> *.c&lt;Tab&gt;&lt;Tab&gt;&quot; didn't <A HREF="eval.html#list">list</A>
the matches.  Also avoid that listing after a &quot;longest&quot; lists the wrong
matches when the first expansion changed the <A HREF="eval.html#string">string</A> in front of the cursor.

When using &quot;<A HREF="insert.html#:insert">:insert</A>&quot;, &quot;<A HREF="insert.html#:append">:append</A>&quot; or &quot;<A HREF="change.html#:change">:change</A>&quot; inside a while loop, was not able
to break out of <A HREF="motion.html#it">it</A> with a <A HREF="pattern.html#CTRL-C">CTRL-C</A>.

<A HREF="os_win32.html#Win32">Win32</A>: &quot;<A HREF="editing.html#:e">:e</A> .&quot; took an awful long time before an error message when used in
&quot;C:\&quot;.  Was caused by adding another <A HREF="intro.html#backslash">backslash</A> and then trying to get the full
name for &quot;C:\\&quot;.

&quot;<A HREF="gui.html#:winpos">:winpos</A> -10 100&quot; was working like &quot;<A HREF="gui.html#:winpos">:winpos</A> -10 -10&quot;, because a pointer was
not advanced past the '<A HREF="motion.html#-">-</A>' sign.

When obtaining the value of a hidden option, would give an error message.  Now
just use a zero value.

<A HREF="os_os2.html#OS/2">OS/2</A>: Was using argv[0], even though <A HREF="motion.html#it">it</A> was not a useful name.  It could be
just &quot;vim&quot;, found in the search path.

Xterm: &quot;<A HREF="options.html#:set">:set</A> <A HREF="options.html#'columns'">columns</A>=78&quot; didn't redraw properly (when lines wrap/unwrap) until
after a delay of <A HREF="options.html#'updatetime'">'updatetime'</A>.  Didn't check for the size-changed signal.

<A HREF="options.html#'scrollbind'">'scrollbind'</A> didn't work in <A HREF="insert.html#Insert">Insert</A> mode.
Horizontal scrollbinding didn't always work for &quot;<A HREF="motion.html#0">0</A>&quot; and &quot;<A HREF="motion.html#$">$</A>&quot; commands (e.g.,
when <A HREF="options.html#'showcmd'">'showcmd'</A> was off).

When compiled with minimal features but with <A HREF="gui.html#GUI">GUI</A>, switching on the mouse in an
xterm caused garbage, because the mouse codes were not recognized.  Don't
enable the mouse when <A HREF="motion.html#it">it</A> can't be recognized.  In the <A HREF="gui.html#GUI">GUI</A> <A HREF="motion.html#it">it</A> also didn't work,
the arguments to the mouse code were not interpreted.

When <A HREF="options.html#'showbreak'">'showbreak'</A> used, in <A HREF="insert.html#Insert">Insert</A> mode, when the cursor is just after the last
character in the line, which is also the in the rightmost column, the cursor
position would be like the <A HREF="options.html#'showbreak'">'showbreak'</A> <A HREF="eval.html#string">string</A> is shown, but <A HREF="motion.html#it">it</A> wasn't.

Autocommands could move the cursor in a new file, so that <A HREF="index.html#CTRL-W">CTRL-W</A> <A HREF="insert.html#i">i</A> didn't show
the right line.  Same for when using a filemark to jump to another file.

When redefining the argument <A HREF="eval.html#list">list</A>, the title used for other <A HREF="windows.html#windows">windows</A> could be
showing the wrong info about the position in the argument <A HREF="eval.html#list">list</A>.  Also update
this for a &quot;<A HREF="windows.html#:split">:split</A>&quot; command without arguments.

When editing file 97 of 13, &quot;<A HREF="editing.html#:Next">:Next</A>&quot; didn't work.  Now <A HREF="motion.html#it">it</A> goes to the last
file in the argument <A HREF="eval.html#list">list</A>.

<A HREF="insert.html#Insert">Insert</A> mode completion (for dictionaries or included files) could not be
interrupted by typing an <A HREF="intro.html#&lt;Esc&gt;">&lt;Esc&gt;</A>.  Could get <A HREF="message.html#hit-enter">hit-enter</A> prompt after line
completion, or whenever the informative message would get too long.

When using the &quot;<A HREF="editing.html#:edit">:edit</A>&quot; command to re-edit the same file, an <A HREF="autocmd.html#autocommand">autocommand</A> to
jump to the last cursor position caused the cursor to move.  Now set the last
used cursor position to avoid this.

When <A HREF="options.html#'comments'">'comments'</A> has a part that starts with white space, <A HREF="change.html#formatting">formatting</A> the
comment didn't work.

At the &quot;<A HREF="tagsrch.html#:tselect">:tselect</A>&quot; prompt <A HREF="intro.html#Normal">Normal</A> mode mappings were used.  That has been
disabled.

When <A HREF="options.html#'selection'">'selection'</A> is not &quot;old&quot;, some commands still didn't allow the cursor
past the end-of-line in <A HREF="visual.html#Visual">Visual</A> mode.

<A HREF="gui_x11.html#Athena">Athena</A>: When a menu was deleted, <A HREF="motion.html#it">it</A> would appear again (but not functional)
when adding another menu.  Now they don't reappear anymore (although they are
not really deleted either).

Borland C++ 4.x had an optimizer problem in fill_breakat_flags(). (Negri)

&quot;<A HREF="scroll.html#ze">ze</A>&quot; didn't work when <A HREF="options.html#'number'">'number'</A> was on. (Davis)

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Intellimouse code didn't work properly on Windows 98. (Robinson)

A few files were including proto.h a second time, after vim.h had already done
that, which could cause problems with the vim_realloc() <A HREF="map.html#macro">macro</A>.

<A HREF="os_win32.html#Win32">Win32</A> console: &lt;M-x&gt; or ALT-x was not recognized.  Also keypad '<A HREF="motion.html#+">+</A>', '<A HREF="motion.html#-">-</A>' and
'*'. (Negri)
<A HREF="os_msdos.html#MS-DOS">MS-DOS</A>: &lt;M-x&gt; didn't work, produced a two-byte code.  Now the alphabetic and
number keys work. (Negri)

When finding a lot of matches for a <A HREF="tagsrch.html#tag">tag</A> completion, the check for avoiding
double matches could take a lot of time.  Add a line_breakcheck() to be able
to interrupt this. (Deshpande)

When the command line was getting longer than the screen, the <A HREF="message.html#more-prompt">more-prompt</A>
would be given regularly, and the cursor position would be wrong.  Now only
show the part of the command line that fits on the screen and force the cursor
to be positioned on the visible part.  There can be text after the cursor
which isn't editable.

At the more prompt and with the console <A HREF="gui_w32.html#dialog">dialog</A>, a cursor key was interpreted
<A HREF="motion.html#as">as</A> <A HREF="intro.html#&lt;Esc&gt;">&lt;Esc&gt;</A> and OA.  Now recognize special keys in get_keystroke().  Ignore mouse
and scrollbar events.

When typing a BS after <A HREF="insert.html#inserting">inserting</A> a middle comment leader, typing the last char
of the end comment leader still changed <A HREF="motion.html#it">it</A> into the end comment leader. (Webb)

When a file system is full, <A HREF="editing.html#writing">writing</A> to a swap file failed.  Now first try to
write one block to the file.  Try next entry in <A HREF="options.html#'dir'">'dir'</A> if <A HREF="motion.html#it">it</A> fails.

When &quot;<A HREF="change.html#~">~</A>&quot; is in <A HREF="options.html#'whichwrap'">'whichwrap'</A>, doing &quot;<A HREF="change.html#~">~</A>&quot; on last char of a line didn't update the
display.

<A HREF="os_unix.html#Unix">Unix</A>: Expanding <A HREF="editing.html#wildcards">wildcards</A> for &quot;<A HREF="editing.html#:file">:file</A> {\\}&quot; didn't work, because &quot;\}&quot; was
translated to &quot;<A HREF="motion.html#}">}</A>&quot; before the shell got <A HREF="motion.html#it">it</A>.  Now don't remove backslashes when
<A HREF="editing.html#wildcards">wildcards</A> are going to be expanded.

<A HREF="os_unix.html#Unix">Unix</A>: &quot;<A HREF="editing.html#:e">:e</A> /tmp/$uid&quot; didn't work.  When expanding environment <A HREF="eval.html#variables">variables</A> in a
file name doesn't work, use the shell to expand the file name.  &quot;<A HREF="editing.html#:e">:e</A> /tmp/$tty&quot;
still doesn't work though.

&quot;make test&quot; didn't always work on DOS/Windows for test30, because <A HREF="motion.html#it">it</A> depended
on the external &quot;echo&quot; command.

The link.sh <A HREF="usr_41.html#script">script</A> used &quot;make&quot; instead of $MAKE from the Makefile.  Caused
problems for generating pathdef.c when &quot;make&quot; doesn't work properly.

On versions that can <A HREF="diff.html#do">do</A> console and <A HREF="gui.html#GUI">GUI</A>: In the console a typed CSI code could
cause trouble.

The patterns in <A HREF="eval.html#expression">expression</A> evaluation didn't ignore the '<A HREF="motion.html#l">l</A>' flag in
<A HREF="options.html#'cpoptions'">'cpoptions'</A>.  This broke the working of <A HREF="motion.html#&lt;CR&gt;">&lt;CR&gt;</A> in the <A HREF="options.html#options">options</A> <A HREF="windows.html#window">window</A>.

When <A HREF="options.html#'hls'">'hls'</A> off and <A HREF="options.html#'ai'">'ai'</A> on, &quot;O&lt;Esc&gt;&quot; did remove the indent, but <A HREF="motion.html#it">it</A> was still
highlighted red for trailing space.

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Dropping an encrypted file on a running <A HREF="starting.html#gvim">gvim</A> didn't work right.  Vim
would loop while outputting &quot;*&quot; characters.  vgetc() was called recursively,
thus <A HREF="motion.html#it">it</A> returns NUL.  Added safe_vgetc(), which reads input directly from the
user in this situation.

While reading text from stdin, only an empty screen was shown.  Now show that
Vim is reading from stdin.

The cursor shape wasn't set properly when returning to <A HREF="insert.html#Insert">Insert</A> mode, after
using a <A HREF="motion.html#CTRL-O">CTRL-O</A> /asdf command which fails.  It would be OK after a few seconds.
Now it's OK right away.

The <A HREF="options.html#'isfname'">'isfname'</A> default for DOS/Windows didn't include the '<A HREF="repeat.html#@">@</A>' character.  File
names that contained &quot;dir\@file&quot; could not be edited.

<A HREF="os_win32.html#Win32">Win32</A> console: &lt;C-S-Left&gt; could cause a crash when compiled with Borland or
egcs. (Aaron)

<A HREF="os_unix.html#Unix">Unix</A> and <A HREF="os_vms.html#VMS">VMS</A>: &quot;#if HAVE_DIRENT_H&quot; caused problems for some compilers.  Use
&quot;#ifdef HAVE_DIRENT_H&quot; instead. (Jones)

When a matching <A HREF="tagsrch.html#tag">tag</A> is in the current file but has a search <A HREF="pattern.html#pattern">pattern</A> that
doesn't match, the cursor would jump to the first line.

<A HREF="os_unix.html#Unix">Unix</A>: Dependencies for pty.c were not included in Makefile.  Dependency of
ctags/config.h was not included (only matters for parallel make).

Removed a few Uninitialized Memory Reads (potential crashes).  In do_call()
calling clear_var() when not evaluating.  In win32_expandpath() and
dos_expandpath() calling backslash_halve() past the end of a file name.

Removed memory leaks: Set_vim_var_string() never freed the value.  The
next_list for a <A HREF="syntax.html#syntax">syntax</A> keyword was never freed.

On non-Unix systems, using a file name with <A HREF="editing.html#wildcards">wildcards</A> without a match would
silently fail.  E.g., &quot;<A HREF="editing.html#:e">:e</A> *.sh&quot;.  Now give a &quot;No match&quot; error message.

The life/life.mac, urm/urm.mac and hanoi/hanoi.mac files were not recognized
<A HREF="motion.html#as">as</A> Vim scripts.  Renamed them to *.vim.

[Note: some numbered patches are not relevant when upgrading from version 5.3,
they have been removed]

Patch 5.4m.1
Problem:    When editing a file with a long name, would get the <A HREF="message.html#hit-enter">hit-enter</A>
	    prompt, even though all settings are such that the name should be
	    truncated to avoid that.  filemess() was <A HREF="print.html#printing">printing</A> the file name
	    without truncating <A HREF="motion.html#it">it</A>.
Solution:   Truncate the message in filemess().  Use the same code <A HREF="motion.html#as">as</A> for
	    msg_trunc_attr(), which is moved to the new function
	    msg_may_trunc().
Files:	    src/message.c, src/proto/message.pro, src/fileio.c

Patch 5.4m.3
Problem:    The <A HREF="gui_x11.html#Motif">Motif</A> libraries were not found by configure for Digital <A HREF="os_unix.html#Unix">Unix</A>.
Solution:   Add &quot;/usr/shlib&quot; to the search path. (Andy Kahn)
Files:	    src/configure.in, src/configure

Patch 5.4m.5
Problem:    <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When using the Save-As menu entry and selecting an
	    existing file in the file browser, would get a <A HREF="gui_w32.html#dialog">dialog</A> to confirm
	    overwriting <A HREF="if_cscop.html#twice">twice</A>.  (Ed Krall)
Solution:   Removed the <A HREF="gui_w32.html#dialog">dialog</A> from the file browser.  It would be nicer to
	    set the &quot;forceit&quot; flag and skip Vim's &quot;<A HREF="editing.html#:confirm">:confirm</A>&quot; <A HREF="gui_w32.html#dialog">dialog</A>, but <A HREF="motion.html#it">it</A>
	    requires quite a few changes to <A HREF="diff.html#do">do</A> that.
Files:	    src/gui_w32.c

Patch 5.4m.6
Problem:    <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When reading text from stdin, e.g., &quot;cat foo &#124; <A HREF="starting.html#gvim">gvim</A> -&quot;,
	    a message box would pop up with &quot;-stdin-&quot; (when <A HREF="starting.html#exiting">exiting</A>). (Michael
	    Schaap)
Solution:   Don't switch off <A HREF="term.html#termcap">termcap</A> mode for versions that are GUI-only.
	    They use another <A HREF="terminal.html#terminal">terminal</A> to read from stdin.
Files:	    src/main.c, src/fileio.c

Patch 5.4m.7
Problem:    <A HREF="os_unix.html#Unix">Unix</A>: running configure with --enable-gtk-check,
	    --enable-motif-check, --enable-athena-check or --enable-gtktest
	    had the reverse effect. (Thomas Koehler)
Solution:   Use $enable_gtk_check variable correctly in AC_ARG_ENABLE().
Files:	    src/configure.in, src/configure

Patch 5.4m.9
Problem:    Multi-byte: With wrapping lines, the cursor was sometimes 2
	    characters to the left.  <A HREF="autocmd.html#Syntax">Syntax</A> highlighting was wrong when a
	    double-byte character was split for a wrapping line.  When
	    <A HREF="options.html#'showbreak'">'showbreak'</A> was on the splitting also didn't work.
Solution:   Adjust getvcol() and win_line(). (Chong-Dae Park)
Files:	    src/charset.c, src/screen.c

Patch 5.4m.11
Problem:    The &quot;<A HREF="eval.html#:call">:call</A>&quot; command didn't check for illegal trailing characters.
	    (Stefan Roemer)
Solution:   Add the check in do_call().
Files:	    src/eval.c

Patch 5.4m.13
Problem:    With the &quot;<A HREF="change.html#:s">:s</A>&quot; command:
	    1. When performing a substitute command, the mouse would be
	       disabled and enabled for every substitution.
	    2. The cursor position could be beyond the end of the line.
	       Calling line_breakcheck() could try to position the cursor,
	       which causes a crash in the <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>.
	    3. When using &quot;<A HREF="change.html#:s">:s</A>&quot; in a &quot;<A HREF="repeat.html#:g">:g</A>&quot; command, the cursor was not put on
	       the first non-white in the line.
	    4. There was a <A HREF="message.html#hit-enter">hit-enter</A> prompt when confirming the substitution
	       and the replacement was a bit longer.
Solution:   1. Only disable/enable the mouse when asking for confirmation.
	    2. Always put the cursor on the first character, <A HREF="motion.html#it">it</A> is going to be
	       moved to the first non-blank anyway.
	       Don't use the cursor position in gui_mch_draw_hollow_cursor(),
	       get the character from the screen buffer.
	    3. Added global_need_beginline flag to call beginline() after &quot;<A HREF="repeat.html#:g">:g</A>&quot;
	       has finished all substitutions.
	    4. Clear the need_wait_return flag after prompting the user.
Files:	    src/ex_cmds.c, src/gui_w32.c

Patch 5.4m.14
Problem:    When doing &quot;vim xxx&quot;, &quot;<A HREF="options.html#:opt">:opt</A>&quot;, &quot;<A HREF="windows.html#:only">:only</A>&quot; and then &quot;<A HREF="editing.html#:e">:e</A> xxx&quot; we end
	    up with two swapfiles for &quot;xxx&quot;.  That is caused by the &quot;<A HREF="windows.html#:bdel">:bdel</A>&quot;
	    command which is executed when unloading the <A HREF="options.html#option-window">option-window</A>.
	    Also, there was no check if closing a buffer made the new one
	    invalid, this could cause a crash.
Solution:   When closing a buffer causes the current buffer to be deleted,
	    use the new buffer to replace <A HREF="motion.html#it">it</A>.  Also detect that the new buffer
	    has become invalid <A HREF="motion.html#as">as</A> a side effect of closing the current one.
	    Make <A HREF="autocmd.html#autocommand">autocommand</A> that calls &quot;<A HREF="windows.html#:bdel">:bdel</A>&quot; in optwin.vim nested, so that
	    the buffer loading <A HREF="motion.html#it">it</A> triggers also executes autocommands.
	    Also added a test for this in test13.
Files:	    runtime/optwin.vim, src/buffer.c, src/ex_cmds.c, src/globals.h
	    src/testdir/test13.in, src/testdir/test13.ok

Patch 5.4m.15
Problem:    When using a <A HREF="autocmd.html#BufEnter">BufEnter</A> <A HREF="autocmd.html#autocommand">autocommand</A> to <A HREF="editing.html#reload">reload</A> the <A HREF="syntax.html#syntax">syntax</A> file,
	    conversion to HTML caused a crash. (Sung-Hyun Nam)
Solution:   When using &quot;<A HREF="syntax.html#:syntax">:syntax</A> clear&quot; the current stack of <A HREF="syntax.html#syntax">syntax</A> items was
	    not cleared.  This will cause memory to be used that has already
	    been freed.  Added call to invalidate_current_state() in
	    syntax_clear().
Files:	    src/syntax.c

Patch 5.4m.17
Problem:    When omitting a '<A HREF="motion.html#)">)</A>' in an <A HREF="eval.html#expression">expression</A> <A HREF="motion.html#it">it</A> would not be seen <A HREF="motion.html#as">as</A> a
	    failure.
	    When detecting an error inside (), there would be an error message
	    for a missing '<A HREF="motion.html#)">)</A>' too.
	    When using &quot;<A HREF="eval.html#:echo">:echo</A> 1+|echo 2&quot; there was no error message. (Roemer)
	    When using &quot;<A HREF="eval.html#:exe">:exe</A> 1+&quot; there was no error message.
	    When using &quot;<A HREF="eval.html#:return">:return</A> 1+&quot; there was no error message.
Solution:   Fix do_echo(), do_execute() and do_return() to give an error
	    message when eval1() returns FAIL.
	    Fix eval6() to handle trailing '<A HREF="motion.html#)">)</A>' correctly and return FAIL when
	    it's missing.
Files:	    src/eval.c

Patch 5.4m.18
Problem:    When using <A HREF="eval.html#input()">input()</A> from inside an <A HREF="eval.html#expression">expression</A> entered with
	    &quot;<A HREF="undo.html#CTRL-R">CTRL-R</A> =&quot; on the command line, there could be a crash.  And the
	    resulting command line was wrong.
Solution:   Added getcmdline_prompt(), which handles recursive use of
	    <A HREF="eval.html#getcmdline()">getcmdline()</A> correctly.  It also sets the command line prompt.
	    Removed cmdline_prompt().  Also use getcmdline_prompt() for
	    getting the crypt key in get_crypt_key().
Files:	    src/proto/ex_getln.pro, src/ex_getln.c, src/eval.c, src/misc2.c

Patch 5.4m.21
Problem:    When starting up, the screen structures were first allocated at
	    the minimal size, then initializations were done with Rows
	    possibly different from screen_Rows.  Caused a crash in rare
	    situations (GTK with <A HREF="mbyte.html#XIM">XIM</A> and <A HREF="mbyte.html#fontset">fontset</A>).
Solution:   Call screenalloc() in main() only after calling ui_get_winsize().
	    Also avoids a potential delay because of calling screenclear()
	    while &quot;starting&quot; is non-zero.
Files:	    src/main.c

Patch 5.4m.22
Problem:    In the <A HREF="gui.html#GUI">GUI</A> <A HREF="motion.html#it">it</A> was possible that the screen was resized and the
	    screen structures re-allocated while redrawing the screen.  This
	    could cause a crash (hard to reproduce).  The call sequence goes
	    through update_screen() .. syntax_start() .. ui_breakcheck() ..
	    gui_resize_window() .. screenalloc().
Solution:   Set updating_screen while redrawing.  If the <A HREF="windows.html#window">window</A> is resized
	    remember the new size and handle <A HREF="motion.html#it">it</A> only after redrawing is
	    finished.
	    This also fixes that resizing the screen while still redrawing
	    (slow <A HREF="syntax.html#syntax">syntax</A> highlighting) would not work properly.
	    Also disable display_hint, <A HREF="motion.html#it">it</A> was never used.
Files:	    src/globals.h, src/gui.c, src/screen.c, src/proto/gui.pro

Patch 5.4m.23
Problem:    When using expand(&quot;&lt;cword&gt;&quot;) when there was no <A HREF="motion.html#word">word</A> under the
	    cursor, would get an error message.  Same for &lt;cWORD&gt; and <A HREF="cmdline.html#&lt;cfile&gt;">&lt;cfile&gt;</A>.
Solution:   Don't give an error message, return an empty <A HREF="eval.html#string">string</A>.
Files:	    src/eval.c

Patch 5.4m.24
Problem:    &quot;<A HREF="helphelp.html#:help">:help</A> \|&quot; didn't find anything.  It was translated to &quot;/\\|&quot;.
Solution:   Translate &quot;\|&quot; into &quot;\\bar&quot;.  First check the table for specific
	    translations before checking for &quot;\x&quot;.
Files:	    src/ex_cmds.c

Patch 5.4m.25
Problem:    <A HREF="os_unix.html#Unix">Unix</A>: When using command line completion on files that contain
	    '<A HREF="motion.html#'">'</A>', &#39;&#34;'' or '&#124;' the file name could not be used.
	    Adding this file name to the Buffers menu caused an error message.
Solution:   <A HREF="insert.html#Insert">Insert</A> a <A HREF="intro.html#backslash">backslash</A> before these three characters.
	    Adjust Mungename() function to insert a <A HREF="intro.html#backslash">backslash</A> before '&#124;'.
Files:	    src/ex_getln.c, runtime/menu.vim

Patch 5.4m.26
Problem:    When using a <A HREF="map.html#mapping">mapping</A> of two function keys, e.g., &lt;F1&gt;&lt;F1&gt;, and
	    only the first char of the second key has been read, the <A HREF="map.html#mapping">mapping</A>
	    would not be recognized.  Noticed on some <A HREF="os_unix.html#Unix">Unix</A> systems with xterm.
Solution:   Add '<A HREF="various.html#K">K</A>' flag to <A HREF="options.html#'cpoptions'">'cpoptions'</A> to wait for the whole key code, even
	    when halfway a <A HREF="map.html#mapping">mapping</A>.
Files:	    src/option.h, src/term.c

Patch 5.4m.27
Problem:    When making test33 without the lisp feature <A HREF="motion.html#it">it</A> hangs. Interrupting
	    the execution of the <A HREF="usr_41.html#script">script</A> then might cause a crash.
Solution:   In inchar(), after closing a <A HREF="usr_41.html#script">script</A>, don't use buf[] anymore.
	    closescript() has freed typebuf[] and buf[] might be pointing
	    inside typebuf[].
	    Avoid that test33 hangs when the lisp feature is missing.
Files:	    src/getchar.c src/testdir/test33.in

&quot;<A HREF="os_os2.html#os2">os2</A>&quot; was missing from the feature <A HREF="eval.html#list">list</A>.  Useful for has(&quot;os2&quot;).

<A HREF="os_beos.html#BeOS">BeOS</A>:
- Included patches from Richard Offer for <A HREF="os_beos.html#BeOS">BeOS</A> R4.5.
- menu code didn't work right.  Crashed in the Buffers menu.  The <A HREF="windows.html#window">window</A> title
  wasn't set. (Offer)

Patch 5.4n.3
Problem:    <A HREF="indent.html#C-indenting">C-indenting</A> was wrong after &quot;  } else&quot;.  The white space was not
	    skipped.  Visible when <A HREF="options.html#'cino'">'cino'</A> has &quot;+10&quot;.
Solution:   Skip white space before calling cin_iselse(). (Norbert Zeh)
Files:	    src/misc1.c

Patch 5.4n.4
Problem:    When the '<A HREF="motion.html#t">t</A>' flag in <A HREF="options.html#'cpoptions'">'cpoptions'</A> is included, after a
	    &quot;<A HREF="pattern.html#:nohlsearch">:nohlsearch</A>&quot; the search highlighting would not be enabled again
	    after a <A HREF="tagsrch.html#tag">tag</A> search. (Norbert Zeh)
Solution:   When setting the new search <A HREF="pattern.html#pattern">pattern</A> in jumpto_tag(), don't restore
	    no_hlsearch.
Files:	    src/tag.c

Patch 5.4n.5
Problem:    When using &quot;<A HREF="various.html#:normal">:normal</A>&quot; from a <A HREF="autocmd.html#CursorHold">CursorHold</A> <A HREF="autocmd.html#autocommand">autocommand</A> Vim hangs.  The
	    <A HREF="autocmd.html#autocommand">autocommand</A> is executed down from vgetc().  Calling vgetc()
	    recursively to execute the command doesn't work then.
Solution:   Forbid the use of &quot;<A HREF="various.html#:normal">:normal</A>&quot; when vgetc_busy is set.  Give an error
	    message when this happens.
Files:	    src/ex_docmd.c, runtime/doc/autocmd.txt

Patch 5.4n.6
Problem:    &quot;<A HREF="visual.html#gv">gv</A>&quot; could reselect a <A HREF="visual.html#Visual">Visual</A> that starts and/or ends past the end
	    of a line. (Robert Webb)
Solution:   Check that the start and end of the <A HREF="visual.html#Visual">Visual</A> area are on a valid
	    character by calling adjust_cursor().
Files:	    src/normal.c

Patch 5.4n.8
Problem:    When a <A HREF="motion.html#mark">mark</A> was on a non existing line (e.g., when the .viminfo
	    was edited), jumping to <A HREF="motion.html#it">it</A> caused ml_get <A HREF="message.html#errors">errors</A>. (Alexey
	    Marinichev).
Solution:   Added check_cursor_lnum() in nv_gomark().
Files:	    src/normal.c

Patch 5.4n.9
Problem:    &quot;:-2&quot; moved the cursor to a negative line number. (Ralf Schandl)
Solution:   Give an error message for a negative line number.
Files:	    src/ex_docmd.c

Patch 5.4n.10
Problem:    <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: At the <A HREF="message.html#hit-enter">hit-enter</A> prompt, <A HREF="motion.html#it">it</A> was possible to scroll the
	    text.  This erased the prompt and made Vim look like <A HREF="motion.html#it">it</A> is in
	    <A HREF="intro.html#Normal">Normal</A> mode, while <A HREF="motion.html#it">it</A> is actually still waiting for a <A HREF="motion.html#&lt;CR&gt;">&lt;CR&gt;</A>.
Solution:   Disallow <A HREF="scroll.html#scrolling">scrolling</A> at the <A HREF="message.html#hit-enter">hit-enter</A> prompt for systems that use
	    on the fly <A HREF="scroll.html#scrolling">scrolling</A>.
Files:	    src/message.c

Patch 5.4n.14
Problem:    <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When using &quot;<A HREF="gui.html#:winsize">:winsize</A> 80 46&quot; and the height is more than
	    what fits on the screen, the <A HREF="windows.html#window">window</A> size was made smaller than
	    asked for (that's OK) and Vim crashed (that's not OK)&gt;
Solution:   Call check_winsize() from gui_set_winsize() to resize the <A HREF="windows.html#windows">windows</A>.
Files:	    src/gui.c

Patch 5.4n.16
Problem:    <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: The <A HREF="term.html#&lt;F10&gt;">&lt;F10&gt;</A> key both selected the menu and was handled <A HREF="motion.html#as">as</A>
	    a key hit.
Solution:   Apply <A HREF="options.html#'winaltkeys'">'winaltkeys'</A> to <A HREF="term.html#&lt;F10&gt;">&lt;F10&gt;</A>, like <A HREF="motion.html#it">it</A> is used for Alt keys.
Files:	    src/gui_w32.c

Patch 5.4n.17
Problem:    Local buffer <A HREF="eval.html#variables">variables</A> were freed when the buffer is unloaded.
	    That's not logical, since <A HREF="options.html#options">options</A> are not freed. (Ron Aaron)
Solution:   Free local buffer <A HREF="eval.html#variables">variables</A> only when <A HREF="change.html#deleting">deleting</A> the buffer.
Files:	    src/buffer.c

Patch 5.4n.19
Problem:    Doing &quot;<A HREF="editing.html#:e">:e</A>&quot; (without argument) in an <A HREF="options.html#option-window">option-window</A> causes trouble.
	    The mappings for <A HREF="motion.html#&lt;CR&gt;">&lt;CR&gt;</A> and <A HREF="motion.html#&lt;Space&gt;">&lt;Space&gt;</A> are not removed.  When there is
	    another buffer loaded, the swap file for <A HREF="motion.html#it">it</A> gets mixed up.
	    (Steve Mueller)
Solution:   Also remove the mappings at the <A HREF="autocmd.html#BufUnload">BufUnload</A> event, if they are still
	    present.
	    When re-editing the same file causes the current buffer to be
	    deleted, don't try editing <A HREF="motion.html#it">it</A>.
	    Also added a test for this situation.
Files:	    runtime/optwin.vim, src/ex_cmds.c, src/testdir/test13.in,
	    src/testdir/test13.ok

Patch 5.4n.24
Problem:    <A HREF="os_beos.html#BeOS">BeOS</A>: configure never enabled the <A HREF="gui.html#GUI">GUI</A>, because $with_x was &quot;no&quot;.
	    <A HREF="os_unix.html#Unix">Unix</A> prototypes caused problems, because Display and Widget are
	    undefined.
	    Freeing fonts on exit caused a crash.
Solution:   Only disable the <A HREF="gui.html#GUI">GUI</A> when $with_x is &quot;no&quot; and  $BEOS is not &quot;yes&quot;.
	    Add dummy defines for Display and Widget in proto.h.
	    Don't free the fonts in gui_exit() for <A HREF="os_beos.html#BeOS">BeOS</A>.
Files:	    src/configure.in, src/configure, src/proto.h, src/gui.c.


The runtime/vim48x48.xpm icon didn't have a transparent background. (Schild)

Some versions of the mingw32/egcs compiler didn't have WINBASEAPI defined.
(Aaron)

<A HREF="os_vms.html#VMS">VMS</A>:
- mch_setenv() had two arguments instead of three.
- The system <A HREF="starting.html#vimrc">vimrc</A> and <A HREF="gui.html#gvimrc">gvimrc</A> files were called &quot;<A HREF="starting.html#.vimrc">.vimrc</A>&quot; and &quot;<A HREF="gui.html#.gvimrc">.gvimrc</A>&quot;.
  Removed the dot.
- call to RealWaitForChar() had one argument too many. (Campbell)
- WaitForChar() is static, removed the prototype from proto/os_vms.pro.
- Many file accesses failed, because <A HREF="os_unix.html#Unix">Unix</A> style file names were used.
  Translate file names to <A HREF="os_vms.html#VMS">VMS</A> style by using vim_fopen().
- Filtering didn't work, because the temporary file name was generated wrong.
- There was an extra newline every 9192 characters when <A HREF="editing.html#writing">writing</A> a file.  Work
  around <A HREF="motion.html#it">it</A> by <A HREF="editing.html#writing">writing</A> line by line. (Campbell)
- os_vms.c contained &quot;<A HREF="pattern.html##">#</A> typedef int DESC&quot;.  Should be &quot;typedef int DESC;&quot;.
  Only mattered for generating prototypes.
- Added file name translation to many places.  Made <A HREF="starting.html#easy">easy</A> by defining macros
  mch_access(), mch_fopen(), mch_fstat(), mch_lstat() and mch_stat().
- Set default for <A HREF="options.html#'tagbsearch'">'tagbsearch'</A> to off, because binary <A HREF="tagsrch.html#tag">tag</A> searching apparently
  doesn't work for <A HREF="os_vms.html#VMS">VMS</A>.
- make mch_get_host_name() work with /dec and /standard=vaxc. (Campbell)


Patch 5.4o.2
Problem:    Crash when using &quot;<A HREF="editing.html#gf">gf</A>&quot; on &quot;file.c://comment here&quot;. (Scott Graham)
Solution:   Fix wrong use of pointers in get_file_name_in_path().
Files:	    src/window.c

Patch 5.4o.3
Problem:    The horizontal scrollbar was not sized correctly when <A HREF="options.html#'number'">'number'</A> is
	    set and <A HREF="options.html#'wrap'">'wrap'</A> not set.
	    <A HREF="gui_x11.html#Athena">Athena</A>: Horizontal scrollbar wasn't updated when the cursor was
	    positioned with a mouse click just after dragging.
Solution:   Subtract 8 from the size when <A HREF="options.html#'number'">'number'</A> set and <A HREF="options.html#'wrap'">'wrap'</A> not set.
	    Reset gui.dragged_sb when a mouse click is received.
Files:	    src/gui.c

Patch 5.4o.4
Problem:    When running in an xterm and $WINDOWID is set to an illegal value,
	    Vim would exit with &quot;Vim: Got X error&quot;.
Solution:   When using the display which was opened for the xterm <A HREF="gui.html#clipboard">clipboard</A>,
	    check if x11_window is valid by trying to obtain the <A HREF="windows.html#window">window</A> title.
	    Also add a check in setup_xterm_clip(), for when using X calls to
	    get the pointer position in an xterm.
Files:	    src/os_unix.c

Patch 5.4o.5
Problem:    <A HREF="gui_x11.html#Motif">Motif</A> version with Lesstif: When removing the menubar and then
	    using a menu shortcut key, Vim would crash. (raf)
Solution:   Disable the menu mnemonics when the menu <A HREF="motion.html#bar">bar</A> is removed.
Files:	    src/gui_motif.c

Patch 5.4o.9
Problem:    The <A HREF="os_dos.html#DOS">DOS</A> install.exe program used the &quot;move&quot; program.  That doesn't
	    work on Windows NT, where &quot;move&quot; is internal to cmd.exe.
Solution:   Don't use an external program for moving the executables.  Use C
	    <A HREF="eval.html#functions">functions</A> to copy the file and delete the original.
Files:	    src/dosinst.c

<A HREF="gui_x11.html#Motif">Motif</A> and <A HREF="gui_x11.html#Athena">Athena</A> obtained the status area height differently from <A HREF="gui_x11.html#GTK">GTK</A>.  Moved
status_area_enabled from global.h to gui_x11.c and call
xim_get_status_area_height() to get the status area height.

Patch 5.4p.1
Problem:    When using auto-select, and the &quot;<A HREF="visual.html#gv">gv</A>&quot; command is used, would not
	    always obtain ownership of the selection.  Caused by the <A HREF="visual.html#Visual">Visual</A>
	    area still being the same, but ownership taken away by another
	    program.
Solution:   Reset the <A HREF="gui.html#clipboard">clipboard</A> <A HREF="visual.html#Visual">Visual</A> mode to force updating the selection.
Files:	    src/normal.c

Patch 5.4p.2
Problem:    <A HREF="gui_x11.html#Motif">Motif</A> and <A HREF="gui_x11.html#Athena">Athena</A> with <A HREF="mbyte.html#XIM">XIM</A>: Typing 3-byte
	    &lt;multibyte&gt;&lt;multibyte&gt;&lt;space&gt; doesn't work correctly with Ami <A HREF="mbyte.html#XIM">XIM</A>.
Solution:   Avoid using key_sym XK_VoidSymbol. (Nam)
Files:	    src/multbyte.c, src/gui_x11.c

Patch 5.4p.4
Problem:    <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: The scrollbar values were reduced for a file with more
	    than 32767 lines.  But this info was kept global for all
	    scrollbars, causing a mixup between the <A HREF="windows.html#windows">windows</A>.
	    Using the down arrow of a scrollbar in a large file didn't work.
	    Because of round-off <A HREF="message.html#errors">errors</A> there is no scroll at all.
Solution:   Give each scrollbar its own scroll_shift field.  When the down
	    arrow is used, scroll several lines.
Files:	    src/gui.h, src/gui_w32.c

Patch 5.4p.5
Problem:    When <A HREF="change.html#changing">changing</A> <A HREF="windows.html#buffers">buffers</A> in a <A HREF="autocmd.html#BufDelete">BufDelete</A> <A HREF="autocmd.html#autocommand">autocommand</A>, there could be
	    ml_line <A HREF="message.html#errors">errors</A> and/or a crash. (Schandl)  Was caused by <A HREF="change.html#deleting">deleting</A>
	    the current buffer.
Solution:   When the buffer to be deleted unexpectedly becomes the current
	    buffer, don't delete <A HREF="motion.html#it">it</A>.
	    Also added a check for this in test13.
Files:	    src/buffer.c, src/testdir/test13.in, src/testdir/test13.ok

Patch 5.4p.7
Problem:    <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When using <A HREF="options.html#'mousemodel'">'mousemodel'</A> set to &quot;popup_setpos&quot; and
	    clicking the right mouse button outside of the selected area, the
	    selected area wasn't removed until the popup menu has gone.
	    (Aaron)
Solution:   Set the cursor and update the display before showing the popup
	    menu.
Files:	    src/normal.c

Patch 5.4p.8
Problem:    The generated bugreport didn't contain information about
	    <A HREF="starting.html#$VIMRUNTIME">$VIMRUNTIME</A> and whether runtime files actually exist.
Solution:   Added a few checks to the bugreport <A HREF="usr_41.html#script">script</A>.
Files:	    runtime/bugreport.vim

Patch 5.4p.9
Problem:    The <A HREF="windows.html#windows">windows</A> install.exe created a wrong entry in the popup menu.
	    The &quot;&#37;1&quot; was &quot;&quot;.  The full directory was included, even when the
	    executable had been moved elsewhere. (Ott)
Solution:   Double the '<A HREF="motion.html#&#37;">&#37;</A>' to get one from printf.  Only include the path to
	    gvim.exe when <A HREF="motion.html#it">it</A> wasn't moved and it's not in $PATH.
Files:	    src/dosinst.c

Patch 5.4p.10
Problem:    <A HREF="os_win32.html#Win32">Win32</A>: On top of 5.4p.9: The &quot;Edit with Vim&quot; entry sometimes used
	    a short file name for a directory.
Solution:   Change the &quot;&#37;1&quot; to &quot;&#37;L&quot; in the registry entry.
Files:	    src/dosinst.c

Patch 5.4p.11
Problem:    <A HREF="gui_x11.html#Motif">Motif</A>, <A HREF="gui_x11.html#Athena">Athena</A> and <A HREF="gui_x11.html#GTK">GTK</A>: When closing the <A HREF="gui.html#GUI">GUI</A> <A HREF="windows.html#window">window</A> when there is a
	    changed buffer, there was only an error message and Vim would not
	    exit.
Solution:   Put up a <A HREF="gui_w32.html#dialog">dialog</A>, like for &quot;<A HREF="editing.html#:confirm">:confirm</A> qa&quot;.  Uses the code that was
	    already used for <A HREF="os_win32.html#MS-Windows">MS-Windows</A>.
Files:	    src/gui.c, src/gui_w32.c

Patch 5.4p.12
Problem:    <A HREF="os_win32.html#Win32">Win32</A>: Trying to expand a <A HREF="eval.html#string">string</A> that is longer than 256
	    characters could cause a crash. (Steed)
Solution:   For the buffer in win32_expandpath() don't use a fixed size array,
	    allocate <A HREF="motion.html#it">it</A>.
Files:	    src/os_win32.c

<A HREF="os_msdos.html#MSDOS">MSDOS</A>: Added &quot;-Wall&quot; to Makefile.djg compile flags.  Function prototypes for
fname_case() and mch_update_cursor() were missing.  &quot;fd&quot; was unused in
mf_sync().  &quot;puiLocation&quot; was unused in myputch().  &quot;newcmd&quot; unused in
mch_call_shell() for DJGPP version.

==============================================================================

VERSION 5.5						*<A NAME="version-5.5"></A><B>version-5.5</B>*

Version 5.5 is a bug-fix version of 5.4.



Changed							*<A NAME="changed-5.5"></A><B>changed-5.5</B>*

The DJGPP version is now compiled with &quot;-O2&quot; instead of &quot;-O4&quot; to reduce the
size of the executables.

Moved the src/STYLE file to runtime/doc/develop.txt.  Added the design goals
to <A HREF="motion.html#it">it</A>.

<A HREF="options.html#'backspace'">'backspace'</A> is now a <A HREF="eval.html#string">string</A> option.  See patch 5.4.15.



Added							*<A NAME="added-5.5"></A><B>added-5.5</B>*

Included Exuberant Ctags version 3.3. (Darren Hiebert)

In runtime/mswin.vim, map <A HREF="gui_w32.html#CTRL-Q">CTRL-Q</A> to <A HREF="visual.html#CTRL-V">CTRL-V</A>, so that <A HREF="gui_w32.html#CTRL-Q">CTRL-Q</A> can be used
everywhere to <A HREF="diff.html#do">do</A> what <A HREF="visual.html#CTRL-V">CTRL-V</A> used to <A HREF="diff.html#do">do</A>.

Support for decompression of <A HREF="pi_gzip.html#bzip2">bzip2</A> files in <A HREF="usr_05.html#vimrc_example.vim">vimrc_example.vim</A>.

When a patch is included, the patch number is entered in a table in version.c.
This allows skipping a patch without breaking a next one.

Support for mouse scroll wheel in <A HREF="options.html#X11">X11</A>.  See patch 5.5a.14.

<A HREF="eval.html#line2byte()">line2byte()</A> can be used to get the size of the buffer.  See patch 5.4.35.

The <A HREF="undo.html#CTRL-R">CTRL-R</A> <A HREF="motion.html#CTRL-O">CTRL-O</A> <A HREF="change.html#r">r</A> and <A HREF="undo.html#CTRL-R">CTRL-R</A> <A HREF="motion.html#CTRL-P">CTRL-P</A> <A HREF="change.html#r">r</A> commands in <A HREF="insert.html#Insert">Insert</A> mode are used to
insert a <A HREF="sponsor.html#register">register</A> literally.  See patch 5.4.48.

Uninstall program for <A HREF="os_win32.html#MS-Windows">MS-Windows</A>.  To be able to remove the registry entries
for &quot;Edit with Vim&quot;.  It is registered to be run from the &quot;Add/Remove
programs&quot; application.  See patch 5.4.x7.



Fixed							*<A NAME="fixed-5.5"></A><B>fixed-5.5</B>*

When using <A HREF="usr_05.html#vimrc_example.vim">vimrc_example.vim</A>: An error message when the cursor is on a line
higher than the number of lines in the compressed file.  Move the <A HREF="autocmd.html#autocommand">autocommand</A>
for jumping to the last known cursor position to after the decompressing
autocommands.

&quot;<A HREF="starting.html#:mkexrc">:mkexrc</A>&quot; and &quot;<A HREF="starting.html#:mksession">:mksession</A>&quot; wrote the current value of <A HREF="options.html#'textmode'">'textmode'</A>.  That may
<A HREF="motion.html#mark">mark</A> a file <A HREF="motion.html#as">as</A> modified, which causes problems.  This is a buffer-specific
setting, <A HREF="motion.html#it">it</A> should not affect all files.

&quot;vim --version&quot; wrote two empty lines.

<A HREF="os_unix.html#Unix">Unix</A>: The alarm signal could kill Vim.  It is generated by the <A HREF="if_perl.html#Perl">Perl</A> alarm()
function.  Ignore SIGALRM.

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Toolbar still had the yellow bitmap for running a Vim <A HREF="usr_41.html#script">script</A>.

<A HREF="os_beos.html#BeOS">BeOS</A>: &quot;tmo&quot; must be bigtime_t, instead of double. (Seibert)

Patch 5.4.1
Problem:    Test11 fails when $GZIP is set to &quot;<A HREF="starting.html#-v">-v</A>&quot;. (Matthew Jackson)
Solution:   Set $GZIP to an empty <A HREF="eval.html#string">string</A>.
Files:	    src/testdir/test11.in

Patch 5.4.2
Problem:    Typing <A HREF="intro.html#&lt;Esc&gt;">&lt;Esc&gt;</A> at the crypt key prompt caused a crash. (Kallingal)
Solution:   Check for a NULL pointer returned from get_crypt_key().
Files:	    src/fileio.c

Patch 5.4.3
Problem:    <A HREF="if_pyth.html#Python">Python</A>: Trying to use the name of an unnamed buffer caused a
	    crash. (Daniel Burrows)
Solution:   Check for b_fname being a NULL pointer.
Files:	    src/if_python.c

Patch 5.4.4
Problem:    <A HREF="os_win32.html#Win32">Win32</A>: When compiled without toolbar, but the '<A HREF="motion.html#T">T</A>' flag is in
	    <A HREF="options.html#'guioptions'">'guioptions'</A>, there would be an empty space for the toolbar.
Solution:   Add two #ifdefs where checking for the '<A HREF="motion.html#T">T</A>' flag. (Vince Negri)
Files:	    src/gui.c

Patch 5.4.5
Problem:    <A HREF="gui_x11.html#Athena">Athena</A> <A HREF="gui.html#GUI">GUI</A>: Using the Buffers.Refresh menu entry caused a crash.
	    Looks like any &quot;<A HREF="gui.html#:unmenu">:unmenu</A>&quot; command may cause trouble.
Solution:   Disallow &quot;<A HREF="gui.html#:unmenu">:unmenu</A>&quot; in the <A HREF="gui_x11.html#Athena">Athena</A> version.  Disable the Buffers
	    menu, because the Refresh item would not work.
Files:	    src/menu.c, runtime/menu.vim

Patch 5.4.6
Problem:    <A HREF="gui_x11.html#GTK">GTK</A> <A HREF="gui.html#GUI">GUI</A>: Using &quot;<A HREF="gui_x11.html#:gui">:gui</A>&quot; in the <A HREF="gui.html#.gvimrc">.gvimrc</A> file caused an error.  Only
	    happens when the <A HREF="gui.html#GUI">GUI</A> forks.
Solution:   Don't <A HREF="os_unix.html#fork">fork</A> in a recursive call of gui_start().
Files:	    src/gui.c

Patch 5.4.7
Problem:    Typing '<A HREF="repeat.html#q">q</A>' at the more prompt for the <A HREF="usr_11.html#ATTENTION">ATTENTION</A> message causes the
	    file loading to be interrupted. (Will Day)
Solution:   Reset got_int after showing the <A HREF="usr_11.html#ATTENTION">ATTENTION</A> message.
Files:	    src/memline.c

Patch 5.4.8
Problem:    Edit some file, &quot;:he&quot;, &quot;<A HREF="options.html#:opt">:opt</A>&quot;: <A HREF="options.html#options">options</A> from help <A HREF="windows.html#window">window</A> are shown,
	    but pressing space updates from the other <A HREF="windows.html#window">window</A>. (Phillipps)
	    Also: When there are changes in the <A HREF="options.html#option-window">option-window</A>, &quot;:q!&quot; gives an
	    error message.
Solution:   Before creating the <A HREF="options.html#option-window">option-window</A>, go to a non-help <A HREF="windows.html#window">window</A>.
	    Use &quot;:bdel!&quot; to delete the buffer.
Files:	    runtime/optwin.vim

Patch 5.4.9
	    Just updates version.h.  The real patch has been moved to 5.4.x1.
	    This patch is just to keep the version number correct.

Patch 5.4.10
Problem:    <A HREF="gui_x11.html#GTK">GTK</A> <A HREF="gui.html#GUI">GUI</A>: When $DISPLAY is invalid, &quot;<A HREF="starting.html#gvim">gvim</A> -f&quot; just exits.  It
	    should run in the <A HREF="terminal.html#terminal">terminal</A>.
Solution:   Use gtk_init_check() instead of gtk_init().
Files:	    src/gui_gtk_x11.c

Patch 5.4.11
Problem:    When using the '<A HREF="change.html#S">S</A>' flag in <A HREF="options.html#'cpoptions'">'cpoptions'</A>, <A HREF="options.html#'tabstop'">'tabstop'</A> is not copied to
	    the next buffer for some commands, e.g., &quot;<A HREF="windows.html#:buffer">:buffer</A>&quot;.
Solution:   When the BCO_NOHELP flag is given to buf_copy_options(), still
	    copy the <A HREF="options.html#options">options</A> used by do_help() when neither the &quot;from&quot; or &quot;to&quot;
	    buffer is a help buffer.
Files:	    src/option.c

Patch 5.4.12
Problem:    When using <A HREF="options.html#'smartindent'">'smartindent'</A>, there would be no extra indent if the
	    current line did not have any indent already. (Hanus Adler)
Solution:   There was a wrongly placed &quot;else&quot;, that previously matched with
	    the &quot;if&quot; that set trunc_line.  Removed the &quot;else&quot; and added a
	    check for trunc_line to be false.
Files:	    src/misc1.c

Patch 5.4.13
Problem:    New SGI C compilers need another option for optimisation.
Solution:   Add a check in configure for &quot;-OPT:Olimit&quot;. (Chin A Young)
Files:	    src/configure.in, src/configure

Patch 5.4.14
Problem:    <A HREF="gui_x11.html#Motif">Motif</A> <A HREF="gui.html#GUI">GUI</A>: When the popup menu is present, a tiny <A HREF="windows.html#window">window</A> appears
	    on the desktop for some users.
Solution:   Set the menu widget ID for a popup menu to 0. (Thomas Koehler)
Files:	    src/gui_motif.c

Patch 5.4.15
Problem:    Since <A HREF="options.html#'backspace'">'backspace'</A> set to 0 has been made <A HREF="intro.html#Vi">Vi</A> compatible, <A HREF="motion.html#it">it</A> is no
	    longer possible to only allow <A HREF="change.html#deleting">deleting</A> autoindent.
Solution:   Make <A HREF="options.html#'backspace'">'backspace'</A> a <A HREF="eval.html#list">list</A> of parts, to allow each kind of
	    backspacing separately.
Files:	    src/edit.c, src/option.c, src/option.h, src/proto/option.pro,
	    runtime/doc/option.txt, runtime/doc/insert.txt

Patch 5.4.16
Problem:    Multibyte: Locale zh_TW.Big5 was not checked for in configure.
Solution:   Add zh_TW.Big5 to configure check. (Chih-Tsun Huang)
Files:	    src/configure.in, src/configure

Patch 5.4.17
Problem:    <A HREF="gui.html#GUI">GUI</A>: When started from inside <A HREF="starting.html#gvim">gvim</A> with &quot;:!gvim&quot;, Vim would not
	    start.  &quot;:!gvim -f&quot; works fine.
Solution:   After forking, wait a moment in the parent process, to give the
	    child a chance to set its process group.
Files:	    src/gui.c

Patch 5.4.18
Problem:    <A HREF="if_pyth.html#Python">Python</A>: The clear_history() function also exists in a library.
Solution:   Rename clear_history() to clear_hist().
Files:	    src/ex_getln.c, src/eval.c, src/proto/ex_getln.pro

Patch 5.4.19
Problem:    In a <A HREF="terminal.html#terminal">terminal</A> with 25 lines, there is a more prompt after the
	    <A HREF="usr_11.html#ATTENTION">ATTENTION</A> message.  When hitting '<A HREF="repeat.html#q">q</A>' here the <A HREF="gui_w32.html#dialog">dialog</A> prompt
	    doesn't appear and file loading is interrupted. (Will Day)
Solution:   Don't allow quitting the <A HREF="print.html#printing">printing</A> of a message for the <A HREF="gui_w32.html#dialog">dialog</A>
	    prompt.  Added the msg_noquit_more flag for this.
Files:	    src/message.c

Patch 5.4.20
Problem:    <A HREF="gui_x11.html#GTK">GTK</A>: When starting <A HREF="starting.html#gvim">gvim</A>, would send <A HREF="intro.html#escape">escape</A> sequences to the
	    <A HREF="terminal.html#terminal">terminal</A> to switch the cursor off and on.
Solution:   Don't call msg_start() if the <A HREF="gui.html#GUI">GUI</A> is expected to start.
Files:	    src/main.c

Patch 5.4.21
Problem:    <A HREF="gui_x11.html#Motif">Motif</A>: Toplevel menu ordering was wrong when using tear-off items.
Solution:   Don't add one to the index for a toplevel menu.
Files:	    src/gui_motif.c

Patch 5.4.22
Problem:    In <A HREF="insert.html#Insert">Insert</A> mode, <A HREF="motion.html#&lt;C-Left&gt;">&lt;C-Left&gt;</A>, <A HREF="motion.html#&lt;S-Left&gt;">&lt;S-Left&gt;</A>, <A HREF="motion.html#&lt;C-Right&gt;">&lt;C-Right&gt;</A> and <A HREF="motion.html#&lt;S-Right&gt;">&lt;S-Right&gt;</A> didn't
	    update the column used for vertical <A HREF="intro.html#movement">movement</A>.
Solution:   Set curwin-&gt;w_set_curswant for those commands.
Files:	    src/edit.c

Patch 5.4.23
Problem:    When a <A HREF="visual.html#Visual">Visual</A> selection is lost to another program, and then the
	    same text is Visually selected again, the <A HREF="gui.html#clipboard">clipboard</A> ownership
	    wasn't regained.
Solution:   Set clipboard.vmode to NUL to force regaining the <A HREF="gui.html#clipboard">clipboard</A>.
Files:	    src/normal.c

Patch 5.4.24
Problem:    Encryption: When using &quot;<A HREF="insert.html#:r">:r</A> file&quot; while <A HREF="options.html#'key'">'key'</A> has already entered,
	    the <A HREF="options.html#'key'">'key'</A> option would be messed up.  When <A HREF="editing.html#writing">writing</A> the file <A HREF="motion.html#it">it</A>
	    would be encrypted with an unknown key and lost! (Brad Despres)
Solution:   Don't free cryptkey when <A HREF="motion.html#it">it</A> is equal to the <A HREF="options.html#'key'">'key'</A> option.
Files:	    src/fileio.c

Patch 5.4.25
Problem:    When <A HREF="options.html#'cindent'">'cindent'</A> is set, but <A HREF="options.html#'autoindent'">'autoindent'</A> isn't, comments are not
	    properly indented when starting a new line. (Mitterand)
Solution:   When there is a comment leader for the new line, but <A HREF="options.html#'autoindent'">'autoindent'</A>
	    isn't set, <A HREF="diff.html#do">do</A> <A HREF="indent.html#C-indenting">C-indenting</A>.
Files:	    src/misc1.c

Patch 5.4.26
Problem:    Multi-byte: a <A HREF="mbyte.html#multi-byte">multi-byte</A> character is never recognized in a file
	    name, causing a <A HREF="intro.html#backslash">backslash</A> before <A HREF="motion.html#it">it</A> to be removed on Windows.
Solution:   Assume that a leading-byte character is a file name character in
	    vim_isfilec().
Files:	    src/charset.c

Patch 5.4.27
Problem:    Entries in the PopUp[nvic] <A HREF="gui.html#menus">menus</A> were added for several modes, but
	    only deleted for the mode they were used for.  This resulted in
	    the  entry remaining in the PopUp menu.
	    When removing a PopUp[nvic] menu, the name had been truncated,
	    could result in greying-out the whole PopUp menu.
Solution:   Remove entries for all modes from the PopUp[nvic] <A HREF="gui.html#menus">menus</A>.  Remove
	    the PopUp[nvic] menu entries first, before the name is changed.
Files:	    src/menu.c

Patch 5.4.28
Problem:    When using a <A HREF="autocmd.html#BufWritePre">BufWritePre</A> <A HREF="autocmd.html#autocommand">autocommand</A> to change <A HREF="options.html#'fileformat'">'fileformat'</A>, the
	    new value would not be used for <A HREF="editing.html#writing">writing</A> the file.
Solution:   Check <A HREF="options.html#'fileformat'">'fileformat'</A> after executing the autocommands instead of
	    before.
Files:	    src/fileio.c

Patch 5.4.29
Problem:    <A HREF="gui_x11.html#Athena">Athena</A> <A HREF="gui.html#GUI">GUI</A>: When removing the '<A HREF="index.html#g">g</A>' flag from <A HREF="options.html#'guioptions'">'guioptions'</A>, using a
	    menu can result in a crash.
Solution:   Always grey-out <A HREF="gui.html#menus">menus</A> for <A HREF="gui_x11.html#Athena">Athena</A>, don't hide them.
Files:	    src/menu.c

Patch 5.4.30
Problem:    <A HREF="os_beos.html#BeOS">BeOS</A>: Suspending Vim with <A HREF="starting.html#CTRL-Z">CTRL-Z</A> didn't work (killed Vim).  The
	    first character typed after &quot;<A HREF="various.html#:sh">:sh</A>&quot; goes to Vim, instead of the
	    started shell.
Solution:   Don't <A HREF="starting.html#suspend">suspend</A> Vim, start a new shell.  Kill the async read thread
	    when starting a new shell.  It will be restarted later. (Will Day)
Files:	    src/os_unix.c, src/ui.c

Patch 5.4.31
Problem:    <A HREF="gui.html#GUI">GUI</A>: When <A HREF="options.html#'mousefocus'">'mousefocus'</A> is set, moving the mouse over where a
	    <A HREF="windows.html#window">window</A> boundary was, causes a <A HREF="message.html#hit-enter">hit-enter</A> prompt to be finished.
	    (Jeff Walker)
Solution:   Don't use <A HREF="options.html#'mousefocus'">'mousefocus'</A> at the <A HREF="message.html#hit-enter">hit-enter</A> prompt.  Also ignore <A HREF="motion.html#it">it</A>
	    for the more prompt and a few other situations.  When an <A HREF="motion.html#operator">operator</A>
	    is pending, abort <A HREF="motion.html#it">it</A> first.
Files:	    src/gui.c

Patch 5.4.32
Problem:    <A HREF="os_unix.html#Unix">Unix</A>: $LDFLAGS was not passed to configure.
Solution:   Pass $LDFLAGS to configure just like $CFLAGS. (Jon Miner)
Files:	    src/Makefile

Patch 5.4.33
Problem:    <A HREF="os_unix.html#Unix">Unix</A>: After expanding an environment variable with the shell, the
	    next expansion would also use the shell, even though <A HREF="motion.html#it">it</A> is not
	    needed.
Solution:   Reset &quot;recursive&quot; before returning from gen_expand_wildcards().
Files:	    src/misc1.c

Patch 5.4.34 (also see 5.4.x5)
Problem:    When editing a file, and the file name is relative to a directory
	    above the current directory, the file name was made absolute.
	    (Gregory Margo)
Solution:   Add an argument to shorten_fnames() which indicates if all file
	    names should be shortened, or only absolute names.  In main() only
	    use shorten_fnames() to shorten absolute names.
Files:	    src/ex_docmd.c, src/fileio.c, src/main.c, src/proto/fileio.pro

Patch 5.4.35
Problem:    There is no function to get the current file size.
Solution:   Allow using <A HREF="eval.html#line2byte()">line2byte()</A> with the number of lines in the file plus
	    one.  This returns the offset of the line past the end of the
	    file, which is the file size plus one.
Files:	    src/eval.c, runtime/doc/eval.txt

Patch 5.4.36
Problem:    Comparing strings while ignoring <A HREF="change.html#case">case</A> didn't work correctly for
	    some machines. (Mide Steed)
Solution:   vim_stricmp() and vim_strnicmp() only returned 0 or 1.  Changed
	    them to return -1 when the first argument is smaller.
Files:	    src/misc2.c

Patch 5.4.37 (also see 5.4.40 and 5.4.43)
Problem:    Long strings from the <A HREF="starting.html#viminfo">viminfo</A> file are truncated.
Solution:   When <A HREF="editing.html#writing">writing</A> a long <A HREF="eval.html#string">string</A> to the <A HREF="starting.html#viminfo">viminfo</A> file, first write a line
	    with the length, then the <A HREF="eval.html#string">string</A> itself in a second line.
Files:	    src/eval.c, src/ex_cmds.c, src/ex_getln.c, src/mark.c, src/ops.c,
	    src/search.c, src/proto/ex_cmds.pro, runtime/syntax/viminfo.vim

Patch 5.4.38
Problem:    In the <A HREF="options.html#option-window">option-window</A>, &quot;<A HREF="options.html#:set">:set</A> go&amp;&quot; resulted in <A HREF="options.html#'go'">'go'</A> being handled
	    like a <A HREF="options.html#boolean">boolean</A> option.
	    Mappings for <A HREF="motion.html#&lt;Space&gt;">&lt;Space&gt;</A> and <A HREF="motion.html#&lt;CR&gt;">&lt;CR&gt;</A> were overruled by the <A HREF="options.html#option-window">option-window</A>.
Solution:   When the value of an option isn't 0 or 1, don't handle <A HREF="motion.html#it">it</A> like a
	    <A HREF="options.html#boolean">boolean</A> option.
	    Save and restore mappings for <A HREF="motion.html#&lt;Space&gt;">&lt;Space&gt;</A> and <A HREF="motion.html#&lt;CR&gt;">&lt;CR&gt;</A> when entering and
	    leaving the <A HREF="options.html#option-window">option-window</A>.
Files:	    runtime/optwin.vim

Patch 5.4.39
Problem:    When setting a hidden option, spaces before the equal sign were
	    not skipped and cause an error message.  E.g., &quot;<A HREF="options.html#:set">:set</A> <A HREF="options.html#'csprg'">csprg</A> =cmd&quot;.
Solution:   When skipping over a hidden option, check for a following &quot;=val&quot;
	    and skip <A HREF="motion.html#it">it</A> too.
Files:	    src/option.c

Patch 5.4.40 (depends on 5.4.37)
Problem:    Compiler error for &quot;atol(p + 1)&quot;. (Axel Kielhorn)
Solution:   Add a typecast: &quot;atol((char *)p + 1)&quot;.
Files:	    src/ex_cmds.c

Patch 5.4.41
Problem:    Some commands that were not included would give an error message,
	    even when after &quot;if 0&quot;.
Solution:   Don't give an error message for an unsupported command when not
	    executing the command.
Files:	    src/ex_docmd.c

Patch 5.4.42
Problem:    &quot;<A HREF="editing.html#:w">:w</A>&quot; would also cause a truncated message to appear in the message
	    <A HREF="cmdline.html#history">history</A>.
Solution:   Don't put a kept message in the message <A HREF="cmdline.html#history">history</A> when <A HREF="motion.html#it">it</A> starts
	    with &quot;<A HREF="change.html#&lt;">&lt;</A>&quot;.
Files:	    src/message.c

Patch 5.4.43 (depends on 5.4.37)
Problem:    Mixing long lines with multiple lines in a <A HREF="sponsor.html#register">register</A> causes <A HREF="message.html#errors">errors</A>
	    when <A HREF="editing.html#writing">writing</A> the <A HREF="starting.html#viminfo">viminfo</A> file. (Robinson)
Solution:   When reading the <A HREF="starting.html#viminfo">viminfo</A> file to skip <A HREF="sponsor.html#register">register</A> contents, skip
	    lines that start with &quot;<A HREF="change.html#&lt;">&lt;</A>&quot;.
Files:	    src/ops.c

Patch 5.4.44
Problem:    When <A HREF="options.html#'whichwrap'">'whichwrap'</A> includes '<A HREF="change.html#~">~</A>', a &quot;<A HREF="change.html#~">~</A>&quot; command that goes on to the
	    next line cannot be properly undone. (Zellner)
Solution:   Save each line for <A HREF="undo.html#undo">undo</A> in n_swapchar().
Files:	    src/normal.c

Patch 5.4.45 (also see 5.4.x8)
Problem:    When expand(&quot;$ASDF&quot;) fails, there is an error message.
Solution:   Remove the global expand_interactively.  Pass a flag down to skip
	    the error message.
	    Also: expand(&quot;$ASDF&quot;) returns an empty <A HREF="eval.html#string">string</A> if $ASDF isn't set.
	    Previously <A HREF="motion.html#it">it</A> returned &quot;$ASDF&quot; when <A HREF="options.html#'shell'">'shell'</A> is &quot;sh&quot;.
	    Also: <A HREF="eval.html#system()">system()</A> doesn't print an error when the command returns an
	    error code.
Files:	    many

Patch 5.4.46
Problem:    Backspacing did not always use <A HREF="options.html#'softtabstop'">'softtabstop'</A> after hitting <A HREF="motion.html#&lt;CR&gt;">&lt;CR&gt;</A>,
	    <A HREF="insert.html#inserting">inserting</A> a <A HREF="sponsor.html#register">register</A>, moving the cursor, etc.
Solution:   Reset inserted_space much more often in edit().
Files:	    src/edit.c

Patch 5.4.47
Problem:    When executing <A HREF="autocmd.html#BufWritePre">BufWritePre</A> or <A HREF="autocmd.html#BufWritePost">BufWritePost</A> autocommands for a
	    hidden buffer, the cursor could be moved to a non-existing
	    position. (Vince Negri)
Solution:   Save and restore the cursor and topline for the current <A HREF="windows.html#window">window</A>
	    when <A HREF="motion.html#it">it</A> is going to be used to execute autocommands for a hidden
	    buffer.  Use an existing <A HREF="windows.html#window">window</A> for the buffer when it's not
	    hidden.
Files:	    src/fileio.c

Patch 5.4.48
Problem:    A paste with the mouse in <A HREF="insert.html#Insert">Insert</A> mode was not repeated exactly the
	    same with &quot;<A HREF="repeat.html#.">.</A>&quot;.  For example, when <A HREF="options.html#'autoindent'">'autoindent'</A> is set and pasting
	    text with leading indent. (Perry)
Solution:   Add the <A HREF="undo.html#CTRL-R">CTRL-R</A> <A HREF="motion.html#CTRL-O">CTRL-O</A> <A HREF="change.html#r">r</A> and <A HREF="undo.html#CTRL-R">CTRL-R</A> <A HREF="motion.html#CTRL-P">CTRL-P</A> <A HREF="change.html#r">r</A> commands in <A HREF="insert.html#Insert">Insert</A>
	    mode, which insert the contents of a <A HREF="sponsor.html#register">register</A> literally.
Files:	    src/edit.c, src/normal.c, runtime/doc/insert.txt

Patch 5.4.49
Problem:    When pasting text with [ <A HREF="change.html#&lt;MiddleMouse&gt;">&lt;MiddleMouse&gt;</A>, the cursor could end up
	    after the last character of the line.
Solution:   Correct the cursor position for the change in indent.
Files:	    src/ops.c

Patch 5.4.x1 (note: Replaces patch 5.4.9)
Problem:    <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: menu hints were never used, because WANT_MENU is not
	    defined until vim.h is included.
Solution:   Move the #ifdef WANT_MENU from where MENUHINTS is defined to where
	    <A HREF="motion.html#it">it</A> is used.
Files:	    src/gui_w32.c

Patch 5.4.x2
Problem:    <A HREF="os_beos.html#BeOS">BeOS</A>: When pasting text, one character was moved to the end.
Solution:   Re-enable the <A HREF="os_beos.html#BeOS">BeOS</A> code in fill_input_buf(), and fix timing out
	    with acquire_sem_etc(). (Will Day)
Files:	    src/os_beos.c, src/ui.c

Patch 5.4.x3
Problem:    <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When dropping a directory on a running <A HREF="starting.html#gvim">gvim</A> <A HREF="motion.html#it">it</A> crashes.
Solution:   Avoid using a NULL file name.  Also display a message to indicate
	    that the current directory was changed.
Files:	    src/gui_w32.c

Patch 5.4.x4
Problem:    <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Removing an item from the popup menu doesn't work.
Solution:   Don't remove the item from the menubar, but from the parent popup
	    menu.
Files:	    src/gui_w32.c

Patch 5.4.x5 (addition to 5.4.34)
Files:	    src/gui_w32.c

Patch 5.4.x6
Problem:    <A HREF="os_win32.html#Win32">Win32</A>: Expanding (dir)name starting with a dot doesn't work.
	    (McCormack)  Only when there is a path before <A HREF="motion.html#it">it</A>.
Solution:   Fix the check, done before expansion, if the file name <A HREF="pattern.html#pattern">pattern</A>
	    starts with a dot.
Files:	    src/os_win32.c

Patch 5.4.x7
Problem:    <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Removing &quot;Edit with Vim&quot; from registry is difficult.
Solution:   Add uninstall program to remove the registry keys. It is installed
	    in the &quot;Add/Remove programs&quot; <A HREF="eval.html#list">list</A> for ease of use.
	    Also: don't set <A HREF="starting.html#$VIM">$VIM</A> when the executable is with the runtime files.
	    Also: Add a text file with a step-by-step description of how to
	    uninstall Vim for <A HREF="os_dos.html#DOS">DOS</A> and Windows.
Files:	    src/uninstal.c, src/dosinst.c, src/Makefile.w32, uninstal.txt

Patch 5.4.x8 (addition to 5.4.45)
Files:	    many

Patch 5.4.x9
Problem:    <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: After executing an external command, focus is not
	    always regained (when using focus-follows-mouse).
Solution:   Add SetFocus() in mch_system(). (Mike Steed)
Files:	    src/os_win32.c


Patch 5.5a.1
Problem:    &quot;<A HREF="eval.html#:let">:let</A> @* = @:&quot; did not work.  The text was not put on the
	I   <A HREF="gui.html#clipboard">clipboard</A>.  (Fisher)
Solution:   Own the <A HREF="gui.html#clipboard">clipboard</A> and put the text on <A HREF="motion.html#it">it</A>.
Files:	    src/ops.c

Patch 5.5a.2
Problem:    <A HREF="eval.html#append()">append()</A> did not <A HREF="motion.html#mark">mark</A> the buffer modified.  Marks below the
	    new line were not adjusted.
Solution:   Fix the f_append() function.
Files:	    src/eval.c

Patch 5.5a.3
Problem:    Editing compressed &quot;.gz&quot; files doesn't work on non-Unix systems,
	    because there is no &quot;mv&quot; command.
Solution:   Add the <A HREF="eval.html#rename()">rename()</A> function and use <A HREF="motion.html#it">it</A> instead of &quot;:!mv&quot;.
	    Also: Disable the automatic jump to the last position, because <A HREF="motion.html#it">it</A>
	    changes the <A HREF="motion.html#jumplist">jumplist</A>.
Files:	    src/eval.c, runtime/doc/eval.txt, runtime/vimrc_example.vim

Patch 5.5a.4
Problem:    When using whole-line completion in insert mode while the cursor
	    is in the indent, get &quot;out of memory&quot; error. (Stekrt)
Solution:   Don't allocate a negative amount of memory in ins_complete().
Files:	    src/edit.c

Patch 5.5a.5
Problem:    <A HREF="os_win32.html#Win32">Win32</A>: The <A HREF="options.html#'path'">'path'</A> option can hold only up to 256 characters,
	    because _MAX_PATH is 256.  (Robert Webb)
Solution:   Use a fixed path length of 1024.
Files:	    src/os_win32.h

Patch 5.5a.6
Problem:    Compiling with gcc on <A HREF="os_win32.html#Win32">Win32</A>, using the <A HREF="os_unix.html#Unix">Unix</A> Makefile, didn't work.
Solution:   Add $(SUFFIX) to all places where an executable is used.  Also
	    pass <A HREF="motion.html#it">it</A> to <A HREF="tagsrch.html#ctags">ctags</A>.  (Reynolds)
Files:	    src/Makefile

Patch 5.5a.7
Problem:    When using &quot;cat &#124; vim -&quot; in an xterm, the xterm version reply
	    would end up in the file.
Solution:   Read the file from stdin before switching the <A HREF="terminal.html#terminal">terminal</A> to RAW
	    mode.  Should also avoid problems with programs that use a
	    specific <A HREF="terminal.html#terminal">terminal</A> setting.
	    Also: when using the <A HREF="gui.html#GUI">GUI</A>, print &quot;Reading from stdin...&quot; in the <A HREF="gui.html#GUI">GUI</A>
	    <A HREF="windows.html#window">window</A>, to give a hint why <A HREF="motion.html#it">it</A> doesn't <A HREF="diff.html#do">do</A> anything.
Files:	    src/main.c, src/fileio.c

Patch 5.5a.8
Problem:    On multi-threaded Solaris, suspending doesn't work.
Solution:   Call pause() when the SIGCONT signal was not received after
	    sending the SIGTSTP signal. (Nagano)
Files:	    src/os_unix.c

Patch 5.5a.9
Problem:    <A HREF="options.html#'winaltkeys'">'winaltkeys'</A> could be set to an empty argument, which is illegal.
Solution:   Give an error message when doing &quot;<A HREF="options.html#:set">:set</A> <A HREF="options.html#'winaltkeys'">winaltkeys</A>=&quot;.
Files:	    src/option.c

Patch 5.5a.10
Problem:    <A HREF="os_win32.html#Win32">Win32</A> console: Using ALTGR on a German keyboard to produce &quot;<A HREF="motion.html#}">}</A>&quot;
	    doesn't work, because the 8th bit is set when ALT is pressed.
Solution:   Don't set the 8th bit when ALT and CTRL are used. (Leipert)
Files:	    src/os_win32.c

Patch 5.5a.11
Problem:    <A HREF="if_tcl.html#Tcl">Tcl</A>: Configure always uses tclsh8.0.
	    Also: Loading a library doesn't work.
Solution:   Add &quot;--with-tclsh&quot; configure argument to allow specifying another
	    name for the <A HREF="if_tcl.html#tcl">tcl</A> shell.
	    Call Tcl_Init() in tclinit() to make loading libraries work.
	    (Johannes Zellner)
Files:	    src/configure.in, src/configure, src/if_tcl.c

Patch 5.5a.12
Problem:    The &quot;user_commands&quot; feature is called &quot;<A HREF="map.html#user-commands">user-commands</A>&quot;.
Solution:   <A HREF="insert.html#Replace">Replace</A> &quot;<A HREF="map.html#user-commands">user-commands</A>&quot; with &quot;user_commands&quot;. (Kim Sung-bom)
	    Keep &quot;<A HREF="map.html#user-commands">user-commands</A>&quot; for the <A HREF="eval.html#has()">has()</A> function, to remain backwards
	    compatible with 5.4.
Files:	    src/eval.c, src/version.c

Patch 5.5a.13
Problem:    <A HREF="os_os2.html#OS/2">OS/2</A>: When <A HREF="options.html#$HOME">$HOME</A> is not defined, &quot;C:/&quot; is used for the <A HREF="starting.html#viminfo">viminfo</A>
	    file.  That is very wrong when <A HREF="os_os2.html#OS/2">OS/2</A> is on another partition.
Solution:   Use <A HREF="starting.html#$VIM">$VIM</A> for the <A HREF="starting.html#viminfo">viminfo</A> file when <A HREF="motion.html#it">it</A> is defined, like for <A HREF="os_msdos.html#MSDOS">MSDOS</A>.
	    Also: Makefile.os2 didn't depend on os_unix.h.
Files:	    src/os_unix.h, src/Makefile.os2

Patch 5.5a.14
Problem:    <A HREF="gui_x11.html#Athena">Athena</A>, <A HREF="gui_x11.html#Motif">Motif</A> and <A HREF="gui_x11.html#GTK">GTK</A>: The Mouse scroll wheel doesn't work.
Solution:   Interpret a click of the wheel <A HREF="motion.html#as">as</A> a key press of the <A HREF="scroll.html#&lt;MouseDown&gt;">&lt;MouseDown&gt;</A>
	    or <A HREF="scroll.html#&lt;MouseUp&gt;">&lt;MouseUp&gt;</A> keys.  Default behavior is to scroll three lines, or
	    a full page when Shift is used.
Files:	    src/edit.c, src/ex_getln.c, src/gui.c, src/gui_gtk_x11.c,
	    src/gui_x11.c, src/keymap.h, src/message.c, src/misc1.c,
	    src/misc2.c, src/normal.c,  src/proto/normal.pro, src/vim.h,
	    runtime/doc/scroll.txt

Patch 5.5a.15
Problem:    Using <A HREF="change.html#CTRL-A">CTRL-A</A> in <A HREF="insert.html#Insert">Insert</A> mode doesn't work correctly when the insert
	    started with the <A HREF="insert.html#&lt;Insert&gt;">&lt;Insert&gt;</A> key. (Andreas Rohrschneider)
Solution:   <A HREF="insert.html#Replace">Replace</A> <A HREF="insert.html#&lt;Insert&gt;">&lt;Insert&gt;</A> with &quot;<A HREF="insert.html#i">i</A>&quot; before setting up the <A HREF="undo.html#redo">redo</A> buffer.
Files:	    src/normal.c

Patch 5.5a.16
Problem:    <A HREF="os_vms.html#VMS">VMS</A>: <A HREF="gui.html#GUI">GUI</A> does not compile and run.
Solution:   Various fixes. (Zoltan Arpadffy)
	    Moved <A HREF="eval.html#functions">functions</A> from os_unix.c to ui.c, so that <A HREF="os_vms.html#VMS">VMS</A> can use them
	    too: open_app_context(), x11_setup_atoms() and clip_x11* <A HREF="eval.html#functions">functions</A>.
	    Made xterm_dpy global, it's now used by ui.c and os_unix.c.
	    Use gethostname() always, sys_hostname doesn't exist.
Files:	    src/globals.h, src/gui_x11.c, src/os_vms.mms, src/os_unix.c,
	    src/os_vms.c, src/ui.c, src/proto/os_unix.pro, src/proto/ui.pro

Renamed AdjustCursorForMultiByteCharacter() to AdjustCursorForMultiByteChar()
to avoid symbol length limit of 31 characters. (Steve <A HREF="change.html#P">P</A>. Wall)

Patch 5.5b.1
Problem:    SASC complains about dead assignments and implicit type casts.
Solution:   Removed the dead assignments.  Added explicit type casts.
Files:	    src/buffer.c, src/edit.c, src/eval.c, src/ex_cmds.c,
	    src/ex_getln.c, src/fileio.c, src/getchar.c, src/memline.c,
	    src/menu.c, src/misc1.c, src/normal.c, src/ops.c, src/quickfix.c,
	    src/screen.c

Patch 5.5b.2
Problem:    When using &quot;<A HREF="motion.html#CTRL-O">CTRL-O</A> O&quot; in <A HREF="insert.html#Insert">Insert</A> mode, hit <A HREF="intro.html#&lt;Esc&gt;">&lt;Esc&gt;</A> and then &quot;<A HREF="insert.html#o">o</A>&quot; in
	    another line truncates that line. (Devin Weaver)
Solution:   When using a command that starts <A HREF="insert.html#Insert">Insert</A> mode from <A HREF="motion.html#CTRL-O">CTRL-O</A>, reset
	    &quot;restart_edit&quot; first.  This avoids that edit() is called with a
	    mix of starting a new edit command and restarting a previous one.
Files:	    src/normal.c

==============================================================================

VERSION 5.6						*<A NAME="version-5.6"></A><B>version-5.6</B>*

Version 5.6 is a bug-fix version of 5.5.



Changed							*<A NAME="changed-5.6"></A><B>changed-5.6</B>*

Small changes to OleVim files. (Christian Schaller)

Inserted &quot;/**/&quot; between patch numbers in src/version.c.  This allows for one
line of context, which some versions of patch need.

Reordered the <A HREF="autocmd.html#Syntax">Syntax</A> menu to avoid long submenus.  Removed keyboard shortcuts
for alphabetical items to avoid a clash with fixed items.



Added							*<A NAME="added-5.6"></A><B>added-5.6</B>*

Included Exuberant Ctags version 3.4. (Darren Hiebert)

OpenWithVim in <A HREF="if_pyth.html#Python">Python</A>. (Christian Schaller)

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: gvimext.dll, for the context menu &quot;Edit with Vim&quot; entry.  Avoids
the reported problems with the MS Office taskbar.  Now it's a Shell Extension.
(Tianmiao Hu)

New <A HREF="syntax.html#syntax">syntax</A> files:
abel		Abel (John Cook)
aml		Arc Macro Language (Nikki Knuit)
apachestyle	Apache-style config file (Christian Hammers)
cf		Cold Fusion (Jeff Lanzarotta)
ctrlh		files with <A HREF="motion.html#CTRL-H">CTRL-H</A> sequences (Bram <A HREF="intro.html#Moolenaar">Moolenaar</A>)
cupl		CUPL (John Cook)
cuplsim		CUPL simulation (John Cook)
erlang		Erlang (Kresimir Marzic)
gedcom		Gedcom (Paul Johnson)
icon		Icon (Wendell Turner)
ist		MakeIndex style (Peter Meszaros)
jsp		Java Server Pages (Rafael Garcia-Suarez)
rcslog		Rcslog (Joe Karthauser)
remind		Remind (Davide Alberani)
sqr		Structured Query Report Writer (Paul Moore)
tads		TADS (Amir Karger)
texinfo		Texinfo (Sandor Kopanyi)
xpm2		X Pixmap v2 (Steve Wall)

The '<A HREF="change.html#C">C</A>' flag in <A HREF="options.html#'cpoptions'">'cpoptions'</A> can be used to switch off concatenation for
sourced lines.  See patch 5.5.013 below. |<A HREF="repeat.html#line-continuation">line-continuation</A>|

&quot;excludenl&quot; argument for the &quot;<A HREF="syntax.html#:syntax">:syntax</A>&quot; command.  See patch 5.5.032 below.
|<A HREF="syntax.html#:syn-excludenl">:syn-excludenl</A>|

Implemented |<A HREF="scroll.html#z+">z+</A>| and |<A HREF="scroll.html#z^">z^</A>| commands.  See patch 5.5.050 below.

Vim logo in Corel Draw format.  Can be scaled to any resolution.



Fixed							*<A NAME="fixed-5.6"></A><B>fixed-5.6</B>*

Using this <A HREF="map.html#mapping">mapping</A> in <A HREF="visual.html#Select">Select</A> mode, terminated completion:
&quot;<A HREF="map.html#:vnoremap">:vnoremap</A> &lt;C-N&gt; &lt;Esc&gt;a&lt;C-N&gt;&quot; (Benji Fisher)
Ignore K_SELECT in ins_compl_prep().

<A HREF="os_vms.html#VMS">VMS</A> (Zoltan Arpadffy, David Elins):
- ioctl() in pty.c caused trouble, #ifndef <A HREF="os_vms.html#VMS">VMS</A> added.
- Cut <A HREF="change.html#&amp;">&amp;</A> paste mismatch corrected.
- Popup menu line crash corrected.  (Patch 5.5.047)
- <A HREF="gui_x11.html#Motif">Motif</A> directories during open and save <A HREF="motion.html#as">as</A> corrected.
- Handle full file names with version numbers. (Patch 5.5.046)
- Directory handling (CD command etc.)
- Corrected file name conversion <A HREF="os_vms.html#VMS">VMS</A> to <A HREF="os_unix.html#Unix">Unix</A> and v.v.
- Recovery was not working.
- Terminal and signal handling was outdated compared to os_unix.c.
- Improved <A HREF="os_vms.html#os_vms.txt">os_vms.txt</A>.

Configure used fprintf() instead of <A HREF="eval.html#printf()">printf()</A> to check for __DATE__ and
__TIME__. (John Card II)

<A HREF="os_beos.html#BeOS">BeOS</A>: Adjust computing the char_height and char_ascent.  Round them up
separately, avoids redrawing artifacts. (Mike Steed)

Fix a few <A HREF="mbyte.html#multi-byte">multi-byte</A> problems in menu_name_skip(), set_reg_ic(), searchc() and
findmatchlimit(). (Taro Muraoka)

<A HREF="gui_x11.html#GTK">GTK</A> <A HREF="gui.html#GUI">GUI</A>:
- With <A HREF="gui_x11.html#GTK">GTK</A> 1.2.5 and later the scrollbars were not redrawn correctly.
- Adjusted the gtk_form_draw() function.
- SNiFF connection didn't work.
- <A HREF="options.html#'mousefocus'">'mousefocus'</A> was not working. (Dalecki)
- Some keys were not working with modifiers: Shift-Tab, Ctrl-Space and CTRL-@.


Patch 5.5.001
Problem:    Configure in the top directory did not pass on an argument with a
	    space correctly.  For example &quot;./configure --previs=&quot;/My home&quot;.
	    (Stephane Chazelas)
Solution:   Use &#39;&#34;'$@&quot;' instead of '$*' to pass on the arguments.
Files:	    configure

Patch 5.5.002
Problem:    Compilation error for using &quot;fds[] <A HREF="change.html#&amp;">&amp;</A> POLLIN&quot;. (Jeff Walker)
Solution:   Use &quot;fds[].revents <A HREF="change.html#&amp;">&amp;</A> POLLIN&quot;.
Files:	    src/os_unix.c

Patch 5.5.003
Problem:    The autoconf check for sizeof(int) is wrong on machines where
	    sizeof(size_t) != sizeof(int).
Solution:   Use our own configure check.  Also fixes the warning for
	    cross-compiling.
Files:	    src/configure.in, src/configure

Patch 5.5.004
Problem:    On <A HREF="os_unix.html#Unix">Unix</A> it's not possible to interrupt &quot;<A HREF="various.html#:sleep">:sleep</A> 100&quot;.
Solution:   Switch <A HREF="terminal.html#terminal">terminal</A> to cooked mode while asleep, to allow a SIGINT to
	    wake us up.  But switch off echo, added TMODE_SLEEP.
Files:	    src/term.h, src/os_unix.c

Patch 5.5.005
Problem:    When using <A HREF="map.html#&lt;f-args&gt;">&lt;f-args&gt;</A> with a user command, an empty argument to the
	    command resulted in one empty <A HREF="eval.html#string">string</A>, while no <A HREF="eval.html#string">string</A> was
	    expected.
Solution:   Catch an empty argument and pass no argument to the function.
	    (Paul Moore)
Files:	    src/ex_docmd.c

Patch 5.5.006
Problem:    <A HREF="if_pyth.html#Python">Python</A>: When platform-dependent files are in another directory
	    than the platform-independent files <A HREF="motion.html#it">it</A> doesn't work.
Solution:   Also check the executable directory, and add <A HREF="motion.html#it">it</A> to CFLAGS. (Tessa
	    Lau)
Files:	    src/configure.in, src/configure

Patch 5.5.007 (extra)
Problem:    <A HREF="os_win32.html#Win32">Win32</A> OLE: Occasional crash when <A HREF="starting.html#exiting">exiting</A> while still being used
	    via OLE.
Solution:   Move OleUninitialize() to before <A HREF="change.html#deleting">deleting</A> the application object.
	    (Vince Negri)
Files:	    src/if_ole.cpp

Patch 5.5.008
Problem:    10000@@ takes a long time and cannot be interrupted.
Solution:   Check for <A HREF="pattern.html#CTRL-C">CTRL-C</A> typed while in the loop to push the <A HREF="sponsor.html#register">register</A>.
Files:	    src/normal.c

Patch 5.5.009
Problem:    Recent Sequent machines don't link with &quot;-linet&quot;. (Kurtis Rader)
Solution:   Remove configure check for Sequent.
Files:	    src/configure.in, src/configure

Patch 5.5.010
Problem:    Ctags freed a memory block <A HREF="if_cscop.html#twice">twice</A> when <A HREF="starting.html#exiting">exiting</A>.  When out of
	    memory, a misleading error message was given.
Solution:   Update to <A HREF="tagsrch.html#ctags">ctags</A> 3.3.2.  Also fixes a few other problems. (Darren
	    Hiebert)
Files:	    src/ctags/*

Patch 5.5.011
Problem:    After &quot;<A HREF="visual.html#CTRL-V">CTRL-V</A> s&quot;, the cursor jumps back to the start, while all
	    other operators leave the cursor on the last changed character.
	    (Xiangjiang Ma)
Solution:   Position cursor on last changed character, if possible.
Files:	    src/ops.c

Patch 5.5.012
Problem:    Using <A HREF="tagsrch.html#CTRL-]">CTRL-]</A> in <A HREF="visual.html#Visual">Visual</A> mode doesn't work when the text includes a
	    space (just where it's useful). (Stefan Bittner)
Solution:   Don't <A HREF="intro.html#escape">escape</A> special characters in a <A HREF="tagsrch.html#tag">tag</A> name with a <A HREF="intro.html#backslash">backslash</A>.
Files:	    src/normal.c

Patch 5.5.013
Problem:    The &quot;<A HREF="insert.html#:append">:append</A>&quot; and &quot;<A HREF="insert.html#:insert">:insert</A>&quot; commands allow using a leading
	    <A HREF="intro.html#backslash">backslash</A> in a line.  The &quot;<A HREF="repeat.html#:source">:source</A>&quot; command concatenates those
	    lines. (Heinlein)
Solution:   Add the '<A HREF="change.html#C">C</A>' flag in <A HREF="options.html#'cpoptions'">'cpoptions'</A> to switch off concatenation.
Files:	    src/ex_docmd.c, src/option.h, runtime/doc/options.txt,
	    runtime/filetype.vim, runtime/scripts.vim

Patch 5.5.014
Problem:    When executing a <A HREF="sponsor.html#register">register</A> with &quot;<A HREF="repeat.html#:@">:@</A>&quot;, the &quot;<A HREF="insert.html#:append">:append</A>&quot; command would
	    get text lines with a '<A HREF="cmdline.html#:">:</A>' prepended. (Heinlein)
Solution:   Remove the '<A HREF="cmdline.html#:">:</A>' characters.
Files:	    src/ex_docmd.c, src/ex_getln.c, src/globals.h

Patch 5.5.015
Problem:    When using &quot;:g/pat/p&quot;, it's hard to see where the output starts,
	    the &quot;<A HREF="repeat.html#:g">:g</A>&quot; command is overwritten.  <A HREF="intro.html#Vi">Vi</A> keeps the &quot;<A HREF="repeat.html#:g">:g</A>&quot; command.
Solution:   Keep the &quot;<A HREF="repeat.html#:g">:g</A>&quot; command, but allow overwriting <A HREF="motion.html#it">it</A> with the report
	    for the number of changes.
Files:	    src/ex_cmds.c

Patch 5.5.016 (extra)
Problem:    <A HREF="os_win32.html#Win32">Win32</A>: Using regedit to <A HREF="usr_90.html#install">install</A> Vim in the popup menu requires the
	    user to confirm this in a <A HREF="gui_w32.html#dialog">dialog</A>.
Solution:   Use &quot;regedit /s&quot; to avoid the <A HREF="gui_w32.html#dialog">dialog</A>
Files:	    src/dosinst.c

Patch 5.5.017
Problem:    If an error occurs when closing the current <A HREF="windows.html#window">window</A>, Vim could get
	    stuck in the error handling.
Solution:   Don't set curwin to NULL when closing the current <A HREF="windows.html#window">window</A>.
Files:	    src/window.c

Patch 5.5.018
Problem:    Absolute paths in shell scripts <A HREF="diff.html#do">do</A> not always work.
Solution:   Use /usr/bin/env to find out the path.
Files:	    runtime/doc/vim2html.pl, runtime/tools/efm_filter.pl,
	    runtime/tools/shtags.pl

Patch 5.5.019
Problem:    A function call in <A HREF="options.html#'statusline'">'statusline'</A> stops using &quot;<A HREF="editing.html#:q">:q</A>&quot; <A HREF="if_cscop.html#twice">twice</A> from
	    <A HREF="starting.html#exiting">exiting</A>, when the last argument hasn't been edited.
Solution:   Don't decrement quitmore when executing a function. (Madsen)
Files:	    src/ex_docmd.c

Patch 5.5.020
Problem:    When the output of <A HREF="scroll.html#CTRL-D">CTRL-D</A> completion in the commandline goes all
	    the way to the last column, there is an empty line.
Solution:   Don't add a newline when the cursor wrapped already. (Madsen)
Files:	    src/ex_getln.c

Patch 5.5.021
Problem:    When checking if a file name in the <A HREF="tagsrch.html#tags">tags</A> file is relative,
	    environment <A HREF="eval.html#variables">variables</A> were not expanded.
Solution:   Expand the file name before checking if <A HREF="motion.html#it">it</A> is relative. (Madsen)
Files:	    src/tag.c

Patch 5.5.022
Problem:    When setting or resetting <A HREF="options.html#'paste'">'paste'</A> the ruler wasn't updated.
Solution:   Update the status lines when <A HREF="options.html#'ruler'">'ruler'</A> changes because of <A HREF="options.html#'paste'">'paste'</A>.
Files:	    src/option.c

Patch 5.5.023
Problem:    When editing a new file and autocommands change the cursor
	    position, the cursor was moved back to the first non-white, unless
	    <A HREF="options.html#'startofline'">'startofline'</A> was reset.
Solution:   Keep the new column, just like the line number.
Files:	    src/ex_cmds.c

Patch 5.5.024 (extra)
Problem:    <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When using <A HREF="eval.html#confirm()">confirm()</A> to put up a <A HREF="gui_w32.html#dialog">dialog</A> without a
	    default button, the <A HREF="gui_w32.html#dialog">dialog</A> would not have keyboard focus.
	    (Krishna)
Solution:   Always set focus to the <A HREF="gui_w32.html#dialog">dialog</A> <A HREF="windows.html#window">window</A>.  Only set focus to a button
	    when a default one is specified.
Files:	    src/gui_w32.c

Patch 5.5.025
Problem:    When using &quot;keepend&quot; in a <A HREF="syntax.html#syntax">syntax</A> region, a contained match that
	    includes the end-of-line could still force that region to
	    continue, if there is another contained match in between.
Solution:   Check the keepend_level in check_state_ends().
Files:	    src/syntax.c

Patch 5.5.026
Problem:    When starting Vim in a white-on-black xterm, with <A HREF="options.html#'bg'">'bg'</A> set to
	    &quot;dark&quot;, and then starting the <A HREF="gui.html#GUI">GUI</A> with &quot;<A HREF="gui_x11.html#:gui">:gui</A>&quot;, setting <A HREF="options.html#'bg'">'bg'</A> to
	    &quot;light&quot; in the <A HREF="gui.html#gvimrc">gvimrc</A>, the highlighting isn't set.  (Tsjokwing)
Solution:   Set the highlighting when <A HREF="options.html#'bg'">'bg'</A> is changed in the <A HREF="gui.html#gvimrc">gvimrc</A>, even
	    though full_screen isn't set.
Files:	    src/option.c

Patch 5.5.027
Problem:    <A HREF="os_unix.html#Unix">Unix</A>: os_unix.c doesn't compile when XTERM_CLIP is used but
	    WANT_TITLE isn't. (Barnum)
Solution:   Move a few <A HREF="eval.html#functions">functions</A> that are used by the <A HREF="options.html#X11">X11</A> title and <A HREF="gui.html#clipboard">clipboard</A>
	    and put another &quot;#if&quot; around <A HREF="motion.html#it">it</A>.
Files:	    src/os_unix.c

Patch 5.5.028 (extra)
Problem:    <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When a file is dropped on <A HREF="os_win32.html#Win32">Win32</A> <A HREF="starting.html#gvim">gvim</A> while at the &quot;<A HREF="cmdline.html#:">:</A>&quot;
	    prompt, the file is edited but the command line is actually still
	    there, the cursor goes back to command line on the next command.
	    (Krishna)
Solution:   When dropping a file or directory on <A HREF="starting.html#gvim">gvim</A> while at the &quot;<A HREF="cmdline.html#:">:</A>&quot; prompt,
	    insert the name of the file/directory.  Allows using the
	    file/directory name for any <A HREF="intro.html#Ex">Ex</A> command.
Files:	    src/gui_w32.c

Patch 5.5.029
Problem:    &quot;<A HREF="motion.html#das">das</A>&quot; at the end of the file didn't delete the last character of
	    the <A HREF="motion.html#sentence">sentence</A>.
Solution:   When there is no character after the <A HREF="motion.html#sentence">sentence</A>, make the operation
	    <A HREF="motion.html#inclusive">inclusive</A> in current_sent().
Files:	    src/search.c

Patch 5.5.030
Problem:    <A HREF="os_unix.html#Unix">Unix</A>: in os_unix.c, &quot;term_str&quot; is used, which is also defined in
	    vim.h <A HREF="motion.html#as">as</A> a <A HREF="map.html#macro">macro</A>. (wuxin)
Solution:   Renamed &quot;term_str&quot; to &quot;buf&quot; in do_xterm_trace().
Files:	    src/os_unix.c

Patch 5.5.031 (extra)
Problem:    <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When <A HREF="starting.html#exiting">exiting</A> Windows, <A HREF="starting.html#gvim">gvim</A> will leave swap files behind
	    and will be killed ungracefully. (Krishna)
Solution:   Catch the WM_QUERYENDSESSION and WM_ENDSESSION <A HREF="message.html#messages">messages</A> and try to
	    exit gracefully.  Allow the user to cancel the shutdown if there
	    is a changed buffer.
Files:	    src/gui_w32.c

Patch 5.5.032
Problem:    Patch 5.5.025 wasn't right.  And C highlighting was still not
	    working correctly for a #define.
Solution:   Added &quot;excludenl&quot; argument to &quot;<A HREF="syntax.html#:syntax">:syntax</A>&quot;, to be able not to extend
	    a containing item when there is a match with the end-of-line.
Files:	    src/syntax.c, runtime/doc/syntax.txt, runtime/syntax/c.vim

Patch 5.5.033
Problem:    When reading from stdin, a long line in <A HREF="starting.html#viminfo">viminfo</A> would mess up the
	    file message.  <A HREF="eval.html#readfile()">readfile()</A> uses IObuff for keep_msg, which could be
	    overwritten by anyone.
Solution:   Copy the message from IObuff to msg_buf and set keep_msg to that.
	    Also change vim_fgets() to not use IObuff any longer.
Files:	    src/fileio.c

Patch 5.5.034
Problem:    &quot;<A HREF="starting.html#gvim">gvim</A> -rv&quot; caused a crash.  Using <A HREF="term.html#'t_Co'">'t_Co'</A> before it's set.
Solution:   Don't try to initialize the highlighting before <A HREF="motion.html#it">it</A> has been
	    initialized from main().
Files:	    src/syntax.c

Patch 5.5.035
Problem:    <A HREF="gui_x11.html#GTK">GTK</A> with <A HREF="mbyte.html#XIM">XIM</A>: Resizing with status area was messy, and
	    &quot;<A HREF="options.html#:set">:set</A> guioptions+=b&quot; didn't work.
Solution:   Make status area a separate widget, but not a separate <A HREF="windows.html#window">window</A>.
	    (Chi-Deok Hwang)
Files:	    src/gui_gtk_f.c, src/gui_gtk_x11.c, src/multbyte.c

Patch 5.5.036
Problem:    The GZIP_read() function in $VIMRUNTIME/vimrc_example.vim to
	    uncompress a file did not <A HREF="diff.html#do">do</A> detection for <A HREF="options.html#'fileformat'">'fileformat'</A>.  This is
	    because the filtering is done with <A HREF="options.html#'binary'">'binary'</A> set.
Solution:   Split the filtering into separate write, <A HREF="change.html#filter">filter</A> and read commands.
Files:	    runtime/vimrc_example.vim

Patch 5.5.037
Problem:    The &quot;<A HREF="undo.html#U">U</A>&quot; command didn't <A HREF="motion.html#mark">mark</A> the buffer <A HREF="motion.html#as">as</A> changed. (McCormack)
Solution:   Set the <A HREF="options.html#'modified'">'modified'</A> flag when using &quot;<A HREF="undo.html#U">U</A>&quot;.
Files:	    src/undo.c

Patch 5.5.038
Problem:    When typing a long &quot;<A HREF="cmdline.html#:">:</A>&quot; command, so that the screen scrolls up,
	    causes the <A HREF="message.html#hit-enter">hit-enter</A> prompt, even though the user just typed
	    return to execute the command.
Solution:   Reset need_wait_return if (part of) the command was typed in
	    <A HREF="eval.html#getcmdline()">getcmdline()</A>.
Files:	    src/ex_getln.c

Patch 5.5.039
Problem:    When using a custom status line, &quot;&#37;a&quot; (file # of #) reports the
	    index of the current <A HREF="windows.html#window">window</A> for all <A HREF="windows.html#windows">windows</A>.
Solution:   Pass a <A HREF="windows.html#window">window</A> pointer to append_arg_number(), and pass the <A HREF="windows.html#window">window</A>
	    being updated from build_stl_str_hl(). (Stephen <A HREF="change.html#P">P</A>. Wall)
Files:	    src/buffer.c, src/screen.c, src/proto/buffer.pro

Patch 5.5.040
Problem:    Multi-byte: When there is some error in xim_real_init(), <A HREF="motion.html#it">it</A> can
	    close <A HREF="mbyte.html#XIM">XIM</A> and return.  After this there can be a segv.
Solution:   Test &quot;xic&quot; for being non-NULL, don't set &quot;<A HREF="mbyte.html#xim">xim</A>&quot; to NULL.  Also try
	    to find more matches for supported styles. (Sung-Hyun Nam)
Files:	    src/multbyte.c

Patch 5.5.041
Problem:    <A HREF="options.html#X11">X11</A> <A HREF="gui.html#GUI">GUI</A>: CTRL-_ requires the SHIFT key only on some machines.
Solution:   Translate CTRL-- to CTRL-_. (Robert Webb)
Files:	    src/gui_x11.c

Patch 5.5.042
Problem:    <A HREF="options.html#X11">X11</A> <A HREF="gui.html#GUI">GUI</A>: keys with ALT were assumed to be used for the menu, even
	    when the menu has been disabled by removing '<A HREF="motion.html#m">m</A>' from <A HREF="options.html#'guioptions'">'guioptions'</A>.
Solution:   Ignore keys with ALT only when gui.menu_is_active is set. (Raf)
Files:	    src/gui_x11.c

Patch 5.5.043
Problem:    <A HREF="gui_x11.html#GTK">GTK</A>: Handling of <A HREF="mbyte.html#fontset">fontset</A> fonts was not right when <A HREF="options.html#'guifontset'">'guifontset'</A>
	    contains exactly 14 times '<A HREF="motion.html#-">-</A>'.
Solution:   Avoid setting fonts when working with a <A HREF="mbyte.html#fontset">fontset</A>. (Sung-Hyun Nam)
Files:	    src/gui_gtk_x11.c

Patch 5.5.044
Problem:    pltags.pl contains an absolute path &quot;/usr/local/bin/perl&quot;.  That
	    might not work everywhere.
Solution:   Use &quot;/usr/bin/env perl&quot; instead.
Files:	    runtime/tools/pltags.pl

Patch 5.5.045
Problem:    Using &quot;this_session&quot; variable does not work, requires preceding <A HREF="motion.html#it">it</A>
	    with &quot;<A HREF="eval.html#v:">v:</A>&quot;.  Default filename for &quot;<A HREF="starting.html#:mksession">:mksession</A>&quot; isn't mentioned
	    in the docs. (Fisher)
Solution:   Support using &quot;this_session&quot; to be backwards compatible.
Files:	    src/eval.c, runtime/doc/options.txt

Patch 5.5.046 (extra)
Problem:    <A HREF="os_vms.html#VMS">VMS</A>: problems with path and filename.
Solution:   Truncate file name at last '<A HREF="motion.html#;">;</A>', etc. (Zoltan Arpadffy)
Files:	    src/buffer.c, src/fileio.c, src/gui_motif.c, src/os_vms.c,
	    src/proto/os_vms.pro

Patch 5.5.047
Problem:    <A HREF="os_vms.html#VMS">VMS</A>: Crash when using the popup menu
Solution:   Turn the #define MENU_MODE_CHARS into an array. (Arpadffy)
Files:	    src/structs.h, src/menu.c

Patch 5.5.048
Problem:    HP-UX 11: Compiling doesn't work, because both string.h and
	    strings.h are included. (Squassabia)
Solution:   The configure test for including both string.h and strings.h
	    must include &lt;Xm/Xm.h&gt; first, because <A HREF="motion.html#it">it</A> causes problems.
Files:	    src/configure.in, src/configure, src/config.h.in

Patch 5.5.049
Problem:    <A HREF="os_unix.html#Unix">Unix</A>: When installing Vim, the protection bits of files might be
	    influenced by the umask.
Solution:   Add $(FILEMOD) to Makefile. (Shetye)
Files:	    src/Makefile

Patch 5.5.050
Problem:    &quot;<A HREF="scroll.html#z+">z+</A>&quot; and &quot;<A HREF="scroll.html#z^">z^</A>&quot; commands are missing.
Solution:   Implemented &quot;<A HREF="scroll.html#z+">z+</A>&quot; and &quot;<A HREF="scroll.html#z^">z^</A>&quot;.
Files:	    src/normal.c, runtime/doc/scroll.txt, runtime/doc/index.txt

Patch 5.5.051
Problem:    Several <A HREF="os_unix.html#Unix">Unix</A> systems have a problem with the optimization <A HREF="vi_diff.html#limits">limits</A>
	    check in configure.
Solution:   Removed the configure check, let the user add <A HREF="motion.html#it">it</A> manually in
	    Makefile or the environment.
Files:	    src/configure.in, src/configure, src/Makefile

Patch 5.5.052
Problem:    Crash when using a cursor key at the <A HREF="usr_11.html#ATTENTION">ATTENTION</A> prompt. (Alberani)
Solution:   Ignore special keys at the console <A HREF="gui_w32.html#dialog">dialog</A>.  Also ignore characters
	    <A HREF="change.html#&gt;">&gt;</A> 255 for other uses of <A HREF="eval.html#tolower()">tolower()</A> and <A HREF="eval.html#toupper()">toupper()</A>.
Files:	    src/menu.c, src/message.c, src/misc2.c

Patch 5.5.053
Problem:    Indenting is wrong after a function when <A HREF="options.html#'cino'">'cino'</A> has &quot;fs&quot;.  Another
	    problem when <A HREF="options.html#'cino'">'cino'</A> has &quot;{s&quot;.
Solution:   Put line after closing &quot;<A HREF="motion.html#}">}</A>&quot; of a function at the left margin.
	    Apply ind_open_extra in the right way after a '<A HREF="motion.html#{">{</A>'.
Files:	    src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok

Patch 5.5.054
Problem:    <A HREF="os_unix.html#Unix">Unix</A>: &quot;<A HREF="editing.html#:e">:e</A> #&quot; doesn't work if the alternate file name contains a
	    space or <A HREF="intro.html#backslash">backslash</A>. (Hudacek)
Solution:   When <A HREF="change.html#replacing">replacing</A> &quot;<A HREF="pattern.html##">#</A>&quot;, &quot;<A HREF="motion.html#&#37;">&#37;</A>&quot; or other items that stand for a file name,
	    prepend a <A HREF="intro.html#backslash">backslash</A> before special characters.
Files:	    src/ex_docmd.c

Patch 5.5.055
Problem:    Using &quot;&lt;C-V&gt;$r-&quot; in blockwise <A HREF="visual.html#Visual">Visual</A> mode replaces one character
	    beyond the end of the line. (Zivkov)
Solution:   Only replace existing characters.
Files:	    src/ops.c

Patch 5.5.056
Problem:    After &quot;z20&lt;CR&gt;&quot; <A HREF="message.html#messages">messages</A> were printed at the old command line
	    position once.  (Veselinovic)
Solution:   Set msg_row and msg_col when <A HREF="change.html#changing">changing</A> cmdline_row in
	    win_setheight().
Files:	    src/window.c

Patch 5.5.057
Problem:    After &quot;S&lt;Esc&gt;&quot; <A HREF="motion.html#it">it</A> should be possible to restore the line with &quot;<A HREF="undo.html#U">U</A>&quot;.
	    (Veselinovic)
Solution:   Don't call u_clearline() in op_delete() when <A HREF="change.html#changing">changing</A> only one
	    line.
Files:	    src/ops.c

Patch 5.5.058
Problem:    Using a long search <A HREF="pattern.html#pattern">pattern</A> and then &quot;<A HREF="pattern.html#n">n</A>&quot; causes the <A HREF="message.html#hit-enter">hit-enter</A>
	    prompt.  (Krishna)
Solution:   Truncate the echoed <A HREF="pattern.html#pattern">pattern</A>, like other <A HREF="message.html#messages">messages</A>.  Moved code for
	    truncating from msg_attr() to msg_strtrunc().
Files:	    src/message.c, src/proto/message.pro, src/search.c

Patch 5.5.059
Problem:    <A HREF="gui_x11.html#GTK">GTK</A> <A HREF="gui.html#GUI">GUI</A>: When $term is invalid, using &quot;<A HREF="starting.html#gvim">gvim</A>&quot; gives an error
	    message, even though $term isn't really used.  (Robbins)
Solution:   When the <A HREF="gui.html#GUI">GUI</A> is about to start, skip the error <A HREF="message.html#messages">messages</A> for a
	    wrong $term.
Files:	    src/term.c

Patch 5.5.060 (extra)
Problem:    Dos 32 bit: When a directory in <A HREF="options.html#'backupdir'">'backupdir'</A> doesn't exist, &quot;<A HREF="editing.html#:w">:w</A>&quot;
	    causes the file to be renamed to &quot;axlqwqhy.ba~&quot;. (Matzdorf)
Solution:   The code to work around a LFN bug in Windows 95 doesn't handle a
	    non-existing target name correctly.  When renaming fails, make
	    sure the file has its original name.  Also <A HREF="diff.html#do">do</A> this for the <A HREF="os_win32.html#Win32">Win32</A>
	    version, although it's unlikely that <A HREF="motion.html#it">it</A> runs into this problem.
Files:	    src/os_msdos.c, src/os_win32.c

Patch 5.5.061
Problem:    When using &quot;\:&quot; in a <A HREF="options.html#modeline">modeline</A>, the <A HREF="intro.html#backslash">backslash</A> is included in the
	    option value. (Mohsin)
Solution:   Remove one <A HREF="intro.html#backslash">backslash</A> before the '<A HREF="cmdline.html#:">:</A>' in a <A HREF="options.html#modeline">modeline</A>.
Files:	    src/buffer.c, runtime/doc/options.txt

Patch 5.5.062 (extra)
Problem:    <A HREF="os_win32.html#Win32">Win32</A> console: Temp files are created in the root of the current
	    drive, which may be read-only. (Peterson)
Solution:   Use the same mechanism of the <A HREF="gui.html#GUI">GUI</A> version: Use $TMP, $TEMP or the
	    current directory.  Cleaned up vim_tempname() a bit.
Files:	    src/fileio.c, src/os_win32.h, runtime/doc/os_dos.txt

Patch 5.5.063
Problem:    When using whole-line completion in <A HREF="insert.html#Insert">Insert</A> mode, <A HREF="options.html#'cindent'">'cindent'</A> is
	    applied, even after <A HREF="change.html#changing">changing</A> the indent of the line.
Solution:   Don't reindent the completed line after inserting/removing indent.
	    (Robert Webb)
Files:	    src/edit.c

Patch 5.5.064
Problem:    has(&quot;sniff&quot;) doesn't work correctly.
Solution:   Return 1 when Vim was compiled with the +sniff feature. (Pruemmer)
Files:	    src/eval.c

Patch 5.5.065
Problem:    When dropping a file on Vim, the <A HREF="options.html#'shellslash'">'shellslash'</A> option is not
	    effective. (Krishna)
Solution:   Fix the slashes in the dropped file names according to
	    <A HREF="options.html#'shellslash'">'shellslash'</A>.
Files:	    src/ex_docmd.c, runtime/doc/options.txt

Patch 5.5.066
Problem:    For systems with <A HREF="intro.html#backslash">backslash</A> in file name: Setting a file name
	    option to a value starting with &quot;\\machine&quot; removed a <A HREF="intro.html#backslash">backslash</A>.
Solution:   Keep the double <A HREF="intro.html#backslash">backslash</A> for &quot;\\machine&quot;, but <A HREF="diff.html#do">do</A> change
	    &quot;\\\\machine&quot; to &quot;\\machine&quot; for backwards compatibility.
Files:	    src/option.c, runtime/doc/options.txt

Patch 5.5.067
Problem:    With <A HREF="options.html#'hlsearch'">'hlsearch'</A> set, the <A HREF="pattern.html#pattern">pattern</A> &quot;\&gt;&quot; doesn't highlight the first
	    match in a line. (Benji Fisher)
Solution:   Fix highlighting an empty match.  Also highlight the first
	    character in an empty line for &quot;<A HREF="motion.html#$">$</A>&quot;.
Files:	    src/screen.c

Patch 5.5.068
Problem:    Crash when a &quot;<A HREF="eval.html#:while">:while</A>&quot; is used with an argument that has an error.
	    (Sylvain Viart)
Solution:   Was using an uninitialized index in the cs_line[] array.  The
	    crash only happened when the index was far off.  Made sure the
	    uninitialized index isn't used.
Files:	    src/ex_docmd.c

Patch 5.5.069
Problem:    Shifting lines in blockwise <A HREF="visual.html#Visual">Visual</A> mode didn't set the <A HREF="options.html#'modified'">'modified'</A>
	    flag.
Solution:   Do set the <A HREF="options.html#'modified'">'modified'</A> flag.
Files:	    src/ops.c

Patch 5.5.070
Problem:    When editing a new file, creating that file outside of Vim, then
	    editing <A HREF="motion.html#it">it</A> again, &quot;<A HREF="editing.html#:w">:w</A>&quot; still warns for overwriting an existing
	    file. (Nam)
Solution:   The BF_NEW flag in the &quot;b_flags&quot; field wasn't cleared properly.
Files:	    src/buffer.c, src/fileio.c

Patch 5.5.071
Problem:    Using a matchgroup in a &quot;<A HREF="syntax.html#:syn">:syn</A> region&quot;, which is the same <A HREF="syntax.html#syntax">syntax</A>
	    group <A HREF="motion.html#as">as</A> the region, didn't stop a contained item from matching in
	    the start <A HREF="pattern.html#pattern">pattern</A>.
Solution:   Also push an item on the stack when the <A HREF="syntax.html#syntax">syntax</A> ID of the
	    matchgroup is the same <A HREF="motion.html#as">as</A> the <A HREF="syntax.html#syntax">syntax</A> ID of the region.
Files:	    src/syntax.c

Patch 5.5.072 (extra)
Problem:    Dos 32 bit: When setting <A HREF="options.html#'columns'">'columns'</A> to a too large value, Vim may
	    crash, and the <A HREF="os_dos.html#DOS">DOS</A> console too.
Solution:   Check that the value of <A HREF="options.html#'columns'">'columns'</A> isn't larger than the number of
	    columns that the BIOS reports.
Files:	    src/os_msdos.c, src/proto/os_msdos.pro, src/option.c

Patch 5.5.073 (extra)
Problem:    Win 32 <A HREF="gui.html#GUI">GUI</A>: The Find and Find/Replace dialogs didn't show the
	    &quot;match case&quot; checkbox.  The Find/Replace <A HREF="gui_w32.html#dialog">dialog</A> didn't handle the
	    &quot;match whole word&quot; checkbox.
Solution:   Support the &quot;match case&quot; and &quot;match whole word&quot; checkboxes.
Files:	    src/gui_w32.c

Patch 5.6a.001
Problem:    Using <A HREF="motion.html#&lt;C-End&gt;">&lt;C-End&gt;</A> with a <A HREF="intro.html#count">count</A> doesn't work like <A HREF="motion.html#it">it</A> does with &quot;<A HREF="motion.html#G">G</A>&quot;.
	    (Benji Fisher)
Solution:   Accept a <A HREF="intro.html#count">count</A> for <A HREF="motion.html#&lt;C-End&gt;">&lt;C-End&gt;</A> and <A HREF="motion.html#&lt;C-Home&gt;">&lt;C-Home&gt;</A>.
Files:	    src/normal.c

Patch 5.6a.002
Problem:    The <A HREF="usr_41.html#script">script</A> for conversion to HTML was an older version.
Solution:   Add support for running <A HREF="syntax.html#2html.vim">2html.vim</A> on a color <A HREF="terminal.html#terminal">terminal</A>.
Files:	    runtime/syntax/2html.vim

Patch 5.6a.003
Problem:    Defining a function inside a function didn't give an error
	    message.  A missing &quot;<A HREF="eval.html#:endfunction">:endfunction</A>&quot; doesn't give an error message.
Solution:   Allow defining a function inside a function.
Files:	    src/eval.c, runtime/doc/eval.txt

Patch 5.6a.004
Problem:    A missing &quot;<A HREF="eval.html#:endwhile">:endwhile</A>&quot; or &quot;<A HREF="eval.html#:endif">:endif</A>&quot; doesn't give an error message.
	    (Johannes Zellner)
Solution:   Check for missing &quot;<A HREF="eval.html#:endwhile">:endwhile</A>&quot; and &quot;<A HREF="eval.html#:endif">:endif</A>&quot; in sourced files.
	    Add missing &quot;<A HREF="eval.html#:endif">:endif</A>&quot; in file selection macros.
Files:	    src/ex_docmd.c, runtime/macros/file_select.vim

Patch 5.6a.005
Problem:    <A HREF="options.html#'hlsearch'">'hlsearch'</A> was not listed alphabetically.  The value of <A HREF="options.html#'toolbar'">'toolbar'</A>
	    was changed when <A HREF="options.html#'compatible'">'compatible'</A> is set.
Solution:   Moved entry of <A HREF="options.html#'hlsearch'">'hlsearch'</A> in options[] table down.
	    Don't reset <A HREF="options.html#'toolbar'">'toolbar'</A> option to the default value when
	    <A HREF="options.html#'compatible'">'compatible'</A> is set.
Files:	    src/option.c

Patch 5.6a.006
Problem:    Using a backwards range inside &quot;<A HREF="eval.html#:if">:if</A> 0&quot; gave an error message.
Solution:   Don't complain about a range when <A HREF="motion.html#it">it</A> is not going to be used.
	    (Stefan Roemer)
Files:	    src/ex_docmd.c

Patch 5.6a.007
Problem:    &quot;<A HREF="eval.html#:let">:let</A>&quot; didn't show internal Vim <A HREF="eval.html#variables">variables</A>.  (Ron Aaron)
Solution:   Do show &quot;<A HREF="repeat.html#:v">:v</A>&quot; <A HREF="eval.html#variables">variables</A> for &quot;<A HREF="eval.html#:let">:let</A>&quot; and &quot;<A HREF="eval.html#:let">:let</A> v:name&quot;.
Files:	    src/eval.c

Patch 5.6a.008
Problem:    Selecting a <A HREF="syntax.html#syntax">syntax</A> from the <A HREF="autocmd.html#Syntax">Syntax</A> menu gives an error message.
Solution:   <A HREF="insert.html#Replace">Replace</A> &quot;else if&quot; in SetSyn() with &quot;elseif&quot;.  (Ronald Schild)
Files:	    runtime/menu.vim

Patch 5.6a.009
Problem:    When compiling with <A HREF="various.html#+extra_search">+extra_search</A> but without <A HREF="various.html#+syntax">+syntax</A>, there is a
	    compilation error in screen.c. (Axel Kielhorn)
Solution:   Adjust the #ifdef for declaring and initializing &quot;line&quot; in
	    win_line().  Also solve compilation problem when <A HREF="various.html#+statusline">+statusline</A> is
	    used without <A HREF="various.html#+eval">+eval</A>.  Another one when <A HREF="various.html#+cmdline_compl">+cmdline_compl</A> is used
	    without <A HREF="various.html#+eval">+eval</A>.
Files:	    src/screen.c, src/misc2.c

Patch 5.6a.010
Problem:    In a function, &quot;:startinsert!&quot; does not append to the end of the
	    line if a &quot;<A HREF="various.html#:normal">:normal</A>&quot; command was used to move the cursor. (Fisher)
Solution:   Reset &quot;w_set_curswant&quot; to avoid that w_curswant is changed again.
Files:	    src/ex_docmd.c

Patch 5.6a.011 (depends on 5.6a.004)
Problem:    A missing &quot;<A HREF="eval.html#:endif">:endif</A>&quot; or &quot;<A HREF="eval.html#:endwhile">:endwhile</A>&quot; in a function doesn't give an
	    error message.
Solution:   Give that error message.
Files:	    src/ex_docmd.c

Patch 5.6a.012 (depends on 5.6a.008)
Problem:    Some <A HREF="autocmd.html#Syntax">Syntax</A> menu entries caused a <A HREF="message.html#hit-enter">hit-enter</A> prompt.
Solution:   Call a function to make the command shorter.  Also rename a few
	    <A HREF="eval.html#functions">functions</A> to avoid name clashes.
Files:	    runtime/menu.vim

Patch 5.6a.013
Problem:    Command line completion works different when another completion
	    was done earlier. (Johannes Zellner)
Solution:   Reset wim_index when starting a new completion.
Files:	    src/ex_getln.c

Patch 5.6a.014
Problem:    Various warning <A HREF="message.html#messages">messages</A> when compiling and running lint with
	    different combinations of features.
Solution:   Fix the warning <A HREF="message.html#messages">messages</A>.
Files:	    src/eval.c, src/ex_cmds.c, src/ex_docmd.c, src/gui_gtk_x11.c,
	    src/option.c, src/screen.c, src/search.c, src/syntax.c,
	    src/feature.h, src/globals.h

Patch 5.6a.015
Problem:    The <A HREF="usr_01.html#vimtutor">vimtutor</A> command doesn't always know the value of <A HREF="starting.html#$VIMRUNTIME">$VIMRUNTIME</A>.
Solution:   Let Vim expand <A HREF="starting.html#$VIMRUNTIME">$VIMRUNTIME</A>, instead of the shell.
Files:	    src/vimtutor

Patch 5.6a.016 (extra)
Problem:    <A HREF="os_mac.html#Mac">Mac</A>: Window size is restricted when starting.  Cannot drag the
	    <A HREF="windows.html#window">window</A> all over the desktop.
Solution:   Get real screen size instead of assuming 640x400.  Do not use a
	    fixed number for the drag <A HREF="vi_diff.html#limits">limits</A>. (Axel Kielhorn)
Files:	    src/gui_mac.c

Patch 5.6a.017
Problem:    The &quot;Paste&quot; entry in popup menu for <A HREF="visual.html#Visual">Visual</A>, <A HREF="insert.html#Insert">Insert</A> and <A HREF="cmdline.html#Cmdline">Cmdline</A>
	    mode is in the wrong position. (Stol)
Solution:   Add priority numbers for all Paste menu entries.
Files:	    runtime/menu.vim

Patch 5.6a.018
Problem:    <A HREF="gui_x11.html#GTK">GTK</A> <A HREF="gui.html#GUI">GUI</A>: submenu priority doesn't work.
	    Help <A HREF="gui_w32.html#dialog">dialog</A> could be destroyed too soon.
	    When closing a <A HREF="gui_w32.html#dialog">dialog</A> <A HREF="windows.html#window">window</A> (e.g. the &quot;<A HREF="usr_11.html#ATTENTION">ATTENTION</A>&quot; one), Vim would
	    just hang.
	    When <A HREF="gui_x11.html#GTK">GTK</A> theme is changed, Vim doesn't adjust to the new colors.
	    Argument for &quot;<A HREF="change.html#:promptfind">:promptfind</A>&quot; isn't used.
Solution:   Fixed the mentioned problems.
	    Made the dialogs look&amp;feel nicer.
	    Moved <A HREF="eval.html#functions">functions</A> to avoid the need for a forward declaration.
	    Fixed reentrancy of the file browser <A HREF="gui_w32.html#dialog">dialog</A>.
	    Added drag&amp;drop support for <A HREF="gui_x11.html#GNOME">GNOME</A>.
	    Init the text for the Find/replace <A HREF="gui_w32.html#dialog">dialog</A> from the last used
	    search <A HREF="eval.html#string">string</A>.  Set &quot;match whole word&quot; toggle button correctly.
	    Made repeat rate for drag outside of <A HREF="windows.html#window">window</A> depend on the
	    distance from the <A HREF="windows.html#window">window</A>.  (Marcin Dalecki)
	    Made the drag in <A HREF="visual.html#Visual">Visual</A> mode actually work.
	    Removed recursiveness protection from gui_mch_get_rgb(), <A HREF="motion.html#it">it</A> might
	    cause more trouble than <A HREF="motion.html#it">it</A> solves.
Files:	    src/ex_docmd.c, src/gui_gtk.c, src/gui_gtk_x11.c, src/ui.c,
	    src/proto/ui.pro, src/misc2.c

Patch 5.6a.019
Problem:    When trying to recover through NFS, which uses a large block size,
	    Vim might think the swap file is empty, because mf_blocknr_max is
	    zero.  (Scott McDermott)
Solution:   When computing the number of blocks of the file in mf_open(),
	    round up instead of down.
Files:	    src/memfile.c

Patch 5.6a.020
Problem:    <A HREF="gui.html#GUI">GUI</A> <A HREF="gui_x11.html#GTK">GTK</A>: Could not set display for <A HREF="starting.html#gvim">gvim</A>.
Solution:   Add &quot;<A HREF="gui_x11.html#-display">-display</A>&quot; and &quot;--display&quot; arguments. (Marcin Dalecki)
Files:	    src/gui_gtk_x11.c

Patch 5.6a.021
Problem:    Recovering still may not work when the block size of the device
	    where the swap file is located is larger than 4096.
Solution:   Read block 0 with the minimal block size.
Files:	    src/memline.c, src/memfile.c, src/vim.h

Patch 5.6a.022 (extra)
Problem:    <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When an error in the <A HREF="starting.html#vimrc">vimrc</A> causes a <A HREF="gui_w32.html#dialog">dialog</A> to pop up
	    (e.g., for an existing swap file), Vim crashes. (David Elins)
Solution:   Before showing a <A HREF="gui_w32.html#dialog">dialog</A>, open the main <A HREF="windows.html#window">window</A>.
Files:	    src/gui_w32.c

Patch 5.6a.023
Problem:    Using expand(&quot;&#37;:gs??/?&quot;) causes a crash. (Ron Aaron)
Solution:   Check for running into the end of the <A HREF="eval.html#string">string</A> in do_string_sub().
Files:	    src/eval.c

Patch 5.6a.024
Problem:    Using an <A HREF="autocmd.html#autocommand">autocommand</A> to delete a buffer when leaving <A HREF="motion.html#it">it</A> can cause
	    a crash when jumping to a <A HREF="tagsrch.html#tag">tag</A>. (Franz Gorkotte)
Solution:   In do_tag(), store tagstacklen before jumping to another buffer.
	    Check tagstackidx after jumping to another buffer.
	    Add extra check in win_split() if tagname isn't NULL.
Files:	    src/tag.c, src/window.c

Patch 5.6a.025 (extra)
Problem:    <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: The tables for <A HREF="eval.html#toupper()">toupper()</A> and <A HREF="eval.html#tolower()">tolower()</A> are initialized
	    too late. (Mike Steed)
Solution:   Move the <A HREF="starting.html#initialization">initialization</A> to win32_init() and call <A HREF="motion.html#it">it</A> from main().
Files:	    src/main.c, src/os_w32.c, src/proto/os_w32.pro

Patch 5.6a.026
Problem:    When the SNiFF connection is open, shell commands hang. (Pruemmer)
Solution:   Skip a second wait() call if waitpid() already detected that the
	    child has exited.
Files:	    src/os_unix.c

Patch 5.6a.027 (extra)
Problem:    <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: The &quot;Edit with Vim&quot; popup menu entry causes problems
	    for the Office toolbar.
Solution:   Use a shell extension dll. (Tianmiao Hu)
	    Added <A HREF="motion.html#it">it</A> to the <A HREF="usr_90.html#install">install</A> and uninstal programs, replaces the old
	    &quot;Edit with Vim&quot; menu registry entries.
Files:	    src/dosinst.c, src/uninstal.c, gvimext/*, runtime/doc/gui_w32.txt

Patch 5.6a.028 (extra)
Problem:    <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Dialogs and tear-off <A HREF="gui.html#menus">menus</A> can't handle <A HREF="mbyte.html#multi-byte">multi-byte</A>
	    characters.
Solution:   Adjust nCopyAnsiToWideChar() to handle <A HREF="mbyte.html#multi-byte">multi-byte</A> characters
	    correctly.
Files:	    src/gui_w32.c

==============================================================================

VERSION 5.7						*<A NAME="version-5.7"></A><B>version-5.7</B>*

Version 5.7 is a bug-fix version of 5.6.


Changed							*<A NAME="changed-5.7"></A><B>changed-5.7</B>*

Renamed src/INSTALL.mac to INSTALL_mac.txt to avoid <A HREF="motion.html#it">it</A> being recognized with a
wrong file type.  Also renamed src/INSTALL.amiga to INSTALL_ami.txt.



Added							*<A NAME="added-5.7"></A><B>added-5.7</B>*

New <A HREF="syntax.html#syntax">syntax</A> files:
stp		Stored Procedures (Jeff Lanzarotta)
snnsnet, snnspat, snnsres	SNNS (Davide Alberani)
mel		MEL (Robert Minsk)
<A HREF="if_ruby.html#ruby">ruby</A>		<A HREF="if_ruby.html#Ruby">Ruby</A> (Mirko Nasato)
tli		TealInfo (Kurt <A HREF="motion.html#W">W</A>. Andrews)
ora		Oracle config file (Sandor Kopanyi)
abaqus		Abaqus (Carl Osterwisch)
jproperties	Java Properties (Simon Baldwin)
apache		Apache config (Allan Kelly)
csp		CSP (Jan Bredereke)
samba		Samba config (Rafael Garcia-Suarez)
kscript		<A HREF="gui_x11.html#KDE">KDE</A> <A HREF="usr_41.html#script">script</A> (Thomas Capricelli)
hb		Hyper Builder (Alejandro Forero Cuervo)
fortran		Fortran (rewritten) (Ajit <A HREF="change.html#J">J</A>. Thakkar)
sml		SML (Fabrizio Zeno Cornelli)
cvs		CVS commit (Matt Dunford)
aspperl		ASP <A HREF="if_perl.html#Perl">Perl</A> (Aaron Hope)
bc		BC calculator (Vladimir Scholtz)
latte		Latte (Nick Moffitt)
wml		WML (Gerfried Fuchs)

Included Exuberant <A HREF="tagsrch.html#ctags">ctags</A> 3.5.1. (Darren Hiebert)

&quot;display&quot; and &quot;fold&quot; arguments for <A HREF="syntax.html#syntax">syntax</A> items.  For future extension, they
are ignored now.

<A HREF="eval.html#strftime()">strftime()</A> function for the <A HREF="os_mac.html#Macintosh">Macintosh</A>.

macros/explorer.vim: A file browser <A HREF="usr_41.html#script">script</A> (M A Aziz Ahmed)



Fixed							*<A NAME="fixed-5.7"></A><B>fixed-5.7</B>*

The 16 bit <A HREF="os_msdos.html#MS-DOS">MS-DOS</A> version is now compiled with Bcc 3.1 instead of 4.0.  The
executable is smaller.

When a &quot;make test&quot; failed, the output file was lost.  Rename <A HREF="motion.html#it">it</A> to
test99.failed to be able to see what went wrong.

After sourcing <A HREF="intro.html#bugreport.vim">bugreport.vim</A>, it's not clear that bugreport.txt has been
written in the current directory.  Edit bugreport.txt to avoid that.

Adding <A HREF="mbyte.html#IME">IME</A> support when using Makefile.w32 didn't work. (Taro Muraoka)

<A HREF="os_win32.html#Win32">Win32</A> console: Mouse drags were passed on even when the mouse didn't move.

<A HREF="if_perl.html#Perl">Perl</A> interface: In Buffers(), type of argument to SvPV() was int, should be
STRLEN. (Tony Leneis)

Problem with prototype for <A HREF="eval.html#index()">index()</A> on AIX 4.3.0.  Added check for _AIX43 in
os_unix.h. (Jake Hamby)

Mappings in <A HREF="gui_w32.html#mswin.vim">mswin.vim</A> could break when some commands are mapped.  Add &quot;nore&quot;
to most mappings to avoid re-mapping.

modify_fname() made a copy of a file name for &quot;<A HREF="various.html#:p">:p</A>&quot; when <A HREF="motion.html#it">it</A> already was a full
path name, which is a bit slow.

<A HREF="os_win32.html#Win32">Win32</A> with Borland C++ 5.5: Pass the path to the compiler on to xxd and <A HREF="tagsrch.html#ctags">ctags</A>,
to avoid depending on $PATH.  Fixed &quot;make clean&quot;.

Many fixes to <A HREF="os_mac.html#Macintosh">Macintosh</A> specific parts: (mostly by Dany StAmant)
- Only one Help menu.
- No more crash when removing a menu item.
- Support <A HREF="motion.html#as">as</A> External Editor for Codewarrior (still some little glitches).
- Popup menu support.
- Fixed crash when pasting after application switch.
- Color from <A HREF="gui_w32.html#rgb.txt">rgb.txt</A> properly displayed.
- <A HREF="options.html#'isprint'">'isprint'</A> default includes all chars above '<A HREF="change.html#~">~</A>'. (Axel Kielhorn)
- mac_expandpath() was leaking memory.
- Add <A HREF="digraph.html#digraphs">digraphs</A> table. (Axel Kielhorn)
- Multi-byte support: (Kenichi Asai)
  Switch keyscript when going in/out of <A HREF="insert.html#Insert">Insert</A> mode.
  Draw <A HREF="mbyte.html#multi-byte">multi-byte</A> character correctly.
  Don't use mblen() but highest bit of char to detect <A HREF="mbyte.html#multi-byte">multi-byte</A> char.
  Display value of <A HREF="mbyte.html#multi-byte">multi-byte</A> in statusline (also for other systems).
- mouse button was not initialized properly to MOUSE_LEFT when
  USE_CTRLCLICKMENU not defined.
- With <A HREF="mbyte.html#Japanese">Japanese</A> SJIS characters: Make &quot;<A HREF="motion.html#w">w</A>&quot;, &quot;<A HREF="motion.html#b">b</A>&quot;, and &quot;<A HREF="motion.html#e">e</A>&quot; work
  properly.  (Kenichi Asai)
- Replaced old CodeWarrior file os_mac.CW9.hqx with os_mac.cw5.sit.hqx.

Fixes for <A HREF="os_vms.html#VMS">VMS</A>: (Zoltan Arpadffy) (also see patch 5.6.045 below)
- Added Makefile_vms.mms and vimrc.vms to src/testdir to be able to run the
  tests.
- Various fixes.
- Set <A HREF="options.html#'undolevels'">'undolevels'</A> to 1000 by default.
- Made mch_settitle() equivalent to the one in os_unix.c.

RiscOS: A few prototypes for os_riscos.c were outdated.  Generate prototypes
automatically.


Previously released patches:

Patch 5.6.001
Problem:    When using &quot;set bs=0 si cin&quot;, Inserting &quot;#&lt;BS&gt;&quot; or &quot;}&lt;BS&gt;&quot; which
	    reduces the indent doesn't delete the &quot;<A HREF="pattern.html##">#</A>&quot; or &quot;<A HREF="motion.html#}">}</A>&quot;. (Lorton)
Solution:   Adjust ai_col in ins_try_si().
Files:	    src/edit.c

Patch 5.6.002
Problem:    When using the <A HREF="syntax.html#vim.vim">vim.vim</A> <A HREF="syntax.html#syntax">syntax</A> file, a comment with all <A HREF="change.html#uppercase">uppercase</A>
	    characters causes a hang.
Solution:   Adjust <A HREF="pattern.html#pattern">pattern</A> for vimCommentTitle (Charles Campbell)
Files:	    runtime/syntax/vim.vim

Patch 5.6.003
Problem:    <A HREF="gui_x11.html#GTK">GTK</A> <A HREF="gui.html#GUI">GUI</A>: Loading a user defined toolbar bitmap gives a warning
	    about the colormap.  Probably because the <A HREF="windows.html#window">window</A> has not been
	    opened yet.
Solution:   Use gdk_pixmap_colormap_create_from_xpm() to convert the xpm file.
	    (Keith Radebaugh)
Files:	    src/gui_gtk.c

Patch 5.6.004 (extra)
Problem:    <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A> with <A HREF="mbyte.html#IME">IME</A>: When setting <A HREF="options.html#'guifont'">'guifont'</A> to &quot;*&quot;, the font
	    requester appears <A HREF="if_cscop.html#twice">twice</A>.
Solution:   In gui_mch_init_font() don't call get_logfont() but copy
	    norm_logfont from fh. (Yasuhiro Matsumoto)
Files:	    src/gui_w32.c

Patch 5.6.005
Problem:    When <A HREF="options.html#'winminheight'">'winminheight'</A> is zero, <A HREF="index.html#CTRL-W">CTRL-W</A> - with a big number causes a
	    crash.  (David Kotchan)
Solution:   Check for negative <A HREF="windows.html#window">window</A> height in win_setheight().
Files:	    src/window.c

Patch 5.6.006
Problem:    <A HREF="gui_x11.html#GTK">GTK</A> <A HREF="gui.html#GUI">GUI</A>: Bold font cannot always be used.  Memory is freed too
	    early in gui_mch_init_font().
Solution:   Move call to g_free() to after where sdup is used. (Artem Hodyush)
Files:	    src/gui_gtk_x11.c

Patch 5.6.007 (extra)
Problem:    <A HREF="os_win32.html#Win32">Win32</A> <A HREF="mbyte.html#IME">IME</A>: Font is not changed when screen font is changed. And
	    <A HREF="mbyte.html#IME">IME</A> composition <A HREF="windows.html#window">window</A> does not trace the cursor.
Solution:   Initialize <A HREF="mbyte.html#IME">IME</A> font.  When cursor is moved, set <A HREF="mbyte.html#IME">IME</A> composition
	    <A HREF="windows.html#window">window</A> with ImeSetCompositionWindow().  Add call to
	    ImmReleaseContext() in several places. (Taro Muraoka)
Files:	    src/gui.c, src/gui_w32.c, src/proto/gui_w32.pro

Patch 5.6.008 (extra)
Problem:    <A HREF="os_win32.html#Win32">Win32</A>: When two files exist with the same name but different <A HREF="change.html#case">case</A>
	    (through NFS or Samba), fixing the file name <A HREF="change.html#case">case</A> could cause the
	    wrong one to be edited.
Solution:   Prefer a perfect match above a match while ignoring <A HREF="change.html#case">case</A> in
	    fname_case().  (Flemming Madsen)
Files:	    src/os_win32.c

Patch 5.6.009 (extra)
Problem:    <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Garbage in Windows Explorer help line when selecting
	    &quot;Edit with Vim&quot; popup menu entry.
Solution:   Only return the help line when called with the GCS_HELPTEXT flag.
	    (Tianmiao Hu)
Files:	    GvimExt/gvimext.cpp

Patch 5.6.010
Problem:    A file name which contains a TAB was not read correctly from the
	    <A HREF="starting.html#viminfo">viminfo</A> file and the &quot;<A HREF="windows.html#:ls">:ls</A>&quot; listing was not aligned properly.
Solution:   Parse the buffer <A HREF="eval.html#list">list</A> lines in the <A HREF="starting.html#viminfo">viminfo</A> file from the end
	    backwards.  Count a <A HREF="intro.html#Tab">Tab</A> for two characters to align the &quot;<A HREF="windows.html#:ls">:ls</A>&quot; <A HREF="eval.html#list">list</A>.
Files:	    src/buffer.c

Patch 5.6.011
Problem:    When <A HREF="options.html#'columns'">'columns'</A> is huge (using a tiny font) and <A HREF="options.html#'statusline'">'statusline'</A> is
	    used, Vim can crash.
Solution:   Limit maxlen to MAXPATHL in win_redr_custom(). (John Mullin)
Files:	    src/screen.c

Patch 5.6.012
Problem:    When using &quot;zsh&quot; for /bin/sh, toolcheck may hang until &quot;exit&quot; is
	    typed. (Kuratczyk)
Solution:   Add &quot;<A HREF="starting.html#-c">-c</A> exit&quot; when checking for the shell version.
Files:	    src/toolcheck

Patch 5.6.013
Problem:    Multibyte char in tooltip is broken.
Solution:   Consider <A HREF="mbyte.html#multibyte">multibyte</A> char in replace_termcodes(). (Taro Muraoka)
Files:      src/term.c

Patch 5.6.014
Problem:    When cursor is at the end of line and the character under cursor
	    is a <A HREF="mbyte.html#multibyte">multibyte</A> character, &quot;yl&quot; doesn't <A HREF="change.html#yank">yank</A> 1 multibyte-char.
	    (Takuhiro Nishioka)
Solution:   Recognize a multibyte-char at end-of-line correctly in oneright().
	    (Taro Muraoka)
	    Also: make &quot;<A HREF="various.html#+quickfix">+quickfix</A>&quot; in &quot;<A HREF="various.html#:version">:version</A>&quot; output appear alphabetically.
Files:	    src/edit.c

Patch 5.6.015
Problem:    New xterm delete key sends &lt;Esc&gt;[3~ by default.
Solution:   Added &lt;kDel&gt; and &lt;kIns&gt; to make the set of keypad keys complete.
Files:	    src/edit.c, src/ex_getln.c, src/keymap.h, src/misc1.c,
	    src/misc2.c, src/normal.c, src/os_unix.c, src/term.c

Patch 5.6.016
Problem:    When <A HREF="change.html#deleting">deleting</A> a search <A HREF="eval.html#string">string</A> from <A HREF="cmdline.html#history">history</A> from inside a <A HREF="map.html#mapping">mapping</A>,
	    another entry is deleted too. (Benji Fisher)
Solution:   Reset last_maptick when <A HREF="change.html#deleting">deleting</A> the last entry of the search
	    <A HREF="cmdline.html#history">history</A>.  Also: Increment maptick when starting a <A HREF="map.html#mapping">mapping</A> from
	    typed characters to avoid a just added search <A HREF="eval.html#string">string</A> being
	    overwritten or removed from <A HREF="cmdline.html#history">history</A>.
Files:	    src/ex_getln.c, src/getchar.c

Patch 5.6.017
Problem:    &quot;:s/e/\^M/&quot; should replace an &quot;<A HREF="motion.html#e">e</A>&quot; with a <A HREF="motion.html#CTRL-M">CTRL-M</A>, not split the
	    line. (Calder)
Solution:   <A HREF="insert.html#Replace">Replace</A> the <A HREF="intro.html#backslash">backslash</A> with a <A HREF="visual.html#CTRL-V">CTRL-V</A> internally. (Stephen <A HREF="change.html#P">P</A>. Wall)
Files:	    src/ex_cmds.c

Patch 5.6.018
Problem:    &quot;<A HREF="helphelp.html#:help">:help</A> [:digit:]&quot; takes a long time to jump to the wrong place.
Solution:   <A HREF="insert.html#Insert">Insert</A> a <A HREF="intro.html#backslash">backslash</A> to avoid the special meaning of '<A HREF="motion.html#[]">[]</A>'.
Files:	    src/ex_cmds.c

Patch 5.6.019
Problem:    &quot;snd.c&quot;, &quot;snd.java&quot;, etc. were recognized <A HREF="motion.html#as">as</A> &quot;mail&quot; <A HREF="filetype.html#filetype">filetype</A>.
Solution:   Make <A HREF="pattern.html#pattern">pattern</A> for mail <A HREF="filetype.html#filetype">filetype</A> more strict.
Files:	    runtime/filetype.vim

Patch 5.6.020 (extra)
Problem:    The DJGPP version eats processor time (Walter Briscoe).
Solution:   Call __dpmi_yield() in the busy-wait loop.
Files:	    src/os_msdos.c

Patch 5.6.021
Problem:    When <A HREF="options.html#'selection'">'selection'</A> is &quot;<A HREF="motion.html#exclusive">exclusive</A>&quot;, a double mouse click in <A HREF="insert.html#Insert">Insert</A>
	    mode doesn't select last char in line. (Lutz)
Solution:   Allow leaving the cursor on the NUL past the line in this <A HREF="change.html#case">case</A>.
Files:	    src/edit.c

Patch 5.6.022
Problem:    &quot;<A HREF="editing.html#:e">:e</A> \~&lt;Tab&gt;&quot; expands to &quot;<A HREF="editing.html#:e">:e</A> ~\$ceelen&quot;, which doesn't work.
Solution:   Re-insert the <A HREF="intro.html#backslash">backslash</A> before the '<A HREF="change.html#~">~</A>'.
Files:	    src/ex_getln.c

Patch 5.6.023 (extra)
Problem:    Various warnings for the Ming compiler.
Solution:   Changes to avoid the warnings. (Bill McCarthy)
Files:	    src/ex_cmds.c, src/gui_w32.c, src/os_w32exe.c, src/os_win32.c,
	    src/syntax.c, src/vim.rc

Patch 5.6.024 (extra)
Problem:    <A HREF="os_win32.html#Win32">Win32</A> console: Entering CTRL-_ requires the <A HREF="intro.html#shift">shift</A> key. (Kotchan)
Solution:   Specifically catch keycode 0xBD, like the <A HREF="gui.html#GUI">GUI</A>.
Files:	    src/os_win32.c

Patch 5.6.025
Problem:    <A HREF="gui_x11.html#GTK">GTK</A> <A HREF="gui.html#GUI">GUI</A>: Starting the <A HREF="gui.html#GUI">GUI</A> could be interrupted by a SIGWINCH.
	    (Nils Lohner)
Solution:   Repeat the read() call to get the gui_in_use value when
	    interrupted by a signal.
Files:	    src/gui.c

Patch 5.6.026 (extra)
Problem:    <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Toolbar bitmaps are searched for in
	    $VIMRUNTIME/bitmaps, while <A HREF="gui_x11.html#GTK">GTK</A> looks in $VIM/bitmaps. (Keith
	    Radebaugh)
Solution:   Use $VIM/bitmaps for both, because these are not part of the
	    <A HREF="intro.html#distribution">distribution</A> but defined by the user.
Files:	    src/gui_w32.c, runtime/doc/gui.txt

Patch 5.6.027
Problem:    <A HREF="if_tcl.html#TCL">TCL</A>: Crash when using a <A HREF="if_tcl.html#Tcl">Tcl</A> <A HREF="usr_41.html#script">script</A> (reported for <A HREF="os_win32.html#Win32">Win32</A>).
Solution:   Call Tcl_FindExecutable() in main(). (Brent Fulgham)
Files:	    src/main.c

Patch 5.6.028
Problem:    Xterm patch level 126 sends codes for mouse scroll wheel.
	    Fully works with xterm patch level 131.
Solution:   Recognize the codes for button 4 (0x60) and button 5 (0x61).
Files:	    src/term.c

Patch 5.6.029
Problem:    <A HREF="gui_x11.html#GTK">GTK</A> <A HREF="gui.html#GUI">GUI</A>: Shortcut keys cannot be used for a <A HREF="gui_w32.html#dialog">dialog</A>. (Johannes
	    Zellner)
Solution:   Add support for shortcut keys. (Marcin Dalecki)
Files:	    src/gui_gtk.c

Patch 5.6.030
Problem:    When closing a <A HREF="windows.html#window">window</A> and <A HREF="options.html#'ea'">'ea'</A> is set, Vim can crash. (Yasuhiro
	    Matsumoto)
Solution:   Set &quot;curbuf&quot; to a valid value in win_close().
Files:	    src/window.c

Patch 5.6.031
Problem:    Multi-byte: When a double-byte character ends in CSI, Vim waits
	    for another character to be typed.
Solution:   Recognize the CSI <A HREF="motion.html#as">as</A> the second byte of a character and don't wait
	    for another one. (Yasuhiro Matsumoto)
Files:	    src/getchar.c

Patch 5.6.032
Problem:    Functions with an argument that is a line number don't all accept
	    &quot;<A HREF="repeat.html#.">.</A>&quot;, &quot;<A HREF="motion.html#$">$</A>&quot;, etc. (Ralf Arens)
Solution:   Add get_art_lnum() and use <A HREF="motion.html#it">it</A> for <A HREF="eval.html#setline()">setline()</A>, <A HREF="eval.html#line2byte()">line2byte()</A> and
	    <A HREF="eval.html#synID()">synID()</A>.
Files:	    src/eval.c

Patch 5.6.033
Problem:    Multi-byte: &quot;<A HREF="motion.html#f">f</A> &quot; sometimes skips to the second space.  (Sung-Hyun
	    Nam)
Solution:   Change logic in searchc() to skip trailing byte of a double-byte
	    character.
	    Also: Ask for second byte when searching for double-byte
	    character. (Park Chong-Dae)
Files:	    src/search.c

Patch 5.6.034 (extra)
Problem:    Compiling with Borland C++ 5.5 fails on <A HREF="eval.html#tolower()">tolower()</A> and <A HREF="eval.html#toupper()">toupper()</A>.
Solution:   Use TO_LOWER() and TO_UPPER() instead.  Also adjust the Makefile
	    to make using bcc 5.5 easier.
Files:	    src/edit.c, src/ex_docmd.c, src/misc1.c, src/Makefile.bor

Patch 5.6.035
Problem:    Listing the&quot;+comments&quot; feature in the &quot;<A HREF="various.html#:version">:version</A>&quot; output depended
	    on the wrong ID. (Stephen <A HREF="change.html#P">P</A>. Wall)
Solution:   Change &quot;CRYPTV&quot; to &quot;COMMENTS&quot;.
Files:	    src/version.c

Patch 5.6.036
Problem:    <A HREF="gui_x11.html#GTK">GTK</A> <A HREF="gui.html#GUI">GUI</A>: Copy/paste text doesn't work between <A HREF="starting.html#gvim">gvim</A> and <A HREF="syntax.html#Eterm">Eterm</A>.
Solution:   Support TEXT and COMPOUND_TEXT selection targets. (ChiDeok Hwang)
Files:	    src/gui_gtk_x11.c

Patch 5.6.037
Problem:    Multi-byte: Can't use &quot;<A HREF="motion.html#f">f</A>&quot; command with <A HREF="mbyte.html#multi-byte">multi-byte</A> character in <A HREF="gui.html#GUI">GUI</A>.
Solution:   Enable <A HREF="mbyte.html#XIM">XIM</A> in <A HREF="intro.html#Normal">Normal</A> mode for the <A HREF="gui.html#GUI">GUI</A>. (Sung-Hyun Nam)
Files:	    src/gui_gtk_x11.c, src/multbyte.c

Patch 5.6.038
Problem:    Multi-clicks in <A HREF="gui.html#GUI">GUI</A> are interpreted <A HREF="motion.html#as">as</A> a mouse wheel click.  When
	    <A HREF="options.html#'ttymouse'">'ttymouse'</A> is &quot;xterm&quot; a mouse click is interpreted <A HREF="motion.html#as">as</A> a mouse
	    wheel click.
Solution:   Don't recognize the mouse wheel in check_termcode() in the <A HREF="gui.html#GUI">GUI</A>.
	    Use 0x43 for a mouse drag in do_xterm_trace(), not 0x63.
Files:	    src/term.c, src/os_unix.c

Patch 5.6.039
Problem:    <A HREF="gui_x11.html#Motif">Motif</A> <A HREF="gui.html#GUI">GUI</A> under <A HREF="gui_x11.html#KDE">KDE</A>: When trying to logout, Vim hangs up the
	    system. (Hermann Rochholz)
Solution:   When handling the WM_SAVE_YOURSELF event, set the WM_COMMAND
	    property of the <A HREF="windows.html#window">window</A> to let the session manager know we finished
	    saving ourselves.
Files:	    src/gui_x11.c

Patch 5.6.040
Problem:    When using &quot;<A HREF="change.html#:s">:s</A>&quot; command, matching the <A HREF="pattern.html#regexp">regexp</A> is done <A HREF="if_cscop.html#twice">twice</A>.
Solution:   After <A HREF="uganda.html#copying">copying</A> the matched line, adjust the pointers instead of
	    finding the match again. (Loic Grenie)  Added vim_regnewptr().
Files:	    src/ex_cmds.c, src/regexp.c, src/proto/regexp.pro

Patch 5.6.041
Problem:    <A HREF="gui.html#GUI">GUI</A>: <A HREF="gui_x11.html#Athena">Athena</A>, <A HREF="gui_x11.html#Motif">Motif</A> and <A HREF="gui_x11.html#GTK">GTK</A> don't give more than 10 <A HREF="gui_w32.html#dialog">dialog</A> buttons.
Solution:   Remove the limit on the number of buttons.
	    Also support the '<A HREF="visual.html#v">v</A>' flag in <A HREF="options.html#'guioptions'">'guioptions'</A>.
	    For <A HREF="gui_x11.html#GTK">GTK</A>: Center the buttons.
Files:	    src/gui_athena.c, src/gui_gtk.c, src/gui_motif.c

Patch 5.6.042
Problem:    When doing &quot;vim <A HREF="starting.html#-u">-u</A> vimrc&quot; and <A HREF="starting.html#vimrc">vimrc</A> contains &quot;<A HREF="editing.html#:q">:q</A>&quot;, the cursor in
	    the <A HREF="terminal.html#terminal">terminal</A> can remain off.
Solution:   Call cursor_on() in mch_windexit().
Files:	    src/os_unix.c

Patch 5.6.043 (extra)
Problem:    <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When selecting guifont with the <A HREF="gui_w32.html#dialog">dialog</A>, <A HREF="options.html#'guifont'">'guifont'</A>
	    doesn't include the <A HREF="syntax.html#bold">bold</A> or <A HREF="syntax.html#italic">italic</A> attributes.
Solution:   Append &quot;<A HREF="insert.html#:i">:i</A>&quot; and/or &quot;<A HREF="windows.html#:b">:b</A>&quot; to <A HREF="options.html#'guifont'">'guifont'</A> in gui_mch_init_font().
Files:	    src/gui_w32.c

Patch 5.6.044 (extra)
Problem:    <A HREF="os_msdos.html#MS-DOS">MS-DOS</A> and Windows: The line that dosinst.exe appends to
	    autoexec.bat to set PATH is wrong when Vim is in a directory with
	    an embedded space.
Solution:   Use double <A HREF="quotes.html#quotes">quotes</A> for the value when there is an embedded space.
Files:	    src/dosinst.c

Patch 5.6.045 (extra) (fixed version)
Problem:    <A HREF="os_vms.html#VMS">VMS</A>: Various small problems.
Solution:   Many small changes. (Zoltan Arpadffy)
	    File name modifier &quot;<A HREF="helphelp.html#:h">:h</A>&quot; keeps the path separator.
	    File name modifier &quot;<A HREF="editing.html#:e">:e</A>&quot; also removes version.
	    Compile with MAX_FEAT by default.
	    When checking for autocommands ignore version in file name.
	    Be aware of file names being <A HREF="change.html#case">case</A> insensitive.
	    Added vt320 builtin <A HREF="term.html#termcap">termcap</A>.
	    Be prepared for an empty default_vim_dir.
Files:	    runtime/gvimrc_example.vim, runtime/vimrc_example.vim,
	    runtime/doc/os_vms.txt, src/eval.c, src/feature.h, src/fileio.c,
	    src/gui_motif.c, src/gui_vms_conf.h, src/main.c, src/memline.c,
	    src/misc1.c, src/option.c, src/os_vms_conf.h, src/os_vms.c,
	    src/os_vms.h, src/os_vms.mms, src/tag.c, src/term.c, src/version.c

Patch 5.6.046
Problem:    Systems with <A HREF="intro.html#backslash">backslash</A> in file name: With <A HREF="options.html#'shellslash'">'shellslash'</A> set, &quot;vim
	    */*.c&quot; only uses a slash for the first file name.  (Har'El)
Solution:   Fix slashes in file name arguments after reading the <A HREF="starting.html#vimrc">vimrc</A> file.
Files:	    src/option.c

Patch 5.6.047
Problem:    $CPPFLAGS is not passed on to <A HREF="tagsrch.html#ctags">ctags</A> configure.
Solution:   Add <A HREF="motion.html#it">it</A>. (Walter Briscoe)
Files:	    src/config.mk.in, src/Makefile

Patch 5.6.048
Problem:    <A HREF="undo.html#CTRL-R">CTRL-R</A> in <A HREF="cmdline.html#Command-line">Command-line</A> mode is documented to insert text <A HREF="motion.html#as">as</A> typed,
	    but inserts text literally.
Solution:   Make <A HREF="undo.html#CTRL-R">CTRL-R</A> insert text <A HREF="motion.html#as">as</A> typed, use <A HREF="undo.html#CTRL-R">CTRL-R</A> <A HREF="undo.html#CTRL-R">CTRL-R</A> to insert
	    literally.  This is consistent with <A HREF="insert.html#Insert">Insert</A> mode.  But characters
	    that end <A HREF="cmdline.html#Command-line">Command-line</A> mode are inserted literally.
Files:	    runtime/doc/index.txt, runtime/doc/cmdline.txt, src/ex_getln.c,
	    src/ops.c, src/proto/ops.pro

Patch 5.6.049
Problem:    Documentation for [!] after &quot;<A HREF="tagsrch.html#:ijump">:ijump</A>&quot; is wrong way around. (Benji
	    Fisher)
Solution:   Fix the documentation.  Also improve the code to check for a match
	    after a /* */ comment.
Files:	    runtime/doc/tagsearch.txt, src/search.c

Patch 5.6.050
Problem:    Replacing is wrong when <A HREF="change.html#replacing">replacing</A> a single-byte char with
	    double-byte char or the other way around.
Solution:   Shift the text after the character when <A HREF="motion.html#it">it</A> is replaced.
	    (Yasuhiro Matsumoto)
Files:	    src/normal.c, src/misc1.c

Patch 5.6.051
Problem:    &quot;:tprev&quot; and &quot;<A HREF="tagsrch.html#:tnext">:tnext</A>&quot; don't give an error message when trying to
	    go before the first or beyond the last <A HREF="tagsrch.html#tag">tag</A>. (Robert Webb)
Solution:   Added error <A HREF="message.html#messages">messages</A>.  Also: Delay a second when a <A HREF="insert.html#file-read">file-read</A>
	    message is going to overwrite an error message, otherwise <A HREF="motion.html#it">it</A> won't
	    be seen.
Files:	    src/fileio.c, src/tag.c

Patch 5.6.052
Problem:    Multi-byte: When an <A HREF="intro.html#Ex">Ex</A> command has a '&#124;' or &#39;&#34;'' <A HREF="motion.html#as">as</A> a second byte,
	    <A HREF="motion.html#it">it</A> terminates the command.
Solution:   Skip second byte of <A HREF="mbyte.html#multi-byte">multi-byte</A> char when checking for '&#124;' and &#39;&#34;''.
	    (Asai Kenichi)
Files:	    src/ex_docmd.c

Patch 5.6.053
Problem:    <A HREF="tagsrch.html#CTRL-]">CTRL-]</A> doesn't work on a <A HREF="tagsrch.html#tag">tag</A> that contains a '&#124;'. (Cesar Crusius)
Solution:   Escape '&#124;', &#39;&#34;'' and '\' in <A HREF="tagsrch.html#tag">tag</A> names when using <A HREF="tagsrch.html#CTRL-]">CTRL-]</A> and also
	    for command-line completion.
Files:	    src/ex_getln.c, src/normal.c

Patch 5.6.054
Problem:    When using &quot;<A HREF="editing.html#:e">:e</A>&quot; and &quot;<A HREF="editing.html#:e">:e</A> #&quot; the cursor is put in the first column
	    when <A HREF="options.html#'startofline'">'startofline'</A> is set. (Cordell)
Solution:   Use the last known column when <A HREF="options.html#'startofline'">'startofline'</A> is set.
	    Also, use ECMD_LAST more often to simplify the code.
Files:	    src/buffer.c, src/ex_cmds.c, src/ex_docmd.c, src/proto/buffer.pro

Patch 5.6.055
Problem:    When <A HREF="options.html#'statusline'">'statusline'</A> only contains a text without &quot;<A HREF="motion.html#&#37;">&#37;</A>&quot; and doesn't fit
	    in the <A HREF="windows.html#window">window</A>, Vim crashes. (Ron Aaron)
Solution:   Don't use the pointer for the first item if there is no item.
Files:	    src/screen.c

Patch 5.6.056 (extra)
Problem:    <A HREF="os_msdos.html#MS-DOS">MS-DOS</A>: F11 and F12 don't work when <A HREF="options.html#'bioskey'">'bioskey'</A> is set.
Solution:   Use enhanced keyboard <A HREF="eval.html#functions">functions</A>. (Vince Negri)
	    Detect presence of enhanced keyboard and set bioskey_read and
	    bioskey_ready.
Files:	    src/os_msdos.c

Patch 5.6.057 (extra)
Problem:    <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Multi-byte characters are wrong in dialogs and tear-off
	    <A HREF="gui.html#menus">menus</A>.
Solution:   Use system font instead of a fixed font. (Matsumoto, Muraoka)
Files:	    src/gui_w32.c

Patch 5.6.058
Problem:    When the '<A HREF="insert.html#a">a</A>' flag is not in <A HREF="options.html#'guioptions'">'guioptions'</A>, non-Windows systems
	    copy Visually selected text to the clipboard/selection on a <A HREF="change.html#yank">yank</A>
	    or delete command anyway.  On Windows <A HREF="motion.html#it">it</A> isn't done even when the
	    '<A HREF="insert.html#a">a</A>' flag is included.
Solution:   Respect the '<A HREF="insert.html#a">a</A>' flag in <A HREF="options.html#'guioptions'">'guioptions'</A> on all systems.
Files:	    src/normal.c

Patch 5.6.059 (extra)
Problem:    When moving the cursor over <A HREF="syntax.html#italic">italic</A> text and the characters spill
	    over to the cell on the right, that spill-over is deleted.
	    Noticed in the <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>, can happen on other systems too.
Solution:   Redraw <A HREF="syntax.html#italic">italic</A> text starting from a blank, like this is already
	    done for <A HREF="syntax.html#bold">bold</A> text. (Vince Negri)
Files:	    src/gui.c, src/gui.h, src/gui_w32.c

Patch 5.6.060
Problem:    Some <A HREF="syntax.html#bold">bold</A> characters spill over to the cell on the left, that
	    spill-over can remain sometimes.
Solution:   Redraw a character when the next character was <A HREF="syntax.html#bold">bold</A> and needs
	    redrawing. (Robert Webb)
Files:	    src/screen.c

Patch 5.6.061
Problem:    When xterm sends 8-bit controls, recognizing the version response
	    doesn't work.
	    When using CSI instead of &lt;Esc&gt;[ for the <A HREF="term.html#termcap">termcap</A> color codes,
	    using 16 colors doesn't work. (Neil Bird)
Solution:   Also accept CSI in place of &lt;Esc&gt;[ for the version <A HREF="eval.html#string">string</A>.
	    Also check for CSI when handling colors 8-15 in term_color().
	    Use CSI for builtin xterm <A HREF="term.html#termcap">termcap</A> entries when <A HREF="options.html#'term'">'term'</A> contains
	    &quot;8bit&quot;.
Files:	    runtime/doc/term.txt, src/ex_cmds.c, src/option.c, src/term.c,
	    src/os_unix.c, src/proto/option.pro, src/proto/term.pro

Patch 5.6.062
Problem:    The documentation says that setting <A HREF="options.html#'smartindent'">'smartindent'</A> doesn't have an
	    effect when <A HREF="options.html#'cindent'">'cindent'</A> is set, but <A HREF="motion.html#it">it</A> does make a difference for
	    lines starting with &quot;<A HREF="pattern.html##">#</A>&quot;. (Neil Bird)
Solution:   Really ignore <A HREF="options.html#'smartindent'">'smartindent'</A> when <A HREF="options.html#'cindent'">'cindent'</A> is set.
Files:	    src/misc1.c, src/ops.c

Patch 5.6.063
Problem:    Using &quot;<A HREF="insert.html#I">I</A>&quot; in Visual-block mode doesn't accept a <A HREF="intro.html#count">count</A>. (Johannes
	    Zellner)
Solution:   Pass the <A HREF="intro.html#count">count</A> on to do_insert() and edit(). (Allan Kelly)
Files:	    src/normal.c, src/ops.c, src/proto/ops.pro

Patch 5.6.064
Problem:    <A HREF="os_msdos.html#MS-DOS">MS-DOS</A> and <A HREF="os_win32.html#Win32">Win32</A> console: Mouse doesn't work correctly after
	    including patch 5.6.28. (Vince Negri)
Solution:   Don't check for mouse scroll wheel when the mouse code contains
	    the number of clicks.
Files:	    src/term.c

Patch 5.6.065
Problem:    After moving the cursor around in <A HREF="insert.html#Insert">Insert</A> mode, typing a space can
	    still trigger an abbreviation. (Benji Fisher)
Solution:   Don't check for an abbreviation after moving around in <A HREF="insert.html#Insert">Insert</A> mode.
Files:	    src/edit.c

Patch 5.6.066
Problem:    Still a few <A HREF="syntax.html#bold">bold</A> character spill-over remains after patch 60.
Solution:   Clear character just in front of blanking out rest of the line.
	    (Robert Webb)
Files:	    src/screen.c

Patch 5.6.067
Problem:    When a file name contains a NL, the <A HREF="starting.html#viminfo">viminfo</A> file is corrupted.
Solution:   Use viminfo_writestring() to convert the NL to <A HREF="visual.html#CTRL-V">CTRL-V</A> <A HREF="pattern.html#n">n</A>.
	    Also fix the Buffers menu and listing a menu name with a newline.
Files:	    runtime/menu.vim, src/buffer.c, src/mark.c, src/menu.c

Patch 5.6.068
Problem:    Compiling the <A HREF="if_perl.html#Perl">Perl</A> interface doesn't work with <A HREF="if_perl.html#Perl">Perl</A> 5.6.0.
	    (Bernhard Rosenkraenzer)
Solution:   Also check xs_apiversion for the version number when prepending
	    defines for PL_*.
Files:	    src/Makefile

Patch 5.6.069
Problem:    &quot;go&quot; doesn't always end up at the right character when
	    <A HREF="options.html#'fileformat'">'fileformat'</A> is &quot;<A HREF="os_dos.html#dos">dos</A>&quot;. (Bruce DeVisser)
Solution:   Correct computations in ml_find_line_or_offset().
Files:	    src/memline.

Patch 5.6.070 (depends on 5.6.068)
Problem:    Compiling the <A HREF="if_perl.html#Perl">Perl</A> interface doesn't work with <A HREF="if_perl.html#Perl">Perl</A> 5.6.0.
	    (Bernhard Rosenkraenzer)
Solution:   Simpler check instead of the one from patch 68.
Files:	    src/Makefile

Patch 5.6.071
Problem:    &quot;<A HREF="insert.html#A">A</A>&quot; in <A HREF="visual.html#Visual">Visual</A> block mode on a <A HREF="intro.html#Tab">Tab</A> positions the cursor one char to
	    the right. (Michael Haumann)
Solution:   Correct the column computation in op_insert().
Files:	    src/ops.c

Patch 5.6.072
Problem:    When starting Vim with &quot;vim +startinsert&quot;, <A HREF="motion.html#it">it</A> enters <A HREF="insert.html#Insert">Insert</A> mode
	    only after typing the first command. (Andrew Pimlott)
Solution:   <A HREF="insert.html#Insert">Insert</A> a dummy command in the stuff buffer.
Files:	    src/main.c

Patch 5.6.073 (extra) (depends on 5.6.034)
Problem:    <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: When compiled with Bcc 5.5 <A HREF="gui.html#menus">menus</A> don't work.
	    In dosinst.c <A HREF="eval.html#toupper()">toupper()</A> and <A HREF="eval.html#tolower()">tolower()</A> give an &quot;internal compiler
	    error&quot; for Bcc 5.5.
Solution:   Define WINVER to 4 to avoid compiling for Windows 2000. (Dan
	    Sharp)  Also cleaned up compilation arguments.
	    Use our own implementation of <A HREF="eval.html#toupper()">toupper()</A> in dosinst.c.  Use
	    mytoupper() instead of <A HREF="eval.html#tolower()">tolower()</A>.
Files:	    src/Makefile.bor, src/dosinst.c

Patch 5.6.074 (extra)
Problem:    Entering CSI directly doesn't always work, because it's recognized
	    <A HREF="motion.html#as">as</A> the start of a special key.  Mostly a problem with <A HREF="mbyte.html#multi-byte">multi-byte</A>
	    in the <A HREF="gui.html#GUI">GUI</A>.
Solution:   Use K_CSI for a typed CSI character.  Use <A HREF="intro.html#&lt;CSI&gt;">&lt;CSI&gt;</A> for a normal CSI,
	    <A HREF="intro.html#&lt;xCSI&gt;">&lt;xCSI&gt;</A> for a CSI typed in the <A HREF="gui.html#GUI">GUI</A>.
Files:	    runtime/doc/intro.txt, src/getchar.c, src/gui_amiga.c,
	    src/gui_gtk_x11.c, src/gui_mac.c, src/gui_riscos.c, src/gui_w32.c,
	    src/keymap.h, src/misc2.c

Patch 5.6.075
Problem:    When using &quot;<A HREF="insert.html#I">I</A>&quot; or &quot;<A HREF="insert.html#A">A</A>&quot; in <A HREF="visual.html#Visual">Visual</A> block mode while <A HREF="options.html#'sts'">'sts'</A> is set may
	    change spaces to a <A HREF="intro.html#Tab">Tab</A> the inserted text is not correct. (Mike
	    Steed)  And some other problems when using &quot;<A HREF="insert.html#A">A</A>&quot; to append after the
	    end of the line.
Solution:   Check for change in spaces/tabs after <A HREF="insert.html#inserting">inserting</A> the text.  Append
	    spaces to fill the gap between the end-of-line and the right edge
	    of the block.
Files:	    src/ops.c

Patch 5.6.076
Problem:    <A HREF="gui_x11.html#GTK">GTK</A> <A HREF="gui.html#GUI">GUI</A>: Mapping &lt;M-Space&gt; doesn't work.
Solution:   Don't use the &quot;Alt&quot; modifier <A HREF="if_cscop.html#twice">twice</A> in key_press_event().
Files:	    src/gui_gtk_x11.c

Patch 5.6.077
Problem:    <A HREF="gui.html#GUI">GUI</A>: When interrupting an external program with <A HREF="pattern.html#CTRL-C">CTRL-C</A>, <A HREF="starting.html#gvim">gvim</A> might
	    crash. (Benjamin Korvemaker)
Solution:   Avoid using a NULL pointer in ui_inchar_undo().
Files:	    src/ui.c

Patch 5.6.078
Problem:    Locale doesn't always work on FreeBSD. (David O'Brien)
Solution:   Link with the &quot;xpg4&quot; library when available.
Files:	    src/configure.in, src/configure

Patch 5.6.079
Problem:    Vim could crash when several <A HREF="if_tcl.html#Tcl">Tcl</A> interpreters are created and
	    destroyed.
Solution:   handle the &quot;exit&quot; command and nested &quot;<A HREF="if_tcl.html#:tcl">:tcl</A>&quot; commands better. (Ingo
	    Wilken)
Files:	    runtime/doc/if_tcl.txt, src/if_tcl.c

Patch 5.6.080
Problem:    When jumping to a <A HREF="tagsrch.html#tag">tag</A>, generating the <A HREF="tagsrch.html#tags">tags</A> file and jumping to the
	    same <A HREF="tagsrch.html#tag">tag</A> again uses the old search <A HREF="pattern.html#pattern">pattern</A>. (Sung-Hyun Nam)
Solution:   Flush cached <A HREF="tagsrch.html#tag">tag</A> matches when executing an external command.
Files:	    src/misc2.c, src/proto/tag.pro, src/tag.c

Patch 5.6.081
Problem:    &quot;<A HREF="syntax.html#:syn">:syn</A> include&quot; uses a level for the included file, this confuses
	    contained items included at the same level.
Solution:   Use a unique <A HREF="tagsrch.html#tag">tag</A> for each included file.  Changed sp_syn_inc_lvl
	    to sp_syn_inc_tag. (Scott Bigham)
Files:	    src/syntax.c, src/structs.h

Patch 5.6.082
Problem:    When using <A HREF="if_cscop.html#cscope">cscope</A>, Vim can crash.
Solution:   Initialize tag_fname in find_tags(). (Anton Blanchard)
Files:	    src/tag.c

Patch 5.6.083 (extra)
Problem:    <A HREF="os_win32.html#Win32">Win32</A>: The visual beep can't be seen. (Eric Roesinger)
Solution:   Flush the output before waiting with GdiFlush(). (Maurice <A HREF="change.html#S">S</A>. Barnum)
	    Also: Allow specifying the delay in <A HREF="term.html#t_vb">t_vb</A> for the <A HREF="gui.html#GUI">GUI</A>.
Files:	    src/gui.c, src/gui_amiga.c, src/gui_gtk_x11.c, src/gui_mac.c,
	    src/gui_riscos.c, src/gui_w32.c, src/gui_x11.c, src/gui_beos.cc,
	    src/proto/gui_amiga.pro, src/proto/gui_gtk_x11.pro,
	    src/proto/gui_mac.pro, src/proto/gui_riscos.pro,
	    src/proto/gui_w32.pro, src/proto/gui_x11.pro,
	    src/proto/gui_beos.pro

Patch 5.6.084 (depends on 5.6.074)
Problem:    <A HREF="gui.html#GUI">GUI</A>: Entering CSI doesn't always work for <A HREF="gui_x11.html#Athena">Athena</A> and <A HREF="gui_x11.html#Motif">Motif</A>.
Solution:   Handle typed CSI <A HREF="motion.html#as">as</A> <A HREF="intro.html#&lt;xCSI&gt;">&lt;xCSI&gt;</A> (forgot this bit in 5.6.074).
Files:	    src/gui_x11.c

Patch 5.6.085
Problem:    Multi-byte: Using &quot;<A HREF="change.html#r">r</A>&quot; to replace a double-byte char with a
	    single-byte char moved the cursor one character. (Matsumoto)
	    Also, using a <A HREF="intro.html#count">count</A> when <A HREF="change.html#replacing">replacing</A> a single-byte char with a
	    double-byte char didn't work.
Solution:   Don't use del_char() to delete the second byte.
	    Get &quot;ptr&quot; again after calling ins_char().
Files:	    src/normal.c

Patch 5.6.086 (extra)
Problem:    <A HREF="os_win32.html#Win32">Win32</A>: When using <A HREF="eval.html#libcall()">libcall()</A> and the returned value is not a valid
	    pointer, Vim crashes.
Solution:   Use IsBadStringPtr() to check if the pointer is valid.
Files:	    src/os_win32.c

Patch 5.6.087
Problem:    Multi-byte: Commands and <A HREF="message.html#messages">messages</A> with <A HREF="mbyte.html#multi-byte">multi-byte</A> characters are
	    displayed wrong.
Solution:   Detect double-byte characters. (Yasuhiro Matsumoto)
Files:	    src/ex_getln.c, src/message.c, src/misc2.c, src/screen.c

Patch 5.6.088
Problem:    Multi-byte with <A HREF="gui_x11.html#Motif">Motif</A> or <A HREF="gui_x11.html#Athena">Athena</A>: The message &quot;<A HREF="mbyte.html#XIM">XIM</A> requires
	    fontset&quot; is annoying when Vim was compiled with <A HREF="mbyte.html#XIM">XIM</A> support but <A HREF="motion.html#it">it</A>
	    is not being used.
Solution:   Remove that message.
Files:	    src/multbyte.c

Patch 5.6.089
Problem:    On non-Unix systems it's possible to overwrite a read-only file
	    without using &quot;<A HREF="change.html#!">!</A>&quot;.
Solution:   Check if the file permissions allow overwriting before moving the
	    file to become the <A HREF="editing.html#backup">backup</A> file.
Files:	    src/fileio.c

Patch 5.6.090
Problem:    When editing a file in &quot;/home/dir/home/dir&quot; this was replaced with
	    &quot;~~&quot;.  (Andreas Jellinghaus)
Solution:   <A HREF="insert.html#Replace">Replace</A> the home directory only once in home_replace().
Files:	    src/misc1.c

Patch 5.6.091
Problem:    When editing many &quot;no file&quot; files, can't create swap file, because
	    .sw[a-p] have all been used.  (Neil Bird)
Solution:   Also use &quot;.sv[a-z]&quot;, &quot;.su[a-z]&quot;, etc.
Files:	    src/memline.c

Patch 5.6.092
Problem:    FreeBSD: When setting $TERM to a non-valid <A HREF="terminal.html#terminal">terminal</A> name, Vim
	    hangs in tputs().
Solution:   After tgetent() returns an error code, call <A HREF="motion.html#it">it</A> again with the
	    <A HREF="terminal.html#terminal">terminal</A> name &quot;dumb&quot;.  This apparently creates an environment in
	    which tputs() doesn't fail.
Files:	    src/term.c

Patch 5.6.093 (extra)
Problem:    <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: &quot;ls &#124; <A HREF="starting.html#gvim">gvim</A> -&quot; will show a message box about reading
	    stdin when Vim exits. (Donohue)
Solution:   Don't write a message about the file read from stdin until the <A HREF="gui.html#GUI">GUI</A>
	    has started.
Files:	    src/fileio.c

Patch 5.6.094
Problem:    Problem with <A HREF="mbyte.html#multi-byte">multi-byte</A> <A HREF="eval.html#string">string</A> for &quot;<A HREF="eval.html#:echo">:echo</A> var&quot;.
Solution:   Check for length in msg_outtrans_len_attr(). (Sung-Hyun Nam)
	    Also make do_echo() aware of <A HREF="mbyte.html#multi-byte">multi-byte</A> characters.
Files:	    src/eval.c, src/message.c

Patch 5.6.095
Problem:    With an Emacs TAGS file that include another a relative path
	    doesn't always work.
Solution:   Use expand_tag_fname() on the name of the included file.
	    (Utz-Uwe Haus)
Files:	    src/tag.c

Patch 5.6.096
Problem:    <A HREF="os_unix.html#Unix">Unix</A>: When editing many files, <A HREF="starting.html#startup">startup</A> can be slow. (Paul
	    Ackersviller)
Solution:   Halve the number of stat() calls used to add a file to the buffer
	    <A HREF="eval.html#list">list</A>.
Files:	    src/buffer.c

Patch 5.7a.001
Problem:    <A HREF="gui_x11.html#GTK">GTK</A> doesn't respond on drag&amp;drop from ROX-Filer.
Solution:   Add &quot;text/uri-list&quot; target. (Thomas Leonard)
	    Also: fix problem with checking for trash arguments.
Files:	    src/gui_gtk_x11.c

Patch 5.7a.002
Problem:    Multi-byte: <A HREF="options.html#'showmatch'">'showmatch'</A> is performed when second byte of an
	    inserted double-byte char is a paren or brace.
Solution:   Check IsTrailByte() before calling showmatch(). (Taro Muraoka)
Files:	    src/misc1.c

Patch 5.7a.003
Problem:    Multi-byte: After using <A HREF="motion.html#CTRL-O">CTRL-O</A> in <A HREF="insert.html#Insert">Insert</A> mode with the cursor at
	    the end of the line on a <A HREF="mbyte.html#multi-byte">multi-byte</A> character the cursor moves to
	    the left.
Solution:   Check for <A HREF="mbyte.html#multi-byte">multi-byte</A> character at end-of-line. (Taro Muraoka)
	    Also: fix cls() to detect a double-byte character. (Chong-Dae Park)
Files:	    src/edit.c, src/search.c

Patch 5.7a.004
Problem:    When reporting the search <A HREF="pattern.html#pattern">pattern</A> offset, the <A HREF="eval.html#string">string</A> could be
	    unterminated, which may cause a crash.
Solution:   Terminate the <A HREF="eval.html#string">string</A> for the search offset. (Stephen <A HREF="change.html#P">P</A>. Wall)
Files:	    src/search.c

Patch 5.7a.005
Problem:    When &quot;:s//~/&quot; doesn't find a match <A HREF="motion.html#it">it</A> reports &quot;[NULL]&quot; for the
	    <A HREF="pattern.html#pattern">pattern</A>.
Solution:   Use get_search_pat() to obtain the actually used <A HREF="pattern.html#pattern">pattern</A>.
Files:	    src/ex_cmds.c, src/proto/search.pro, src/search.c

Patch 5.7a.006 (extra)
Problem:    <A HREF="os_vms.html#VMS">VMS</A>: Various problems, also with the VAXC compiler.
Solution:   In many places use the <A HREF="os_unix.html#Unix">Unix</A> code for <A HREF="os_vms.html#VMS">VMS</A> too.
	    Added time, date and compiler version to version message.
	    (Zoltan Arpadffy)
Files:	    src/ex_cmds.c, src/ex_docmd.c, src/globals.h, src/gui_vms_conf.h,
	    src/main.c, src/message.c, src/misc1.c, src/os_vms.c,
	    src/os_vms.h, src/os_vms.mms, src/os_vms_conf.h,
	    src/proto/os_vms.pro, src/proto/version.pro, src/term.c,
	    src/version.c, src/xxd/os_vms.mms, src/xxd/xxd.c

Patch 5.7a.007
Problem:    <A HREF="gui_x11.html#Motif">Motif</A> and <A HREF="gui_x11.html#Athena">Athena</A> <A HREF="gui.html#GUI">GUI</A>: CTRL-@ is interpreted <A HREF="motion.html#as">as</A> <A HREF="pattern.html#CTRL-C">CTRL-C</A>.
Solution:   Only use &quot;intr_char&quot; when <A HREF="motion.html#it">it</A> has been set.
Files:	    src/gui_x11.c

Patch 5.7a.008
Problem:    <A HREF="gui_x11.html#GTK">GTK</A> <A HREF="gui.html#GUI">GUI</A>: When using <A HREF="various.html#CTRL-L">CTRL-L</A> the screen is redrawn <A HREF="if_cscop.html#twice">twice</A>, causing
	    trouble for <A HREF="syntax.html#bold">bold</A> characters.  Also happens when moving with the
	    scrollbar.  Best seen when <A HREF="options.html#'writedelay'">'writedelay'</A> is non-zero.
	    When starting the <A HREF="gui.html#GUI">GUI</A> with &quot;<A HREF="gui_x11.html#:gui">:gui</A>&quot; the screen is redrawn once with
	    the wrong colors.
Solution:   Only set the geometry hints when the <A HREF="windows.html#window">window</A> size really changed.
	    This avoids setting <A HREF="motion.html#it">it</A> each time the scrollbar is forcefully
	    redrawn.
	    Don't redraw in expose_event() when gui.starting is still set.
Files:	    src/gui_gtk_x11.c


==============================================================================

VERSION 5.8						*<A NAME="version-5.8"></A><B>version-5.8</B>*

Version 5.8 is a bug-fix version of 5.7.



Changed							*<A NAME="changed-5.8"></A><B>changed-5.8</B>*

Ctags is no longer included with Vim.  It has grown into a project of its own.
 You can find it here:	<A HREF="http://ctags.sf.net">http://ctags.sf.net</A>. It is highly recommended as a Vim
companion when you are <A HREF="editing.html#writing">writing</A> programs.



Added							*<A NAME="added-5.8"></A><B>added-5.8</B>*

New <A HREF="syntax.html#syntax">syntax</A> files:
acedb		AceDB (Stewart Morris)
aflex		Aflex (Mathieu Clabaut)
antlr		Antlr (Mathieu Clabaut)
<A HREF="syntax.html#asm68k">asm68k</A>		68000 Assembly (Steve Wall)
automake	Automake (John Williams)
ayacc		Ayacc (Mathieu Clabaut)
<A HREF="motion.html#b">b</A>		<A HREF="motion.html#B">B</A> (Mathieu Clabaut)
bindzone	BIND zone (glory hump)
blank		Blank (Rafal Sulejman)
cfg		Configure files (Igor Prischepoff)
changelog	ChangeLog (Gediminas Paulauskas)
cl		Clever (Phil Uren)
<A HREF="options.html#crontab">crontab</A>		Crontab (John Hoelzel)
csc		Essbase <A HREF="usr_41.html#script">script</A> (Raul Segura Acevedo)
cynlib		Cynlib(C++) (Phil Derrick)
cynpp		Cyn++ (Phil Derrick)
debchangelog	Debian Changelog (Wichert Akkerman)
debcontrol	Debian Control (Wichert Akkerman)
dns		DNS zone file (Jehsom)
dtml		Zope's DTML (Jean Jordaan)
dylan		Dylan, Dylan-intr and Dylan-lid (Brent Fulgham)
ecd		Embedix Component Description (John Beppu)
fgl		Informix 4GL (Rafal Sulejman)
foxpro		FoxPro (Powing Tse)
gsp		GNU Server Pages (Nathaniel Harward)
gtkrc		<A HREF="gui_x11.html#GTK">GTK</A> rc (David Necas)
hercules	Hercules (Avant! Corporation) (Dana Edwards)
htmlos		HTML/OS by Aestiva (Jason Rust)
inittab		SysV process <A HREF="intro.html#control">control</A> (David Necas)
iss		Inno Setup (Dominique Stephan)
jam		Jam (Ralf Lemke)
jess		Jess (Paul Baleme)
lprolog		LambdaProlog (Markus Mottl)
ia64		Intel Itanium (parth malwankar)
kix		Kixtart (Nigel Gibbs)
mgp		MaGic Point (Gerfried Fuchs)
mason		Mason (HTML with <A HREF="if_perl.html#Perl">Perl</A>) (Andrew Smith)
mma		Mathematica (Wolfgang Waltenberger)
nqc		Not Quite C (Stefan Scherer)
omnimark	Omnimark (Paul Terray)
openroad	OpenROAD (Luis Moreno Serrano)
named		BIND configuration (glory hump)
papp		PApp (Marc Lehmann)
pfmain		Postfix main config (Peter Kelemen)
pic		PIC assembly (Aleksandar Veselinovic)
ppwiz		PPWizard (Stefan Schwarzer)
progress	Progress (Phil Uren)
psf		Product Specification File (Rex Barzee)
<A HREF="change.html#r">r</A>		<A HREF="change.html#R">R</A> (Tom Payne)
registry	<A HREF="os_win32.html#MS-Windows">MS-Windows</A> registry (Dominique Stephan)
robots		Robots.txt (Dominique Stephan)
rtf		Rich Text Format (Dominique Stephan)
setl		SETL (Alex Poylisher)
sgmldecl	SGML Declarations (Daniel A. Molina <A HREF="motion.html#W">W</A>.)
sinda		Sinda input (Adrian Nagle)
sindacmp	Sinda compare (Adrian Nagle)
sindaout	Sinda output (Adrian Nagle)
smith		SMITH (Rafal Sulejman)
snobol4		Snobol 4 (Rafal Sulejman)
strace		Strace (David Necas)
tak		TAK input (Adrian Nagle)
takcmp		TAK compare (Adrian Nagle)
takout		TAK output (Adrian Nagle)
tasm		Turbo assembly (FooLman)
texmf		TeX configuration (David Necas)
trasys		Trasys input (Adrian Nagle)
tssgm		TSS Geometry (Adrian Nagle)
tssop		TSS Optics (Adrian Nagle)
tsscl		TSS Command line (Adrian Nagle)
virata		Virata Configuration Script (Manuel M.H. Stol)
vsejcl		VSE JCL (David Ondrejko)
wdiff		Wordwise <A HREF="diff.html#diff">diff</A> (Gerfried Fuchs)
wsh		Windows Scripting Host (Paul Moore)
xkb		X Keyboard Extension (David Necas)

Renamed php3 to php, <A HREF="motion.html#it">it</A> now also supports php4 (Lutz Eymers)

Patch 5.7.015
Problem:    <A HREF="autocmd.html#Syntax">Syntax</A> files for Vim 6.0 can't be used with 5.x.
Solution:   Add the &quot;default&quot; argument to the &quot;<A HREF="syntax.html#:highlight">:highlight</A>&quot; command: Ignore the
	    command if highlighting was already specified.
Files:	    src/syntax.c

Generate the <A HREF="autocmd.html#Syntax">Syntax</A> menu with makemenu.vim, so that <A HREF="motion.html#it">it</A> doesn't have to be done
when Vim is starting up.  Reduces the <A HREF="starting.html#startup">startup</A> time of the <A HREF="gui.html#GUI">GUI</A>.



Fixed							*<A NAME="fixed-5.8"></A><B>fixed-5.8</B>*

Conversion of docs to HTML didn't convert &quot;|<A HREF="tagsrch.html#tag">tag</A>|s&quot; to a hyperlink.

Fixed compiling under NeXT. (Jeroen C.M. Goudswaard)

optwin.vim gave an error when used in <A HREF="intro.html#Vi">Vi</A> compatible mode ('cpo' contains 'C').

<A HREF="if_tcl.html#Tcl">Tcl</A> interpreter: &quot;buffer&quot; command didn't check for presence of an argument.
(Dave Bodenstab)

dosinst.c: Added checks for too long file name.

<A HREF="os_amiga.html#Amiga">Amiga</A>: a file name starting with a colon was considered absolute but <A HREF="motion.html#it">it</A> isn't.
<A HREF="os_amiga.html#Amiga">Amiga</A>: &quot;<A HREF="editing.html#:pwd">:pwd</A>&quot; added a slash when in the root of a drive.

<A HREF="os_mac.html#Macintosh">Macintosh</A>: Warnings for unused <A HREF="eval.html#variables">variables</A>. (Bernhard Pruemmer)

<A HREF="os_unix.html#Unix">Unix</A>: When catching a deadly signal, handle <A HREF="motion.html#it">it</A> in such a way that it's
unlikely that Vim will hang.  Call _exit() instead of exit() in <A HREF="change.html#case">case</A> of a
severe problem.

Setting the <A HREF="windows.html#window">window</A> title from nothing to something didn't work after patch 29.

Check for ownership of <A HREF="starting.html#.exrc">.exrc</A> and <A HREF="starting.html#.vimrc">.vimrc</A> was done with stat().  Use lstat() <A HREF="motion.html#as">as</A>
well for extra security.

<A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A>: Printing a file with <A HREF="options.html#'fileformat'">'fileformat'</A> &quot;<A HREF="os_unix.html#unix">unix</A>&quot; didn't work.  Set
<A HREF="options.html#'fileformat'">'fileformat'</A> to &quot;<A HREF="os_dos.html#dos">dos</A>&quot; before <A HREF="editing.html#writing">writing</A> the temp file.

<A HREF="os_unix.html#Unix">Unix</A>: Could start waiting for a character when checking for a <A HREF="pattern.html#CTRL-C">CTRL-C</A> typed
when an X event is received.

Could not use <A HREF="if_perl.html#Perl">Perl</A> and <A HREF="if_pyth.html#Python">Python</A> at the same time on FreeBSD, because <A HREF="if_perl.html#Perl">Perl</A> used
&quot;-lc&quot; and <A HREF="if_pyth.html#Python">Python</A> used the threaded C library.

<A HREF="os_win32.html#Win32">Win32</A>: The Mingw compiler gave a few warning <A HREF="message.html#messages">messages</A>.

When using &quot;<A HREF="editing.html#ZZ">ZZ</A>&quot; and an <A HREF="autocmd.html#autocommand">autocommand</A> for <A HREF="editing.html#writing">writing</A> uses an abbreviation <A HREF="motion.html#it">it</A> didn't
work.  Don't stuff the &quot;<A HREF="editing.html#:x">:x</A>&quot; command but execute <A HREF="motion.html#it">it</A> directly. (Mikael Berthe)

<A HREF="os_vms.html#VMS">VMS</A> doesn't always have lstat(), added an #ifdef around <A HREF="motion.html#it">it</A>.

Added a few corrections for the <A HREF="os_mac.html#Macintosh">Macintosh</A>. (Axel Kielhorn)

<A HREF="os_win32.html#Win32">Win32</A>: Gvimext could not edit more than a few files at once, the length of the
argument was fixed.


Previously released patches for Vim 5.7:

Patch 5.7.001
Problem:    When the current buffer is crypted, and another modified buffer
	    isn't, &quot;<A HREF="editing.html#:wall">:wall</A>&quot; will encrypt the other buffer.
Solution:   In buf_write() use &quot;buf&quot; instead of &quot;curbuf&quot; to check for the
	    crypt key.
Files:	    src/fileio.c

Patch 5.7.002
Problem:    When <A HREF="options.html#'showmode'">'showmode'</A> is set, using &quot;<A HREF="motion.html#CTRL-O">CTRL-O</A> <A HREF="insert.html#:r">:r</A> file&quot; waits three seconds
	    before displaying the read text. (Wichert Akkerman)
Solution:   Set &quot;keep_msg&quot; to the file message so that the screen is redrawn
	    before the three seconds wait for displaying the mode message.
Files:	    src/fileio.c

Patch 5.7.003
Problem:    Searching for &quot;[[:cntrl:]]&quot; doesn't work.
Solution:   Exclude NUL from the matching characters, <A HREF="motion.html#it">it</A> terminates the <A HREF="eval.html#list">list</A>.
Files:	    src/regexp.c

Patch 5.7.004
Problem:    <A HREF="gui_x11.html#GTK">GTK</A>: When selecting a new font, Vim can crash.
Solution:   In gui_mch_init_font() unreference the old font, not the new one.
Files:	    src/gui_gtk_x11.c

Patch 5.7.005
Problem:    Multibyte: Inserting a wrapped line corrupts kterm screen.
	    Pasting TEXT/COMPOUND_TEXT into Vim does not work.
	    On <A HREF="gui_x11.html#Motif">Motif</A> no <A HREF="mbyte.html#XIM">XIM</A> status line is displayed even though <A HREF="motion.html#it">it</A> is
	    available.
Solution:   Don't use xterm trick for wrapping lines for <A HREF="mbyte.html#multibyte">multibyte</A> mode.
	    Correct a missing &quot;break&quot;, added TEXT/COMPOUND_TEXT selection
	    request.
	    Add XIMStatusArea fallback code.
	    (Katsuhito Nagano)
Files:	    src/gui_gtk_x11.c, src/multbyte.c, src/screen.c, src/ui.c

Patch 5.7.006
Problem:    <A HREF="gui.html#GUI">GUI</A>: redrawing the non-Visual selection is wrong when the <A HREF="windows.html#window">window</A>
	    is unobscured. (Jean-Pierre Etienne)
Solution:   Redraw the selection properly and don't clear <A HREF="motion.html#it">it</A>.  Added &quot;len&quot;
	    argument to clip_may_redraw_selection().
Files:	    src/gui.c, src/ui.c, src/proto/ui.pro

Patch 5.7.007
Problem:    <A HREF="if_pyth.html#Python">Python</A>: Crash when using the current buffer <A HREF="if_cscop.html#twice">twice</A>.
Solution:   Increase the reference <A HREF="intro.html#count">count</A> for buffer and <A HREF="windows.html#window">window</A> <A HREF="index.html#objects">objects</A>.
	    (Johannes Zellner)
Files:	    src/if_python.c

Patch 5.7.008
Problem:    In <A HREF="intro.html#Ex">Ex</A> mode, backspacing over the first TAB doesn't work properly.
	    (Wichert Akkerman)
Solution:   Switch the cursor on before <A HREF="print.html#printing">printing</A> the newline.
Files:	    src/ex_getln.c

Patch 5.7.009 (extra)
Problem:    <A HREF="os_mac.html#Mac">Mac</A>: Crash when using a long file.
Solution:   Don't redefine malloc() and free(), because <A HREF="motion.html#it">it</A> will break using
	    realloc().
Files:	    src/os_mac.h

Patch 5.7.010
Problem:    When using <A HREF="change.html#CTRL-A">CTRL-A</A> on a very long number Vim can crash.  (Michael
	    Naumann)
Solution:   Truncate the length of the new number to avoid a buffer overflow.
Files:	    src/ops.c

Patch 5.7.011 (extra)
Problem:    <A HREF="os_win32.html#Win32">Win32</A> <A HREF="gui.html#GUI">GUI</A> on NT 5 and Win98: Displaying Hebrew is reversed.
Solution:   Output each character separately, to avoid that Windows reverses
	    the text for some fonts. (Ron Aaron)
Files:	    src/gui_w32.c

Patch 5.7.012
Problem:    When using &quot;-complete=buffer&quot; for &quot;<A HREF="map.html#:command">:command</A>&quot; the user command
	    fails.
Solution:   In a user command don't replace the buffer name with a <A HREF="intro.html#count">count</A> for
	    the  buffer number.
Files:	    src/ex_docmd.c

Patch 5.7.013
Problem:    &quot;<A HREF="pattern.html#gD">gD</A>&quot; didn't always find a match in the first line, depending on
	    the column the search started at.
Solution:   Reset the column to zero before starting to search.
Files:	    src/normal.c

Patch 5.7.014
Problem:    Rot13 encoding was done on characters with accents, which is
	    wrong. (Sven Gottwald)
Solution:   Only <A HREF="diff.html#do">do</A> <A HREF="change.html#rot13">rot13</A> encoding on ASCII characters.
Files:	    src/ops.c

Patch 5.7.016
Problem:    When hitting '<A HREF="pattern.html#n">n</A>' for a &quot;:s///c&quot; command, the ignore-case flag was
	    not restored, some matches were skipped. (Daniel Blaustein)
Solution:   Restore the reg_ic variable when '<A HREF="pattern.html#n">n</A>' was hit.
Files:	    src/ex_cmds.c

Patch 5.7.017
Problem:    When using a Vim <A HREF="usr_41.html#script">script</A> for Vim 6.0 with <A HREF="map.html#&lt;SID&gt;">&lt;SID&gt;</A> before a function
	    name, <A HREF="motion.html#it">it</A> produces an error message even when inside an &quot;if version
	    &gt;= 600&quot;.  (Charles Campbell)
Solution:   Ignore <A HREF="message.html#errors">errors</A> in the function name when the function is not going
	    to be defined.
Files:	    src/eval.c

Patch 5.7.018
Problem:    When running &quot;<A HREF="starting.html#rvim">rvim</A>&quot; or &quot;vim -Z&quot; <A HREF="motion.html#it">it</A> was still possible to execute a
	    shell command with <A HREF="eval.html#system()">system()</A> and <A HREF="editing.html#backtick-expansion">backtick-expansion</A>. (Antonios A.
	    Kavarnos)
Solution:   Disallow executing a shell command in get_cmd_output() and
	    mch_expand_wildcards().
Files:	    src/misc1.c, src/os_unix.c

Patch 5.7.019
Problem:    Multibyte: In a substitute <A HREF="eval.html#string">string</A>, a <A HREF="mbyte.html#multi-byte">multi-byte</A> character isn't
	    skipped properly, can be a problem when the second byte is a
	    <A HREF="intro.html#backslash">backslash</A>.
Solution:   Skip an extra byte for a double-byte character. (Muraoka Taro)
Files:	    src/ex_cmds.c

Patch 5.7.020
Problem:    Compilation doesn't work on MacOS-X.
Solution:   Add a couple of #ifdefs. (Jamie Curmi)
Files:	    src/regexp.c, src/ctags/general.h

Patch 5.7.021
Problem:    Vim sometimes produces a beep when started in an xterm.  Only
	    happens when compiled without mouse support.
Solution:   Requesting the xterm version results in a K_IGNORE.  This wasn't
	    handled when mouse support is disabled.  Accept K_IGNORE always.
Files:	    src/normal.c

Patch 5.7.022
Problem:    &#37;v in <A HREF="options.html#'statusline'">'statusline'</A> is not displayed when it's equal to &#37;c.
Solution:   Check if &#37;V or &#37;v is used and handle them differently.
Files:	    src/screen.c

Patch 5.7.023
Problem:    Crash when a <A HREF="autocmd.html#WinLeave">WinLeave</A> <A HREF="autocmd.html#autocommand">autocommand</A> deletes the buffer in the other
	    <A HREF="windows.html#window">window</A>.
Solution:   Check that after executing the <A HREF="autocmd.html#WinLeave">WinLeave</A> autocommands there still
	    is a <A HREF="windows.html#window">window</A> to be closed.  Also update the test that was supposed
	    to check for this problem.
Files:	    src/window.c, testdir/test13.in, testdir/test13.ok

Patch 5.7.024
Problem:    Evaluating an <A HREF="eval.html#expression">expression</A> for <A HREF="options.html#'statusline'">'statusline'</A> can have side effects.
Solution:   Evaluate the <A HREF="eval.html#expression">expression</A> in a <A HREF="eval.html#sandbox">sandbox</A>.
Files:	    src/edit.c, src/eval.c, src/proto/eval.pro, src/ex_cmds.c,
	    src/ex_cmds.h, src/ex_docmd.c, src/globals.h, src/option.c,
	    src/screen.c, src/undo.c

Patch 5.7.025 (fixed)
Problem:    Creating a temp file has a race condition.
Solution:   Create a private directory to write the temp files in.
Files:	    src/fileio.c, src/misc1.c, src/proto/misc1.pro,
	    src/proto/fileio.pro, src/memline.c, src/os_unix.h

Patch 5.7.026 (extra)
Problem:    Creating a temp file has a race condition.
Solution:   Create a private directory to write the temp files in.
	    This is the extra part of patch 5.7.025.
Files:	    src/os_msdos.h

Patch 5.7.027
Problem:    Starting to edit a file can cause a crash.  For example when in
	    <A HREF="insert.html#Insert">Insert</A> mode, using <A HREF="motion.html#CTRL-O">CTRL-O</A> <A HREF="helphelp.html#:help">:help</A> abbr&lt;Tab&gt; to scroll the screen and
	    then <A HREF="motion.html#&lt;CR&gt;">&lt;CR&gt;</A>, which edits a help file. (Robert Bogomip)
Solution:   Check if keep_msg is NULL before <A HREF="uganda.html#copying">copying</A> <A HREF="motion.html#it">it</A>.
Files:	    src/fileio.c

Patch 5.7.028
Problem:    Creating a <A HREF="editing.html#backup">backup</A> or swap file could fail in rare situations.
Solution:   Use O_EXCL for open().
Files:	    src/fileio.c, src/memfile.c

Patch 5.7.029
Problem:    Editing a file with an extremely long name crashed Vim.
Solution:   Check for length of the name when setting the <A HREF="windows.html#window">window</A> title.
Files:	    src/buffer.c

Patch 5.7.030
Problem:    A &quot;<A HREF="quickfix.html#:make">:make</A>&quot; or &quot;<A HREF="quickfix.html#:grep">:grep</A>&quot; command with a very long argument could cause
	    a crash.
Solution:   Allocate the buffer for the shell command.
Files:	    src/ex_docmd.c


<A HREF="#top">top</A> - <A HREF="index.html">main help file</A>
</PRE>
</BODY>


</HTML>