summaryrefslogtreecommitdiffstats
path: root/source/ap/vim/vim-runtime-syntax-20100510.diff
blob: f8d901d7a496dd42d715b30b5c6a602b50e021dc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
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
diff -u -r --new-file runtime/syntax.orig/2html.vim runtime/syntax/2html.vim
--- runtime/syntax.orig/2html.vim	2008-07-17 16:03:05.000000000 -0500
+++ runtime/syntax/2html.vim	2009-07-26 06:44:10.000000000 -0500
@@ -1,13 +1,18 @@
 " Vim syntax support file
 " Maintainer: Bram Moolenaar <Bram@vim.org>
-" Last Change: 2008 Jul 17
+" Last Change: 2009 Jul 14
 "	       (modified by David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>)
 "	       (XHTML support by Panagiotis Issaris <takis@lumumba.luc.ac.be>)
 "	       (made w3 compliant by Edd Barrett <vext01@gmail.com>)
 "	       (added html_font. Edd Barrett <vext01@gmail.com>)
+"	       (dynamic folding by Ben Fritz <fritzophrenic@gmail.com>)
 
 " Transform a file into HTML, using the current syntax highlighting.
 
+" this file uses line continuations
+let s:cpo_sav = &cpo
+set cpo-=C
+
 " Number lines when explicitely requested or when `number' is set
 if exists("html_number_lines")
   let s:numblines = html_number_lines
@@ -22,6 +27,37 @@
   let s:htmlfont = "monospace"
 endif
 
+" make copies of the user-defined settings that we may overrule
+if exists("html_dynamic_folds")
+  let s:html_dynamic_folds = 1
+endif
+if exists("html_hover_unfold")
+  let s:html_hover_unfold = 1
+endif
+if exists("html_use_css")
+  let s:html_use_css = 1
+endif
+
+" hover opening implies dynamic folding
+if exists("s:html_hover_unfold")
+  let s:html_dynamic_folds = 1
+endif
+
+" dynamic folding with no foldcolumn implies hover opens
+if exists("s:html_dynamic_folds") && exists("html_no_foldcolumn")
+  let s:html_hover_unfold = 1
+endif
+
+" ignore folding overrides dynamic folding
+if exists("html_ignore_folding") && exists("s:html_dynamic_folds")
+  unlet s:html_dynamic_folds
+endif
+
+" dynamic folding implies css
+if exists("s:html_dynamic_folds")
+  let s:html_use_css = 1
+endif
+
 " When not in gui we can only guess the colors.
 if has("gui_running")
   let s:whatterm = "gui"
@@ -62,7 +98,7 @@
   endfun
 endif
 
-if !exists("html_use_css")
+if !exists("s:html_use_css")
   " Return opening HTML tag for given highlight id
   function! s:HtmlOpening(id)
     let a = ""
@@ -150,6 +186,26 @@
   return a
 endfun
 
+if exists("s:html_dynamic_folds")
+
+  " compares two folds as stored in our list of folds
+  " A fold is "less" than another if it starts at an earlier line number,
+  " or ends at a later line number, ties broken by fold level
+  function! s:FoldCompare(f1, f2)
+    if a:f1.firstline != a:f2.firstline
+      " put it before if it starts earlier
+      return a:f1.firstline - a:f2.firstline
+    elseif a:f1.lastline != a:f2.lastline
+      " put it before if it ends later
+      return a:f2.lastline - a:f1.lastline
+    else
+      " if folds begin and end on the same lines, put lowest fold level first
+      return a:f1.level - a:f2.level
+    endif
+  endfunction
+
+endif
+
 " Figure out proper MIME charset from the 'encoding' option.
 if exists("html_use_encoding")
   let s:html_encoding = html_use_encoding
@@ -223,13 +279,13 @@
   let s:tag_close = '>'
 endif
 
-" Cache html_no_pre incase we have to turn it on for non-css mode
+" Cache html_no_pre in case we have to turn it on for non-css mode
 if exists("html_no_pre")
   let s:old_html_no_pre = html_no_pre
 endif
 
-if !exists("html_use_css")
-  " Cant put font tags in <pre>
+if !exists("s:html_use_css")
+  " Can't put font tags in <pre>
   let html_no_pre=1
 endif
 
@@ -251,9 +307,86 @@
   exe "normal! a<meta http-equiv=\"content-type\" content=\"text/html; charset=" . s:html_encoding . '"' . s:tag_close . "\n\e"
 endif
 
-if exists("html_use_css")
-  exe "normal! a<style type=\"text/css\">\n<!--\n-->\n</style>\n\e"
+if exists("s:html_use_css")
+  if exists("s:html_dynamic_folds")
+    if exists("s:html_hover_unfold")
+      " if we are doing hover_unfold, use css 2 with css 1 fallback for IE6
+      exe "normal! a".
+	  \ "<style type=\"text/css\">\n<!--\n".
+	  \ ".FoldColumn { text-decoration: none; white-space: pre; }\n\n".
+	  \ "body * { margin: 0; padding: 0; }\n".
+	  \ "\n".
+	  \ ".open-fold   > .Folded { display: none;  }\n".
+	  \ ".open-fold   > .fulltext { display: inline; }\n".
+	  \ ".closed-fold > .fulltext { display: none;  }\n".
+	  \ ".closed-fold > .Folded { display: inline; }\n".
+	  \ "\n".
+	  \ ".open-fold   > .toggle-open   { display: none;   }\n".
+	  \ ".open-fold   > .toggle-closed { display: inline; }\n".
+	  \ ".closed-fold > .toggle-open   { display: inline; }\n".
+	  \ ".closed-fold > .toggle-closed { display: none;   }\n"
+      exe "normal! a\n/* opening a fold while hovering won't be supported by IE6 and other\n".
+	  \ "similar browsers, but it should fail gracefully. */\n".
+	  \ ".closed-fold:hover > .fulltext { display: inline; }\n".
+	  \ ".closed-fold:hover > .toggle-filler { display: none; }\n".
+	  \ ".closed-fold:hover > .Folded { display: none; }\n"
+      exe "normal! a-->\n</style>\n"
+      exe "normal! a<!--[if lt IE 7]>".
+	  \ "<style type=\"text/css\">\n".
+	  \ ".open-fold   .Folded      { display: none; }\n".
+	  \ ".open-fold   .fulltext      { display: inline; }\n".
+	  \ ".open-fold   .toggle-open   { display: none; }\n".
+	  \ ".closed-fold .toggle-closed { display: inline; }\n".
+	  \ "\n".
+	  \ ".closed-fold .fulltext      { display: none; }\n".
+	  \ ".closed-fold .Folded      { display: inline; }\n".
+	  \ ".closed-fold .toggle-open   { display: inline; }\n".
+	  \ ".closed-fold .toggle-closed { display: none; }\n".
+	  \ "</style>\n".
+	  \ "<![endif]-->\n"
+    else
+      " if we aren't doing hover_unfold, use CSS 1 only
+      exe "normal! a<style type=\"text/css\">\n<!--\n".
+	    \ ".FoldColumn { text-decoration: none; white-space: pre; }\n\n".
+	    \ ".open-fold   .Folded      { display: none; }\n".
+	    \ ".open-fold   .fulltext      { display: inline; }\n".
+	    \ ".open-fold   .toggle-open   { display: none; }\n".
+	    \ ".closed-fold .toggle-closed { display: inline; }\n".
+	    \ "\n".
+	    \ ".closed-fold .fulltext      { display: none; }\n".
+	    \ ".closed-fold .Folded      { display: inline; }\n".
+	    \ ".closed-fold .toggle-open   { display: inline; }\n".
+	    \ ".closed-fold .toggle-closed { display: none; }\n".
+	    \ "-->\n</style>\n"
+    endif
+  else
+    " if we aren't doing any dynamic folding, no need for any special rules
+    exe "normal! a<style type=\"text/css\">\n<!--\n-->\n</style>\n\e"
+  endif
+endif
+
+" insert javascript to toggle folds open and closed
+if exists("s:html_dynamic_folds")
+  exe "normal! a\n".
+	\ "<script type='text/javascript'>\n".
+	\ "<!--\n".
+	\ "function toggleFold(objID)\n".
+	\ "{\n".
+	\ "  var fold;\n".
+	\ "  fold = document.getElementById(objID);\n".
+	\ "  if(fold.className == 'closed-fold')\n".
+	\ "  {\n".
+	\ "    fold.className = 'open-fold';\n".
+	\ "  }\n".
+	\ "  else if (fold.className == 'open-fold')\n".
+	\ "  {\n".
+	\ "    fold.className = 'closed-fold';\n".
+	\ "  }\n".
+	\ "}\n".
+	\ "-->\n".
+	\ "</script>\n\e"
 endif
+
 if exists("html_no_pre")
   exe "normal! a</head>\n<body>\n\e"
 else
@@ -265,7 +398,81 @@
 " List of all id's
 let s:idlist = ","
 
-" Loop over all lines in the original text.
+" First do some preprocessing for dynamic folding. Do this for the entire file
+" so we don't accidentally start within a closed fold or something.
+let s:allfolds = []
+
+if exists("s:html_dynamic_folds")
+  let s:lnum = 1
+  let s:end = line('$')
+  " save the fold text and set it to the default so we can find fold levels
+  let s:foldtext_save = &foldtext
+  set foldtext&
+
+  " we will set the foldcolumn in the html to the greater of the maximum fold
+  " level and the current foldcolumn setting
+  let s:foldcolumn = &foldcolumn
+
+  " get all info needed to describe currently closed folds
+  while s:lnum < s:end
+    if foldclosed(s:lnum) == s:lnum
+      " default fold text has '+-' and then a number of dashes equal to fold
+      " level, so subtract 2 from index of first non-dash after the dashes
+      " in order to get the fold level of the current fold
+      let s:level = match(foldtextresult(s:lnum), '+-*\zs[^-]') - 2
+      if s:level+1 > s:foldcolumn
+	let s:foldcolumn = s:level+1
+      endif
+      " store fold info for later use
+      let s:newfold = {'firstline': s:lnum, 'lastline': foldclosedend(s:lnum), 'level': s:level,'type': "closed-fold"}
+      call add(s:allfolds, s:newfold)
+      " open the fold so we can find any contained folds
+      execute s:lnum."foldopen"
+    else
+      let s:lnum = s:lnum + 1
+    endif
+  endwhile
+
+  " close all folds to get info for originally open folds
+  silent! %foldclose!
+  let s:lnum = 1
+
+  " the originally open folds will be all folds we encounter that aren't
+  " already in the list of closed folds
+  while s:lnum < s:end
+    if foldclosed(s:lnum) == s:lnum
+      " default fold text has '+-' and then a number of dashes equal to fold
+      " level, so subtract 2 from index of first non-dash after the dashes
+      " in order to get the fold level of the current fold
+      let s:level = match(foldtextresult(s:lnum), '+-*\zs[^-]') - 2
+      if s:level+1 > s:foldcolumn
+	let s:foldcolumn = s:level+1
+      endif
+      let s:newfold = {'firstline': s:lnum, 'lastline': foldclosedend(s:lnum), 'level': s:level,'type': "closed-fold"}
+      " only add the fold if we don't already have it
+      if empty(s:allfolds) || index(s:allfolds, s:newfold) == -1
+	let s:newfold.type = "open-fold"
+	call add(s:allfolds, s:newfold)
+      endif
+      " open the fold so we can find any contained folds
+      execute s:lnum."foldopen"
+    else
+      let s:lnum = s:lnum + 1
+    endif
+  endwhile
+
+  " sort the folds so that we only ever need to look at the first item in the
+  " list of folds
+  call sort(s:allfolds, "s:FoldCompare")
+
+  let &foldtext = s:foldtext_save
+  unlet s:foldtext_save
+
+  " close all folds again so we can get the fold text as we go
+  silent! %foldclose! 
+endif
+
+" Now loop over all lines in the original text to convert to html.
 " Use html_start_line and html_end_line if they are set.
 if exists("html_start_line")
   let s:lnum = html_start_line
@@ -284,6 +491,15 @@
   let s:end = line("$")
 endif
 
+" stack to keep track of all the folds containing the current line
+let s:foldstack = []
+
+if s:numblines
+  let s:margin = strlen(s:end) + 1
+else
+  let s:margin = 0
+endif
+
 if has('folding') && !exists('html_ignore_folding')
   let s:foldfillchar = &fillchars[matchend(&fillchars, 'fold:')]
   if s:foldfillchar == ''
@@ -295,6 +511,7 @@
   let s:difffillchar = '-'
 endif
 
+let s:foldId = 0
 
 while s:lnum <= s:end
 
@@ -303,12 +520,7 @@
   if s:filler > 0
     let s:n = s:filler
     while s:n > 0
-      if s:numblines
-	" Indent if line numbering is on
-	let s:new = repeat(s:LeadingSpace, strlen(s:end) + 1) . repeat(s:difffillchar, 3)
-      else
-	let s:new = repeat(s:difffillchar, 3)
-      endif
+      let s:new = repeat(s:difffillchar, 3)
 
       if s:n > 2 && s:n < s:filler && !exists("html_whole_filler")
 	let s:new = s:new . " " . s:filler . " inserted lines "
@@ -317,10 +529,16 @@
 
       if !exists("html_no_pre")
 	" HTML line wrapping is off--go ahead and fill to the margin
-	let s:new = s:new . repeat(s:difffillchar, &columns - strlen(s:new))
+	let s:new = s:new . repeat(s:difffillchar, &columns - strlen(s:new) - s:margin)
+      else
+	let s:new = s:new . repeat(s:difffillchar, 3)
       endif
 
       let s:new = s:HtmlFormat(s:new, "DiffDelete")
+      if s:numblines
+	" Indent if line numbering is on; must be after escaping.
+	let s:new = repeat(s:LeadingSpace, s:margin) . s:new
+      endif
       exe s:newwin . "wincmd w"
       exe "normal! a" . s:new . s:HtmlEndline . "\n\e"
       exe s:orgwin . "wincmd w"
@@ -333,16 +551,18 @@
 
   " Start the line with the line number.
   if s:numblines
-    let s:new = repeat(' ', strlen(s:end) - strlen(s:lnum)) . s:lnum . ' '
+    let s:numcol = repeat(' ', s:margin - 1 - strlen(s:lnum)) . s:lnum . ' '
   else
-    let s:new = ""
+    let s:numcol = ""
   endif
 
-  if has('folding') && !exists('html_ignore_folding') && foldclosed(s:lnum) > -1
+  let s:new = ""
+
+  if has('folding') && !exists('html_ignore_folding') && foldclosed(s:lnum) > -1 && !exists('s:html_dynamic_folds')
     "
-    " This is the beginning of a folded block
+    " This is the beginning of a folded block (with no dynamic folding)
     "
-    let s:new = s:new . foldtextresult(s:lnum)
+    let s:new = s:numcol . foldtextresult(s:lnum)
     if !exists("html_no_pre")
       " HTML line wrapping is off--go ahead and fill to the margin
       let s:new = s:new . repeat(s:foldfillchar, &columns - strlen(s:new))
@@ -355,14 +575,96 @@
 
   else
     "
-    " A line that is not folded.
+    " A line that is not folded, or doing dynamic folding.
     "
     let s:line = getline(s:lnum)
-
     let s:len = strlen(s:line)
 
+    if exists("s:html_dynamic_folds")
+      " First insert a closing for any open folds that end on this line
+      while !empty(s:foldstack) && get(s:foldstack,0).lastline == s:lnum-1
+	let s:new = s:new."</span></span>"
+	call remove(s:foldstack, 0)
+      endwhile
+
+      " Now insert an opening any new folds that start on this line
+      let s:firstfold = 1
+      while !empty(s:allfolds) && get(s:allfolds,0).firstline == s:lnum
+	let s:foldId = s:foldId + 1
+	let s:new = s:new . "<span id='fold".s:foldId."' class='".s:allfolds[0].type."'>"
+
+	" Unless disabled, add a fold column for the opening line of a fold.
+	"
+	" Note that dynamic folds require using css so we just use css to take
+	" care of the leading spaces rather than using &nbsp; in the case of
+	" html_no_pre to make it easier
+	if !exists("html_no_foldcolumn")
+	  " add fold column that can open the new fold
+	  if s:allfolds[0].level > 1 && s:firstfold
+	    let s:new = s:new . "<a class='toggle-open FoldColumn' href='javascript:toggleFold(\"fold".s:foldstack[0].id."\")'>"
+	    let s:new = s:new . repeat('|', s:allfolds[0].level - 1) . "</a>"
+	  endif
+	  let s:new = s:new . "<a class='toggle-open FoldColumn' href='javascript:toggleFold(\"fold".s:foldId."\")'>+</a>"
+	  let s:new = s:new . "<a class='toggle-open "
+	  " If this is not the last fold we're opening on this line, we need
+	  " to keep the filler spaces hidden if the fold is opened by mouse
+	  " hover. If it is the last fold to open in the line, we shouldn't hide
+	  " them, so don't apply the toggle-filler class.
+	  if get(s:allfolds, 1, {'firstline': 0}).firstline == s:lnum
+	    let s:new = s:new . "toggle-filler "
+	  endif
+	  let s:new = s:new . "FoldColumn' href='javascript:toggleFold(\"fold".s:foldId."\")'>"
+	  let s:new = s:new . repeat(" ", s:foldcolumn - s:allfolds[0].level) . "</a>"
+
+	  " add fold column that can close the new fold
+	  let s:new = s:new . "<a class='toggle-closed FoldColumn' href='javascript:toggleFold(\"fold".s:foldId."\")'>"
+	  if s:firstfold
+	    let s:new = s:new . repeat('|', s:allfolds[0].level - 1)
+	  endif
+	  let s:new = s:new . "-"
+	  " only add spaces if we aren't opening another fold on the same line
+	  if get(s:allfolds, 1, {'firstline': 0}).firstline != s:lnum
+	    let s:new = s:new . repeat(" ", s:foldcolumn - s:allfolds[0].level)
+	  endif
+	  let s:new = s:new . "</a>"
+	  let s:firstfold = 0
+	endif
+
+	" add fold text, moving the span ending to the next line so collapsing
+	" of folds works correctly
+	let s:new = s:new . substitute(s:HtmlFormat(s:numcol . foldtextresult(s:lnum), "Folded"), '</span>', s:HtmlEndline.'\r\0', '')
+	let s:new = s:new . "<span class='fulltext'>"
+
+	" open the fold now that we have the fold text to allow retrieval of
+	" fold text for subsequent folds
+	execute s:lnum."foldopen"
+	call insert(s:foldstack, remove(s:allfolds,0))
+	let s:foldstack[0].id = s:foldId
+      endwhile
+
+      " Unless disabled, add a fold column for other lines.
+      "
+      " Note that dynamic folds require using css so we just use css to take
+      " care of the leading spaces rather than using &nbsp; in the case of
+      " html_no_pre to make it easier
+      if !exists("html_no_foldcolumn")
+	if empty(s:foldstack)
+	  " add the empty foldcolumn for unfolded lines
+	  let s:new = s:new . s:HtmlFormat(repeat(' ', s:foldcolumn), "FoldColumn")
+	else
+	  " add the fold column for folds not on the opening line
+	  if get(s:foldstack, 0).firstline < s:lnum
+	    let s:new = s:new . "<a class='FoldColumn' href='javascript:toggleFold(\"fold".s:foldstack[0].id."\")'>"
+	    let s:new = s:new . repeat('|', s:foldstack[0].level)
+	    let s:new = s:new . repeat(' ', s:foldcolumn - s:foldstack[0].level) . "</a>"
+	  endif
+	endif
+      endif
+    endif
+
+    " Now continue with the unfolded line text
     if s:numblines
-      let s:new = s:HtmlFormat(s:new, "lnr")
+      let s:new = s:new . s:HtmlFormat(s:numcol, "lnr")
     endif
 
     " Get the diff attribute, if any.
@@ -380,7 +682,7 @@
 	while s:col <= s:len && s:id == diff_hlID(s:lnum, s:col) | let s:col = s:col + 1 | endwhile
 	if s:len < &columns && !exists("html_no_pre")
 	  " Add spaces at the end to mark the changed line.
-	  let s:line = s:line . repeat(' ', &columns - s:len)
+	  let s:line = s:line . repeat(' ', &columns - virtcol([s:lnum, s:len]) - s:margin)
 	  let s:len = &columns
 	endif
       else
@@ -393,11 +695,27 @@
 
       " Expand tabs
       let s:expandedtab = strpart(s:line, s:startcol - 1, s:col - s:startcol)
-      let idx = stridx(s:expandedtab, "\t")
-      while idx >= 0
-	let i = &ts - ((idx + s:startcol - 1) % &ts)
-	let s:expandedtab = substitute(s:expandedtab, '\t', repeat(' ', i), '')
-	let idx = stridx(s:expandedtab, "\t")
+      let s:offset = 0
+      let s:idx = stridx(s:expandedtab, "\t")
+      while s:idx >= 0
+	if has("multi_byte_encoding")
+	  if s:startcol + s:idx == 1
+	    let s:i = &ts
+	  else
+	    if s:idx == 0
+	      let s:prevc = matchstr(s:line, '.\%' . (s:startcol + s:idx + s:offset) . 'c')
+	    else
+	      let s:prevc = matchstr(s:expandedtab, '.\%' . (s:idx + 1) . 'c')
+	    endif
+	    let s:vcol = virtcol([s:lnum, s:startcol + s:idx + s:offset - len(s:prevc)])
+	    let s:i = &ts - (s:vcol % &ts)
+	  endif
+	  let s:offset -= s:i - 1
+	else
+	  let s:i = &ts - ((s:idx + s:startcol - 1) % &ts)
+	endif
+	let s:expandedtab = substitute(s:expandedtab, '\t', repeat(' ', s:i), '')
+	let s:idx = stridx(s:expandedtab, "\t")
       endwhile
 
       " Output the text with the same synID, with class set to {s:id_name}
@@ -415,8 +733,22 @@
 " Finish with the last line
 exe s:newwin . "wincmd w"
 
+if exists("s:html_dynamic_folds")
+  " finish off any open folds
+  while !empty(s:foldstack)
+    exe "normal! a</span></span>"
+    call remove(s:foldstack, 0)
+  endwhile
+
+  " add fold column to the style list if not already there
+  let s:id = hlID('FoldColumn')
+  if stridx(s:idlist, "," . s:id . ",") == -1
+    let s:idlist = s:idlist . s:id . ","
+  endif
+endif
+
 " Close off the font tag that encapsulates the whole <body>
-if !exists("html_use_css")
+if !exists("s:html_use_css")
   exe "normal! a</font>\e"
 endif
 
@@ -428,7 +760,7 @@
 
 
 " Now, when we finally know which, we define the colors and styles
-if exists("html_use_css")
+if exists("s:html_use_css")
   1;/<style type="text/+1
 endif
 
@@ -445,7 +777,7 @@
 " Normal/global attributes
 " For Netscape 4, set <body> attributes too, though, strictly speaking, it's
 " incorrect.
-if exists("html_use_css")
+if exists("s:html_use_css")
   if exists("html_no_pre")
     execute "normal! A\nbody { color: " . s:fgc . "; background-color: " . s:bgc . "; font-family: ". s:htmlfont ."; }\e"
   else
@@ -455,12 +787,12 @@
     execute "normal! ^cwbody\e"
   endif
 else
-    execute '%s:<body>:<body bgcolor="' . s:bgc . '" text="' . s:fgc . '"><font face="'. s:htmlfont .'">'
+  execute '%s:<body>:<body bgcolor="' . s:bgc . '" text="' . s:fgc . '"><font face="'. s:htmlfont .'">'
 endif
 
 " Line numbering attributes
 if s:numblines
-  if exists("html_use_css")
+  if exists("s:html_use_css")
     execute "normal! A\n.lnr { " . s:CSS1(hlID("LineNr")) . "}\e"
   else
     execute '%s+^<span class="lnr">\([^<]*\)</span>+' . s:HtmlOpening(hlID("LineNr")) . '\1' . s:HtmlClosing(hlID("LineNr")) . '+g'
@@ -479,14 +811,14 @@
   " If the class has some attributes, export the style, otherwise DELETE all
   " its occurences to make the HTML shorter
   if s:attr != ""
-    if exists("html_use_css")
+    if exists("s:html_use_css")
       execute "normal! A\n." . s:id_name . " { " . s:attr . "}"
     else
       execute '%s+<span class="' . s:id_name . '">\([^<]*\)</span>+' . s:HtmlOpening(s:id) . '\1' . s:HtmlClosing(s:id) . '+g'
     endif
   else
     execute '%s+<span class="' . s:id_name . '">\([^<]*\)</span>+\1+ge'
-    if exists("html_use_css")
+    if exists("s:html_use_css")
       1;/<style type="text/+1
     endif
   endif
@@ -531,16 +863,28 @@
 " Save a little bit of memory (worth doing?)
 unlet s:htmlfont
 unlet s:old_et s:old_paste s:old_icon s:old_report s:old_title s:old_search
-unlet s:whatterm s:idlist s:lnum s:end s:fgc s:bgc s:old_magic
+unlet s:whatterm s:idlist s:lnum s:end s:margin s:fgc s:bgc s:old_magic
 unlet! s:col s:id s:attr s:len s:line s:new s:expandedtab s:numblines
-unlet s:orgwin s:newwin s:orgbufnr
+unlet! s:orgwin s:newwin s:orgbufnr s:idx s:i s:offset
 if !v:profiling
   delfunc s:HtmlColor
   delfunc s:HtmlFormat
   delfunc s:CSS1
-  if !exists("html_use_css")
+  if !exists("s:html_use_css")
     delfunc s:HtmlOpening
     delfunc s:HtmlClosing
   endif
 endif
-silent! unlet s:diffattr s:difffillchar s:foldfillchar s:HtmlSpace s:LeadingSpace s:HtmlEndline
+silent! unlet s:diffattr s:difffillchar s:foldfillchar s:HtmlSpace s:LeadingSpace s:HtmlEndline s:firstfold s:foldcolumn
+unlet s:foldstack s:allfolds s:foldId s:numcol
+
+if exists("s:html_dynamic_folds")
+  delfunc s:FoldCompare
+endif
+
+silent! unlet s:html_dynamic_folds s:html_hover_unfold s:html_use_css
+
+let &cpo = s:cpo_sav
+unlet s:cpo_sav
+
+" vim: noet sw=2 sts=2
diff -u -r --new-file runtime/syntax.orig/asm.vim runtime/syntax/asm.vim
--- runtime/syntax.orig/asm.vim	2004-06-07 09:32:35.000000000 -0500
+++ runtime/syntax/asm.vim	2010-01-12 14:45:24.000000000 -0600
@@ -1,10 +1,12 @@
 " Vim syntax file
 " Language:	GNU Assembler
-" Maintainer:	Kevin Dahlhausen <kdahlhaus@yahoo.com>
-" Last Change:	2002 Sep 19
+" Maintainer:	Erik Wognsen <erik.wognsen@gmail.com>
+"		Previous maintainer:
+"		Kevin Dahlhausen <kdahlhaus@yahoo.com>
+" Last Change:	2010 Jan 9
 
 " For version 5.x: Clear all syntax items
-" For version 6.x: Quit when a syntax file was already loaded
+" For version 6.0 and later: Quit when a syntax file was already loaded
 if version < 600
   syntax clear
 elseif exists("b:current_syntax")
@@ -13,7 +15,6 @@
 
 syn case ignore
 
-
 " storage types
 syn match asmType "\.long"
 syn match asmType "\.ascii"
@@ -44,9 +45,8 @@
 syn match hexNumber		"0[xX][0-9a-fA-F]\+"
 syn match binNumber		"0[bB][0-1]*"
 
-
-syn match asmSpecialComment	";\*\*\*.*"
-syn match asmComment		";.*"hs=s+1
+syn match asmComment		"#.*"
+syn region asmComment		start="/\*" end="\*/"
 
 syn match asmInclude		"\.include"
 syn match asmCond		"\.if"
@@ -86,15 +86,9 @@
   HiLink octNumber	Number
   HiLink binNumber	Number
 
-  HiLink asmSpecialComment Comment
   HiLink asmIdentifier Identifier
   HiLink asmType	Type
 
-  " My default color overrides:
-  " hi asmSpecialComment ctermfg=red
-  " hi asmIdentifier ctermfg=lightcyan
-  " hi asmType ctermbg=black ctermfg=brown
-
   delcommand HiLink
 endif
 
diff -u -r --new-file runtime/syntax.orig/bzr.vim runtime/syntax/bzr.vim
--- runtime/syntax.orig/bzr.vim	2008-07-30 14:47:17.000000000 -0500
+++ runtime/syntax/bzr.vim	2009-01-28 10:23:50.000000000 -0600
@@ -2,9 +2,14 @@
 " Language:     Bazaar (bzr) commit file
 " Maintainer:   Dmitry Vasiliev <dima at hlabs dot spb dot ru>
 " URL:          http://www.hlabs.spb.ru/vim/bzr.vim
-" Revision:     $Id: bzr.vim 683 2008-07-30 11:52:38Z hdima $
+" Last Change:  2009-01-27
 " Filenames:    bzr_log.*
-" Version:      1.1
+" Version:      1.2.1
+"
+" Thanks:
+"
+"    Gioele Barabucci
+"       for idea of diff highlighting
 
 " For version 5.x: Clear all syntax items.
 " For version 6.x: Quit when a syntax file was already loaded.
@@ -14,13 +19,21 @@
   finish
 endif
 
-syn region bzrRegion   start="^-\{14} This line and the following will be ignored -\{14}$" end="\%$" contains=ALL contains=@NoSpell
+if exists("bzr_highlight_diff")
+  syn include @Diff syntax/diff.vim
+endif
+
 syn match bzrRemoved   "^removed:$" contained
 syn match bzrAdded     "^added:$" contained
 syn match bzrRenamed   "^renamed:$" contained
 syn match bzrModified  "^modified:$" contained
 syn match bzrUnchanged "^unchanged:$" contained
 syn match bzrUnknown   "^unknown:$" contained
+syn cluster Statuses contains=bzrRemoved,bzrAdded,bzrRenamed,bzrModified,bzrUnchanged,bzrUnknown
+if exists("bzr_highlight_diff")
+  syn cluster Statuses add=@Diff
+endif
+syn region bzrRegion   start="^-\{14} This line and the following will be ignored -\{14}$" end="\%$" contains=@NoSpell,@Statuses
 
 " Synchronization.
 syn sync clear
@@ -37,7 +50,6 @@
     command -nargs=+ HiLink hi def link <args>
   endif
 
-  HiLink bzrRegion     Comment
   HiLink bzrRemoved    Constant
   HiLink bzrAdded      Identifier
   HiLink bzrModified   Special
diff -u -r --new-file runtime/syntax.orig/c.vim runtime/syntax/c.vim
--- runtime/syntax.orig/c.vim	2008-03-19 15:44:52.000000000 -0500
+++ runtime/syntax/c.vim	2009-11-28 06:31:38.000000000 -0600
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	C
 " Maintainer:	Bram Moolenaar <Bram@vim.org>
-" Last Change:	2008 Mar 19
+" Last Change:	2009 Nov 17
 
 " Quit when a (custom) syntax file was already loaded
 if exists("b:current_syntax")
@@ -16,8 +16,13 @@
 
 syn keyword	cTodo		contained TODO FIXME XXX
 
+" It's easy to accidentally add a space after a backslash that was intended
+" for line continuation.  Some compilers allow it, which makes it
+" unpredicatable and should be avoided.
+syn match	cBadContinuation contained "\\\s\+$"
+
 " cCommentGroup allows adding matches for special things in comments
-syn cluster	cCommentGroup	contains=cTodo
+syn cluster	cCommentGroup	contains=cTodo,cBadContinuation
 
 " String and Character constants
 " Highlight special characters (those which have a backslash) differently
@@ -265,7 +270,7 @@
 endif
 
 " Accept %: for # (C99)
-syn region	cPreCondit	start="^\s*\(%:\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$" end="//"me=s-1 contains=cComment,cCppString,cCharacter,cCppParen,cParenError,cNumbers,cCommentError,cSpaceError
+syn region	cPreCondit	start="^\s*\(%:\|#\)\s*\(if\|ifdef\|ifndef\|elif\)\>" skip="\\$" end="$"  contains=cComment,cCommentL,cCppString,cCharacter,cCppParen,cParenError,cNumbers,cCommentError,cSpaceError
 syn match	cPreCondit	display "^\s*\(%:\|#\)\s*\(else\|endif\)\>"
 if !exists("c_no_if0")
   if !exists("c_no_if0_fold")
@@ -281,7 +286,7 @@
 syn match	cInclude	display "^\s*\(%:\|#\)\s*include\>\s*["<]" contains=cIncluded
 "syn match cLineSkip	"\\$"
 syn cluster	cPreProcGroup	contains=cPreCondit,cIncluded,cInclude,cDefine,cErrInParen,cErrInBracket,cUserLabel,cSpecial,cOctalZero,cCppOut,cCppOut2,cCppSkip,cFormat,cNumber,cFloat,cOctal,cOctalError,cNumbersCom,cString,cCommentSkip,cCommentString,cComment2String,@cCommentGroup,cCommentStartError,cParen,cBracket,cMulti
-syn region	cDefine		start="^\s*\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" end="//"me=s-1 keepend contains=ALLBUT,@cPreProcGroup,@Spell
+syn region	cDefine		start="^\s*\(%:\|#\)\s*\(define\|undef\)\>" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
 syn region	cPreProc	start="^\s*\(%:\|#\)\s*\(pragma\>\|line\>\|warning\>\|warn\>\|error\>\)" skip="\\$" end="$" keepend contains=ALLBUT,@cPreProcGroup,@Spell
 
 " Highlight User Labels
@@ -359,6 +364,7 @@
 hi def link cComment		Comment
 hi def link cSpecial		SpecialChar
 hi def link cTodo		Todo
+hi def link cBadContinuation	Error
 hi def link cCppSkip		cCppOut
 hi def link cCppOut2		cCppOut
 hi def link cCppOut		Comment
diff -u -r --new-file runtime/syntax.orig/cf.vim runtime/syntax/cf.vim
--- runtime/syntax.orig/cf.vim	2007-11-19 16:27:33.000000000 -0600
+++ runtime/syntax/cf.vim	2010-03-02 09:17:43.000000000 -0600
@@ -1,321 +1,440 @@
 " Vim syntax file
-"    Language: ColdFusion
-"  Maintainer: Toby Woodwark (toby.woodwark+vim@gmail.com)
-" Last Change: 2007 Nov 19
-"   Filenames: *.cfc *.cfm
-"     Version: Macromedia ColdFusion MX 7
-"       Usage: Note that ColdFusion has its own comment syntax
-"              i.e. <!--- --->
-
-" For version 5.x, clear all syntax items.
-" For version 6.x+, quit if a syntax file is already loaded.
-if version < 600
-  syntax clear
-elseif exists("b:current_syntax")
+" Language:	CFML
+" Maintainer:	Toby Woodwark (toby.woodwark+vim@gmail.com)
+" Last Change:	2010-03-02
+" Filenames:	*.cfc *.cfm
+" Version:	Adobe ColdFusion 9
+" Usage:	This file contains both syntax definitions
+" 		and a list of known builtin tags, functions and keywords.
+" 		Refs - 
+" http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WS8f0cc78011fffa71866534d11cdad96e4e-8000.html
+" http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec17324-8000.html
+" TODO: 
+" 		Support the limited array literal and struct literal syntax in CF8+.
+" 		Highlight namespaced tags fom cfimport.
+" 		Complete CF9+ cfscript support.
+" 		Railo support.
+" Options:
+"	d_noinclude_html - set to prevent HTML highlighting.	Use this if you are not working on HTML.
+
+" Quit if a syntax file is already loaded.
+if exists("b:current_syntax")
   finish
 endif
 
-" Use all the stuff from the HTML syntax file.
-" TODO remove this; CFML is not a superset of HTML
-if version < 600
-  source <sfile>:p:h/html.vim
+if exists("d_noinclude_html")
+  " Define alternatives to the HTML syntax file.
+
+  " Copied from html.vim - the rules for matching a CF tag match	those for HTML/SGML.
+  " CFML syntax is more permissive when it comes to superfluous <> chars.
+  syn region	htmlString	contained start=+"+ end=+"+ contains=@htmlPreproc
+  syn region	htmlString	contained start=+'+ end=+'+ contains=@htmlPreproc
+  syn match	htmlValue	contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1	contains=@htmlPreproc
+  " Hacked htmlTag so that it only matches cf tags and not random <> chars.
+  syn region	htmlEndTag	start=+</cf+	end=+>+ contains=htmlTagN,htmlTagError
+  syn region	htmlTag		start=+<\s*cf[^/]+	end=+>+ contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,@htmlPreproc,@htmlArgCluster
+  syn match	htmlTagN	contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName,@htmlTagNameCluster
+  syn match	htmlTagN	contained +</\s*[-a-zA-Z0-9]\++hs=s+2 contains=htmlTagName,@htmlTagNameCluster
+  syn match	htmlTagError	contained "[^>]<"ms=s+1
 else
+  " Use all the stuff from the HTML syntax file.
+  " This means eg HTML comments are highlighted as comments, even if they include cf tags.
   runtime! syntax/html.vim
 endif
 
-syn sync fromstart
-syn sync maxlines=200
-syn case ignore
+syn sync	fromstart
+syn sync	maxlines=200
+syn case	ignore
 
 " Scopes and keywords.
-syn keyword cfScope contained cgi cffile cookie request caller this thistag
-syn keyword cfScope contained cfcatch variables application server session client form url attributes
-syn keyword cfScope contained arguments
-syn keyword cfBool contained yes no true false
+syn keyword	cfScope		contained cgi cffile cookie request caller this thistag
+syn keyword	cfScope		contained cfcatch variables application server session client form url local
+syn keyword	cfScope		contained arguments super cfhttp attributes error
+syn keyword	cfBool		contained yes no true false
 
 " Operator strings.
-syn keyword cfOperator contained xor eqv and or lt le lte gt ge gte equal eq neq not is mod contains
-syn match cfOperatorMatch contained "\<does\_s\+not\_s\+contain\>"
-syn match cfOperatorMatch contained "\<\(greater\|less\)\_s\+than\(\_s\+or\_s\+equal\_s\+to\)\?\>"
-syn match cfOperatorMatch contained "[\+\-\*\/\\\^\&][\+\-\*\/\\\^\&]\@!"
-syn cluster cfOperatorCluster contains=cfOperator,cfOperatorMatch
+" ColdFusion <=7:
+syn keyword	cfOperator		contained xor eqv and or lt le lte gt ge gte equal eq neq not is mod contains
+syn match	cfOperatorMatch		contained "+" 
+syn match	cfOperatorMatch		contained "\-"
+syn match	cfOperatorMatch		contained "[\*\/\\\^\&][\+\-\*\/\\\^\&]\@!"
+syn match	cfOperatorMatch		contained "\<\(not\_s\+\)\?equal\>"
+syn match	cfOperatorMatch		contained "\<does\_s\+not\_s\+contain\>"
+syn match	cfOperatorMatch		contained "\<\(greater\|less\)\_s\+than\(\_s\+or\_s\+equal\_s\+to\)\?\>"
+" ColdFusion 8:
+syn keyword	cfOperator		contained imp
+syn match	cfOperatorMatch		contained "[?%:!]"
+syn match	cfOperatorMatch		contained "[\+\-\*\/\&]=" 
+syn match	cfOperatorMatch		contained "++"
+syn match	cfOperatorMatch		contained "--"
+syn match	cfOperatorMatch	 	contained "&&"
+syn match	cfOperatorMatch	 	contained "||"
+
+syn cluster	cfOperatorCluster	contains=cfOperator,cfOperatorMatch
+
+" Custom tags called with the <cf_xxx> syntax.
+syn match	cfCustomTagName		contained "\<cf_[a-zA-Z0-9_]\+\>"
+" (TODO match	namespaced tags imported using cfimport, similarly.)
 
 " Tag names.
-syn keyword cfTagName contained cfabort cfapplet cfapplication cfargument cfassociate
-syn keyword cfTagName contained cfbreak cfcache cfcalendar cfcase cfcatch
-syn keyword cfTagName contained cfchart cfchartdata cfchartseries cfcol cfcollection
-syn keyword cfTagName contained cfcomponent cfcontent cfcookie cfdefaultcase cfdirectory
-syn keyword cfTagName contained cfdocument cfdocumentitem cfdocumentsection cfdump cfelse
-syn keyword cfTagName contained cfelseif cferror cfexecute cfexit cffile cfflush cfform
-syn keyword cfTagName contained cfformgroup cfformitem cfftp cffunction cfgraph cfgraphdata
-syn keyword cfTagName contained cfgrid cfgridcolumn cfgridrow cfgridupdate cfheader
-syn keyword cfTagName contained cfhtmlhead cfhttp cfhttpparam cfif cfimport
-syn keyword cfTagName contained cfinclude cfindex cfinput cfinsert cfinvoke cfinvokeargument
-syn keyword cfTagName contained cfldap cflocation cflock cflog cflogin cfloginuser cflogout
-syn keyword cfTagName contained cfloop cfmail cfmailparam cfmailpart cfmodule
-syn keyword cfTagName contained cfNTauthenticate cfobject cfobjectcache cfoutput cfparam
-syn keyword cfTagName contained cfpop cfprocessingdirective cfprocparam cfprocresult
-syn keyword cfTagName contained cfproperty cfquery cfqueryparam cfregistry cfreport
-syn keyword cfTagName contained cfreportparam cfrethrow cfreturn cfsavecontent cfschedule
-syn keyword cfTagName contained cfscript cfsearch cfselect cfservlet cfservletparam cfset
-syn keyword cfTagName contained cfsetting cfsilent cfslider cfstoredproc cfswitch cftable
-syn keyword cfTagName contained cftextarea cftextinput cfthrow cftimer cftrace cftransaction
-syn keyword cfTagName contained cftree cftreeitem cftry cfupdate cfwddx cfxml
-
-" Tag parameters.
-syn keyword cfArg contained abort accept access accessible action addnewline addtoken
-syn keyword cfArg contained agentname align appendkey appletsource application
-syn keyword cfArg contained applicationtimeout applicationtoken archive
-syn keyword cfArg contained argumentcollection arguments asciiextensionlist
-syn keyword cfArg contained attachmentpath attributecollection attributes autowidth
-syn keyword cfArg contained backgroundvisible basetag bcc bgcolor bind bindingname
-syn keyword cfArg contained blockfactor body bold border branch cachedafter cachedwithin
-syn keyword cfArg contained casesensitive category categorytree cc cfsqltype charset
-syn keyword cfArg contained chartheight chartwidth checked class clientmanagement
-syn keyword cfArg contained clientstorage codebase colheaderalign colheaderbold
-syn keyword cfArg contained colheaderfont colheaderfontsize colheaderitalic colheaders
-syn keyword cfArg contained colheadertextcolor collection colorlist colspacing columns
-syn keyword cfArg contained completepath component condition connection contentid
-syn keyword cfArg contained context contextbytes contexthighlightbegin
-syn keyword cfArg contained contexthighlightend contextpassages cookiedomain criteria
-syn keyword cfArg contained custom1 custom2 custom3 custom4 data dataalign
-syn keyword cfArg contained databackgroundcolor datacollection datasource daynames
-syn keyword cfArg contained dbname dbserver dbtype dbvarname debug default delete
-syn keyword cfArg contained deletebutton deletefile delimiter delimiters description
-syn keyword cfArg contained destination detail directory disabled display displayname
-syn keyword cfArg contained disposition dn domain editable enablecab enablecfoutputonly
-syn keyword cfArg contained enabled encoded encryption enctype enddate endrange endtime
-syn keyword cfArg contained entry errorcode exception existing expand expires expireurl
-syn keyword cfArg contained expression extendedinfo extends extensions external
-syn keyword cfArg contained failifexists failto file filefield filename filter
-syn keyword cfArg contained firstdayofweek firstrowasheaders fixnewline font fontbold
-syn keyword cfArg contained fontembed fontitalic fontsize foregroundcolor format
-syn keyword cfArg contained formfields formula from generateuniquefilenames getasbinary
-syn keyword cfArg contained grid griddataalign gridlines groovecolor group
-syn keyword cfArg contained groupcasesensitive header headeralign headerbold headerfont
-syn keyword cfArg contained headerfontsize headeritalic headerlines headertextcolor
-syn keyword cfArg contained height highlighthref hint href hrefkey hscroll hspace html
-syn keyword cfArg contained htmltable id idletimeout img imgopen imgstyle index inline
-syn keyword cfArg contained input insert insertbutton interval isolation italic item
-syn keyword cfArg contained itemcolumn key keyonly label labelformat language list
-syn keyword cfArg contained listgroups locale localfile log loginstorage lookandfeel
-syn keyword cfArg contained mailerid mailto marginbottom marginleft marginright
-syn keyword cfArg contained margintop markersize markerstyle mask max maxlength maxrows
-syn keyword cfArg contained message messagenumber method mimeattach mimetype min mode
-syn keyword cfArg contained modifytype monthnames multipart multiple name nameconflict
-syn keyword cfArg contained namespace new newdirectory notsupported null numberformat
-syn keyword cfArg contained object omit onblur onchange onclick onerror onfocus
-syn keyword cfArg contained onkeydown onkeyup onload onmousedown onmouseup onreset
-syn keyword cfArg contained onsubmit onvalidate operation orderby orientation output
-syn keyword cfArg contained outputfile overwrite ownerpassword pageencoding pageheight
-syn keyword cfArg contained pagetype pagewidth paintstyle param_1 param_2 param_3
-syn keyword cfArg contained param_4 param_5 param_6 param_7 param_8 param_9 parent
-syn keyword cfArg contained parrent passive passthrough password path pattern
-syn keyword cfArg contained permissions picturebar pieslicestyle port porttypename
-syn keyword cfArg contained prefix preloader preservedata previouscriteria procedure
-syn keyword cfArg contained protocol provider providerdsn proxybypass proxypassword
-syn keyword cfArg contained proxyport proxyserver proxyuser publish query queryasroot
-syn keyword cfArg contained queryposition range rebind recurse redirect referral
-syn keyword cfArg contained refreshlabel remotefile replyto report requesttimeout
-syn keyword cfArg contained required reset resoleurl resolveurl result resultset
-syn keyword cfArg contained retrycount returnasbinary returncode returntype
-syn keyword cfArg contained returnvariable roles rotated rowheaderalign rowheaderbold
-syn keyword cfArg contained rowheaderfont rowheaderfontsize rowheaderitalic rowheaders
-syn keyword cfArg contained rowheadertextcolor rowheaderwidth rowheight scale scalefrom
-syn keyword cfArg contained scaleto scope scriptprotect scriptsrc secure securitycontext
-syn keyword cfArg contained select selectcolor selected selecteddate selectedindex
-syn keyword cfArg contained selectmode separator seriescolor serieslabel seriesplacement
-syn keyword cfArg contained server serviceport serviceportname sessionmanagement
-syn keyword cfArg contained sessiontimeout setclientcookies setcookie setdomaincookies
-syn keyword cfArg contained show3d showborder showdebugoutput showerror showlegend
-syn keyword cfArg contained showmarkers showxgridlines showygridlines size skin sort
-syn keyword cfArg contained sortascendingbutton sortcontrol sortdescendingbutton
-syn keyword cfArg contained sortxaxis source spoolenable sql src srcfile start startdate
-syn keyword cfArg contained startrange startrow starttime status statuscode statustext
-syn keyword cfArg contained step stoponerror style subject suggestions
-syn keyword cfArg contained suppresswhitespace tablename tableowner tablequalifier
-syn keyword cfArg contained taglib target task template text textcolor textqualifier
-syn keyword cfArg contained throwonerror throwonerror throwonfailure throwontimeout
-syn keyword cfArg contained timeout timespan tipbgcolor tipstyle title to tooltip
-syn keyword cfArg contained toplevelvariable transfermode type uid unit url urlpath
-syn keyword cfArg contained useragent username userpassword usetimezoneinfo validate
-syn keyword cfArg contained validateat value valuecolumn values valuesdelimiter
-syn keyword cfArg contained valuesdisplay var variable vertical visible vscroll vspace
-syn keyword cfArg contained webservice width wmode wraptext wsdlfile xaxistitle
-syn keyword cfArg contained xaxistype xoffset yaxistitle yaxistype yoffset
-
-" ColdFusion Functions.
-syn keyword cfFunctionName contained ACos ASin Abs AddSOAPRequestHeader AddSOAPResponseHeader
-syn keyword cfFunctionName contained ArrayAppend ArrayAvg ArrayClear ArrayDeleteAt ArrayInsertAt
-syn keyword cfFunctionName contained ArrayIsEmpty ArrayLen ArrayMax ArrayMin ArrayNew
-syn keyword cfFunctionName contained ArrayPrepend ArrayResize ArraySet ArraySort ArraySum
-syn keyword cfFunctionName contained ArraySwap ArrayToList Asc Atn AuthenticatedContext
-syn keyword cfFunctionName contained AuthenticatedUser BinaryDecode BinaryEncode BitAnd
-syn keyword cfFunctionName contained BitMaskClear BitMaskRead BitMaskSet BitNot BitOr BitSHLN
-syn keyword cfFunctionName contained BitSHRN BitXor CJustify Ceiling CharsetDecode CharsetEncode
-syn keyword cfFunctionName contained Chr Compare CompareNoCase Cos CreateDate CreateDateTime
-syn keyword cfFunctionName contained CreateODBCDate CreateODBCDateTime CreateODBCTime
-syn keyword cfFunctionName contained CreateObject CreateTime CreateTimeSpan CreateUUID DE DateAdd
-syn keyword cfFunctionName contained DateCompare DateConvert DateDiff DateFormat DatePart Day
-syn keyword cfFunctionName contained DayOfWeek DayOfWeekAsString DayOfYear DaysInMonth DaysInYear
-syn keyword cfFunctionName contained DecimalFormat DecrementValue Decrypt DecryptBinary
-syn keyword cfFunctionName contained DeleteClientVariable DirectoryExists DollarFormat Duplicate
-syn keyword cfFunctionName contained Encrypt EncryptBinary Evaluate Exp ExpandPath FileExists
-syn keyword cfFunctionName contained Find FindNoCase FindOneOf FirstDayOfMonth Fix FormatBaseN
-syn keyword cfFunctionName contained GenerateSecretKey GetAuthUser GetBaseTagData GetBaseTagList
-syn keyword cfFunctionName contained GetBaseTemplatePath GetClientVariablesList GetContextRoot
-syn keyword cfFunctionName contained GetCurrentTemplatePath GetDirectoryFromPath GetEncoding
-syn keyword cfFunctionName contained GetException GetFileFromPath GetFunctionList
-syn keyword cfFunctionName contained GetGatewayHelper GetHttpRequestData GetHttpTimeString
-syn keyword cfFunctionName contained GetLocalHostIP
-syn keyword cfFunctionName contained GetLocale GetLocaleDisplayName GetMetaData GetMetricData
-syn keyword cfFunctionName contained GetPageContext GetProfileSections GetProfileString
-syn keyword cfFunctionName contained GetSOAPRequest GetSOAPRequestHeader GetSOAPResponse
-syn keyword cfFunctionName contained GetSOAPResponseHeader GetTempDirectory GetTempFile
-syn keyword cfFunctionName contained GetTickCount GetTimeZoneInfo GetToken
-syn keyword cfFunctionName contained HTMLCodeFormat HTMLEditFormat Hash Hour IIf IncrementValue
-syn keyword cfFunctionName contained InputBaseN Insert Int IsArray IsAuthenticated IsAuthorized
-syn keyword cfFunctionName contained IsBinary IsBoolean IsCustomFunction IsDate IsDebugMode
-syn keyword cfFunctionName contained IsDefined
-syn keyword cfFunctionName contained IsLeapYear IsLocalHost IsNumeric
-syn keyword cfFunctionName contained IsNumericDate IsObject IsProtected IsQuery IsSOAPRequest
-syn keyword cfFunctionName contained IsSimpleValue IsStruct IsUserInRole IsValid IsWDDX IsXML
-syn keyword cfFunctionName contained IsXmlAttribute IsXmlDoc IsXmlElem IsXmlNode IsXmlRoot
-syn keyword cfFunctionName contained JSStringFormat JavaCast LCase LJustify LSCurrencyFormat
-syn keyword cfFunctionName contained LSDateFormat LSEuroCurrencyFormat LSIsCurrency LSIsDate
-syn keyword cfFunctionName contained LSIsNumeric LSNumberFormat LSParseCurrency LSParseDateTime
-syn keyword cfFunctionName contained LSParseEuroCurrency LSParseNumber LSTimeFormat LTrim Left
-syn keyword cfFunctionName contained Len ListAppend ListChangeDelims ListContains
-syn keyword cfFunctionName contained ListContainsNoCase ListDeleteAt ListFind ListFindNoCase
-syn keyword cfFunctionName contained ListFirst ListGetAt ListInsertAt ListLast ListLen
-syn keyword cfFunctionName contained ListPrepend ListQualify ListRest ListSetAt ListSort
-syn keyword cfFunctionName contained ListToArray ListValueCount ListValueCountNoCase Log Log10
-syn keyword cfFunctionName contained Max Mid Min Minute Month MonthAsString Now NumberFormat
-syn keyword cfFunctionName contained ParagraphFormat ParseDateTime Pi
-syn keyword cfFunctionName contained PreserveSingleQuotes Quarter QueryAddColumn QueryAddRow
-syn keyword cfFunctionName contained QueryNew QuerySetCell QuotedValueList REFind REFindNoCase
-syn keyword cfFunctionName contained REReplace REReplaceNoCase RJustify RTrim Rand RandRange
-syn keyword cfFunctionName contained Randomize ReleaseComObject RemoveChars RepeatString Replace
-syn keyword cfFunctionName contained ReplaceList ReplaceNoCase Reverse Right Round Second
-syn keyword cfFunctionName contained SendGatewayMessage SetEncoding SetLocale SetProfileString
-syn keyword cfFunctionName contained SetVariable Sgn Sin SpanExcluding SpanIncluding Sqr StripCR
-syn keyword cfFunctionName contained StructAppend StructClear StructCopy StructCount StructDelete
-syn keyword cfFunctionName contained StructFind StructFindKey StructFindValue StructGet
-syn keyword cfFunctionName contained StructInsert StructIsEmpty StructKeyArray StructKeyExists
-syn keyword cfFunctionName contained StructKeyList StructNew StructSort StructUpdate Tan
-syn keyword cfFunctionName contained TimeFormat ToBase64 ToBinary ToScript ToString Trim UCase
-syn keyword cfFunctionName contained URLDecode URLEncodedFormat URLSessionFormat Val ValueList
-syn keyword cfFunctionName contained Week Wrap WriteOutput XmlChildPos XmlElemNew XmlFormat
-syn keyword cfFunctionName contained XmlGetNodeType XmlNew XmlParse XmlSearch XmlTransform
-syn keyword cfFunctionName contained XmlValidate Year YesNoFormat
-
-" Deprecated tags and functions.
-syn keyword cfDeprecated contained cfauthenticate cfimpersonate cfgraph cfgraphdata
-syn keyword cfDeprecated contained cfservlet cfservletparam cftextinput
-syn keyword cfDeprecated contained GetK2ServerDocCount GetK2ServerDocCountLimit GetTemplatePath
-syn keyword cfDeprecated contained IsK2ServerABroker IsK2ServerDocCountExceeded IsK2ServerOnline
-syn keyword cfDeprecated contained ParameterExists
-
-syn cluster htmlTagNameCluster add=cfTagName
-syn cluster htmlArgCluster add=cfArg,cfHashRegion,cfScope
-syn cluster htmlPreproc add=cfHashRegion
+" ColdFusion <=7:
+syn keyword	cfTagName	contained cfabort cfapplet cfapplication cfargument cfassociate
+syn keyword	cfTagName	contained cfbreak cfcache cfcalendar cfcase cfcatch
+syn keyword	cfTagName	contained cfchart cfchartdata cfchartseries cfcol cfcollection
+syn keyword	cfTagName	contained cfcomponent cfcontent cfcookie cfdefaultcase cfdirectory
+syn keyword	cfTagName	contained cfdocument cfdocumentitem cfdocumentsection cfdump cfelse
+syn keyword	cfTagName	contained cfelseif cferror cfexecute cfexit cffile cfflush cfform
+syn keyword	cfTagName	contained cfformgroup cfformitem cfftp cffunction
+syn keyword	cfTagName	contained cfgrid cfgridcolumn cfgridrow cfgridupdate cfheader
+syn keyword	cfTagName	contained cfhtmlhead cfhttp cfhttpparam cfif cfimport
+syn keyword	cfTagName	contained cfinclude cfindex cfinput cfinsert cfinvoke cfinvokeargument
+syn keyword	cfTagName	contained cfldap cflocation cflock cflog cflogin cfloginuser cflogout
+syn keyword	cfTagName	contained cfloop cfmail cfmailparam cfmailpart cfmodule
+syn keyword	cfTagName	contained cfNTauthenticate cfobject cfobjectcache cfoutput cfparam
+syn keyword	cfTagName	contained cfpop cfprocessingdirective cfprocparam cfprocresult
+syn keyword	cfTagName	contained cfproperty cfquery cfqueryparam cfregistry cfreport
+syn keyword	cfTagName	contained cfreportparam cfrethrow cfreturn cfsavecontent cfschedule
+syn keyword	cfTagName	contained cfscript cfsearch cfselect cfservletparam cfset
+syn keyword	cfTagName	contained cfsetting cfsilent cfslider cfstoredproc cfswitch cftable
+syn keyword	cfTagName	contained cftextarea cftextinput cfthrow cftimer cftrace cftransaction
+syn keyword	cfTagName	contained cftree cftreeitem cftry cfupdate cfwddx cfxml
+" ColdFusion 8:
+syn keyword	cfTagName	contained cfajaximport cfajaxproxy cfdbinfo cfdiv cfexchangecalendar
+syn keyword	cfTagName	contained cfexchangeconnection cfexchangecontact cfexchangefilter 
+syn keyword	cfTagName	contained cfexchangemail cfexchangetask cffeed
+syn keyword	cfTagName	contained cfinterface cflayout cflayoutarea cfmenu cfmenuitem
+syn keyword	cfTagName	contained cfpdf cfpdfform cfpdfformparam cfpdfparam cfpdfsubform cfpod
+syn keyword	cfTagName	contained cfpresentation cfpresentationslide cfpresenter cfprint
+syn keyword	cfTagName	contained cfsprydataset cfthread cftooltip cfwindow cfzip cfzipparam
+" ColdFusion 9:
+syn keyword	cfTagName	contained cfcontinue cffileupload cffinally
+syn keyword	cfTagName	contained cfimage cfimap 
+syn keyword	cfTagName	contained cfmap cfmapitem cfmediaplayer cfmessagebox
+syn keyword	cfTagName	contained cfprocparam cfprogressbar
+syn keyword	cfTagName	contained cfsharepoint cfspreadsheet
+
+" Tag attributes.
+" XXX Not updated for ColdFusion 8/9.
+" These are becoming a headache to maintain, so might be removed.
+syn keyword	cfArg		contained abort accept access accessible action addnewline addtoken
+syn keyword	cfArg		contained agentname align appendkey appletsource application
+syn keyword	cfArg		contained applicationtimeout applicationtoken archive
+syn keyword	cfArg		contained argumentcollection arguments asciiextensionlist
+syn keyword	cfArg		contained attachmentpath attributecollection attributes autowidth
+syn keyword	cfArg		contained backgroundvisible basetag bcc bgcolor bind bindingname
+syn keyword	cfArg		contained blockfactor body bold border branch cachedafter cachedwithin
+syn keyword	cfArg		contained casesensitive category categorytree cc cfsqltype charset
+syn keyword	cfArg		contained chartheight chartwidth checked class clientmanagement
+syn keyword	cfArg		contained clientstorage codebase colheaderalign colheaderbold
+syn keyword	cfArg		contained colheaderfont colheaderfontsize colheaderitalic colheaders
+syn keyword	cfArg		contained colheadertextcolor collection colorlist colspacing columns
+syn keyword	cfArg		contained completepath component condition connection contentid
+syn keyword	cfArg		contained context contextbytes contexthighlightbegin
+syn keyword	cfArg		contained contexthighlightend contextpassages cookiedomain criteria
+syn keyword	cfArg		contained custom1 custom2 custom3 custom4 data dataalign
+syn keyword	cfArg		contained databackgroundcolor datacollection datasource daynames
+syn keyword	cfArg		contained dbname dbserver dbtype dbvarname debug default delete
+syn keyword	cfArg		contained deletebutton deletefile delimiter delimiters description
+syn keyword	cfArg		contained destination detail directory disabled display displayname
+syn keyword	cfArg		contained disposition dn domain editable enablecab enablecfoutputonly
+syn keyword	cfArg		contained enabled encoded encryption enctype enddate endrange endtime
+syn keyword	cfArg		contained entry errorcode exception existing expand expires expireurl
+syn keyword	cfArg		contained expression extendedinfo extends extensions external
+syn keyword	cfArg		contained failifexists failto file filefield filename filter
+syn keyword	cfArg		contained firstdayofweek firstrowasheaders fixnewline font fontbold
+syn keyword	cfArg		contained fontembed fontitalic fontsize foregroundcolor format
+syn keyword	cfArg		contained formfields formula from generateuniquefilenames getasbinary
+syn keyword	cfArg		contained grid griddataalign gridlines groovecolor group
+syn keyword	cfArg		contained groupcasesensitive header headeralign headerbold headerfont
+syn keyword	cfArg		contained headerfontsize headeritalic headerlines headertextcolor
+syn keyword	cfArg		contained height highlighthref hint href hrefkey hscroll hspace html
+syn keyword	cfArg		contained htmltable id idletimeout img imgopen imgstyle index inline
+syn keyword	cfArg		contained input insert insertbutton interval isolation italic item
+syn keyword	cfArg		contained itemcolumn key keyonly label labelformat language list
+syn keyword	cfArg		contained listgroups locale localfile log loginstorage lookandfeel
+syn keyword	cfArg		contained mailerid mailto marginbottom marginleft marginright
+syn keyword	cfArg		contained margintop markersize markerstyle mask max maxlength maxrows
+syn keyword	cfArg		contained message messagenumber method mimeattach mimetype min mode
+syn keyword	cfArg		contained modifytype monthnames multipart multiple name nameconflict
+syn keyword	cfArg		contained namespace new newdirectory notsupported null numberformat
+syn keyword	cfArg		contained object omit onblur onchange onclick onerror onfocus
+syn keyword	cfArg		contained onkeydown onkeyup onload onmousedown onmouseup onreset
+syn keyword	cfArg		contained onsubmit onvalidate operation orderby orientation output
+syn keyword	cfArg		contained outputfile overwrite ownerpassword pageencoding pageheight
+syn keyword	cfArg		contained pagetype pagewidth paintstyle param_1 param_2 param_3
+syn keyword	cfArg		contained param_4 param_5 param_6 param_7 param_8 param_9 parent
+syn keyword	cfArg		contained parrent passive passthrough password path pattern
+syn keyword	cfArg		contained permissions picturebar pieslicestyle port porttypename
+syn keyword	cfArg		contained prefix preloader preservedata previouscriteria procedure
+syn keyword	cfArg		contained protocol provider providerdsn proxybypass proxypassword
+syn keyword	cfArg		contained proxyport proxyserver proxyuser publish query queryasroot
+syn keyword	cfArg		contained queryposition range rebind recurse redirect referral
+syn keyword	cfArg		contained refreshlabel remotefile replyto report requesttimeout
+syn keyword	cfArg		contained required reset resoleurl resolveurl result resultset
+syn keyword	cfArg		contained retrycount returnasbinary returncode returntype
+syn keyword	cfArg		contained returnvariable roles rotated rowheaderalign rowheaderbold
+syn keyword	cfArg		contained rowheaderfont rowheaderfontsize rowheaderitalic rowheaders
+syn keyword	cfArg		contained rowheadertextcolor rowheaderwidth rowheight scale scalefrom
+syn keyword	cfArg		contained scaleto scope scriptprotect scriptsrc secure securitycontext
+syn keyword	cfArg		contained select selectcolor selected selecteddate selectedindex
+syn keyword	cfArg		contained selectmode separator seriescolor serieslabel seriesplacement
+syn keyword	cfArg		contained server serviceport serviceportname sessionmanagement
+syn keyword	cfArg		contained sessiontimeout setclientcookies setcookie setdomaincookies
+syn keyword	cfArg		contained show3d showborder showdebugoutput showerror showlegend
+syn keyword	cfArg		contained showmarkers showxgridlines showygridlines size skin sort
+syn keyword	cfArg		contained sortascendingbutton sortcontrol sortdescendingbutton
+syn keyword	cfArg		contained sortxaxis source spoolenable sql src srcfile start startdate
+syn keyword	cfArg		contained startrange startrow starttime status statuscode statustext
+syn keyword	cfArg		contained step stoponerror style subject suggestions
+syn keyword	cfArg		contained suppresswhitespace tablename tableowner tablequalifier
+syn keyword	cfArg		contained taglib target task template text textcolor textqualifier
+syn keyword	cfArg		contained throwonerror throwonerror throwonfailure throwontimeout
+syn keyword	cfArg		contained timeout timespan tipbgcolor tipstyle title to tooltip
+syn keyword	cfArg		contained toplevelvariable transfermode type uid unit url urlpath
+syn keyword	cfArg		contained useragent username userpassword usetimezoneinfo validate
+syn keyword	cfArg		contained validateat value valuecolumn values valuesdelimiter
+syn keyword	cfArg		contained valuesdisplay var variable vertical visible vscroll vspace
+syn keyword	cfArg		contained webservice width wmode wraptext wsdlfile xaxistitle
+syn keyword	cfArg		contained xaxistype xoffset yaxistitle yaxistype yoffset
+
+" Functions.
+" ColdFusion <=7:
+syn keyword	cfFunctionName		contained ACos ASin Abs AddSOAPRequestHeader AddSOAPResponseHeader
+syn keyword	cfFunctionName		contained ArrayAppend ArrayAvg ArrayClear ArrayDeleteAt ArrayInsertAt
+syn keyword	cfFunctionName		contained ArrayIsEmpty ArrayLen ArrayMax ArrayMin ArrayNew
+syn keyword	cfFunctionName		contained ArrayPrepend ArrayResize ArraySet ArraySort ArraySum
+syn keyword	cfFunctionName		contained ArraySwap ArrayToList Asc Atn AuthenticatedContext
+syn keyword	cfFunctionName		contained AuthenticatedUser BinaryDecode BinaryEncode BitAnd
+syn keyword	cfFunctionName		contained BitMaskClear BitMaskRead BitMaskSet BitNot BitOr BitSHLN
+syn keyword	cfFunctionName		contained BitSHRN BitXor CJustify Ceiling CharsetDecode CharsetEncode
+syn keyword	cfFunctionName		contained Chr Compare CompareNoCase Cos CreateDate CreateDateTime
+syn keyword	cfFunctionName		contained CreateODBCDate CreateODBCDateTime CreateODBCTime
+syn keyword	cfFunctionName		contained CreateObject CreateTime CreateTimeSpan CreateUUID DE DateAdd
+syn keyword	cfFunctionName		contained DateCompare DateConvert DateDiff DateFormat DatePart Day
+syn keyword	cfFunctionName		contained DayOfWeek DayOfWeekAsString DayOfYear DaysInMonth DaysInYear
+syn keyword	cfFunctionName		contained DecimalFormat DecrementValue Decrypt DecryptBinary
+syn keyword	cfFunctionName		contained DeleteClientVariable DirectoryExists DollarFormat Duplicate
+syn keyword	cfFunctionName		contained Encrypt EncryptBinary Evaluate Exp ExpandPath FileExists
+syn keyword	cfFunctionName		contained Find FindNoCase FindOneOf FirstDayOfMonth Fix FormatBaseN
+syn keyword	cfFunctionName		contained GenerateSecretKey GetAuthUser GetBaseTagData GetBaseTagList
+syn keyword	cfFunctionName		contained GetBaseTemplatePath GetClientVariablesList GetContextRoot
+syn keyword	cfFunctionName		contained GetCurrentTemplatePath GetDirectoryFromPath GetEncoding
+syn keyword	cfFunctionName		contained GetException GetFileFromPath GetFunctionList
+syn keyword	cfFunctionName		contained GetGatewayHelper GetHttpRequestData GetHttpTimeString
+syn keyword	cfFunctionName		contained GetLocalHostIP
+syn keyword	cfFunctionName		contained GetLocale GetLocaleDisplayName GetMetaData GetMetricData
+syn keyword	cfFunctionName		contained GetPageContext GetProfileSections GetProfileString
+syn keyword	cfFunctionName		contained GetSOAPRequest GetSOAPRequestHeader GetSOAPResponse
+syn keyword	cfFunctionName		contained GetSOAPResponseHeader GetTempDirectory GetTempFile
+syn keyword	cfFunctionName		contained GetTickCount GetTimeZoneInfo GetToken
+syn keyword	cfFunctionName		contained HTMLCodeFormat HTMLEditFormat Hash Hour IIf IncrementValue
+syn keyword	cfFunctionName		contained InputBaseN Insert Int IsArray IsAuthenticated IsAuthorized
+syn keyword	cfFunctionName		contained IsBinary IsBoolean IsCustomFunction IsDate IsDebugMode
+syn keyword	cfFunctionName		contained IsDefined
+syn keyword	cfFunctionName		contained IsLeapYear IsLocalHost IsNumeric
+syn keyword	cfFunctionName		contained IsNumericDate IsObject IsProtected IsQuery IsSOAPRequest
+syn keyword	cfFunctionName		contained IsSimpleValue IsStruct IsUserInRole IsValid IsWDDX IsXML
+syn keyword	cfFunctionName		contained IsXmlAttribute IsXmlDoc IsXmlElem IsXmlNode IsXmlRoot
+syn keyword	cfFunctionName		contained JSStringFormat JavaCast LCase LJustify LSCurrencyFormat
+syn keyword	cfFunctionName		contained LSDateFormat LSEuroCurrencyFormat LSIsCurrency LSIsDate
+syn keyword	cfFunctionName		contained LSIsNumeric LSNumberFormat LSParseCurrency LSParseDateTime
+syn keyword	cfFunctionName		contained LSParseEuroCurrency LSParseNumber LSTimeFormat LTrim Left
+syn keyword	cfFunctionName		contained Len ListAppend ListChangeDelims ListContains
+syn keyword	cfFunctionName		contained ListContainsNoCase ListDeleteAt ListFind ListFindNoCase
+syn keyword	cfFunctionName		contained ListFirst ListGetAt ListInsertAt ListLast ListLen
+syn keyword	cfFunctionName		contained ListPrepend ListQualify ListRest ListSetAt ListSort
+syn keyword	cfFunctionName		contained ListToArray ListValueCount ListValueCountNoCase Log Log10
+syn keyword	cfFunctionName		contained Max Mid Min Minute Month MonthAsString Now NumberFormat
+syn keyword	cfFunctionName		contained ParagraphFormat ParseDateTime Pi
+syn keyword	cfFunctionName		contained PreserveSingleQuotes Quarter QueryAddColumn QueryAddRow
+syn keyword	cfFunctionName		contained QueryNew QuerySetCell QuotedValueList REFind REFindNoCase
+syn keyword	cfFunctionName		contained REReplace REReplaceNoCase RJustify RTrim Rand RandRange
+syn keyword	cfFunctionName		contained Randomize ReleaseComObject RemoveChars RepeatString Replace
+syn keyword	cfFunctionName		contained ReplaceList ReplaceNoCase Reverse Right Round Second
+syn keyword	cfFunctionName		contained SendGatewayMessage SetEncoding SetLocale SetProfileString
+syn keyword	cfFunctionName		contained SetVariable Sgn Sin SpanExcluding SpanIncluding Sqr StripCR
+syn keyword	cfFunctionName		contained StructAppend StructClear StructCopy StructCount StructDelete
+syn keyword	cfFunctionName		contained StructFind StructFindKey StructFindValue StructGet
+syn keyword	cfFunctionName		contained StructInsert StructIsEmpty StructKeyArray StructKeyExists
+syn keyword	cfFunctionName		contained StructKeyList StructNew StructSort StructUpdate Tan
+syn keyword	cfFunctionName		contained TimeFormat ToBase64 ToBinary ToScript ToString Trim UCase
+syn keyword	cfFunctionName		contained URLDecode URLEncodedFormat URLSessionFormat Val ValueList
+syn keyword	cfFunctionName		contained Week Wrap WriteOutput XmlChildPos XmlElemNew XmlFormat
+syn keyword	cfFunctionName		contained XmlGetNodeType XmlNew XmlParse XmlSearch XmlTransform
+syn keyword	cfFunctionName		contained XmlValidate Year YesNoFormat
+" ColdFusion 8:
+syn keyword	cfFunctionName		contained AjaxLink AjaxOnLoad ArrayIsDefined BinaryDecode BinaryEncode CharsetDecode CharsetEncode 
+syn keyword	cfFunctionName		contained DecryptBinary DeserializeJSON DotNetToCFType EncryptBinary FileClose FileCopy FileDelete
+syn keyword	cfFunctionName		contained FileIsEOF FileMove FileOpen FileRead FileReadBinary FileReadLine FileSetAccessMode FileSetAttribute
+syn keyword	cfFunctionName		contained FileSetLastModified FileWrite GenerateSecretKey GetGatewayHelper GetAuthUser GetComponentMetaData
+syn keyword	cfFunctionName		contained GetContextRoot GetEncoding GetFileInfo GetLocaleDisplayName GetLocalHostIP GetMetaData
+syn keyword	cfFunctionName		contained GetPageContext GetPrinterInfo GetProfileSections GetReadableImageFormats GetSOAPRequest
+syn keyword	cfFunctionName		contained GetSOAPRequestHeader GetSOAPResponse GetSOAPResponseHeader GetUserRoles GetWriteableImageFormats
+syn keyword	cfFunctionName		contained ImageAddBorder ImageBlur ImageClearRect ImageCopy ImageCrop ImageDrawArc ImageDrawBeveledRect
+syn keyword	cfFunctionName		contained ImageDrawCubicCurve ImageDrawPoint ImageDrawLine ImageDrawLines ImageDrawOval
+syn keyword	cfFunctionName		contained ImageDrawQuadraticCurve ImageDrawRect ImageDrawRoundRect ImageDrawText ImageFlip ImageGetBlob
+syn keyword	cfFunctionName		contained ImageGetBufferedImage ImageGetEXIFMetadata ImageGetEXIFTag ImageGetHeight ImageGetIPTCMetadata
+syn keyword	cfFunctionName		contained ImageGetIPTCTag ImageGetWidth ImageGrayscale ImageInfo ImageNegative ImageNew ImageOverlay
+syn keyword	cfFunctionName		contained ImagePaste ImageRead ImageReadBase64 ImageResize ImageRotate ImageRotateDrawingAxis ImageScaleToFit 
+" ColdFusion 9:
+syn keyword	cfFunctionName		contained ApplicationStop ArrayContains ArrayDelete ArrayFind ArrayFindNoCase IsSpreadsheetFile
+syn keyword	cfFunctionName		contained IsSpreadsheetObject FileSkipBytes Location ObjectLoad SpreadsheetFormatColumn
+syn keyword	cfFunctionName		contained SpreadsheetFormatColumns SpreadsheetFormatRow SpreadsheetFormatRows SpreadsheetGetCellComment
+syn keyword	cfFunctionName		contained CacheGetAllIds CacheGetMetadata CacheGetProperties CacheGet CachePut ObjectSave ORMClearSession
+syn keyword	cfFunctionName		contained ORMCloseSession ORMEvictQueries ORMEvictCollection SpreadsheetGetCellFormula SpreadsheetGetCellValue
+syn keyword	cfFunctionName		contained SpreadsheetInfo SpreadsheetMergeCells SpreadsheetNew CacheRemove CacheSetProperties DirectoryCreate
+syn keyword	cfFunctionName		contained DirectoryDelete DirectoryExists ORMEvictEntity ORMEvictQueries ORMExecuteQuery ORMFlush
+syn keyword	cfFunctionName		contained ORMGetSession SpreadsheetRead SpreadsheetReadBinary SpreadsheetSetActiveSheetNumber
+syn keyword	cfFunctionName		contained SpreadsheetSetCellComment SpreadsheetSetCellFormula DirectoryList DirectoryRename EntityDelete
+syn keyword	cfFunctionName		contained EntityLoad EntityLoadByExample ORMGetSessionFactory ORMReload ObjectEquals SpreadsheetAddColumn
+syn keyword	cfFunctionName		contained SpreadsheetAddFreezePane SpreadsheetSetCellValue SpreadsheetSetActiveSheet SpreadsheetSetFooter
+syn keyword	cfFunctionName		contained SpreadsheetSetHeader SpreadsheetSetColumnWidth EntityLoadByPK EntityMerge EntityNew EntityReload
+syn keyword	cfFunctionName		contained EntitySave SpreadsheetAddImage SpreadsheetAddInfo SpreadsheetAddRow SpreadsheetAddRows
+syn keyword	cfFunctionName		contained SpreadsheetAddSplitPane SpreadsheetShiftColumns SpreadsheetShiftRows SpreadsheetSetRowHeight
+syn keyword	cfFunctionName		contained SpreadsheetWrite Trace FileDelete FileSeek FileWriteLine GetFunctionCalledName GetVFSMetaData IsIPv6
+syn keyword	cfFunctionName		contained IsNull SpreadsheetCreateSheet SpreadsheetDeleteColumn SpreadsheetDeleteColumns SpreadsheetDeleteRow
+syn keyword	cfFunctionName		contained SpreadsheetDeleteRows SpreadsheetFormatCell TransactionCommit TransactionRollback
+syn keyword	cfFunctionName		contained TransactionSetSavePoint ThreadTerminate ThreadJoin Throw Writedump Writelog 
+
+" Deprecated or obsoleted tags and functions.
+syn keyword	cfDeprecatedTag		contained cfauthenticate cfimpersonate cfgraph cfgraphdata
+syn keyword	cfDeprecatedTag		contained cfservlet cfservletparam cftextinput
+syn keyword	cfDeprecatedTag		contained cfinternaladminsecurity cfnewinternaladminsecurity
+syn keyword	cfDeprecatedFunction	contained GetK2ServerDocCount GetK2ServerDocCountLimit GetTemplatePath
+syn keyword	cfDeprecatedFunction	contained IsK2ServerABroker IsK2ServerDocCountExceeded IsK2ServerOnline
+syn keyword	cfDeprecatedFunction	contained ParameterExists AuthenticatedContext AuthenticatedUser
+syn keyword	cfDeprecatedFunction	contained isAuthenticated isAuthorized isProtected
+
+" Add to the HTML clusters.
+syn cluster	htmlTagNameCluster	add=cfTagName,cfCustomTagName,cfDeprecatedTag
+syn cluster	htmlArgCluster		add=cfArg,cfHashRegion,cfScope
+syn cluster	htmlPreproc		add=cfHashRegion
 
-syn cluster cfExpressionCluster contains=cfFunctionName,cfScope,@cfOperatorCluster,cfScriptStringD,cfScriptStringS,cfScriptNumber,cfBool
+syn cluster	cfExpressionCluster	contains=cfFunctionName,cfScope,@cfOperatorCluster,cfScriptStringD,cfScriptStringS,cfScriptNumber,cfBool,cfComment
 
 " Evaluation; skip strings ( this helps with cases like nested IIf() )
-syn region cfHashRegion start=+#+ skip=+"[^"]*"\|'[^']*'+ end=+#+ contains=@cfExpressionCluster,cfScriptParenError
+"		containedin to add to the TOP of cfOutputRegion.
+syn region	cfHashRegion		start=+#+ skip=+"[^"]*"\|'[^']*'+ end=+#+ contained containedin=cfOutputRegion contains=@cfExpressionCluster,cfScriptParenError
+
+" Hashmarks are significant inside cfoutput tags.
+" cfoutput tags may be nested indefinitely.
+syn region	cfOutputRegion		matchgroup=NONE transparent start=+<cfoutput>+ end=+</cfoutput>+ contains=TOP
 
 " <cfset>, <cfif>, <cfelseif>, <cfreturn> are analogous to hashmarks (implicit
 " evaluation) and have 'var'
-syn region cfSetRegion start="<cfset " start="<cfreturn " start="<cfelseif " start="<cfif " end='>' keepend contains=@cfExpressionCluster,cfSetLHSRegion,cfSetTagEnd,cfScriptType
-syn region cfSetLHSRegion contained start="<cfreturn" start="<cfelseif" start="<cfif" start="<cfset" end=" " keepend contains=cfTagName,htmlTag
-syn match  cfSetTagEnd contained '>'
-
-" CF comments: similar to SGML comments
-syn region  cfComment     start='<!---' end='--->' keepend contains=cfCommentTodo
-syn keyword cfCommentTodo contained TODO FIXME XXX TBD WTF 
+syn region	cfSetRegion		start="<cfset\>" start="<cfreturn\>" start="<cfelseif\>" start="<cfif\>" end='>' keepend contains=@cfExpressionCluster,cfSetLHSRegion,cfSetTagEnd,cfScriptStatement
+syn region	cfSetLHSRegion		contained start="<cfreturn" start="<cfelseif" start="<cfif" start="<cfset" end="." keepend contains=cfTagName,htmlTag
+syn match	cfSetTagEnd		contained '>'
+
+" CF comments: similar to SGML comments, but can be nested.
+syn region	cfComment		start='<!---' end='--->' contains=cfCommentTodo,cfComment
+syn keyword	cfCommentTodo		contained TODO FIXME XXX TBD WTF 
 
 " CFscript 
-syn match   cfScriptLineComment      contained "\/\/.*$" contains=cfCommentTodo
-syn region  cfScriptComment	     contained start="/\*"  end="\*/" contains=cfCommentTodo
+" TODO better support for new component/function def syntax
+" TODO better support for 'new'
+" TODO highlight metadata (@ ...) inside comments.
+syn match	cfScriptLineComment	contained "\/\/.*$" contains=cfCommentTodo
+syn region	cfScriptComment		contained start="/\*"	end="\*/" contains=cfCommentTodo
+syn match	cfScriptBraces		contained "[{}]"
+syn keyword	cfScriptStatement	contained return var
 " in CF, quotes are escaped by doubling
-syn region  cfScriptStringD	     contained start=+"+  skip=+\\\\\|""+  end=+"+  extend contains=@htmlPreproc,cfHashRegion
-syn region  cfScriptStringS	     contained start=+'+  skip=+\\\\\|''+  end=+'+  extend contains=@htmlPreproc,cfHashRegion
-syn match   cfScriptNumber	     contained "\<\d\+\>"
-syn keyword cfScriptConditional      contained if else
-syn keyword cfScriptRepeat	     contained while for in
-syn keyword cfScriptBranch	     contained break switch case default try catch continue
-syn keyword cfScriptFunction	     contained function
-syn keyword cfScriptType	     contained var
-syn match   cfScriptBraces	     contained "[{}]"
-syn keyword cfScriptStatement        contained return
+syn region	cfScriptStringD		contained start=+"+	skip=+\\\\\|""+	end=+"+	extend contains=@htmlPreproc,cfHashRegion
+syn region	cfScriptStringS		contained start=+'+	skip=+\\\\\|''+	end=+'+	extend contains=@htmlPreproc,cfHashRegion
+syn match	cfScriptNumber		contained "\<\d\+\>"
+syn keyword	cfScriptConditional	contained if else
+syn keyword	cfScriptRepeat		contained while for in
+syn keyword	cfScriptBranch		contained break switch case default try catch continue finally
+syn keyword	cfScriptKeyword		contained function
+" argumentCollection is a special argument to function calls
+syn keyword	cfScriptSpecial		contained argumentcollection
+" ColdFusion 9:
+syn keyword	cfScriptStatement	contained new import
+" CFscript equivalents of some tags
+syn keyword	cfScriptKeyword		contained abort component exit import include
+syn keyword	cfScriptKeyword		contained interface param pageencoding property rethrow thread transaction
+" function/component syntax
+syn keyword	cfScriptSpecial		contained required extends
 
-syn cluster cfScriptCluster contains=cfScriptParen,cfScriptLineComment,cfScriptComment,cfScriptStringD,cfScriptStringS,cfScriptFunction,cfScriptNumber,cfScriptRegexpString,cfScriptBoolean,cfScriptBraces,cfHashRegion,cfFunctionName,cfScope,@cfOperatorCluster,cfScriptConditional,cfScriptRepeat,cfScriptBranch,cfScriptType,@cfExpressionCluster,cfScriptStatement
+
+syn cluster	cfScriptCluster	contains=cfScriptParen,cfScriptLineComment,cfScriptComment,cfScriptStringD,cfScriptStringS,cfScriptFunction,cfScriptNumber,cfScriptRegexpString,cfScriptBoolean,cfScriptBraces,cfHashRegion,cfFunctionName,cfDeprecatedFunction,cfScope,@cfOperatorCluster,cfScriptConditional,cfScriptRepeat,cfScriptBranch,@cfExpressionCluster,cfScriptStatement,cfScriptSpecial,cfScriptKeyword
 
 " Errors caused by wrong parenthesis; skip strings
-syn region  cfScriptParen       contained transparent skip=+"[^"]*"\|'[^']*'+ start=+(+ end=+)+ contains=@cfScriptCluster
-syn match   cfScrParenError 	contained +)+
+syn region	cfScriptParen	contained transparent skip=+"[^"]*"\|'[^']*'+ start=+(+ end=+)+ contains=@cfScriptCluster
+syn match	cfScrParenError	contained +)+
 
-syn region cfscriptBlock matchgroup=NONE start="<cfscript>"  end="<\/cfscript>"me=s-1 keepend contains=@cfScriptCluster,cfscriptTag,cfScrParenError
-syn region  cfscriptTag contained start='<cfscript' end='>' keepend contains=cfTagName,htmlTag
+syn region	cfscriptBlock	matchgroup=NONE start="<cfscript>"	end="<\/cfscript>"me=s-1 keepend contains=@cfScriptCluster,cfscriptTag,cfScrParenError
+syn region	cfscriptTag	contained start='<cfscript' end='>' keepend contains=cfTagName,htmlTag
 
 " CFML
-syn cluster cfmlCluster contains=cfComment,@htmlTagNameCluster,@htmlPreproc,cfSetRegion,cfscriptBlock
+syn cluster	cfmlCluster	contains=cfComment,@htmlTagNameCluster,@htmlPreproc,cfSetRegion,cfscriptBlock,cfOutputRegion
 
-" cfquery = sql
-unlet b:current_syntax
-syn include @cfSql <sfile>:p:h/sql.vim
+" cfquery = sql syntax
+if exists("b:current_syntax")
+  unlet b:current_syntax
+endif
+syn include @cfSql $VIMRUNTIME/syntax/sql.vim
 unlet b:current_syntax
-syn region  cfqueryTag  contained start=+<cfquery+ end=+>+    keepend   contains=cfTagName,htmlTag
-syn region  cfSqlregion start=+<cfquery[^>]*>+ keepend end=+<\/cfquery>+me=s-1 matchgroup=NONE contains=@cfSql,cfComment,@htmlTagNameCluster,cfqueryTag
+syn region	cfqueryTag	contained start=+<cfquery+ end=+>+ keepend contains=cfTagName,htmlTag
+syn region	cfSqlregion	start=+<cfquery\_[^>]*>+ keepend end=+</cfquery>+me=s-1 matchgroup=NONE contains=@cfSql,cfComment,@htmlTagNameCluster,cfqueryTag,cfHashRegion
+
+" Define the highlighting.
+command -nargs=+ CfHiLink hi def link <args>
 
-" Define the default highlighting.
-if version >= 508 || !exists("did_cf_syn_inits")
-  if version < 508
-    let did_cf_syn_inits = 1
-    command -nargs=+ HiLink hi link <args>
-  else
-    command -nargs=+ HiLink hi def link <args>
-  endif
-
-  HiLink cfTagName 		Statement
-  HiLink cfArg 			Type
-  HiLink cfFunctionName 	Function
-  HiLink cfHashRegion 		PreProc
-  HiLink cfComment 		Comment
-  HiLink cfCommentTodo 		Todo
-  HiLink cfOperator		Operator
-  HiLink cfOperatorMatch	Operator
-  HiLink cfScope		Title
-  HiLink cfBool			Constant
-
-  HiLink cfscriptBlock 		Special
-  HiLink cfscriptTag 		htmlTag
-  HiLink cfSetRegion 		PreProc
-  HiLink cfSetLHSRegion 	htmlTag
-  HiLink cfSetTagEnd		htmlTag
-
-  HiLink cfScriptLineComment	Comment
-  HiLink cfScriptComment	Comment
-  HiLink cfScriptStringS	String
-  HiLink cfScriptStringD	String
-  HiLink cfScriptNumber	     	cfScriptValue
-  HiLink cfScriptConditional	Conditional
-  HiLink cfScriptRepeat	     	Repeat
-  HiLink cfScriptBranch	     	Conditional
-  HiLink cfScriptType		Type
-  HiLink cfScriptStatement	Statement
-  HiLink cfScriptBraces	     	Function
-  HiLink cfScriptFunction    	Function
-  HiLink cfScriptError	     	Error
-  HiLink cfDeprecated	     	Error
-  HiLink cfScrParenError	cfScriptError
-
-  HiLink cfqueryTag htmlTag
-  
-  delcommand HiLink
+if exists("d_noinclude_html")
+  " The default html-style highlighting copied from html.vim.
+  CfHiLink htmlTag		Function
+  CfHiLink htmlEndTag		Identifier
+  CfHiLink htmlArg		Type
+  CfHiLink htmlTagName		htmlStatement
+  CfHiLink htmlValue		String
+  CfHiLink htmlPreProc		PreProc
+  CfHiLink htmlString		String
+  CfHiLink htmlStatement	Statement
+  CfHiLink htmlValue		String
+  CfHiLink htmlTagError		htmlError
+  CfHiLink htmlError		Error
 endif
 
+CfHiLink cfTagName		Statement
+CfHiLink cfCustomTagName	Statement
+CfHiLink cfArg			Type
+CfHiLink cfFunctionName		Function
+CfHiLink cfHashRegion		PreProc
+CfHiLink cfComment		Comment
+CfHiLink cfCommentTodo		Todo
+CfHiLink cfOperator		Operator
+CfHiLink cfOperatorMatch	Operator
+CfHiLink cfScope		Title
+CfHiLink cfBool			Constant
+
+CfHiLink cfscriptBlock		Special
+CfHiLink cfscriptTag		htmlTag
+CfHiLink cfSetRegion		PreProc
+CfHiLink cfSetLHSRegion		htmlTag
+CfHiLink cfSetTagEnd		htmlTag
+
+CfHiLink cfScriptLineComment	Comment
+CfHiLink cfScriptComment	Comment
+CfHiLink cfScriptStringS	String
+CfHiLink cfScriptStringD	String
+CfHiLink cfScriptNumber		cfScriptValue
+CfHiLink cfScriptConditional	Conditional
+CfHiLink cfScriptRepeat		Repeat
+CfHiLink cfScriptBranch		Conditional
+CfHiLink cfScriptSpecial	Type
+CfHiLink cfScriptStatement	Statement
+CfHiLink cfScriptBraces		Function
+CfHiLink cfScriptKeyword	Function
+CfHiLink cfScriptError		Error
+CfHiLink cfDeprecatedTag	Error
+CfHiLink cfDeprecatedFunction	Error
+CfHiLink cfScrParenError	cfScriptError
+
+CfHiLink cfqueryTag		htmlTag
+
+delcommand CfHiLink
+
 let b:current_syntax = "cf"
 
-" vim: ts=8 sw=2
+" vim: nowrap sw=2 ts=8 noet
diff -u -r --new-file runtime/syntax.orig/config.vim runtime/syntax/config.vim
--- runtime/syntax.orig/config.vim	2004-06-07 09:32:35.000000000 -0500
+++ runtime/syntax/config.vim	2008-09-06 07:19:33.000000000 -0500
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:		configure.in script: M4 with sh
 " Maintainer:	Christian Hammesr <ch@lathspell.westend.com>
-" Last Change:	2001 May 09
+" Last Change:	2008 Sep 03
 
 " Well, I actually even do not know much about m4. This explains why there
 " is probably very much missing here, yet !
@@ -26,7 +26,7 @@
 syn keyword configkeyword   if then else fi test for in do done
 syn keyword configspecial   cat rm eval
 syn region  configstring    start=+"+ skip=+\\"+ end=+"+
-syn region  configstring    start=+`+ skip=+\\'+ end=+'+
+syn region  configstring    start=+'+ skip=+\\'+ end=+'+
 syn region  configstring    start=+`+ skip=+\\'+ end=+`+
 
 " Define the default highlighting.
diff -u -r --new-file runtime/syntax.orig/cs.vim runtime/syntax/cs.vim
--- runtime/syntax.orig/cs.vim	2006-05-03 16:20:02.000000000 -0500
+++ runtime/syntax/cs.vim	2009-09-18 05:28:22.000000000 -0500
@@ -2,7 +2,7 @@
 " Language:	C#
 " Maintainer:	Anduin Withers <awithers@anduin.com>
 " Former Maintainer:	Johannes Zellner <johannes@zellner.org>
-" Last Change:	Sun Apr 30 19:26:18 PDT 2006
+" Last Change:	Fri Aug 14 13:56:37 PDT 2009
 " Filenames:	*.cs
 " $Id: cs.vim,v 1.4 2006/05/03 21:20:02 vimboss Exp $
 "
@@ -78,8 +78,8 @@
 syn cluster xmlTagHook add=csXmlTag
 
 syn match   csXmlCommentLeader	+\/\/\/+    contained
-syn match   csXmlComment	+\/\/\/.*$+ contains=csXmlCommentLeader,@csXml
-syntax include @csXml <sfile>:p:h/xml.vim
+syn match   csXmlComment	+\/\/\/.*$+ contains=csXmlCommentLeader,@csXml,@Spell
+syntax include @csXml syntax/xml.vim
 hi def link xmlRegion Comment
 
 
@@ -100,7 +100,7 @@
 " unicode characters
 syn match   csUnicodeNumber	+\\\(u\x\{4}\|U\x\{8}\)+ contained contains=csUnicodeSpecifier
 syn match   csUnicodeSpecifier	+\\[uU]+ contained
-syn region  csVerbatimString	start=+@"+ end=+"+ end=+$+ skip=+""+ contains=csVerbatimSpec,@Spell
+syn region  csVerbatimString	start=+@"+ end=+"+ skip=+""+ contains=csVerbatimSpec,@Spell
 syn match   csVerbatimSpec	+@"+he=s+1 contained
 syn region  csString		start=+"+  end=+"+ end=+$+ contains=csSpecialChar,csSpecialError,csUnicodeNumber,@Spell
 syn match   csCharacter		"'[^']*'" contains=csSpecialChar,csSpecialCharError
diff -u -r --new-file runtime/syntax.orig/cucumber.vim runtime/syntax/cucumber.vim
--- runtime/syntax.orig/cucumber.vim	1969-12-31 18:00:00.000000000 -0600
+++ runtime/syntax/cucumber.vim	2010-03-02 09:17:43.000000000 -0600
@@ -0,0 +1,117 @@
+" Vim syntax file
+" Language:     Cucumber
+" Maintainer:   Tim Pope <vimNOSPAM@tpope.org>
+" Filenames:    *.feature
+
+if exists("b:current_syntax")
+    finish
+endif
+
+syn case match
+syn sync minlines=20
+
+let g:cucumber_languages = {
+      \"en": {"and": "And\\>", "background": "Background\\>", "but": "But\\>", "examples": "Scenarios\\>\\|Examples\\>", "feature": "Feature\\>", "given": "Given\\>", "scenario": "Scenario\\>", "scenario_outline": "Scenario Outline\\>", "then": "Then\\>", "when": "When\\>"},
+      \"ar": {"and": "\\%u0648\\>", "background": "\\%u0627\\%u0644\\%u062e\\%u0644\\%u0641\\%u064a\\%u0629\\>", "but": "\\%u0644\\%u0643\\%u0646\\>", "examples": "\\%u0627\\%u0645\\%u062b\\%u0644\\%u0629\\>", "feature": "\\%u062e\\%u0627\\%u0635\\%u064a\\%u0629\\>", "given": "\\%u0628\\%u0641\\%u0631\\%u0636\\>", "scenario": "\\%u0633\\%u064a\\%u0646\\%u0627\\%u0631\\%u064a\\%u0648\\>", "scenario_outline": "\\%u0633\\%u064a\\%u0646\\%u0627\\%u0631\\%u064a\\%u0648 \\%u0645\\%u062e\\%u0637\\%u0637\\>", "then": "\\%u0627\\%u0630\\%u0627\\%u064b\\>\\|\\%u062b\\%u0645\\>", "when": "\\%u0639\\%u0646\\%u062f\\%u0645\\%u0627\\>\\|\\%u0645\\%u062a\\%u0649\\>"},
+      \"bg": {"and": "\\%u0418\\>", "background": "\\%u041f\\%u0440\\%u0435\\%u0434\\%u0438\\%u0441\\%u0442\\%u043e\\%u0440\\%u0438\\%u044f\\>", "but": "\\%u041d\\%u043e\\>", "examples": "\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440\\%u0438\\>", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\%u043d\\%u043e\\%u0441\\%u0442\\>", "given": "\\%u0414\\%u0430\\%u0434\\%u0435\\%u043d\\%u043e\\>", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\>", "scenario_outline": "\\%u0420\\%u0430\\%u043c\\%u043a\\%u0430 \\%u043d\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\>", "then": "\\%u0422\\%u043e\\>", "when": "\\%u041a\\%u043e\\%u0433\\%u0430\\%u0442\\%u043e\\>"},
+      \"cat": {"and": "I\\>", "background": "Antecedents\\>\\|Rerefons\\>", "but": "Per\\%u00f2\\>", "examples": "Exemples\\>", "feature": "Caracter\\%u00edstica\\>", "given": "Donada\\>\\|Donat\\>", "scenario": "Escenari\\>", "scenario_outline": "Esquema de l'escenari\\>", "then": "Aleshores\\>", "when": "Quan\\>"},
+      \"cs": {"and": "A tak\\%u00e9\\>\\|A\\>", "background": "Pozad\\%u00ed\\>\\|Kontext\\>", "but": "Ale\\>", "examples": "P\\%u0159\\%u00edklady\\>", "feature": "Po\\%u017eadavek\\>", "given": "Pokud\\>", "scenario": "Sc\\%u00e9n\\%u00e1\\%u0159\\>", "scenario_outline": "N\\%u00e1\\%u010drt Sc\\%u00e9n\\%u00e1\\%u0159e\\>\\|Osnova sc\\%u00e9n\\%u00e1\\%u0159e\\>", "then": "Pak\\>", "when": "Kdy\\%u017e\\>"},
+      \"cy": {"and": "A\\>", "background": "Cefndir\\>", "but": "Ond\\>", "examples": "Enghreifftiau\\>", "feature": "Arwedd\\>", "given": "anrhegedig a\\>", "scenario": "Scenario\\>", "scenario_outline": "Scenario Amlinellol\\>", "then": "Yna\\>", "when": "Pryd\\>"},
+      \"da": {"and": "Og\\>", "background": "Baggrund\\>", "but": "Men\\>", "examples": "Eksempler\\>", "feature": "Egenskab\\>", "given": "Givet\\>", "scenario": "Scenarie\\>", "scenario_outline": "Abstrakt Scenario\\>", "then": "S\\%u00e5\\>", "when": "N\\%u00e5r\\>"},
+      \"de": {"and": "Und\\>", "background": "Grundlage\\>", "but": "Aber\\>", "examples": "Beispiele\\>", "feature": "Funktionalit\\%u00e4t\\>", "given": "Gegeben sei\\>", "scenario": "Szenario\\>", "scenario_outline": "Szenariogrundriss\\>", "then": "Dann\\>", "when": "Wenn\\>"},
+      \"en-au": {"and": "N\\>", "background": "Background\\>", "but": "Cept\\>", "examples": "Cobber\\>", "feature": "Crikey\\>", "given": "Ya know how\\>", "scenario": "Mate\\>", "scenario_outline": "Blokes\\>", "then": "Ya gotta\\>", "when": "When\\>"},
+      \"en-lol": {"and": "AN\\>", "background": "B4\\>", "but": "BUT\\>", "examples": "EXAMPLZ\\>", "feature": "OH HAI\\>", "given": "I CAN HAZ\\>", "scenario": "MISHUN\\>", "scenario_outline": "MISHUN SRSLY\\>", "then": "DEN\\>", "when": "WEN\\>"},
+      \"es": {"and": "Y\\>", "background": "Antecedentes\\>", "but": "Pero\\>", "examples": "Ejemplos\\>", "feature": "Caracter\\%u00edstica\\>", "given": "Dado\\>", "scenario": "Escenario\\>", "scenario_outline": "Esquema del escenario\\>", "then": "Entonces\\>", "when": "Cuando\\>"},
+      \"et": {"and": "Ja\\>", "background": "Taust\\>", "but": "Kuid\\>", "examples": "Juhtumid\\>", "feature": "Omadus\\>", "given": "Eeldades\\>", "scenario": "Stsenaarium\\>", "scenario_outline": "Raamstsenaarium\\>", "then": "Siis\\>", "when": "Kui\\>"},
+      \"fi": {"and": "Ja\\>", "background": "Tausta\\>", "but": "Mutta\\>", "examples": "Tapaukset\\>", "feature": "Ominaisuus\\>", "given": "Oletetaan\\>", "scenario": "Tapaus\\>", "scenario_outline": "Tapausaihio\\>", "then": "Niin\\>", "when": "Kun\\>"},
+      \"fr": {"and": "Et\\>", "background": "Contexte\\>", "but": "Mais\\>", "examples": "Exemples\\>", "feature": "Fonctionnalit\\%u00e9\\>", "given": "Etant donn\\%u00e9\\>\\|Soit\\>", "scenario": "Sc\\%u00e9nario\\>", "scenario_outline": "Plan du sc\\%u00e9nario\\>\\|Plan du Sc\\%u00e9nario\\>", "then": "Alors\\>", "when": "Lorsqu'\\|Lorsque\\>\\|Quand\\>"},
+      \"he": {"and": "\\%u05d5\\%u05d2\\%u05dd\\>", "background": "\\%u05e8\\%u05e7\\%u05e2\\>", "but": "\\%u05d0\\%u05d1\\%u05dc\\>", "examples": "\\%u05d3\\%u05d5\\%u05d2\\%u05de\\%u05d0\\%u05d5\\%u05ea\\>", "feature": "\\%u05ea\\%u05db\\%u05d5\\%u05e0\\%u05d4\\>", "given": "\\%u05d1\\%u05d4\\%u05d9\\%u05e0\\%u05ea\\%u05df\\>", "scenario": "\\%u05ea\\%u05e8\\%u05d7\\%u05d9\\%u05e9\\>", "scenario_outline": "\\%u05ea\\%u05d1\\%u05e0\\%u05d9\\%u05ea \\%u05ea\\%u05e8\\%u05d7\\%u05d9\\%u05e9\\>", "then": "\\%u05d0\\%u05d6\\%u05d9\\>\\|\\%u05d0\\%u05d6\\>", "when": "\\%u05db\\%u05d0\\%u05e9\\%u05e8\\>"},
+      \"hr": {"and": "I\\>", "background": "Pozadina\\>", "but": "Ali\\>", "examples": "Scenariji\\>\\|Primjeri\\>", "feature": "Mogu\\%u0107nost\\>\\|Mogucnost\\>\\|Osobina\\>", "given": "Zadano\\>\\|Zadani\\>\\|Zadan\\>", "scenario": "Scenarij\\>", "scenario_outline": "Koncept\\>\\|Skica\\>", "then": "Onda\\>", "when": "Kada\\>\\|Kad\\>"},
+      \"hu": {"and": "\\%u00c9s\\>", "background": "H\\%u00e1tt\\%u00e9r\\>", "but": "De\\>", "examples": "P\\%u00e9ld\\%u00e1k\\>", "feature": "Jellemz\\%u0151\\>", "given": "Ha\\>", "scenario": "Forgat\\%u00f3k\\%u00f6nyv\\>", "scenario_outline": "Forgat\\%u00f3k\\%u00f6nyv v\\%u00e1zlat\\>", "then": "Akkor\\>", "when": "Majd\\>"},
+      \"id": {"and": "Dan\\>", "background": "Dasar\\>", "but": "Tapi\\>", "examples": "Contoh\\>", "feature": "Fitur\\>", "given": "Dengan\\>", "scenario": "Skenario\\>", "scenario_outline": "Skenario konsep\\>", "then": "Maka\\>", "when": "Ketika\\>"},
+      \"it": {"and": "E\\>", "background": "Contesto\\>", "but": "Ma\\>", "examples": "Esempi\\>", "feature": "Funzionalit\\%u00e0\\>", "given": "Dato\\>", "scenario": "Scenario\\>", "scenario_outline": "Schema dello scenario\\>", "then": "Allora\\>", "when": "Quando\\>"},
+      \"ja": {"and": "\\%u304b\\%u3064", "background": "\\%u80cc\\%u666f\\>", "but": "\\%u3057\\%u304b\\%u3057\\|\\%u305f\\%u3060\\%u3057\\|\\%u4f46\\%u3057", "examples": "\\%u30b5\\%u30f3\\%u30d7\\%u30eb\\>\\|\\%u4f8b\\>", "feature": "\\%u30d5\\%u30a3\\%u30fc\\%u30c1\\%u30e3\\>\\|\\%u6a5f\\%u80fd\\>", "given": "\\%u524d\\%u63d0", "scenario": "\\%u30b7\\%u30ca\\%u30ea\\%u30aa\\>", "scenario_outline": "\\%u30b7\\%u30ca\\%u30ea\\%u30aa\\%u30a2\\%u30a6\\%u30c8\\%u30e9\\%u30a4\\%u30f3\\>\\|\\%u30b7\\%u30ca\\%u30ea\\%u30aa\\%u30c6\\%u30f3\\%u30d7\\%u30ec\\%u30fc\\%u30c8\\>\\|\\%u30b7\\%u30ca\\%u30ea\\%u30aa\\%u30c6\\%u30f3\\%u30d7\\%u30ec\\>\\|\\%u30c6\\%u30f3\\%u30d7\\%u30ec\\>", "then": "\\%u306a\\%u3089\\%u3070", "when": "\\%u3082\\%u3057"},
+      \"ko": {"and": "\\%uadf8\\%ub9ac\\%uace0", "background": "\\%ubc30\\%uacbd\\>", "but": "\\%ud558\\%uc9c0\\%ub9cc", "examples": "\\%uc608\\>", "feature": "\\%uae30\\%ub2a5\\>", "given": "\\%uc870\\%uac74", "scenario": "\\%uc2dc\\%ub098\\%ub9ac\\%uc624\\>", "scenario_outline": "\\%uc2dc\\%ub098\\%ub9ac\\%uc624 \\%uac1c\\%uc694\\>", "then": "\\%uadf8\\%ub7ec\\%uba74", "when": "\\%ub9cc\\%uc77c"},
+      \"lt": {"and": "Ir\\>", "background": "Kontekstas\\>", "but": "Bet\\>", "examples": "Pavyzd\\%u017eiai\\>\\|Scenarijai\\>\\|Variantai\\>", "feature": "Savyb\\%u0117\\>", "given": "Duota\\>", "scenario": "Scenarijus\\>", "scenario_outline": "Scenarijaus \\%u0161ablonas\\>", "then": "Tada\\>", "when": "Kai\\>"},
+      \"lv": {"and": "Un\\>", "background": "Situ\\%u0101cija\\>\\|Konteksts\\>", "but": "Bet\\>", "examples": "Piem\\%u0113ri\\>\\|Paraugs\\>", "feature": "Funkcionalit\\%u0101te\\>\\|F\\%u012b\\%u010da\\>", "given": "Kad\\>", "scenario": "Scen\\%u0101rijs\\>", "scenario_outline": "Scen\\%u0101rijs p\\%u0113c parauga\\>", "then": "Tad\\>", "when": "Ja\\>"},
+      \"nl": {"and": "En\\>", "background": "Achtergrond\\>", "but": "Maar\\>", "examples": "Voorbeelden\\>", "feature": "Functionaliteit\\>", "given": "Gegeven\\>\\|Stel\\>", "scenario": "Scenario\\>", "scenario_outline": "Abstract Scenario\\>", "then": "Dan\\>", "when": "Als\\>"},
+      \"no": {"and": "Og\\>", "background": "Bakgrunn\\>", "but": "Men\\>", "examples": "Eksempler\\>", "feature": "Egenskap\\>", "given": "Gitt\\>", "scenario": "Scenario\\>", "scenario_outline": "Abstrakt Scenario\\>", "then": "S\\%u00e5\\>", "when": "N\\%u00e5r\\>"},
+      \"pl": {"and": "Oraz\\>", "background": "Za\\%u0142o\\%u017cenia\\>", "but": "Ale\\>", "examples": "Przyk\\%u0142ady\\>", "feature": "W\\%u0142a\\%u015bciwo\\%u015b\\%u0107\\>", "given": "Zak\\%u0142adaj\\%u0105c\\>", "scenario": "Scenariusz\\>", "scenario_outline": "Szablon scenariusza\\>", "then": "Wtedy\\>", "when": "Je\\%u017celi\\>"},
+      \"pt": {"and": "E\\>", "background": "Contexto\\>", "but": "Mas\\>", "examples": "Exemplos\\>", "feature": "Funcionalidade\\>", "given": "Dado\\>", "scenario": "Cen\\%u00e1rio\\>\\|Cenario\\>", "scenario_outline": "Esquema do Cen\\%u00e1rio\\>\\|Esquema do Cenario\\>", "then": "Ent\\%u00e3o\\>\\|Entao\\>", "when": "Quando\\>"},
+      \"ro": {"and": "Si\\>", "background": "Conditii\\>", "but": "Dar\\>", "examples": "Exemplele\\>", "feature": "Functionalitate\\>", "given": "Daca\\>", "scenario": "Scenariu\\>", "scenario_outline": "Scenariul de sablon\\>", "then": "Atunci\\>", "when": "Cand\\>"},
+      \"ro2": {"and": "\\%u0218i\\>", "background": "Condi\\%u0163ii\\>", "but": "Dar\\>", "examples": "Exemplele\\>", "feature": "Func\\%u021bionalitate\\>", "given": "Dac\\%u0103\\>", "scenario": "Scenariu\\>", "scenario_outline": "Scenariul de \\%u015fablon\\>", "then": "Atunci\\>", "when": "C\\%u00e2nd\\>"},
+      \"ru": {"and": "\\%u041a \\%u0442\\%u043e\\%u043c\\%u0443 \\%u0436\\%u0435\\>\\|\\%u0418\\>", "background": "\\%u041f\\%u0440\\%u0435\\%u0434\\%u044b\\%u0441\\%u0442\\%u043e\\%u0440\\%u0438\\%u044f\\>", "but": "\\%u041d\\%u043e\\>\\|\\%u0410\\>", "examples": "\\%u0417\\%u043d\\%u0430\\%u0447\\%u0435\\%u043d\\%u0438\\%u044f\\>", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\>", "given": "\\%u0414\\%u043e\\%u043f\\%u0443\\%u0441\\%u0442\\%u0438\\%u043c\\>", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\>", "scenario_outline": "\\%u0421\\%u0442\\%u0440\\%u0443\\%u043a\\%u0442\\%u0443\\%u0440\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u044f\\>", "then": "\\%u0422\\%u043e\\>", "when": "\\%u0415\\%u0441\\%u043b\\%u0438\\>"},
+      \"se": {"and": "Och\\>", "background": "Bakgrund\\>", "but": "Men\\>", "examples": "Exempel\\>", "feature": "Egenskap\\>", "given": "Givet\\>", "scenario": "Scenario\\>", "scenario_outline": "Abstrakt Scenario\\>", "then": "S\\%u00e5\\>", "when": "N\\%u00e4r\\>"},
+      \"sk": {"and": "A\\>", "background": "Pozadie\\>", "but": "Ale\\>", "examples": "Pr\\%u00edklady\\>", "feature": "Po\\%u017eiadavka\\>", "given": "Pokia\\%u013e\\>", "scenario": "Scen\\%u00e1r\\>", "scenario_outline": "N\\%u00e1\\%u010drt Scen\\%u00e1ru\\>", "then": "Tak\\>", "when": "Ke\\%u010f\\>"},
+      \"sr": {"and": "\\%u0418\\>", "background": "\\%u041a\\%u043e\\%u043d\\%u0442\\%u0435\\%u043a\\%u0441\\%u0442\\>\\|\\%u041f\\%u043e\\%u0437\\%u0430\\%u0434\\%u0438\\%u043d\\%u0430\\>\\|\\%u041e\\%u0441\\%u043d\\%u043e\\%u0432\\%u0430\\>", "but": "\\%u0410\\%u043b\\%u0438\\>", "examples": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0458\\%u0438\\>\\|\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440\\%u0438\\>", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\%u043d\\%u043e\\%u0441\\%u0442\\>\\|\\%u041c\\%u043e\\%u0433\\%u0443\\%u045b\\%u043d\\%u043e\\%u0441\\%u0442\\>\\|\\%u041e\\%u0441\\%u043e\\%u0431\\%u0438\\%u043d\\%u0430\\>", "given": "\\%u0417\\%u0430\\%u0434\\%u0430\\%u0442\\%u043e\\>\\|\\%u0417\\%u0430\\%u0434\\%u0430\\%u0442\\%u0435\\>\\|\\%u0417\\%u0430\\%u0434\\%u0430\\%u0442\\%u0438\\>", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u043e\\>\\|\\%u041f\\%u0440\\%u0438\\%u043c\\%u0435\\%u0440\\>", "scenario_outline": "\\%u0421\\%u0442\\%u0440\\%u0443\\%u043a\\%u0442\\%u0443\\%u0440\\%u0430 \\%u0441\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0458\\%u0430\\>\\|\\%u041a\\%u043e\\%u043d\\%u0446\\%u0435\\%u043f\\%u0442\\>\\|\\%u0421\\%u043a\\%u0438\\%u0446\\%u0430\\>", "then": "\\%u041e\\%u043d\\%u0434\\%u0430\\>", "when": "\\%u041a\\%u0430\\%u0434\\%u0430\\>\\|\\%u041a\\%u0430\\%u0434\\>"},
+      \"sr-Latn": {"and": "I\\>", "background": "Kontekst\\>\\|Pozadina\\>\\|Osnova\\>", "but": "Ali\\>", "examples": "Scenariji\\>\\|Primeri\\>", "feature": "Mogu\\%u0107nost\\>\\|Funkcionalnost\\>\\|Mogucnost\\>\\|Osobina\\>", "given": "Zadato\\>\\|Zadate\\>\\|Zatati\\>", "scenario": "Scenario\\>\\|Primer\\>", "scenario_outline": "Struktura scenarija\\>\\|Koncept\\>\\|Skica\\>", "then": "Onda\\>", "when": "Kada\\>\\|Kad\\>"},
+      \"tr": {"and": "Ve\\>", "background": "Ge\\%u00e7mi\\%u015f\\>", "but": "Fakat\\>\\|Ama\\>", "examples": "\\%u00d6rnekler\\>", "feature": "\\%u00d6zellik\\>", "given": "Diyelim ki\\>", "scenario": "Senaryo\\>", "scenario_outline": "Senaryo tasla\\%u011f\\%u0131\\>", "then": "O zaman\\>", "when": "E\\%u011fer ki\\>"},
+      \"uz": {"and": "\\%u0412\\%u0430\\>", "background": "\\%u0422\\%u0430\\%u0440\\%u0438\\%u0445\\>", "but": "\\%u041b\\%u0435\\%u043a\\%u0438\\%u043d\\>\\|\\%u0411\\%u0438\\%u0440\\%u043e\\%u043a\\>\\|\\%u0410\\%u043c\\%u043c\\%u043e\\>", "examples": "\\%u041c\\%u0438\\%u0441\\%u043e\\%u043b\\%u043b\\%u0430\\%u0440\\>", "feature": "\\%u0424\\%u0443\\%u043d\\%u043a\\%u0446\\%u0438\\%u043e\\%u043d\\%u0430\\%u043b\\>", "given": "\\%u0410\\%u0433\\%u0430\\%u0440\\>", "scenario": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439\\>", "scenario_outline": "\\%u0421\\%u0446\\%u0435\\%u043d\\%u0430\\%u0440\\%u0438\\%u0439 \\%u0441\\%u0442\\%u0440\\%u0443\\%u043a\\%u0442\\%u0443\\%u0440\\%u0430\\%u0441\\%u0438\\>", "then": "\\%u0423\\%u043d\\%u0434\\%u0430\\>", "when": "\\%u0410\\%u0433\\%u0430\\%u0440\\>"},
+      \"vi": {"and": "V\\%u00e0\\>", "background": "B\\%u1ed1i c\\%u1ea3nh\\>", "but": "Nh\\%u01b0ng\\>", "examples": "D\\%u1eef li\\%u1ec7u\\>", "feature": "T\\%u00ednh n\\%u0103ng\\>", "given": "Bi\\%u1ebft\\>\\|Cho\\>", "scenario": "T\\%u00ecnh hu\\%u1ed1ng\\>\\|K\\%u1ecbch b\\%u1ea3n\\>", "scenario_outline": "Khung t\\%u00ecnh hu\\%u1ed1ng\\>\\|Khung k\\%u1ecbch b\\%u1ea3n\\>", "then": "Th\\%u00ec\\>", "when": "Khi\\>"},
+      \"zh-CN": {"and": "\\%u800c\\%u4e14", "background": "\\%u80cc\\%u666f\\>", "but": "\\%u4f46\\%u662f", "examples": "\\%u4f8b\\%u5b50\\>", "feature": "\\%u529f\\%u80fd\\>", "given": "\\%u5047\\%u5982", "scenario": "\\%u573a\\%u666f\\>", "scenario_outline": "\\%u573a\\%u666f\\%u5927\\%u7eb2\\>", "then": "\\%u90a3\\%u4e48", "when": "\\%u5f53"},
+      \"zh-TW": {"and": "\\%u800c\\%u4e14\\|\\%u4e26\\%u4e14", "background": "\\%u80cc\\%u666f\\>", "but": "\\%u4f46\\%u662f", "examples": "\\%u4f8b\\%u5b50\\>", "feature": "\\%u529f\\%u80fd\\>", "given": "\\%u5047\\%u8a2d", "scenario": "\\%u5834\\%u666f\\>\\|\\%u5287\\%u672c\\>", "scenario_outline": "\\%u5834\\%u666f\\%u5927\\%u7db1\\>\\|\\%u5287\\%u672c\\%u5927\\%u7db1\\>", "then": "\\%u90a3\\%u9ebc", "when": "\\%u7576"}}
+
+function! s:pattern(key)
+  let language = matchstr(getline(1),'#\s*language:\s*\zs\S\+')
+  if has_key(g:cucumber_languages, language)
+    let languages = [g:cucumber_languages[language]]
+  else
+    let languages = values(g:cucumber_languages)
+  end
+  return '\<\%('.join(map(languages,'get(v:val,a:key,"\\%(a\\&b\\)")'),'\|').'\)'
+endfunction
+
+function! s:Add(name)
+  let next = " skipempty skipwhite nextgroup=".join(map(["Region","AndRegion","ButRegion","Comment","Table"],'"cucumber".a:name.v:val'),",")
+  exe "syn region cucumber".a:name.'Region matchgroup=cucumber'.a:name.' start="\%(^\s*\)\@<=\%('.s:pattern(tolower(a:name)).'\)" end="$"'.next
+  exe 'syn region cucumber'.a:name.'AndRegion matchgroup=cucumber'.a:name.'And start="\%(^\s*\)\@<='.s:pattern('and').'" end="$" contained'.next
+  exe 'syn region cucumber'.a:name.'ButRegion matchgroup=cucumber'.a:name.'But start="\%(^\s*\)\@<='.s:pattern('but').'" end="$" contained'.next
+  exe 'syn match cucumber'.a:name.'Comment "\%(^\s*\)\@<=#.*" contained'.next
+  exe 'syn match cucumber'.a:name.'Table "\%(^\s*\)\@<=|.*" contained contains=cucumberDelimiter'.next
+  exe 'hi def link cucumber'.a:name.'Comment cucumberComment'
+  exe 'hi def link cucumber'.a:name.'But cucumber'.a:name.'And'
+  exe 'hi def link cucumber'.a:name.'And cucumber'.a:name
+  exe 'syn cluster cucumberStepRegions add=cucumber'.a:name.'Region,cucumber'.a:name.'AndRegion,cucumber'.a:name.'ButRegion'
+endfunction
+
+syn match   cucumberComment  "\%(^\s*\)\@<=#.*"
+syn match   cucumberComment  "\%(\%^\s*\)\@<=#.*" contains=cucumberLanguage
+syn match   cucumberLanguage "\%(#\s*\)\@<=language:" contained
+syn match   cucumberUnparsed "\S.*" nextgroup=cucumberUnparsedComment,cucumberUnparsed,cucumberTags,cucumberBackground,cucumberScenario,cucumberScenarioOutline,cucumberExamples skipwhite skipempty contained
+syn match   cucumberUnparsedComment "#.*" nextgroup=cucumberUnparsedComment,cucumberUnparsed,cucumberTags,cucumberBackground,cucumberScenario,cucumberScenarioOutline,cucumberExamples skipwhite skipempty contained
+
+exe 'syn match cucumberFeature "\%(^\s*\)\@<='.s:pattern('feature').':" nextgroup=cucumberUnparsedComment,cucumberUnparsed,cucumberBackground,cucumberScenario,cucumberScenarioOutline,cucumberExamples skipwhite skipempty'
+exe 'syn match cucumberBackground "\%(^\s*\)\@<='.s:pattern('background').':"'
+exe 'syn match cucumberScenario "\%(^\s*\)\@<='.s:pattern('scenario').':"'
+exe 'syn match cucumberScenarioOutline "\%(^\s*\)\@<='.s:pattern('scenario_outline').':"'
+exe 'syn match cucumberExamples "\%(^\s*\)\@<='.s:pattern('examples').':" nextgroup=cucumberExampleTable skipempty skipwhite'
+
+syn match   cucumberPlaceholder   "<[^<>]*>" contained containedin=@cucumberStepRegions
+syn match   cucumberExampleTable  "\%(^\s*\)\@<=|.*" contains=cucumberDelimiter
+syn match   cucumberDelimiter     "|" contained
+syn match   cucumberTags          "\%(^\s*\)\@<=\%(@[^@[:space:]]\+\s\+\)*@[^@[:space:]]\+\s*$"
+syn region  cucumberString   start=+\%(^\s*\)\@<="""+ end=+"""+
+
+call s:Add('Then')
+call s:Add('When')
+call s:Add('Given')
+
+hi def link cucumberUnparsedComment   cucumberComment
+hi def link cucumberComment           Comment
+hi def link cucumberLanguage          SpecialComment
+hi def link cucumberFeature           Macro
+hi def link cucumberBackground        Define
+hi def link cucumberScenario          Define
+hi def link cucumberScenarioOutline   Define
+hi def link cucumberExamples          Define
+hi def link cucumberPlaceholder       Constant
+hi def link cucumberDelimiter         Delimiter
+hi def link cucumberTags              Tag
+hi def link cucumberString            String
+hi def link cucumberGiven             Conditional
+hi def link cucumberWhen              Function
+hi def link cucumberThen              Type
+
+let b:current_syntax = "cucumber"
+
+" vim:set sts=2 sw=2:
diff -u -r --new-file runtime/syntax.orig/d.vim runtime/syntax/d.vim
--- runtime/syntax.orig/d.vim	2006-04-30 11:01:36.000000000 -0500
+++ runtime/syntax/d.vim	2010-01-16 07:33:01.000000000 -0600
@@ -1,29 +1,44 @@
-" Vim syntax file for the D programming language (version 0.149).
+" Vim syntax file for the D programming language (version 1.053 and 2.039).
 "
 " Language:	D
-" Maintainer:	Jason Mills<jmills@cs.mun.ca>
-"   When emailing me, please put the word vim somewhere in the subject
-"   to ensure the email does not get marked as spam.
-" Last Change:	2006 Apr 30
-" Version:	0.15
+" Maintainer:	Jason Mills<jasonmills@nf.sympatico.ca>
+" Last Change:	2010 Jan 07
+" Version:	0.18
+"
+" Contributors:
+"   - Kirk McDonald: version 0.17 updates, with minor modifications
+"     (http://paste.dprogramming.com/dplmb7qx?view=hidelines)
+"   - Jesse K. Phillips: patch for some keywords and attributes (annotations), with modifications
+"   - Tim Keating: patch to fix a bug in highlighting the `\` literal
+"   - Frank Benoit: Fixed a bug that caused some identifiers and numbers to highlight as octal number errors.
+"
+" Please email me with bugs, comments, and suggestions.
 "
 " Options:
-"   d_comment_strings - set to highlight strings and numbers in comments
+"   d_comment_strings - Set to highlight strings and numbers in comments.
 "
-"   d_hl_operator_overload - set to highlight D's specially named functions
-"   that when overloaded implement unary and binary operators (e.g. cmp).
+"   d_hl_operator_overload - Set to highlight D's specially named functions
+"   that when overloaded implement unary and binary operators (e.g. opCmp).
 "
 " Todo:
-"   - Must determine a better method of sync'ing than simply setting minlines
-"   to a large number for /+ +/.
+"   - Determine a better method of sync'ing than simply setting minlines
+"   to a large number.
 "
-"   - Several keywords (namely, in and out) are both storage class and
-"   statements, depending on their context. Must use some matching to figure
-"   out which and highlight appropriately. For now I have made such keywords
-"   statements.
+"   - Several keywords (e.g., in, out, inout) are both storage class and
+"   statements, depending on their context. Perhaps use pattern matching to
+"   figure out which and highlight appropriately. For now I have made such
+"   keywords storage classes so their highlighting is consistent with other
+"   keywords that are commonly used with them, but are true storage classes,
+"   such as lazy. Similarly, I made some statement keywords (e.g. body) storage
+"   classes.
 "
 "   - Mark contents of the asm statement body as special
 "
+"   - Maybe highlight the 'exit', 'failure', and 'success' parts of the
+"   scope() statement.
+"
+"   - Highlighting DDoc comments.
+"
 
 " Quit when a syntax file was already loaded
 if exists("b:current_syntax")
@@ -33,46 +48,59 @@
 " Keyword definitions
 "
 syn keyword dExternal		import package module extern
-syn keyword dConditional	if else switch iftype
+syn keyword dConditional	if else switch
 syn keyword dBranch		goto break continue
-syn keyword dRepeat		while for do foreach
+syn keyword dRepeat		while for do foreach foreach_reverse
 syn keyword dBoolean		true false
 syn keyword dConstant		null
-syn keyword dConstant		__FILE__ __LINE__ __DATE__ __TIME__ __TIMESTAMP__
+syn keyword dConstant		__FILE__ __LINE__ __EOF__ __VERSION__
+syn keyword dConstant		__DATE__ __TIME__ __TIMESTAMP__ __VENDOR__
+
 syn keyword dTypedef		alias typedef
-syn keyword dStructure		template interface class enum struct union
+syn keyword dStructure		template interface class struct union
+syn keyword dEnum		enum
 syn keyword dOperator		new delete typeof typeid cast align is
 syn keyword dOperator		this super
 if exists("d_hl_operator_overload")
   syn keyword dOpOverload	opNeg opCom opPostInc opPostDec opCast opAdd opSub opSub_r
   syn keyword dOpOverload	opMul opDiv opDiv_r opMod opMod_r opAnd opOr opXor
   syn keyword dOpOverload	opShl opShl_r opShr opShr_r opUShr opUShr_r opCat
-  syn keyword dOpOverload	opCat_r opEquals opEquals opCmp opCmp opCmp opCmp
-  syn keyword dOpOverload	opAddAssign opSubAssign opMulAssign opDivAssign
+  syn keyword dOpOverload	opCat_r opEquals opEquals opCmp
+  syn keyword dOpOverload	opAssign opAddAssign opSubAssign opMulAssign opDivAssign
   syn keyword dOpOverload	opModAssign opAndAssign opOrAssign opXorAssign
   syn keyword dOpOverload	opShlAssign opShrAssign opUShrAssign opCatAssign
   syn keyword dOpOverload	opIndex opIndexAssign opCall opSlice opSliceAssign opPos
-  syn keyword dOpOverload	opAdd_r opMul_r opAnd_r opOr_r opXor_r 
+  syn keyword dOpOverload	opAdd_r opMul_r opAnd_r opOr_r opXor_r opIn opIn_r
+  syn keyword dOpOverload	opPow opDispatch opStar opDot opApply opApplyReverse
 endif
 syn keyword dType		ushort int uint long ulong float
 syn keyword dType		void byte ubyte double bit char wchar ucent cent
-syn keyword dType		short bool dchar
+syn keyword dType		short bool dchar string wstring dstring
 syn keyword dType		real ireal ifloat idouble creal cfloat cdouble
 syn keyword dDebug		deprecated unittest
 syn keyword dExceptions		throw try catch finally
 syn keyword dScopeDecl		public protected private export
-syn keyword dStatement		version debug return with invariant body scope
-syn keyword dStatement		in out inout asm mixin
-syn keyword dStatement		function delegate
-syn keyword dStorageClass	auto static override final const abstract volatile
-syn keyword dStorageClass	synchronized
+syn keyword dStatement		version debug return with
+syn keyword dStatement		function delegate __traits asm mixin macro
+syn keyword dStorageClass	in out inout ref lazy scope body
+syn keyword dStorageClass	pure nothrow
+syn keyword dStorageClass	auto static override final abstract volatile __gshared __thread
+syn keyword dStorageClass	synchronized immutable shared const invariant lazy
 syn keyword dPragma		pragma
 
+" Attributes/annotations
+syn match dAnnotation	"@[_$a-zA-Z][_$a-zA-Z0-9_]*\>"
 
 " Assert is a statement and a module name.
 syn match dAssert "^assert\>"
 syn match dAssert "[^.]\s*\<assert\>"ms=s+1
 
+" dTokens is used by the token string highlighting
+syn cluster dTokens contains=dExternal,dConditional,dBranch,dRepeat,dBoolean
+syn cluster dTokens add=dConstant,dTypedef,dStructure,dOperator,dOpOverload
+syn cluster dTokens add=dType,dDebug,dExceptions,dScopeDecl,dStatement
+syn cluster dTokens add=dStorageClass,dPragma,dAssert,dAnnotation
+
 " Marks contents of the asm statment body as special
 "
 " TODO
@@ -85,12 +113,14 @@
 " Labels
 "
 " We contain dScopeDecl so public: private: etc. are not highlighted like labels
-syn match dUserLabel	"^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=dLabel,dScopeDecl
+syn match dUserLabel    "^\s*[_$a-zA-Z][_$a-zA-Z0-9_]*\s*:"he=e-1 contains=dLabel,dScopeDecl,dEnum
 syn keyword dLabel	case default
 
+syn cluster dTokens add=dUserLabel,dLabel
+
 " Comments
 "
-syn keyword dTodo	contained TODO FIXME TEMP XXX
+syn keyword dTodo	contained TODO FIXME TEMP REFACTOR REVIEW HACK BUG XXX
 syn match dCommentStar	contained "^\s*\*[^/]"me=e-1
 syn match dCommentStar	contained "^\s*\*$"
 syn match dCommentPlus	contained "^\s*+[^/]"me=e-1
@@ -114,6 +144,8 @@
 hi link dCommentStar		dBlockComment
 hi link dCommentPlus		dNestedComment
 
+syn cluster dTokens add=dBlockComment,dNestedComment,dLineComment
+
 " /+ +/ style comments and strings that span multiple lines can cause
 " problems. To play it safe, set minlines to a large number.
 syn sync minlines=200
@@ -125,24 +157,55 @@
 syn match dSpecialCharError contained "[^']"
 
 " Escape sequences (oct,specal char,hex,wchar, character entities \&xxx;)
-" These are not contained because they are considered string litterals
+" These are not contained because they are considered string literals.
 syn match dEscSequence	"\\\(\o\{1,3}\|[\"\\'\\?ntbrfva]\|u\x\{4}\|U\x\{8}\|x\x\x\)"
-syn match dEscSequence "\\&[^;& \t]\+;"
+syn match dEscSequence	"\\&[^;& \t]\+;"
 syn match dCharacter	"'[^']*'" contains=dEscSequence,dSpecialCharError
 syn match dCharacter	"'\\''" contains=dEscSequence
 syn match dCharacter	"'[^\\]'"
 
+syn cluster dTokens add=dEscSequence,dCharacter
+
 " Unicode characters
 "
 syn match dUnicode "\\u\d\{4\}"
 
-
 " String.
 "
-syn region dString	start=+"+ end=+"[cwd]\=+ contains=dEscSequence,@Spell
-syn region dRawString	start=+`+ skip=+\\`+ end=+`[cwd]\=+ contains=@Spell
-syn region dRawString	start=+r"+ skip=+\\"+ end=+"[cwd]\=+ contains=@Spell
-syn region dHexString	start=+x"+ skip=+\\"+ end=+"[cwd]\=+ contains=@Spell
+syn region dString	start=+"+ end=+"[cwd]\=+ skip=+\\\\\|\\"+ contains=dEscSequence,@Spell
+syn region dRawString	start=+`+ end=+`[cwd]\=+ contains=@Spell
+syn region dRawString	start=+r"+ end=+"[cwd]\=+ contains=@Spell
+syn region dHexString	start=+x"+ end=+"[cwd]\=+ contains=@Spell
+syn region dDelimString	start=+q"\z(.\)+ end=+\z1"+ contains=@Spell
+syn region dHereString	start=+q"\z(\I\i*\)\n+ end=+\n\z1"+ contains=@Spell
+
+" Nesting delimited string contents
+"
+syn region dNestParenString start=+(+ end=+)+ contained transparent contains=dNestParenString,@Spell
+syn region dNestBrackString start=+\[+ end=+\]+ contained transparent contains=dNestBrackString,@Spell
+syn region dNestAngleString start=+<+ end=+>+ contained transparent contains=dNestAngleString,@Spell
+syn region dNestCurlyString start=+{+ end=+}+ contained transparent contains=dNestCurlyString,@Spell
+
+" Nesting delimited strings
+"
+syn region dParenString	matchgroup=dParenString start=+q"(+ end=+)"+ contains=dNestParenString,@Spell
+syn region dBrackString	matchgroup=dBrackString start=+q"\[+ end=+\]"+ contains=dNestBrackString,@Spell
+syn region dAngleString	matchgroup=dAngleString start=+q"<+ end=+>"+ contains=dNestAngleString,@Spell
+syn region dCurlyString	matchgroup=dCurlyString start=+q"{+ end=+}"+ contains=dNestCurlyString,@Spell
+
+hi link dParenString dNestString
+hi link dBrackString dNestString
+hi link dAngleString dNestString
+hi link dCurlyString dNestString
+
+syn cluster dTokens add=dString,dRawString,dHexString,dDelimString,dNestString
+
+" Token strings
+"
+syn region dNestTokenString start=+{+ end=+}+ contained contains=dNestTokenString,@dTokens
+syn region dTokenString matchgroup=dTokenStringBrack transparent start=+q{+ end=+}+ contains=dNestTokenString,@dTokens
+
+syn cluster dTokens add=dTokenString
 
 " Numbers
 "
@@ -177,6 +240,8 @@
 "floating point number, without dot, with exponent
 syn match dHexFloat	display "\<0x[0-9a-f_]\+p[-+]\=[0-9_]\+[fl]\=i\=\>"
 
+syn cluster dTokens add=dDec,dHex,dOctal,dOctalError,dBinary,dFloat,dHexFloat
+
 syn case match
 
 " Pragma (preprocessor) support
@@ -205,6 +270,10 @@
 hi def link dStorageClass	StorageClass
 hi def link dBoolean		Boolean
 hi def link dUnicode		Special
+hi def link dTokenStringBrack	String
+hi def link dHereString		String
+hi def link dNestString		String
+hi def link dDelimString	String
 hi def link dRawString		String
 hi def link dString		String
 hi def link dHexString		String
@@ -213,9 +282,10 @@
 hi def link dSpecialCharError	Error
 hi def link dOctalError		Error
 hi def link dOperator		Operator
-hi def link dOpOverload		Operator
+hi def link dOpOverload		Identifier
 hi def link dConstant		Constant
 hi def link dTypedef		Typedef
+hi def link dEnum		Structure
 hi def link dStructure		Structure
 hi def link dTodo		Todo
 hi def link dType		Type
@@ -224,7 +294,8 @@
 hi def link dNestedComment	Comment
 hi def link dExternal		Include
 hi def link dPragma		PreProc
+hi def link dAnnotation		PreProc
 
 let b:current_syntax = "d"
-   
+
 " vim: ts=8 noet
diff -u -r --new-file runtime/syntax.orig/debchangelog.vim runtime/syntax/debchangelog.vim
--- runtime/syntax.orig/debchangelog.vim	2008-07-06 12:51:40.000000000 -0500
+++ runtime/syntax/debchangelog.vim	2009-09-18 05:28:22.000000000 -0500
@@ -3,7 +3,7 @@
 " Maintainer:  Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 " Former Maintainers: Gerfried Fuchs <alfie@ist.org>
 "                     Wichert Akkerman <wakkerma@debian.org>
-" Last Change: 2008-01-16
+" Last Change: 2009 Jun 05
 " URL: http://git.debian.org/?p=pkg-vim/vim.git;a=blob_plain;f=runtime/syntax/debchangelog.vim;hb=debian
 
 " Standard syntax initialization
@@ -17,9 +17,9 @@
 syn case ignore
 
 " Define some common expressions we can use later on
-syn match debchangelogName	contained "^[[:alpha:]][[:alnum:].+-]\+ "
+syn match debchangelogName	contained "^[[:alnum:]][[:alnum:].+-]\+ "
 syn match debchangelogUrgency	contained "; urgency=\(low\|medium\|high\|critical\|emergency\)\( \S.*\)\="
-syn match debchangelogTarget	contained "\v %(%(old)=stable|frozen|unstable|%(testing-|%(old)=stable-)=proposed-updates|experimental|%(sarge|etch|lenny)-%(backports|volatile)|%(testing|%(old)=stable)-security|%(dapper|feisty|gutsy|hardy|intrepid)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
+syn match debchangelogTarget	contained "\v %(frozen|unstable|%(testing|%(old)=stable)%(-proposed-updates|-security)=|experimental|%(etch|lenny)-%(backports|volatile)|%(dapper|hardy|intrepid|jaunty|karmic)%(-%(security|proposed|updates|backports|commercial|partner))=)+"
 syn match debchangelogVersion	contained "(.\{-})"
 syn match debchangelogCloses	contained "closes:\_s*\(bug\)\=#\=\_s\=\d\+\(,\_s*\(bug\)\=#\=\_s\=\d\+\)*"
 syn match debchangelogLP	contained "\clp:\s\+#\d\+\(,\s*#\d\+\)*"
diff -u -r --new-file runtime/syntax.orig/debcontrol.vim runtime/syntax/debcontrol.vim
--- runtime/syntax.orig/debcontrol.vim	2008-07-06 12:51:40.000000000 -0500
+++ runtime/syntax/debcontrol.vim	2009-09-18 05:30:48.000000000 -0500
@@ -3,7 +3,7 @@
 " Maintainer:  Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 " Former Maintainers: Gerfried Fuchs <alfie@ist.org>
 "                     Wichert Akkerman <wakkerma@debian.org>
-" Last Change: 2008-02-23
+" Last Change: 2009 July 14
 " URL: http://git.debian.org/?p=pkg-vim/vim.git;a=blob_plain;f=runtime/ftplugin/debcontrol.vim;hb=debian
 
 " Comments are very welcome - but please make sure that you are commenting on
@@ -28,10 +28,10 @@
 syn match debControlSpace " "
 
 " Define some common expressions we can use later on
-syn match debcontrolArchitecture contained "\(all\|any\|alpha\|amd64\|arm\(e[bl]\)\=\|hppa\|i386\|ia64\|m32r\|m68k\|mipsel\|mips\|powerpc\|ppc64\|s390x\=\|sh[34]\(eb\)\=\|sh\|sparc64\|sparc\|hurd-i386\|kfreebsd-\(i386\|gnu\)\|knetbsd-i386\|netbsd-\(alpha\|i386\)\)"
+syn match debcontrolArchitecture contained "\(all\|any\|alpha\|amd64\|arm\(e[bl]\)\=\|avr32\|hppa\|i386\|ia64\|m32r\|m68k\|mipsel\|mips\|powerpc\|ppc64\|s390x\=\|sh[34]\(eb\)\=\|sh\|sparc64\|sparc\|hurd-i386\|kfreebsd-\(i386\|amd64\|gnu\)\|knetbsd-i386\|netbsd-\(alpha\|i386\)\)"
 syn match debcontrolName contained "[a-z0-9][a-z0-9+.-]\+"
 syn match debcontrolPriority contained "\(extra\|important\|optional\|required\|standard\)"
-syn match debcontrolSection contained "\(\(contrib\|non-free\|non-US/main\|non-US/contrib\|non-US/non-free\|restricted\|universe\|multiverse\)/\)\=\(admin\|base\|comm\|devel\|doc\|editors\|electronics\|embedded\|games\|gnome\|graphics\|hamradio\|interpreters\|kde\|libs\|libdevel\|mail\|math\|misc\|net\|news\|oldlibs\|otherosfs\|perl\|python\|science\|shells\|sound\|text\|tex\|utils\|web\|x11\|debian-installer\)"
+syn match debcontrolSection contained "\v((contrib|non-free|non-US/main|non-US/contrib|non-US/non-free|restricted|universe|multiverse)/)?(admin|cli-mono|comm|database|debian-installer|debug|devel|doc|editors|electronics|embedded|fonts|games|gnome|gnustep|gnu-r|graphics|hamradio|haskell|httpd|interpreters|java|kde|kernel|libs|libdevel|lisp|localization|mail|math|misc|net|news|ocaml|oldlibs|otherosfs|perl|php|python|ruby|science|shells|sound|text|tex|utils|vcs|video|web|x11|xfce|zope)"
 syn match debcontrolPackageType contained "u\?deb"
 syn match debcontrolVariable contained "\${.\{-}}"
 syn match debcontrolDmUpload contained "\cyes"
@@ -41,7 +41,7 @@
 syn match debcontrolHTTPUrl contained "\vhttps?://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
 syn match debcontrolVcsSvn contained "\vsvn%(\+ssh)?://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
 syn match debcontrolVcsCvs contained "\v%(\-d *)?:pserver:[^@]+\@[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?:/[^[:space:]]*%( [^[:space:]]+)?$"
-syn match debcontrolVcsGit contained "\vgit://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
+syn match debcontrolVcsGit contained "\v%(git|http)://[[:alnum:]][-[:alnum:]]*[[:alnum:]]?(\.[[:alnum:]][-[:alnum:]]*[[:alnum:]]?)*\.[[:alpha:]][-[:alnum:]]*[[:alpha:]]?(:\d+)?(/[^[:space:]]*)?$"
 
 " An email address
 syn match	debcontrolEmail	"[_=[:alnum:]\.+-]\+@[[:alnum:]\./\-]\+"
@@ -53,7 +53,7 @@
 syn case ignore
 
 " List of all legal keys
-syn match debcontrolKey contained "^\(Source\|Package\|Section\|Priority\|Maintainer\|Uploaders\|Build-Depends\|Build-Conflicts\|Build-Depends-Indep\|Build-Conflicts-Indep\|Standards-Version\|Pre-Depends\|Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Essential\|Architecture\|Description\|Bugs\|Origin\|Enhances\|Homepage\|\(XS-\)\=Vcs-\(Browser\|Arch\|Bzr\|Cvs\|Darcs\|Git\|Hg\|Mtn\|Svn\)\|XC-Package-Type\|\%(XS-\)\=DM-Upload-Allowed\): *"
+syn match debcontrolKey contained "^\%(Source\|Package\|Section\|Priority\|\%(XSBC-Original-\)\=Maintainer\|Uploaders\|Build-\%(Conflicts\|Depends\)\%(-Indep\)\=\|Standards-Version\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Essential\|Architecture\|Description\|Bugs\|Origin\|X[SB]-Python-Version\|Homepage\|\(XS-\)\=Vcs-\(Browser\|Arch\|Bzr\|Cvs\|Darcs\|Git\|Hg\|Mtn\|Svn\)\|XC-Package-Type\|\%(XS-\)\=DM-Upload-Allowed\): *"
 
 " Fields for which we do strict syntax checking
 syn region debcontrolStrictField start="^Architecture" end="$" contains=debcontrolKey,debcontrolArchitecture,debcontrolSpace oneline
@@ -62,15 +62,15 @@
 syn region debcontrolStrictField start="^Section" end="$" contains=debcontrolKey,debcontrolSection oneline
 syn region debcontrolStrictField start="^XC-Package-Type" end="$" contains=debcontrolKey,debcontrolPackageType oneline
 syn region debcontrolStrictField start="^Homepage" end="$" contains=debcontrolKey,debcontrolHTTPUrl oneline keepend
-syn region debcontrolStrictField start="^\%(XS-\)\?Vcs-\%(Browser\|Arch\|Bzr\|Darcs\|Hg\)" end="$" contains=debcontrolKey,debcontrolHTTPUrl oneline keepend
-syn region debcontrolStrictField start="^\%(XS-\)\?Vcs-Svn" end="$" contains=debcontrolKey,debcontrolVcsSvn,debcontrolHTTPUrl oneline keepend
-syn region debcontrolStrictField start="^\%(XS-\)\?Vcs-Cvs" end="$" contains=debcontrolKey,debcontrolVcsCvs oneline keepend
-syn region debcontrolStrictField start="^\%(XS-\)\?Vcs-Git" end="$" contains=debcontrolKey,debcontrolVcsGit oneline keepend
-syn region debcontrolStrictField start="^\%(XS-\)\?DM-Upload-Allowed" end="$" contains=debcontrolKey,debcontrolDmUpload oneline
+syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-\%(Browser\|Arch\|Bzr\|Darcs\|Hg\)" end="$" contains=debcontrolKey,debcontrolHTTPUrl oneline keepend
+syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Svn" end="$" contains=debcontrolKey,debcontrolVcsSvn,debcontrolHTTPUrl oneline keepend
+syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Cvs" end="$" contains=debcontrolKey,debcontrolVcsCvs oneline keepend
+syn region debcontrolStrictField start="^\%(XS-\)\=Vcs-Git" end="$" contains=debcontrolKey,debcontrolVcsGit oneline keepend
+syn region debcontrolStrictField start="^\%(XS-\)\=DM-Upload-Allowed" end="$" contains=debcontrolKey,debcontrolDmUpload oneline
 
 " Catch-all for the other legal fields
-syn region debcontrolField start="^\(Maintainer\|Standards-Version\|Essential\|Bugs\|Origin\|X\(S\|B\)-Python-Version\|XSBC-Original-Maintainer\|\(XS-\)\?Vcs-Mtn\):" end="$" contains=debcontrolKey,debcontrolVariable,debcontrolEmail oneline
-syn region debcontrolMultiField start="^\(Build-\(Conflicts\|Depends\)\(-Indep\)\=\|\(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Uploaders\|Description\):" skip="^ " end="^$"me=s-1 end="^[^ ]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable
+syn region debcontrolField start="^\%(\%(XSBC-Original-\)\=Maintainer\|Standards-Version\|Essential\|Bugs\|Origin\|X[SB]-Python-Version\|\%(XS-\)\=Vcs-Mtn\):" end="$" contains=debcontrolKey,debcontrolVariable,debcontrolEmail oneline
+syn region debcontrolMultiField start="^\%(Build-\%(Conflicts\|Depends\)\%(-Indep\)\=\|\%(Pre-\)\=Depends\|Recommends\|Suggests\|Provides\|Replaces\|Conflicts\|Enhances\|Uploaders\|Description\):" skip="^ " end="^$"me=s-1 end="^[^ #]"me=s-1 contains=debcontrolKey,debcontrolEmail,debcontrolVariable,debcontrolComment
 
 " Associate our matches and regions with pretty colours
 if version >= 508 || !exists("did_debcontrol_syn_inits")
diff -u -r --new-file runtime/syntax.orig/debsources.vim runtime/syntax/debsources.vim
--- runtime/syntax.orig/debsources.vim	2008-07-06 12:51:40.000000000 -0500
+++ runtime/syntax/debsources.vim	2009-09-18 05:28:22.000000000 -0500
@@ -2,7 +2,7 @@
 " Language:     Debian sources.list
 " Maintainer:   Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org>
 " Former Maintainer: Matthijs Mohlmann <matthijs@cacholong.nl>
-" Last Change: 2008-04-25
+" Last Change: 2009 Apr 17
 " URL: http://git.debian.org/?p=pkg-vim/vim.git;a=blob_plain;f=runtime/syntax/debsources.vim;hb=debian
 
 " Standard syntax initialization
@@ -19,11 +19,11 @@
 syn match debsourcesKeyword        /\(deb-src\|deb\|main\|contrib\|non-free\|restricted\|universe\|multiverse\)/
 
 " Match comments
-syn match debsourcesComment        /#.*/
+syn match debsourcesComment        /#.*/  contains=@Spell
 
 " Match uri's
 syn match debsourcesUri            +\(http://\|ftp://\|[rs]sh://\|debtorrent://\|\(cdrom\|copy\|file\):\)[^' 	<>"]\++
-syn match debsourcesDistrKeyword   +\([[:alnum:]_./]*\)\(sarge\|etch\|lenny\|\(old\)\=stable\|testing\|unstable\|sid\|experimental\|dapper\|feisty\|gutsy\|hardy\|intrepid\)\([-[:alnum:]_./]*\)+
+syn match debsourcesDistrKeyword   +\([[:alnum:]_./]*\)\(etch\|lenny\|squeeze\|\(old\)\=stable\|testing\|unstable\|sid\|experimental\|dapper\|hardy\|intrepid\|jaunty\|karmic\)\([-[:alnum:]_./]*\)+
 
 " Associate our matches and regions with pretty colours
 hi def link debsourcesLine            Error
diff -u -r --new-file runtime/syntax.orig/django.vim runtime/syntax/django.vim
--- runtime/syntax.orig/django.vim	2007-05-06 05:32:18.000000000 -0500
+++ runtime/syntax/django.vim	2009-01-14 14:15:05.000000000 -0600
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	Django template
 " Maintainer:	Dave Hodder <dmh@dmh.org.uk>
-" Last Change:	2007 Apr 21
+" Last Change:	2008 Dec 18
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -18,8 +18,9 @@
 
 " Django template built-in tags and parameters
 " 'comment' doesn't appear here because it gets special treatment
+syn keyword djangoStatement contained autoescape on off endautoescape
 syn keyword djangoStatement contained and as block endblock by cycle debug else
-syn keyword djangoStatement contained extends filter endfilter firstof for
+syn keyword djangoStatement contained extends filter endfilter firstof for empty
 syn keyword djangoStatement contained endfor if endif ifchanged endifchanged
 syn keyword djangoStatement contained ifequal endifequal ifnotequal
 syn keyword djangoStatement contained endifnotequal in include load not now or
@@ -35,15 +36,15 @@
 " Django templete built-in filters
 syn keyword djangoFilter contained add addslashes capfirst center cut date
 syn keyword djangoFilter contained default default_if_none dictsort
-syn keyword djangoFilter contained dictsortreversed divisibleby escape
+syn keyword djangoFilter contained dictsortreversed divisibleby escape escapejs
 syn keyword djangoFilter contained filesizeformat first fix_ampersands
-syn keyword djangoFilter contained floatformat get_digit join length length_is
+syn keyword djangoFilter contained floatformat force_escape get_digit iriencode join last length length_is
 syn keyword djangoFilter contained linebreaks linebreaksbr linenumbers ljust
 syn keyword djangoFilter contained lower make_list phone2numeric pluralize
-syn keyword djangoFilter contained pprint random removetags rjust slice slugify
+syn keyword djangoFilter contained pprint random removetags rjust safe slice slugify
 syn keyword djangoFilter contained stringformat striptags
 syn keyword djangoFilter contained time timesince timeuntil title
-syn keyword djangoFilter contained truncatewords unordered_list upper urlencode
+syn keyword djangoFilter contained truncatewords truncatewords_html unordered_list upper urlencode
 syn keyword djangoFilter contained urlize urlizetrunc wordcount wordwrap yesno
 
 " Keywords to highlight within comments
diff -u -r --new-file runtime/syntax.orig/dosbatch.vim runtime/syntax/dosbatch.vim
--- runtime/syntax.orig/dosbatch.vim	2008-05-10 15:38:38.000000000 -0500
+++ runtime/syntax/dosbatch.vim	2009-09-18 05:28:22.000000000 -0500
@@ -2,7 +2,7 @@
 " Language:	MSDOS batch file (with NT command extensions)
 " Maintainer:	Mike Williams <mrw@eandem.co.uk>
 " Filenames:    *.bat
-" Last Change:	10th May 2008
+" Last Change:	6th September 2009
 " Web Page:     http://www.eandem.co.uk/mrw/vim
 "
 " Options Flags:
@@ -36,7 +36,7 @@
 syn case match
 syn keyword dosbatchOperator    EQU NEQ LSS LEQ GTR GEQ
 syn case ignore
-syn match dosbatchOperator      "\s[-+\*/%]\s"
+syn match dosbatchOperator      "\s[-+\*/%!~]\s"
 syn match dosbatchOperator      "="
 syn match dosbatchOperator      "[-+\*/%]="
 syn match dosbatchOperator      "\s\(&\||\|^\|<<\|>>\)=\=\s"
@@ -51,10 +51,10 @@
 syn match dosbatchCmd		"(\s*'[^']*'"lc=1 contains=dosbatchString,dosbatchVariable,dosBatchArgument,@dosbatchNumber,dosbatchImplicit,dosbatchStatement,dosbatchConditional,dosbatchRepeat,dosbatchOperator
 
 " Numbers - surround with ws to not include in dir and filenames
-syn match dosbatchInteger       "[[:space:]=(/:]\d\+"lc=1
-syn match dosbatchHex		"[[:space:]=(/:]0x\x\+"lc=1
-syn match dosbatchBinary	"[[:space:]=(/:]0b[01]\+"lc=1
-syn match dosbatchOctal		"[[:space:]=(/:]0\o\+"lc=1
+syn match dosbatchInteger       "[[:space:]=(/:,!~-]\d\+"lc=1
+syn match dosbatchHex		"[[:space:]=(/:,!~-]0x\x\+"lc=1
+syn match dosbatchBinary	"[[:space:]=(/:,!~-]0b[01]\+"lc=1
+syn match dosbatchOctal		"[[:space:]=(/:,!~-]0\o\+"lc=1
 syn cluster dosbatchNumber      contains=dosbatchInteger,dosbatchHex,dosbatchBinary,dosbatchOctal
 
 " Command line switches
@@ -69,15 +69,15 @@
 syn match dosbatchIdentifier    contained "\s\h\w*\>"
 syn match dosbatchVariable	"%\h\w*%"
 syn match dosbatchVariable	"%\h\w*:\*\=[^=]*=[^%]*%"
-syn match dosbatchVariable	"%\h\w*:\~\d\+,\d\+%" contains=dosbatchInteger
+syn match dosbatchVariable	"%\h\w*:\~[-]\=\d\+\(,[-]\=\d\+\)\=%" contains=dosbatchInteger
 syn match dosbatchVariable	"!\h\w*!"
-syn match dosbatchVariable	"!\h\w*:\*\=[^=]*=[^%]*!"
-syn match dosbatchVariable	"!\h\w*:\~\d\+,\d\+!" contains=dosbatchInteger
+syn match dosbatchVariable	"!\h\w*:\*\=[^=]*=[^!]*!"
+syn match dosbatchVariable	"!\h\w*:\~[-]\=\d\+\(,[-]\=\d\+\)\=!" contains=dosbatchInteger
 syn match dosbatchSet		"\s\h\w*[+-]\==\{-1}" contains=dosbatchIdentifier,dosbatchOperator
 
 " Args to bat files and for loops, etc
 syn match dosbatchArgument	"%\(\d\|\*\)"
-syn match dosbatchArgument	"%%[a-z]\>"
+syn match dosbatchArgument	"%[a-z]\>"
 if dosbatch_cmdextversion == 1
   syn match dosbatchArgument	"%\~[fdpnxs]\+\(\($PATH:\)\=[a-z]\|\d\)\>"
 else
@@ -92,7 +92,9 @@
 
 " Comments - usual rem but also two colons as first non-space is an idiom
 syn match dosbatchComment	"^rem\($\|\s.*$\)"lc=3 contains=dosbatchTodo,dosbatchSpecialChar,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell
+syn match dosbatchComment	"^@rem\($\|\s.*$\)"lc=4 contains=dosbatchTodo,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell
 syn match dosbatchComment	"\srem\($\|\s.*$\)"lc=4 contains=dosbatchTodo,dosbatchSpecialChar,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell
+syn match dosbatchComment	"\s@rem\($\|\s.*$\)"lc=5 contains=dosbatchTodo,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell
 syn match dosbatchComment	"\s*:\s*:.*$" contains=dosbatchTodo,dosbatchSpecialChar,@dosbatchNumber,dosbatchVariable,dosbatchArgument,@Spell
 
 " Comments in ()'s - still to handle spaces before rem
diff -u -r --new-file runtime/syntax.orig/doxygen.vim runtime/syntax/doxygen.vim
--- runtime/syntax.orig/doxygen.vim	2008-07-22 13:41:00.000000000 -0500
+++ runtime/syntax/doxygen.vim	2009-01-28 10:23:36.000000000 -0600
@@ -2,8 +2,8 @@
 " Language:     doxygen on top of c, cpp, idl, java, php
 " Maintainer:   Michael Geddes <vimmer@frog.wheelycreek.net>
 " Author:       Michael Geddes
-" Last Change:  July 2008
-" Version:      1.22
+" Last Change:  Jan 2009
+" Version:      1.23
 "
 " Copyright 2004-2008 Michael Geddes
 " Please feel free to use, modify & distribute all or part of this script,
@@ -239,7 +239,7 @@
   " #Link hilighting.
   syn match doxygenHashLink /\([a-zA-Z_][0-9a-zA-Z_]*\)\?#\(\.[0-9a-zA-Z_]\@=\|[a-zA-Z0-9_]\+\|::\|()\)\+/ contained contains=doxygenHashSpecial
   syn match doxygenHashSpecial /#/ contained
-  syn match doxygenHyperLink /\(\s\|^\s*\*\?\)\@<=\(http\|https\|ftp\):\/\/[-0-9a-zA-Z_?&=+#%/.!':;@]\+/ contained
+  syn match doxygenHyperLink /\(\s\|^\s*\*\?\)\@<=\(http\|https\|ftp\):\/\/[-0-9a-zA-Z_?&=+#%/.!':;@~]\+/ contained
 
   " Handle \page.  This does not use doxygenBrief.
   syn match doxygenPage "[\\@]page\>"me=s+1 contained skipwhite nextgroup=doxygenPagePage
diff -u -r --new-file runtime/syntax.orig/erlang.vim runtime/syntax/erlang.vim
--- runtime/syntax.orig/erlang.vim	2008-03-15 09:01:37.000000000 -0500
+++ runtime/syntax/erlang.vim	2009-11-28 06:33:42.000000000 -0600
@@ -50,7 +50,7 @@
     " Operators
     syn match   erlangOperator         "+\|-\|\*\|\/"
     syn keyword erlangOperator         div rem or xor bor bxor bsl bsr
-    syn keyword erlangOperator         and band not bnot
+    syn keyword erlangOperator         and band not bnot andalso orelse
     syn match   erlangOperator         "==\|/=\|=:=\|=/=\|<\|=<\|>\|>="
     syn match   erlangOperator         "++\|--\|=\|!\|<-"
 
@@ -123,7 +123,7 @@
 
 if ! exists ("erlang_keywords")
     " Constants and Directives
-    syn match   erlangDirective  "-behaviour\|-behaviour"
+    syn match   erlangDirective  "-behaviour\|-behavior"
     syn match   erlangDirective  "-compile\|-define\|-else\|-endif\|-export\|-file"
     syn match   erlangDirective  "-ifdef\|-ifndef\|-import\|-include_lib\|-include"
     syn match   erlangDirective  "-module\|-record\|-undef"
diff -u -r --new-file runtime/syntax.orig/form.vim runtime/syntax/form.vim
--- runtime/syntax.orig/form.vim	2004-06-07 09:32:35.000000000 -0500
+++ runtime/syntax/form.vim	2009-12-16 14:38:20.000000000 -0600
@@ -1,7 +1,10 @@
 " Vim syntax file
 " Language:	FORM
+" Version: 2.0
 " Maintainer:	Michael M. Tung <michael.tung@uni-mainz.de>
-" Last Change:	2001 May 10
+" Last Change: <Thu Oct 23 13:11:21 CEST 2008>
+" Past Change: <October 2008 Thomas Reiter thomasr@nikhef.nl>
+" Past Change: <Wed, 2005/05/25 09:24:58 arwagner wptx44>
 
 " First public release based on 'Symbolic Manipulation with FORM'
 " by J.A.M. Vermaseren, CAN, Netherlands, 1991.
@@ -18,30 +21,73 @@
 
 syn case ignore
 
-" A bunch of useful FORM keywords
+" a bunch of useful FORM keywords
 syn keyword formType		global local
 syn keyword formHeaderStatement	symbol symbols cfunction cfunctions
 syn keyword formHeaderStatement	function functions vector vectors
-syn keyword formHeaderStatement	set sets index indices
+syn keyword formHeaderStatement tensor tensors ctensor ctensors
+syn keyword formHeaderStatement	set sets index indices table ctable
 syn keyword formHeaderStatement	dimension dimensions unittrace
-syn keyword formStatement	id identify drop skip
-syn keyword formStatement	write nwrite
-syn keyword formStatement	format print nprint load save
-syn keyword formStatement	bracket brackets
-syn keyword formStatement	multiply count match only discard
-syn keyword formStatement	trace4 traceN contract symmetrize antisymmetrize
-syn keyword formConditional	if else endif while
+syn keyword formConditional	if else elseif endif while
 syn keyword formConditional	repeat endrepeat label goto
+syn keyword formConditional     argument endargument exit
+syn keyword formConditional     inexpression inside term
+syn keyword formConditional     endinexpression endinside endterm
+syn keyword formStatement       abrackets also antibrackets antisymmetrize
+syn keyword formStatement       argexplode argimplode apply auto autodeclare
+syn keyword formStatement       brackets chainin chainout chisholm cleartable
+syn keyword formStatement       collect commuting compress contract
+syn keyword formStatement       cyclesymmetrize deallocatetable delete
+syn keyword formStatement       dimension discard disorder drop factarg fill
+syn keyword formStatement       fillexpression fixindex format funpowers hide
+syn keyword formStatement       identify idnew idold ifmatch inparallel
+syn keyword formStatement       insidefirst keep load makeinteger many metric
+syn keyword formStatement       moduleoption modulus multi multiply ndrop
+syn keyword formStatement       nfunctions nhide normalize notinparallel
+syn keyword formStatement       nprint nskip ntable ntensors nunhide nwrite
+syn keyword formStatement       off on once only polyfun pophide print
+syn keyword formStatement       printtable propercount pushhide ratio
+syn keyword formStatement       rcyclesymmetrize redefine renumber
+syn keyword formStatement       replaceinarg replaceloop save select
+syn keyword formStatement       setexitflag skip slavepatchsize sort splitarg
+syn keyword formStatement       splitfirstarg splitlastarg sum symmetrize
+syn keyword formStatement       tablebase testuse threadbucketsize totensor
+syn keyword formStatement       tovector trace4 tracen tryreplace unhide
+syn keyword formStatement       unittrace vectors write
+" for compatibility with older FORM versions:
+syn keyword formStatement       id bracket count match traceN
 
 " some special functions
-syn keyword formStatement	g_ gi_ g5_ g6_ g7_ 5_ 6_ 7_
-syn keyword formStatement	e_ d_ delta_ theta_ sum_ sump_
+syn keyword formStatement       abs_ bernoulli_ binom_ conjg_ count_
+syn keyword formStatement       d_ dd_ delta_ deltap_ denom_ distrib_
+syn keyword formStatement       dum_ dummy_ dummyten_ e_ exp_ fac_
+syn keyword formStatement       factorin_ firstbracket_ g5_ g6_ g7_
+syn keyword formStatement       g_ gcd_ gi_ integer_ invfac_ match_
+syn keyword formStatement       max_ maxpowerof_ min_ minpowerof_
+syn keyword formStatement       mod_ nargs_ nterms_ pattern_ poly_
+syn keyword formStatement       polyadd_ polydiv_ polygcd_ polyintfac_
+syn keyword formStatement       polymul_ polynorm_ polyrem_ polysub_
+syn keyword formStatement       replace_ reverse_ root_ setfun_ sig_
+syn keyword formStatement       sign_ sum_ sump_ table_ tbl_ term_
+syn keyword formStatement       termsin_ termsinbracket_ theta_ thetap_ 
+syn keyword formStatement	5_ 6_ 7_
+
+syn keyword formReserved        sqrt_ ln_ sin_ cos_ tan_ asin_ acos_
+syn keyword formReserved        atan_ atan2_ sinh_ cosh_ tanh_ asinh_
+syn keyword formReserved        acosh_ atanh_ li2_ lin_ 
+
+syn keyword formTodo            contained TODO FIXME XXX
+
+syn match   formSpecial         display contained "\\\(n\|t\|b\|\\\|\"\)"
+syn match   formSpecial         display contained "%\(%\|e\|E\|s\|f\|\$\)"
+syn match   formSpecial         "\<N\d\+_[?]"
 
 " pattern matching for keywords
-syn match   formComment		"^\ *\*.*$"
-syn match   formComment		"\;\ *\*.*$"
-syn region  formString		start=+"+  end=+"+
+syn match   formComment		"^\ *\*.*$" contains=formTodo
+syn match   formComment		"\;\ *\*.*$" contains=formTodo
+syn region  formString		start=+"+  end=+"+ contains=formSpecial
 syn region  formString		start=+'+  end=+'+
+syn region  formNestedString	start=+`+  end=+'+ contains=formNestedString
 syn match   formPreProc		"^\=\#[a-zA-z][a-zA-Z0-9]*\>"
 syn match   formNumber		"\<\d\+\>"
 syn match   formNumber		"\<\d\+\.\d*\>"
@@ -50,6 +96,13 @@
 syn match   formNumber		"-\.\d" contains=Number
 syn match   formNumber		"i_\+\>"
 syn match   formNumber		"fac_\+\>"
+" pattern matching wildcards
+syn match   formNumber		"?[A-z0-9]*"
+" dollar-variables (new in 3.x)
+syn match   formNumber		"\\$[A-z0-9]*"
+" scalar products
+syn match   formNumber		"^\=[a-zA-z][a-zA-Z0-9]*\.[a-zA-z][a-zA-Z0-9]*\>"
+
 syn match   formDirective	"^\=\.[a-zA-z][a-zA-Z0-9]*\>"
 
 " hi User Labels
@@ -74,6 +127,10 @@
   HiLink formDirective		PreProc
   HiLink formType		Type
   HiLink formString		String
+  HiLink formNestedString	String
+  HiLink formReserved           Error
+  HiLink formTodo               Todo
+  HiLink formSpecial            SpecialChar
 
   if !exists("form_enhanced_color")
     HiLink formHeaderStatement	Statement
diff -u -r --new-file runtime/syntax.orig/fortran.vim runtime/syntax/fortran.vim
--- runtime/syntax.orig/fortran.vim	2006-04-22 06:22:12.000000000 -0500
+++ runtime/syntax/fortran.vim	2008-11-06 10:05:04.000000000 -0600
@@ -2,7 +2,7 @@
 " Language:	Fortran95 (and Fortran90, Fortran77, F and elf90)
 " Version:	0.88
 " URL:		http://www.unb.ca/chem/ajit/syntax/fortran.vim
-" Last Change:	2006 Apr. 22
+" Last Change:	2008 Nov 01
 " Maintainer:	Ajit J. Thakkar (ajit AT unb.ca); <http://www.unb.ca/chem/ajit/>
 " Usage:	Do :help fortran-syntax from Vim
 " Credits:
@@ -300,7 +300,7 @@
     syn match fortranLabelError	"^.\{-,4}[^0-9 ]" contains=fortranTab
     syn match fortranLabelError	"^.\{4}\d\S"
   endif
-  syn match fortranComment		excludenl "^[!c*].*$" contains=@fortranCommentGroup
+  syn match fortranComment		excludenl "^[!c*].*$" contains=@fortranCommentGroup,@spell
   syn match fortranLeftMargin		transparent "^ \{5}"
   syn match fortranContinueMark		display "^.\{5}\S"lc=5
 else
diff -u -r --new-file runtime/syntax.orig/fstab.vim runtime/syntax/fstab.vim
--- runtime/syntax.orig/fstab.vim	2008-01-16 14:52:16.000000000 -0600
+++ runtime/syntax/fstab.vim	2009-02-12 16:23:26.000000000 -0600
@@ -2,14 +2,15 @@
 " Language: fstab file
 " Maintaner: Radu Dineiu <radu.dineiu@gmail.com>
 " URL: http://ld.yi.org/vim/fstab.vim
-" Last Change: 2008 Jan 16
-" Version: 0.92
+" Last Change: 2009 Feb 04
+" Version: 0.93
 "
 " Credits:
 "   David Necas (Yeti) <yeti@physics.muni.cz>
 "   Stefano Zacchiroli <zack@debian.org>
 "   Georgi Georgiev <chutz@gg3.net>
 "   James Vega <jamessan@debian.org>
+"   Elias Probst <mail@eliasprobst.eu>
 "
 " Options:
 "   let fstab_unknown_fs_errors = 1
@@ -46,7 +47,7 @@
 " Type
 syn cluster fsTypeCluster contains=fsTypeKeyword,fsTypeUnknown
 syn match fsTypeUnknown /\s\+\zs\w\+/ contained
-syn keyword fsTypeKeyword contained adfs ados affs atfs audiofs auto autofs befs bfs cd9660 cfs cifs coda cramfs devfs devpts e2compr efs ext2 ext2fs ext3 fdesc ffs filecore fuse hfs hpfs iso9660 jffs jffs2 jfs kernfs lfs linprocfs mfs minix msdos ncpfs nfs none ntfs null nwfs overlay ovlfs portal proc procfs ptyfs qnx4 reiserfs romfs shm smbfs sshfs std subfs swap sysfs sysv tcfs tmpfs udf ufs umap umsdos union usbfs userfs vfat vs3fs vxfs wrapfs wvfs xfs zisofs
+syn keyword fsTypeKeyword contained adfs ados affs atfs audiofs auto autofs befs bfs cd9660 cfs cifs coda cramfs devfs devpts e2compr efs ext2 ext2fs ext3 ext4 fdesc ffs filecore fuse hfs hpfs iso9660 jffs jffs2 jfs kernfs lfs linprocfs mfs minix msdos ncpfs nfs none ntfs null nwfs overlay ovlfs portal proc procfs ptyfs qnx4 reiserfs romfs shm smbfs sshfs std subfs swap sysfs sysv tcfs tmpfs udf ufs umap umsdos union usbfs userfs vfat vs3fs vxfs wrapfs wvfs xfs zisofs
 
 " Options
 " -------
@@ -91,7 +92,21 @@
 syn match fsOptionsKeywords contained /\<commit=/ nextgroup=fsOptionsNumber
 syn keyword fsOptionsExt3Journal contained update inum
 syn keyword fsOptionsExt3Data contained journal ordered writeback
-syn keyword fsOptionsKeywords contained noload
+syn keyword fsOptionsKeywords contained noload user_xattr nouser_xattr acl noacl
+
+" Options: ext4
+syn match fsOptionsKeywords contained /\<journal=/ nextgroup=fsOptionsExt4Journal
+syn match fsOptionsKeywords contained /\<data=/ nextgroup=fsOptionsExt4Data
+syn match fsOptionsKeywords contained /\<barrier=/ nextgroup=fsOptionsExt4Barrier
+syn match fsOptionsKeywords contained /\<journal_dev=/ nextgroup=fsOptionsNumber
+syn match fsOptionsKeywords contained /\<resuid=/ nextgroup=fsOptionsNumber
+syn match fsOptionsKeywords contained /\<resgid=/ nextgroup=fsOptionsNumber
+syn match fsOptionsKeywords contained /\<sb=/ nextgroup=fsOptionsNumber
+syn match fsOptionsKeywords contained /\<commit=/ nextgroup=fsOptionsNumber
+syn keyword fsOptionsExt4Journal contained update inum
+syn keyword fsOptionsExt4Data contained journal ordered writeback
+syn match fsOptionsExt4Barrier /[0-1]/
+syn keyword fsOptionsKeywords contained noload extents orlov oldalloc user_xattr nouser_xattr acl noacl reservation noreservation bsddf minixdf check=none nocheck debug grpid nogroupid sysvgroups bsdgroups quota noquota grpquota usrquota bh nobh
 
 " Options: fat
 syn match fsOptionsKeywords contained /\<blocksize=/ nextgroup=fsOptionsSize
@@ -241,6 +256,9 @@
 	HiLink fsOptionsExt2Errors String
 	HiLink fsOptionsExt3Journal String
 	HiLink fsOptionsExt3Data String
+	HiLink fsOptionsExt4Journal String
+	HiLink fsOptionsExt4Data String
+	HiLink fsOptionsExt4Barrier Number
 	HiLink fsOptionsFatCheck String
 	HiLink fsOptionsConv String
 	HiLink fsOptionsFatType Number
diff -u -r --new-file runtime/syntax.orig/gdb.vim runtime/syntax/gdb.vim
--- runtime/syntax.orig/gdb.vim	2004-06-07 09:32:35.000000000 -0500
+++ runtime/syntax/gdb.vim	2009-06-03 05:05:43.000000000 -0500
@@ -2,7 +2,7 @@
 " Language:	GDB command files
 " Maintainer:	Claudio Fleiner <claudio@fleiner.com>
 " URL:		http://www.fleiner.com/vim/syntax/gdb.vim
-" Last Change:	2003 Jan 04
+" Last Change:	2009 May 25
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -35,7 +35,7 @@
 " some commonly used abreviations
 syn keyword gdbStatement c disp undisp disas p
 
-syn region gdbDocument matchgroup=gdbFuncDef start="\<document\>.*$" matchgroup=gdbFuncDef end="^end$"
+syn region gdbDocument matchgroup=gdbFuncDef start="\<document\>.*$" matchgroup=gdbFuncDef end="^end\s*$"
 
 syn match gdbStatement "\<add-shared-symbol-files\>"
 syn match gdbStatement "\<add-symbol-file\>"
diff -u -r --new-file runtime/syntax.orig/git.vim runtime/syntax/git.vim
--- runtime/syntax.orig/git.vim	2008-04-15 22:15:49.000000000 -0500
+++ runtime/syntax/git.vim	2009-12-24 10:29:21.000000000 -0600
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:	generic git output
-" Maintainer:	Tim Pope <vimNOSPAM@tpope.info>
-" Last Change:	2008 Mar 21
+" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
+" Last Change:	2009 Dec 24
 
 if exists("b:current_syntax")
     finish
@@ -13,14 +13,19 @@
 syn include @gitDiff syntax/diff.vim
 
 syn region gitHead start=/\%^/ end=/^$/
-syn region gitHead start=/\%(^commit \x\{40\}$\)\@=/ end=/^$/
+syn region gitHead start=/\%(^commit \x\{40\}\%(\s*(.*)\)\=$\)\@=/ end=/^$/
 
 " For git reflog and git show ...^{tree}, avoid sync issues
 syn match gitHead /^\d\{6\} \%(\w\{4} \)\=\x\{40\}\%( [0-3]\)\=\t.*/
 syn match gitHead /^\x\{40\} \x\{40}\t.*/
 
-syn region gitDiff start=/^\%(diff --git \)\@=/ end=/^\%(diff --git \|$\)\@=/ contains=@gitDiff fold
-syn region gitDiff start=/^\%(@@ -\)\@=/ end=/^\%(diff --git \|$\)\@=/ contains=@gitDiff
+syn region gitDiff start=/^\%(diff --git \)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff fold
+syn region gitDiff start=/^\%(@@ -\)\@=/ end=/^\%(diff --\%(git\|cc\|combined\) \|$\)\@=/ contains=@gitDiff
+
+syn region gitDiffMerge start=/^\%(diff --\%(cc\|combined\) \)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff
+syn region gitDiffMerge start=/^\%(@@@@* -\)\@=/ end=/^\%(diff --\|$\)\@=/ contains=@gitDiff
+syn match gitDiffAdded "^ \++.*" contained containedin=gitDiffMerge
+syn match gitDiffRemoved "^ \+-.*" contained containedin=gitDiffMerge
 
 syn match  gitKeyword /^\%(object\|type\|tag\|commit\|tree\|parent\|encoding\)\>/ contained containedin=gitHead nextgroup=gitHash,gitType skipwhite
 syn match  gitKeyword /^\%(tag\>\|ref:\)/ contained containedin=gitHead nextgroup=gitReference skipwhite
@@ -29,8 +34,6 @@
 syn match  gitIdentityKeyword /^\%(author\|committer\|tagger\)\>/ contained containedin=gitHead nextgroup=gitIdentity skipwhite
 syn match  gitIdentityHeader /^\%(Author\|Commit\|Tagger\):/ contained containedin=gitHead nextgroup=gitIdentity skipwhite
 syn match  gitDateHeader /^\%(AuthorDate\|CommitDate\|Date\):/ contained containedin=gitHead nextgroup=gitDate skipwhite
-syn match  gitIdentity /\S.\{-\} <[^>]*>/ contained nextgroup=gitDate skipwhite
-syn region gitEmail matchgroup=gitEmailDelimiter start=/</ end=/>/ keepend oneline contained containedin=gitIdentity
 
 syn match  gitReflogHeader /^Reflog:/ contained containedin=gitHead nextgroup=gitReflogMiddle skipwhite
 syn match  gitReflogHeader /^Reflog message:/ contained containedin=gitHead skipwhite
@@ -42,14 +45,20 @@
 syn match  gitType      /\<\%(tag\|commit\|tree\|blob\)\>/     contained nextgroup=gitHash skipwhite
 syn match  gitStage     /\<\d\t\@=/                            contained
 syn match  gitReference /\S\+\S\@!/                            contained
-syn match  gitHash      /\<\x\{40\}\>/                         contained nextgroup=gitIdentity,gitStage skipwhite
+syn match  gitHash      /\<\x\{40\}\>/                         contained nextgroup=gitIdentity,gitStage,gitHash skipwhite
 syn match  gitHash      /^\<\x\{40\}\>/ containedin=gitHead contained nextgroup=gitHash skipwhite
+syn match  gitHashAbbrev /\<\x\{4,40\}\>/           contained nextgroup=gitHashAbbrev skipwhite
 syn match  gitHashAbbrev /\<\x\{4,39\}\.\.\./he=e-3 contained nextgroup=gitHashAbbrev skipwhite
-syn match  gitHashAbbrev /\<\x\{40\}\>/             contained nextgroup=gitHashAbbrev skipwhite
+
+syn match  gitIdentity /\S.\{-\} <[^>]*>/ contained nextgroup=gitDate skipwhite
+syn region gitEmail matchgroup=gitEmailDelimiter start=/</ end=/>/ keepend oneline contained containedin=gitIdentity
+
+syn match  gitNotesHeader /^Notes:\ze\n    /
 
 hi def link gitDateHeader        gitIdentityHeader
 hi def link gitIdentityHeader    gitIdentityKeyword
 hi def link gitIdentityKeyword   Label
+hi def link gitNotesHeader       gitKeyword
 hi def link gitReflogHeader      gitKeyword
 hi def link gitKeyword           Keyword
 hi def link gitIdentity          String
@@ -63,5 +72,7 @@
 hi def link gitReference         Function
 hi def link gitStage             gitType
 hi def link gitType              Type
+hi def link gitDiffAdded         diffAdded
+hi def link gitDiffRemoved       diffRemoved
 
 let b:current_syntax = "git"
diff -u -r --new-file runtime/syntax.orig/gitcommit.vim runtime/syntax/gitcommit.vim
--- runtime/syntax.orig/gitcommit.vim	2008-04-15 17:46:45.000000000 -0500
+++ runtime/syntax/gitcommit.vim	2009-12-24 10:29:21.000000000 -0600
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:	git commit file
-" Maintainer:	Tim Pope <vimNOSPAM@tpope.info>
+" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
 " Filenames:	*.git/COMMIT_EDITMSG
-" Last Change:	2008 Apr 09
+" Last Change:	2009 Dec 24
 
 if exists("b:current_syntax")
     finish
@@ -16,48 +16,66 @@
 endif
 
 syn include @gitcommitDiff syntax/diff.vim
-syn region gitcommitDiff start=/\%(^diff --git \)\@=/ end=/^$\|^#\@=/ contains=@gitcommitDiff
+syn region gitcommitDiff start=/\%(^diff --\%(git\|cc\|combined\) \)\@=/ end=/^$\|^#\@=/ contains=@gitcommitDiff
 
 syn match   gitcommitFirstLine	"\%^[^#].*"  nextgroup=gitcommitBlank skipnl
-syn match   gitcommitSummary  	"^.\{0,50\}" contained containedin=gitcommitFirstLine nextgroup=gitcommitOverflow contains=@Spell
+syn match   gitcommitSummary	"^.\{0,50\}" contained containedin=gitcommitFirstLine nextgroup=gitcommitOverflow contains=@Spell
 syn match   gitcommitOverflow	".*" contained contains=@Spell
 syn match   gitcommitBlank	"^[^#].*" contained contains=@Spell
 syn match   gitcommitComment	"^#.*"
-syn region  gitcommitHead	start=/^#   / end=/^#$/ contained transparent
+syn match   gitcommitHead	"^\%(#   .*\n\)\+#$" contained transparent
 syn match   gitcommitOnBranch	"\%(^# \)\@<=On branch" contained containedin=gitcommitComment nextgroup=gitcommitBranch skipwhite
-syn match   gitcommitBranch	"\S\+" contained
+syn match   gitcommitOnBranch	"\%(^# \)\@<=Your branch .\{-\} '" contained containedin=gitcommitComment nextgroup=gitcommitBranch skipwhite
+syn match   gitcommitBranch	"[^ \t']\+" contained
+syn match   gitcommitNoBranch	"\%(^# \)\@<=Not currently on any branch." contained containedin=gitcommitComment
 syn match   gitcommitHeader	"\%(^# \)\@<=.*:$"	contained containedin=gitcommitComment
+syn region  gitcommitAuthor	matchgroup=gitCommitHeader start=/\%(^# \)\@<=Author:/ end=/$/ keepend oneline contained containedin=gitcommitComment transparent
+syn match   gitcommitNoChanges	"\%(^# \)\@<=No changes$" contained containedin=gitcommitComment
 
 syn region  gitcommitUntracked	start=/^# Untracked files:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitUntrackedFile fold
 syn match   gitcommitUntrackedFile  "\t\@<=.*"	contained
 
 syn region  gitcommitDiscarded	start=/^# Changed but not updated:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitDiscardedType fold
 syn region  gitcommitSelected	start=/^# Changes to be committed:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitSelectedType fold
+syn region  gitcommitUnmerged	start=/^# Unmerged paths:/ end=/^#$\|^#\@!/ contains=gitcommitHeader,gitcommitHead,gitcommitUnmergedType fold
 
 syn match   gitcommitDiscardedType	"\t\@<=[a-z][a-z ]*[a-z]: "he=e-2	contained containedin=gitcommitComment nextgroup=gitcommitDiscardedFile skipwhite
 syn match   gitcommitSelectedType	"\t\@<=[a-z][a-z ]*[a-z]: "he=e-2	contained containedin=gitcommitComment nextgroup=gitcommitSelectedFile skipwhite
+syn match   gitcommitUnmergedType	"\t\@<=[a-z][a-z ]*[a-z]: "he=e-2	contained containedin=gitcommitComment nextgroup=gitcommitUnmergedFile skipwhite
 syn match   gitcommitDiscardedFile	".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitDiscardedArrow
 syn match   gitcommitSelectedFile	".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow
+syn match   gitcommitUnmergedFile	".\{-\}\%($\| -> \)\@=" contained nextgroup=gitcommitSelectedArrow
 syn match   gitcommitDiscardedArrow	" -> " contained nextgroup=gitcommitDiscardedFile
 syn match   gitcommitSelectedArrow	" -> " contained nextgroup=gitcommitSelectedFile
+syn match   gitcommitUnmergedArrow	" -> " contained nextgroup=gitcommitSelectedFile
+
+syn match   gitcommitWarning		"\%^[^#].*: needs merge$" nextgroup=gitcommitWarning skipnl
+syn match   gitcommitWarning		"^[^#].*: needs merge$" nextgroup=gitcommitWarning skipnl contained
+syn match   gitcommitWarning		"^\%(no changes added to commit\|nothing \%(added \)\=to commit\)\>.*\%$"
 
 hi def link gitcommitSummary		Keyword
 hi def link gitcommitComment		Comment
 hi def link gitcommitUntracked		gitcommitComment
 hi def link gitcommitDiscarded		gitcommitComment
 hi def link gitcommitSelected		gitcommitComment
+hi def link gitcommitUnmerged		gitcommitComment
 hi def link gitcommitOnBranch		Comment
 hi def link gitcommitBranch		Special
+hi def link gitcommitNoBranch		gitCommitBranch
 hi def link gitcommitDiscardedType	gitcommitType
 hi def link gitcommitSelectedType	gitcommitType
+hi def link gitcommitUnmergedType	gitcommitType
 hi def link gitcommitType		Type
+hi def link gitcommitNoChanges		gitcommitHeader
 hi def link gitcommitHeader		PreProc
 hi def link gitcommitUntrackedFile	gitcommitFile
 hi def link gitcommitDiscardedFile	gitcommitFile
 hi def link gitcommitSelectedFile	gitcommitFile
+hi def link gitcommitUnmergedFile	gitcommitFile
 hi def link gitcommitFile		Constant
 hi def link gitcommitDiscardedArrow	gitcommitArrow
 hi def link gitcommitSelectedArrow	gitcommitArrow
+hi def link gitcommitUnmergedArrow	gitcommitArrow
 hi def link gitcommitArrow		gitcommitComment
 "hi def link gitcommitOverflow		Error
 hi def link gitcommitBlank		Error
diff -u -r --new-file runtime/syntax.orig/gitconfig.vim runtime/syntax/gitconfig.vim
--- runtime/syntax.orig/gitconfig.vim	2008-06-04 10:45:44.000000000 -0500
+++ runtime/syntax/gitconfig.vim	2009-12-24 10:29:21.000000000 -0600
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:	git config file
-" Maintainer:	Tim Pope <vimNOSPAM@tpope.info>
+" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
 " Filenames:	gitconfig, .gitconfig, *.git/config
-" Last Change:	2008 Jun 04
+" Last Change:	2009 Dec 24
 
 if exists("b:current_syntax")
     finish
diff -u -r --new-file runtime/syntax.orig/gitrebase.vim runtime/syntax/gitrebase.vim
--- runtime/syntax.orig/gitrebase.vim	2008-04-16 03:12:25.000000000 -0500
+++ runtime/syntax/gitrebase.vim	2009-12-24 10:29:21.000000000 -0600
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:	git rebase --interactive
-" Maintainer:	Tim Pope <vimNOSPAM@tpope.info>
+" Maintainer:	Tim Pope <vimNOSPAM@tpope.org>
 " Filenames:	git-rebase-todo
-" Last Change:	2008 Apr 16
+" Last Change:	2009 Dec 24
 
 if exists("b:current_syntax")
     finish
@@ -14,6 +14,7 @@
 syn match   gitrebaseCommit "\v<\x{7,40}>"  nextgroup=gitrebaseSummary skipwhite
 syn match   gitrebasePick   "\v^p%(ick)=>"   nextgroup=gitrebaseCommit skipwhite
 syn match   gitrebaseEdit   "\v^e%(dit)=>"   nextgroup=gitrebaseCommit skipwhite
+syn match   gitrebaseReword "\v^r%(eword)=>" nextgroup=gitrebaseCommit skipwhite
 syn match   gitrebaseSquash "\v^s%(quash)=>" nextgroup=gitrebaseCommit skipwhite
 syn match   gitrebaseSummary ".*"               contains=gitrebaseHash contained
 syn match   gitrebaseComment "^#.*"             contains=gitrebaseHash
@@ -23,9 +24,10 @@
 hi def link gitrebaseHash           Identifier
 hi def link gitrebasePick           Statement
 hi def link gitrebaseEdit           PreProc
+hi def link gitrebaseReword         Special
 hi def link gitrebaseSquash         Type
 hi def link gitrebaseSummary        String
 hi def link gitrebaseComment        Comment
-hi def link gitrebaseSquashError     Error
+hi def link gitrebaseSquashError    Error
 
 let b:current_syntax = "gitrebase"
diff -u -r --new-file runtime/syntax.orig/groovy.vim runtime/syntax/groovy.vim
--- runtime/syntax.orig/groovy.vim	2006-03-24 10:29:41.000000000 -0600
+++ runtime/syntax/groovy.vim	2009-11-28 06:33:43.000000000 -0600
@@ -228,6 +228,7 @@
   " syntax include @groovyHtml <sfile>:p:h/html.vim
    syntax include @groovyHtml runtime! syntax/html.vim
   unlet b:current_syntax
+  syntax spell default  " added by Bram
   syn region  groovyDocComment    start="/\*\*"  end="\*/" keepend contains=groovyCommentTitle,@groovyHtml,groovyDocTags,groovyTodo,@Spell
   syn region  groovyCommentTitle  contained matchgroup=groovyDocComment start="/\*\*"   matchgroup=groovyCommentTitle keepend end="\.$" end="\.[ \t\r<&]"me=e-1 end="[^{]@"me=s-2,he=s-1 end="\*/"me=s-1,he=s-1 contains=@groovyHtml,groovyCommentStar,groovyTodo,@Spell,groovyDocTags
 
diff -u -r --new-file runtime/syntax.orig/haskell.vim runtime/syntax/haskell.vim
--- runtime/syntax.orig/haskell.vim	2004-06-07 09:32:35.000000000 -0500
+++ runtime/syntax/haskell.vim	2009-01-14 14:15:20.000000000 -0600
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:		Haskell
 " Maintainer:		Haskell Cafe mailinglist <haskell-cafe@haskell.org>
-" Last Change:		2004 Feb 23
+" Last Change:		2008 Dec 15
 " Original Author:	John Williams <jrw@pobox.com>
 "
 " Thanks to Ryan Crumley for suggestions and John Meacham for
@@ -30,6 +30,7 @@
 "	       in eol comment character class
 " 2004 Feb 23: Made the leading comments somewhat clearer where it comes
 "	       to attribution of work.
+" 2008 Dec 15: Added comments as contained element in import statements
 
 " Remove any old syntax stuff hanging around
 if version < 600
@@ -67,7 +68,7 @@
 " because otherwise they would match as keywords at the start of a
 " "literate" comment (see lhs.vim).
 syn match hsModule		"\<module\>"
-syn match hsImport		"\<import\>.*"he=s+6 contains=hsImportMod
+syn match hsImport		"\<import\>.*"he=s+6 contains=hsImportMod,hsLineComment,hsBlockComment
 syn match hsImportMod		contained "\<\(as\|qualified\|hiding\)\>"
 syn match hsInfix		"\<\(infix\|infixl\|infixr\)\>"
 syn match hsStructure		"\<\(class\|data\|deriving\|instance\|default\|where\)\>"
diff -u -r --new-file runtime/syntax.orig/help.vim runtime/syntax/help.vim
--- runtime/syntax.orig/help.vim	2006-05-13 01:42:22.000000000 -0500
+++ runtime/syntax/help.vim	2009-06-03 05:07:39.000000000 -0500
@@ -1,14 +1,14 @@
 " Vim syntax file
 " Language:	Vim help file
 " Maintainer:	Bram Moolenaar (Bram@vim.org)
-" Last Change:	2006 May 13
+" Last Change:	2009 May 18
 
 " Quit when a (custom) syntax file was already loaded
 if exists("b:current_syntax")
   finish
 endif
 
-syn match helpHeadline		"^[-A-Z .]\+[ \t]\+\*"me=e-1
+syn match helpHeadline		"^[-A-Z .][-A-Z0-9 .()]*[ \t]\+\*"me=e-1
 syn match helpSectionDelim	"^=\{3,}.*===$"
 syn match helpSectionDelim	"^-\{3,}.*--$"
 syn region helpExample		matchgroup=helpIgnore start=" >$" start="^>$" end="^[^ \t]"me=e-1 end="^<"
diff -u -r --new-file runtime/syntax.orig/indent.vim runtime/syntax/indent.vim
--- runtime/syntax.orig/indent.vim	2007-06-17 10:02:22.000000000 -0500
+++ runtime/syntax/indent.vim	2010-02-11 06:48:22.000000000 -0600
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         indent(1) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2007-06-17
+" Latest Revision:  2010-01-23
 "   indent_is_bsd:  If exists, will change somewhat to match BSD implementation
 "
 " TODO: is the deny-all (a la lilo.vim nice or no?)...
@@ -27,7 +27,7 @@
                           \ contains=indentTodo,@Spell
 
 if !exists("indent_is_bsd")
-  syn match indentOptions '-i\|--indentation-level'
+  syn match indentOptions '-i\|--indentation-level\|-il\|--indent-level'
                         \ nextgroup=indentNumber skipwhite skipempty
 endif
 syn match   indentOptions '-\%(bli\|c\%([bl]i\|[dip]\)\=\|di\=\|ip\=\|lc\=\|pp\=i\|sbi\|ts\|-\%(brace-indent\|comment-indentation\|case-brace-indentation\|declaration-comment-column\|continuation-indentation\|case-indentation\|else-endif-column\|line-comments-indentation\|declaration-indentation\|indent-level\|parameter-indentation\|line-length\|comment-line-length\|paren-indentation\|preprocessor-indentation\|struct-brace-indentation\|tab-size\)\)'
@@ -123,6 +123,7 @@
                         \ -ut --use-tabs
                         \ -v --verbose
                         \ -version --version
+                        \ -linux --linux-style
 
 if exists("indent_is_bsd")
   syn keyword indentOptions -ip -ei -nei
diff -u -r --new-file runtime/syntax.orig/java.vim runtime/syntax/java.vim
--- runtime/syntax.orig/java.vim	2007-12-20 17:14:48.000000000 -0600
+++ runtime/syntax/java.vim	2009-03-22 14:39:44.000000000 -0500
@@ -2,7 +2,7 @@
 " Language:     Java
 " Maintainer:   Claudio Fleiner <claudio@fleiner.com>
 " URL:		http://www.fleiner.com/vim/syntax/java.vim
-" Last Change:  2007 Dec 21
+" Last Change:  2009 Mar 14
 
 " Please check :help java.vim for comments on some of the options available.
 
@@ -15,6 +15,7 @@
   endif
   " we define it here so that included files can test for it
   let main_syntax='java'
+  syn region javaFold start="{" end="}" transparent fold
 endif
 
 " don't use standard HiLink, it will not work with included syntax files
@@ -58,7 +59,7 @@
 syn keyword javaClassDecl	enum
 syn match   javaClassDecl	"^class\>"
 syn match   javaClassDecl	"[^.]\s*\<class\>"ms=s+1
-syn match   javaAnnotation      "@[_$a-zA-Z][_$a-zA-Z0-9_]*\>"
+syn match   javaAnnotation      "@\([_$a-zA-Z][_$a-zA-Z0-9]*\.\)*[_$a-zA-Z][_$a-zA-Z0-9]*\>"
 syn match   javaClassDecl       "@interface\>"
 syn keyword javaBranch		break continue nextgroup=javaUserLabelRef skipwhite
 syn match   javaUserLabelRef	"\k\+" contained
@@ -121,11 +122,6 @@
 syn keyword javaLabel		default
 
 if !exists("java_allow_cpp_keywords")
-  " The default used to be to highlight C++ keywords.  But several people
-  " don't like that, so default to not highlighting these.
-  let java_allow_cpp_keywords = 1
-endif
-if !java_allow_cpp_keywords
   syn keyword javaError auto delete extern friend inline redeclared
   syn keyword javaError register signed sizeof struct template typedef union
   syn keyword javaError unsigned operator
@@ -161,6 +157,11 @@
   " syntax coloring for javadoc comments (HTML)
   syntax include @javaHtml <sfile>:p:h/html.vim
   unlet b:current_syntax
+  " HTML enables spell checking for all text that is not in a syntax item. This
+  " is wrong for Java (all identifiers would be spell-checked), so it's undone
+  " here.
+  syntax spell default
+
   syn region  javaDocComment    start="/\*\*"  end="\*/" keepend contains=javaCommentTitle,@javaHtml,javaDocTags,javaDocSeeTag,javaTodo,@Spell
   syn region  javaCommentTitle  contained matchgroup=javaDocComment start="/\*\*"   matchgroup=javaCommentTitle keepend end="\.$" end="\.[ \t\r<&]"me=e-1 end="[^{]@"me=s-2,he=s-1 end="\*/"me=s-1,he=s-1 contains=@javaHtml,javaCommentStar,javaTodo,@Spell,javaDocTags,javaDocSeeTag
 
@@ -179,7 +180,7 @@
 " Strings and constants
 syn match   javaSpecialError     contained "\\."
 syn match   javaSpecialCharError contained "[^']"
-syn match   javaSpecialChar      contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\x\{4\}\)"
+syn match   javaSpecialChar      contained "\\\([4-9]\d\|[0-3]\d\d\|[\"\\'ntbrf]\|u\+\x\{4\}\)"
 syn region  javaString		start=+"+ end=+"+ end=+$+ contains=javaSpecialChar,javaSpecialError,@Spell
 " next line disabled, it can cause a crash for a long line
 "syn match   javaStringError	  +"\([^"\\]\|\\.\)*$+
@@ -192,7 +193,7 @@
 syn match   javaNumber		 "\<\d\+\([eE][-+]\=\d\+\)\=[fFdD]\>"
 
 " unicode characters
-syn match   javaSpecial "\\u\d\{4\}"
+syn match   javaSpecial "\\u\+\d\{4\}"
 
 syn cluster javaTop add=javaString,javaCharacter,javaNumber,javaSpecial,javaStringError
 
diff -u -r --new-file runtime/syntax.orig/kconfig.vim runtime/syntax/kconfig.vim
--- runtime/syntax.orig/kconfig.vim	2006-04-19 15:49:04.000000000 -0500
+++ runtime/syntax/kconfig.vim	2009-06-03 05:05:43.000000000 -0500
@@ -1,6 +1,6 @@
 " Vim syntax file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-14
+" Latest Revision:  2009-05-25
 
 if exists("b:current_syntax")
   finish
@@ -666,9 +666,9 @@
 
 syn match   kconfigComment            display '#.*$' contains=kconfigTodo
 
-syn keyword kconfigKeyword            config menuconfig comment menu mainmenu
+syn keyword kconfigKeyword            config menuconfig comment mainmenu
 
-syn keyword kconfigConditional        choice endchoice if endif
+syn keyword kconfigConditional        menu endmenu choice endchoice if endif
 
 syn keyword kconfigPreProc            source
                                       \ nextgroup=kconfigPath
diff -u -r --new-file runtime/syntax.orig/lex.vim runtime/syntax/lex.vim
--- runtime/syntax.orig/lex.vim	2005-09-06 12:27:26.000000000 -0500
+++ runtime/syntax/lex.vim	2009-10-08 16:18:57.000000000 -0500
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:	Lex
-" Maintainer:	Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change:	Sep 06, 2005
-" Version:	7
+" Maintainer:	Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
+" Last Change:	Sep 11, 2009
+" Version:	10
 " URL:	http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
 "
 " Option:
@@ -16,7 +16,7 @@
   finish
 endif
 
-" Read the C syntax to start with
+" Read the C/C++ syntax to start with
 if version >= 600
   if exists("lex_uses_cpp")
     runtime! syntax/cpp.vim
@@ -36,32 +36,60 @@
 " --- Lex stuff ---
 " --- ========= ---
 
-"I'd prefer to use lex.* , but it doesn't handle forward definitions yet
+"I'd prefer to use lex.* , but vim doesn't handle forward definitions yet
 syn cluster lexListGroup		contains=lexAbbrvBlock,lexAbbrv,lexAbbrv,lexAbbrvRegExp,lexInclude,lexPatBlock,lexPat,lexBrace,lexPatString,lexPatTag,lexPatTag,lexPatComment,lexPatCodeLine,lexMorePat,lexPatSep,lexSlashQuote,lexPatCode,cInParen,cUserLabel,cOctalZero,cCppSkip,cErrInBracket,cErrInParen,cOctalError,cCppOut2,cCommentStartError,cParenError
-syn cluster lexListPatCodeGroup	contains=lexAbbrvBlock,lexAbbrv,lexAbbrv,lexAbbrvRegExp,lexInclude,lexPatBlock,lexPat,lexBrace,lexPatTag,lexPatTag,lexPatComment,lexPatCodeLine,lexMorePat,lexPatSep,lexSlashQuote,cInParen,cUserLabel,cOctalZero,cCppSkip,cErrInBracket,cErrInParen,cOctalError,cCppOut2,cCommentStartError,cParenError
+syn cluster lexListPatCodeGroup	contains=lexAbbrvBlock,lexAbbrv,lexAbbrv,lexAbbrvRegExp,lexInclude,lexPatBlock,lexPat,lexBrace,lexPatTag,lexPatTag,lexPatTagZoneStart,lexPatComment,lexPatCodeLine,lexMorePat,lexPatSep,lexSlashQuote,cInParen,cUserLabel,cOctalZero,cCppSkip,cErrInBracket,cErrInParen,cOctalError,cCppOut2,cCommentStartError,cParenError
 
 " Abbreviations Section
-syn region lexAbbrvBlock	start="^\(\h\+\s\|%{\)" end="^\ze%%$"	skipnl	nextgroup=lexPatBlock contains=lexAbbrv,lexInclude,lexAbbrvComment,lexStartState
+if has("folding")
+ syn region lexAbbrvBlock	fold start="^\(\h\+\s\|%{\)"	end="^\ze%%$"	skipnl	nextgroup=lexPatBlock contains=lexAbbrv,lexInclude,lexAbbrvComment,lexStartState
+else
+ syn region lexAbbrvBlock	start="^\(\h\+\s\|%{\)"	end="^\ze%%$"	skipnl	nextgroup=lexPatBlock contains=lexAbbrv,lexInclude,lexAbbrvComment,lexStartState
+endif
 syn match  lexAbbrv		"^\I\i*\s"me=e-1			skipwhite	contained nextgroup=lexAbbrvRegExp
 syn match  lexAbbrv		"^%[sx]"					contained
 syn match  lexAbbrvRegExp	"\s\S.*$"lc=1				contained nextgroup=lexAbbrv,lexInclude
-syn region lexInclude	matchgroup=lexSep	start="^%{" end="%}"	contained	contains=ALLBUT,@lexListGroup
-syn region lexAbbrvComment	start="^\s\+/\*"	end="\*/"			contains=@Spell
-syn region lexStartState	matchgroup=lexAbbrv	start="^%\a\+"	end="$"			contained
+if has("folding")
+ syn region lexInclude	fold matchgroup=lexSep	start="^%{"	end="%}"	contained	contains=ALLBUT,@lexListGroup
+ syn region lexAbbrvComment	fold			start="^\s\+/\*"	end="\*/"	contains=@Spell
+ syn region lexStartState	fold matchgroup=lexAbbrv	start="^%\a\+"	end="$"	contained
+else
+ syn region lexInclude	matchgroup=lexSep		start="^%{"	end="%}"	contained	contains=ALLBUT,@lexListGroup
+ syn region lexAbbrvComment				start="^\s\+/\*"	end="\*/"	contains=@Spell
+ syn region lexStartState	matchgroup=lexAbbrv		start="^%\a\+"	end="$"	contained
+endif
 
 "%% : Patterns {Actions}
-syn region lexPatBlock	matchgroup=Todo	start="^%%$" matchgroup=Todo end="^%%$"	skipnl skipwhite contains=lexPat,lexPatTag,lexPatComment
-syn region lexPat		start=+\S+ skip="\\\\\|\\."	end="\s"me=e-1	contained nextgroup=lexMorePat,lexPatSep contains=lexPatString,lexSlashQuote,lexBrace
-syn region lexBrace	start="\[" skip=+\\\\\|\\+		end="]"		contained
-syn region lexPatString	matchgroup=String start=+"+	skip=+\\\\\|\\"+	matchgroup=String end=+"+	contained
-syn match  lexPatTag	"^<\I\i*\(,\I\i*\)*>*"			contained nextgroup=lexPat,lexPatTag,lexMorePat,lexPatSep
+if has("folding")
+ syn region lexPatBlock	fold matchgroup=Todo	start="^%%$" matchgroup=Todo	end="^%%$"	skipnl skipwhite	contains=lexPatTag,lexPatTagZone,lexPatComment,lexPat
+ syn region lexPat		fold			start=+\S+ skip="\\\\\|\\."	end="\s"me=e-1		contained nextgroup=lexMorePat,lexPatSep contains=lexPatTag,lexPatString,lexSlashQuote,lexBrace
+ syn region lexBrace	fold			start="\[" skip=+\\\\\|\\+	end="]"			contained
+ syn region lexPatString	fold matchgroup=String	start=+"+	skip=+\\\\\|\\"+	matchgroup=String end=+"+	contained
+else
+ syn region lexPatBlock	matchgroup=Todo		start="^%%$" matchgroup=Todo	end="^%%$"	skipnl skipwhite	contains=lexPatTag,lexPatTagZone,lexPatComment,lexPat
+ syn region lexPat					start=+\S+ skip="\\\\\|\\."	end="\s"me=e-1		contained nextgroup=lexMorePat,lexPatSep contains=lexPatTag,lexPatString,lexSlashQuote,lexBrace
+ syn region lexBrace				start="\[" skip=+\\\\\|\\+	end="]"			contained
+ syn region lexPatString	matchgroup=String		start=+"+	skip=+\\\\\|\\"+	matchgroup=String end=+"+	contained
+endif
+syn match  lexPatTag	"^<\I\i*\(,\I\i*\)*>"			contained nextgroup=lexPat,lexPatTag,lexMorePat,lexPatSep
+syn match  lexPatTagZone	"^<\I\i*\(,\I\i*\)*>\s*\ze{"		contained nextgroup=lexPatTagZoneStart
 syn match  lexPatTag	+^<\I\i*\(,\I\i*\)*>*\(\\\\\)*\\"+		contained nextgroup=lexPat,lexPatTag,lexMorePat,lexPatSep
-syn region lexPatComment	start="^\s*/\*" end="\*/"		skipnl	contained contains=cTodo skipwhite nextgroup=lexPatComment,lexPat,@Spell
+if has("folding")
+ syn region  lexPatTagZoneStart matchgroup=lexPatTag	fold	start='{' end='}'	contained contains=lexPat,lexPatComment
+ syn region lexPatComment	start="\s\+/\*" end="\*/"	fold	skipnl	contained contains=cTodo skipwhite nextgroup=lexPatComment,lexPat,@Spell
+else
+ syn region  lexPatTagZoneStart matchgroup=lexPatTag		start='{' end='}'	contained contains=lexPat,lexPatComment
+ syn region lexPatComment	start="\s\+/\*" end="\*/"		skipnl	contained contains=cTodo skipwhite nextgroup=lexPatComment,lexPat,@Spell
+endif
 syn match  lexPatCodeLine	".*$"					contained contains=ALLBUT,@lexListGroup
 syn match  lexMorePat	"\s*|\s*$"			skipnl	contained nextgroup=lexPat,lexPatTag,lexPatComment
 syn match  lexPatSep	"\s\+"					contained nextgroup=lexMorePat,lexPatCode,lexPatCodeLine
 syn match  lexSlashQuote	+\(\\\\\)*\\"+				contained
-syn region lexPatCode matchgroup=Delimiter start="{" matchgroup=Delimiter end="}"	skipnl contained contains=ALLBUT,@lexListPatCodeGroup
+if has("folding")
+ syn region lexPatCode matchgroup=Delimiter start="{" end="}"	fold	skipnl contained contains=ALLBUT,@lexListPatCodeGroup
+else
+ syn region lexPatCode matchgroup=Delimiter start="{" end="}"		skipnl contained contains=ALLBUT,@lexListPatCodeGroup
+endif
 
 syn keyword lexCFunctions	BEGIN	input	unput	woutput	yyleng	yylook	yytext
 syn keyword lexCFunctions	ECHO	output	winput	wunput	yyless	yymore	yywrap
@@ -80,9 +108,10 @@
 syn sync match lexSyncPat	groupthere lexPatBlock	"^%%$"
 
 " The default highlighting.
-hi def link lexSlashQuote	lexPat
-hi def link lexBrace	lexPat
 hi def link lexAbbrvComment	lexPatComment
+hi def link lexBrace	lexPat
+hi def link lexPatTagZone	lexPatTag
+hi def link lexSlashQuote	lexPat
 
 hi def link lexAbbrvRegExp	Macro
 hi def link lexAbbrv	SpecialChar
diff -u -r --new-file runtime/syntax.orig/lhaskell.vim runtime/syntax/lhaskell.vim
--- runtime/syntax.orig/lhaskell.vim	2008-07-01 12:47:29.000000000 -0500
+++ runtime/syntax/lhaskell.vim	2009-05-14 13:53:07.000000000 -0500
@@ -4,8 +4,8 @@
 "			\begin{code} \end{code} blocks
 " Maintainer:		Haskell Cafe mailinglist <haskell-cafe@haskell.org>
 " Original Author:	Arthur van Leeuwen <arthurvl@cs.uu.nl>
-" Last Change:		2008 Jul 01
-" Version:		1.02
+" Last Change:		2009 May 08
+" Version:		1.04
 "
 " Thanks to Ian Lynagh for thoughtful comments on initial versions and
 " for the inspiration for writing this in the first place.
@@ -29,8 +29,10 @@
 " 2004 February 20: Cleaned up the guessing and overriding a bit
 " 2004 February 23: Cleaned up syntax highlighting for \begin{code} and
 "		    \end{code}, added some clarification to the attributions
-" 2008 July 1:      Removed % from guess list, as it totally breaks  plain
-"		    text markup guessing
+" 2008 July 1:      Removed % from guess list, as it totally breaks plain
+"                   text markup guessing
+" 2009 April 29:    Fixed highlighting breakage in TeX mode, 
+"                   thanks to Kalman Noel
 "
 
 
@@ -73,14 +75,14 @@
 "   - \begin{env}       (for env != code)
 "   - \part, \chapter, \section, \subsection, \subsubsection, etc
 if b:lhs_markup == "unknown"
-    if search('\\documentclass\|\\begin{\(code}\)\@!\|\\\(sub \)*section\|\\chapter|\\part','W') != 0
+    if search('\\documentclass\|\\begin{\(code}\)\@!\|\\\(sub\)*section\|\\chapter|\\part','W') != 0
 	let b:lhs_markup = "tex"
     else
 	let b:lhs_markup = "plain"
     endif
 endif
 
-" If user wants us to highlight TeX syntax or guess thinks it's TeX,  read it.
+" If user wants us to highlight TeX syntax or guess thinks it's TeX, read it.
 if b:lhs_markup == "tex"
     if version < 600
 	source <sfile>:p:h/tex.vim
@@ -91,6 +93,9 @@
 	" Tex.vim removes "_" from 'iskeyword', but we need it for Haskell.
 	setlocal isk+=_
     endif
+    syntax cluster lhsTeXContainer contains=tex.*Zone,texAbstract
+else
+    syntax cluster lhsTeXContainer contains=.*
 endif
 
 " Literate Haskell is Haskell in between text, so at least read Haskell
@@ -101,8 +106,8 @@
     syntax include @haskellTop syntax/haskell.vim
 endif
 
-syntax region lhsHaskellBirdTrack start="^>" end="\%(^[^>]\)\@=" contains=@haskellTop,lhsBirdTrack
-syntax region lhsHaskellBeginEndBlock start="^\\begin{code}\s*$" matchgroup=NONE end="\%(^\\end{code}.*$\)\@=" contains=@haskellTop,@beginCode
+syntax region lhsHaskellBirdTrack start="^>" end="\%(^[^>]\)\@=" contains=@haskellTop,lhsBirdTrack containedin=@lhsTeXContainer
+syntax region lhsHaskellBeginEndBlock start="^\\begin{code}\s*$" matchgroup=NONE end="\%(^\\end{code}.*$\)\@=" contains=@haskellTop,@beginCode containedin=@lhsTeXContainer
 
 syntax match lhsBirdTrack "^>" contained
 
diff -u -r --new-file runtime/syntax.orig/lilo.vim runtime/syntax/lilo.vim
--- runtime/syntax.orig/lilo.vim	2004-07-20 12:53:05.000000000 -0500
+++ runtime/syntax/lilo.vim	2010-02-11 06:45:15.000000000 -0600
@@ -1,10 +1,8 @@
 " Vim syntax file
-" This is a GENERATED FILE. Please always refer to source file at the URI below.
 " Language: lilo configuration (lilo.conf)
-" Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
-" Last Change: 2004-07-20
-" URL: http://trific.ath.cx/Ftp/vim/syntax/lilo.vim
-
+" Maintainer: Niels Horn <niels.horn@gmail.com>
+" Previous Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
+" Last Change: 2010-02-03
 
 " Setup
 if version >= 600
@@ -64,7 +62,7 @@
 
 " String
 syn keyword liloOption menu-title nextgroup=liloEqString,liloEqStringComment,liloError skipwhite skipempty
-syn keyword liloKernelOpt append nextgroup=liloEqString,liloEqStringComment,liloError skipwhite skipempty
+syn keyword liloKernelOpt append addappend nextgroup=liloEqString,liloEqStringComment,liloError skipwhite skipempty
 syn keyword liloImageOpt fallback literal nextgroup=liloEqString,liloEqStringComment,liloError skipwhite skipempty
 
 " Hex number
diff -u -r --new-file runtime/syntax.orig/lisp.vim runtime/syntax/lisp.vim
--- runtime/syntax.orig/lisp.vim	2007-11-14 10:37:14.000000000 -0600
+++ runtime/syntax/lisp.vim	2009-03-22 14:39:57.000000000 -0500
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:    Lisp
 " Maintainer:  Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change: Oct 19, 2007
-" Version:     20
+" Last Change: Mar 05, 2009
+" Version:     21
 " URL:	       http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
 "
 "  Thanks to F Xavier Noria for a list of 978 Common Lisp symbols
@@ -534,7 +534,8 @@
 
 " ---------------------------------------------------------------------
 " Numbers: supporting integers and floating point numbers {{{1
-syn match lispNumber		"-\=\(\.\d\+\|\d\+\(\.\d*\)\=\)\(e[-+]\=\d\+\)\="
+syn match lispNumber		"-\=\(\.\d\+\|\d\+\(\.\d*\)\=\)\([dDeEfFlL][-+]\=\d\+\)\="
+syn match lispNumber		"-\=\(\d\+/\d\+\)"
 
 syn match lispSpecial		"\*\w[a-z_0-9-]*\*"
 syn match lispSpecial		!#|[^()'`,"; \t]\+|#!
diff -u -r --new-file runtime/syntax.orig/logtalk.vim runtime/syntax/logtalk.vim
--- runtime/syntax.orig/logtalk.vim	2008-07-06 13:09:17.000000000 -0500
+++ runtime/syntax/logtalk.vim	2008-11-06 10:05:14.000000000 -0600
@@ -2,7 +2,7 @@
 "
 " Language:	Logtalk
 " Maintainer:	Paulo Moura <pmoura@logtalk.org>
-" Last Change:	June 16, 2008
+" Last Change:	Oct 31, 2008
 
 
 " Quit when a syntax file was already loaded:
@@ -51,9 +51,9 @@
 
 " Logtalk opening entity directives
 
-syn region	logtalkOpenEntityDir	matchgroup=logtalkOpenEntityDirTag	start=":- object("	matchgroup=logtalkOpenEntityDirTag	end=")\."	contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom,logtalkEntityRel
-syn region	logtalkOpenEntityDir	matchgroup=logtalkOpenEntityDirTag	start=":- protocol("	matchgroup=logtalkOpenEntityDirTag	end=")\."	contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkEntityRel
-syn region	logtalkOpenEntityDir	matchgroup=logtalkOpenEntityDirTag	start=":- category("	matchgroup=logtalkOpenEntityDirTag	end=")\."	contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkEntityRel
+syn region	logtalkOpenEntityDir	matchgroup=logtalkOpenEntityDirTag	start=":- object("	matchgroup=logtalkOpenEntityDirTag	end=")\."	contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkString,logtalkAtom,logtalkEntityRel,logtalkLineComment
+syn region	logtalkOpenEntityDir	matchgroup=logtalkOpenEntityDirTag	start=":- protocol("	matchgroup=logtalkOpenEntityDirTag	end=")\."	contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkEntityRel,logtalkLineComment
+syn region	logtalkOpenEntityDir	matchgroup=logtalkOpenEntityDirTag	start=":- category("	matchgroup=logtalkOpenEntityDirTag	end=")\."	contains=logtalkEntity,logtalkVariable,logtalkNumber,logtalkOperator,logtalkEntityRel,logtalkLineComment
 
 
 " Logtalk closing entity directives
diff -u -r --new-file runtime/syntax.orig/mail.vim runtime/syntax/mail.vim
--- runtime/syntax.orig/mail.vim	2008-01-18 06:28:18.000000000 -0600
+++ runtime/syntax/mail.vim	2008-11-09 07:12:28.000000000 -0600
@@ -2,7 +2,7 @@
 " Language:		Mail file
 " Previous Maintainer:	Felix von Leitner <leitner@math.fu-berlin.de>
 " Maintainer:		Gautam Iyer <gi1242@users.sourceforge.net>
-" Last Change:		Thu 17 Jan 2008 11:25:44 AM PST
+" Last Change:		Thu 06 Nov 2008 10:10:55 PM PST
 
 " Quit when a syntax file was already loaded
 if exists("b:current_syntax")
@@ -24,28 +24,35 @@
 " emails
 " According to RFC 2822 any printable ASCII character can appear in a field
 " name, except ':'.
-syn region	mailHeader	contains=@mailHeaderFields,@NoSpell start="^From .*\d\d\d\d$" skip="^\s" end="\v^[!-9;-~]*([^!-~]|$)"me=s-1
+syn region	mailHeader	contains=@mailHeaderFields,@NoSpell start="^From .*\d\d\d\d$" skip="^\s" end="\v^[!-9;-~]*([^!-~]|$)"me=s-1 fold
 syn match	mailHeaderKey	contained contains=mailEmail,@NoSpell "^From\s.*\d\d\d\d$"
+
+" Nothing else depends on case. 
+syn case ignore
+
+" Headers in properly quoted (with "> " or ">") emails are matched
+syn region	mailHeader	keepend contains=@mailHeaderFields,@mailQuoteExps,@NoSpell start="^\z(\(> \?\)*\)\v(newsgroups|x-([a-z\-])*|path|xref|message-id|from|((in-)?reply-)?to|b?cc|subject|return-path|received|date|replied):" skip="^\z1\s" end="\v^\z1[!-9;-~]*([^!-~]|$)"me=s-1 end="\v^\z1@!"me=s-1 end="\v^\z1(\> ?)+"me=s-1 fold
+
 " Usenet headers
 syn match	mailHeaderKey	contained contains=mailHeaderEmail,mailEmail,@NoSpell "\v(^(\> ?)*)@<=(Newsgroups|Followup-To|Message-ID|Supersedes|Control):.*$"
 
-syn case ignore
-" Nothing else depends on case. Headers in properly quoted (with "> " or ">")
-" emails are matched
-syn region	mailHeader	keepend contains=@mailHeaderFields,@mailQuoteExps,@NoSpell start="^\z(\(> \?\)*\)\v(newsgroups|x-([a-z\-])*|path|xref|message-id|from|((in-)?reply-)?to|b?cc|subject|return-path|received|date|replied):" skip="^\z1\s" end="\v^\z1[!-9;-~]*([^!-~]|$)"me=s-1 end="\v^\z1@!"me=s-1 end="\v^\z1(\> ?)+"me=s-1
 
 syn region	mailHeaderKey	contained contains=mailHeaderEmail,mailEmail,@mailQuoteExps,@NoSpell start="\v(^(\> ?)*)@<=(to|b?cc):" skip=",$" end="$"
-syn match	mailHeaderKey	contained contains=mailHeaderEmail,mailEmail,@NoSpell "\v(^(\> ?)*)@<=(from|reply-to):.*$"
+syn match	mailHeaderKey	contained contains=mailHeaderEmail,mailEmail,@NoSpell "\v(^(\> ?)*)@<=(from|reply-to):.*$" fold
 syn match	mailHeaderKey	contained contains=@NoSpell "\v(^(\> ?)*)@<=date:"
-syn match	mailSubject	contained "\v^subject:.*$"
+syn match	mailSubject	contained "\v^subject:.*$" fold
 syn match	mailSubject	contained contains=@NoSpell "\v(^(\> ?)+)@<=subject:.*$"
 
 " Anything in the header between < and > is an email address
 syn match	mailHeaderEmail	contained contains=@NoSpell "<.\{-}>"
 
 " Mail Signatures. (Begin with "-- ", end with change in quote level)
-syn region	mailSignature	keepend contains=@mailLinks,@mailQuoteExps start="^--\s$" end="^$" end="^\(> \?\)\+"me=s-1
-syn region	mailSignature	keepend contains=@mailLinks,@mailQuoteExps,@NoSpell start="^\z(\(> \?\)\+\)--\s$" end="^\z1$" end="^\z1\@!"me=s-1 end="^\z1\(> \?\)\+"me=s-1
+syn region	mailSignature	keepend contains=@mailLinks,@mailQuoteExps start="^--\s$" end="^$" end="^\(> \?\)\+"me=s-1 fold
+syn region	mailSignature	keepend contains=@mailLinks,@mailQuoteExps,@NoSpell start="^\z(\(> \?\)\+\)--\s$" end="^\z1$" end="^\z1\@!"me=s-1 end="^\z1\(> \?\)\+"me=s-1 fold
+
+" Treat verbatim Text special.
+syn region	mailVerbatim	contains=@NoSpell keepend start="^#v+$" end="^#v-$" fold 
+syn region	mailVerbatim	contains=@mailQuoteExps,@NoSpell start="^\z(\(> \?\)\+\)#v+$" end="\z1#v-$" fold 
 
 " URLs start with a known protocol or www,web,w3.
 syn match mailURL contains=@NoSpell `\v<(((https?|ftp|gopher)://|(mailto|file|news):)[^' 	<>"]+|(www|web|w3)[a-z0-9_-]*\.[a-z0-9._-]+\.[^' 	<>"]+)[a-z0-9/]`
@@ -59,13 +66,13 @@
 syn match mailQuoteExp5	contained "\v^(\> ?){5}"
 syn match mailQuoteExp6	contained "\v^(\> ?){6}"
 
-" Even and odd quoted lines. order is imporant here!
-syn match mailQuoted1	contains=mailHeader,@mailLinks,mailSignature,@NoSpell "^\([a-z]\+>\|[]|}>]\).*$"
-syn match mailQuoted2	contains=mailHeader,@mailLinks,mailSignature,@NoSpell "^\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{2}.*$"
-syn match mailQuoted3	contains=mailHeader,@mailLinks,mailSignature,@NoSpell "^\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{3}.*$"
-syn match mailQuoted4	contains=mailHeader,@mailLinks,mailSignature,@NoSpell "^\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{4}.*$"
-syn match mailQuoted5	contains=mailHeader,@mailLinks,mailSignature,@NoSpell "^\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{5}.*$"
-syn match mailQuoted6	contains=mailHeader,@mailLinks,mailSignature,@NoSpell "^\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{6}.*$"
+" Even and odd quoted lines. Order is important here!
+syn region	mailQuoted6	keepend contains=mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{5}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold
+syn region	mailQuoted5	keepend contains=mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{4}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold
+syn region	mailQuoted4	keepend contains=mailQuoted5,mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{3}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold
+syn region	mailQuoted3	keepend contains=mailQuoted4,mailQuoted5,mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{2}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold
+syn region	mailQuoted2	keepend contains=mailQuoted3,mailQuoted4,mailQuoted5,mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z(\(\([a-z]\+>\|[]|}>]\)[ \t]*\)\{1}\([a-z]\+>\|[]|}>]\)\)" end="^\z1\@!" fold
+syn region	mailQuoted1	keepend contains=mailQuoted2,mailQuoted3,mailQuoted4,mailQuoted5,mailQuoted6,mailVerbatim,mailHeader,@mailLinks,mailSignature,@NoSpell start="^\z([a-z]\+>\|[]|}>]\)" end="^\z1\@!" fold
 
 " Need to sync on the header. Assume we can do that within 100 lines
 if exists("mail_minlines")
@@ -75,6 +82,7 @@
 endif
 
 " Define the default highlighting.
+hi def link mailVerbatim	Special
 hi def link mailHeader		Statement
 hi def link mailHeaderKey	Type
 hi def link mailSignature	PreProc
diff -u -r --new-file runtime/syntax.orig/man.vim runtime/syntax/man.vim
--- runtime/syntax.orig/man.vim	2007-12-30 07:19:15.000000000 -0600
+++ runtime/syntax/man.vim	2008-09-18 13:56:38.000000000 -0500
@@ -1,9 +1,9 @@
 " Vim syntax file
 " Language:	Man page
-" Maintainer:	Nam SungHyun <namsh@kldp.org>
+" Maintainer:	SungHyun Nam <goweol@gmail.com>
 " Previous Maintainer:	Gautam H. Mudunuri <gmudunur@informatica.com>
 " Version Info:
-" Last Change:	2007 Dec 30
+" Last Change:	2008 Sep 17
 
 " Additional highlighting by Johannes Tanzler <johannes.tanzler@aon.at>:
 "	* manSubHeading
diff -u -r --new-file runtime/syntax.orig/matlab.vim runtime/syntax/matlab.vim
--- runtime/syntax.orig/matlab.vim	2004-06-07 09:32:35.000000000 -0500
+++ runtime/syntax/matlab.vim	2010-01-16 07:33:01.000000000 -0600
@@ -1,8 +1,10 @@
 " Vim syntax file
 " Language:	Matlab
-" Maintainer:	Preben 'Peppe' Guldberg <peppe-vim@wielders.org>
+" Maintainer:	Maurizio Tranchero - maurizio(.)tranchero(@)gmail(.)com
+" Credits:	Preben 'Peppe' Guldberg <peppe-vim@wielders.org>
 "		Original author: Mario Eusebio
-" Last Change:	30 May 2003
+" Last Change:	Wed Jan 13 11:12:34 CET 2010
+" 		- 'global' and 'persistent' keyword are now recognized
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -16,8 +18,12 @@
 syn keyword matlabLabel			case switch
 syn keyword matlabConditional		else elseif end if otherwise
 syn keyword matlabRepeat		do for while
+" MT_ADDON - added exception-specific keywords
+syn keyword matlabExceptions		try catch
+syn keyword matlabOO			classdef properties events methods
 
 syn keyword matlabTodo			contained  TODO
+syn keyword matlabScope			global persistent
 
 " If you do not want these operators lit, uncommment them and the "hi link" below
 syn match matlabArithmeticOperator	"[-+]"
@@ -31,7 +37,8 @@
 "syn match matlabIdentifier		"\<\a\w*\>"
 
 " String
-syn region matlabString			start=+'+ end=+'+	oneline
+" MT_ADDON - added 'skip' in order to deal with 'tic' escaping sequence 
+syn region matlabString			start=+'+ end=+'+	oneline skip=+''+
 
 " If you don't like tabs
 syn match matlabTab			"\t"
@@ -51,6 +58,9 @@
 syn match matlabSemicolon		";"
 
 syn match matlabComment			"%.*$"	contains=matlabTodo,matlabTab
+" MT_ADDON - correctly highlights words after '...' as comments
+syn match matlabComment			"\.\.\..*$"	contains=matlabTodo,matlabTab
+syn region matlabMultilineComment	start=+%{+ end=+%}+ contains=matlabTodo,matlabTab
 
 syn keyword matlabOperator		break zeros default margin round ones rand
 syn keyword matlabOperator		ceil floor size clear zeros eye mean std cov
@@ -75,10 +85,11 @@
   endif
 
   HiLink matlabTransposeOperator	matlabOperator
-  HiLink matlabOperator		Operator
-  HiLink matlabLineContinuation	Special
+  HiLink matlabOperator			Operator
+  HiLink matlabLineContinuation		Special
   HiLink matlabLabel			Label
   HiLink matlabConditional		Conditional
+  HiLink matlabExceptions		Conditional
   HiLink matlabRepeat			Repeat
   HiLink matlabTodo			Todo
   HiLink matlabString			String
@@ -86,12 +97,15 @@
   HiLink matlabTransposeOther		Identifier
   HiLink matlabNumber			Number
   HiLink matlabFloat			Float
-  HiLink matlabFunction		Function
+  HiLink matlabFunction			Function
   HiLink matlabError			Error
-  HiLink matlabImplicit		matlabStatement
+  HiLink matlabImplicit			matlabStatement
   HiLink matlabStatement		Statement
+  HiLink matlabOO			Statement
   HiLink matlabSemicolon		SpecialChar
   HiLink matlabComment			Comment
+  HiLink matlabMultilineComment		Comment
+  HiLink matlabScope			Type
 
   HiLink matlabArithmeticOperator	matlabOperator
   HiLink matlabRelationalOperator	matlabOperator
diff -u -r --new-file runtime/syntax.orig/maxima.vim runtime/syntax/maxima.vim
--- runtime/syntax.orig/maxima.vim	2006-04-10 03:17:50.000000000 -0500
+++ runtime/syntax/maxima.vim	2009-11-28 06:36:52.000000000 -0600
@@ -227,7 +227,7 @@
 " Comments:
 " maxima supports /* ... */ (like C)
 syn keyword maximaTodo contained	TODO Todo DEBUG
-syn region  maximaCommentBlock	start="/\*" end="\*/"	contains=maximaString,maximaTodo
+syn region  maximaCommentBlock	start="/\*" end="\*/"	contains=maximaString,maximaTodo,maximaCommentBlock
 
 " synchronizing
 syn sync match maximaSyncComment	grouphere maximaCommentBlock "/*"
diff -u -r --new-file runtime/syntax.orig/mysql.vim runtime/syntax/mysql.vim
--- runtime/syntax.orig/mysql.vim	2007-12-19 22:09:52.000000000 -0600
+++ runtime/syntax/mysql.vim	2009-07-02 13:05:29.000000000 -0500
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:     mysql
 " Maintainer:   Kenneth J. Pronovici <pronovic@ieee.org>
-" Last Change:  $LastChangedDate: 2007-12-19 10:59:39 -0600 (Wed, 19 Dec 2007) $
+" Last Change:  $LastChangedDate: 2009-06-29 23:08:37 -0500 (Mon, 29 Jun 2009) $
 " Filenames:    *.mysql
 " URL:          ftp://cedar-solutions.com/software/mysql.vim
 " Note:         The definitions below are taken from the mysql user manual as of April 2002, for version 3.23
@@ -36,7 +36,7 @@
 syn keyword mysqlKeyword         natural no
 syn keyword mysqlKeyword         on optimize option optionally order outer outfile
 syn keyword mysqlKeyword         pack_keys partial password primary privileges procedure process processlist
-syn keyword mysqlKeyword         read references reload rename replace restrict returns revoke row rows
+syn keyword mysqlKeyword         read references reload rename replace restrict returns revoke right row rows
 syn keyword mysqlKeyword         second select show shutdown soname sql_big_result sql_big_selects sql_big_tables sql_log_off
 syn keyword mysqlKeyword         sql_log_update sql_low_priority_updates sql_select_limit sql_small_result sql_warnings starting
 syn keyword mysqlKeyword         status straight_join string
@@ -57,7 +57,7 @@
 " Numbers and hexidecimal values
 syn match mysqlNumber            "-\=\<[0-9]*\>"
 syn match mysqlNumber            "-\=\<[0-9]*\.[0-9]*\>"
-syn match mysqlNumber            "-\=\<[0-9]*e[+-]\=[0-9]*\>"
+syn match mysqlNumber            "-\=\<[0-9][0-9]*e[+-]\=[0-9]*\>"
 syn match mysqlNumber            "-\=\<[0-9]*\.[0-9]*e[+-]\=[0-9]*\>"
 syn match mysqlNumber            "\<0x[abcdefABCDEF0-9]*\>"
 
diff -u -r --new-file runtime/syntax.orig/netrc.vim runtime/syntax/netrc.vim
--- runtime/syntax.orig/netrc.vim	2006-04-21 07:39:13.000000000 -0500
+++ runtime/syntax/netrc.vim	2010-01-12 14:39:39.000000000 -0600
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         netrc(5) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2010-01-03
 
 if exists("b:current_syntax")
   finish
@@ -11,12 +11,13 @@
 set cpo&vim
 
 syn keyword netrcKeyword    machine nextgroup=netrcMachine skipwhite skipnl
-syn keyword netrcKeyword    login nextgroup=netrcLogin,netrcSpecial
-                            \ skipwhite skipnl
+syn keyword netrcKeyword    account
+                          \ login
+                          \ nextgroup=netrcLogin,netrcSpecial skipwhite skipnl
 syn keyword netrcKeyword    password nextgroup=netrcPassword skipwhite skipnl
 syn keyword netrcKeyword    default
-syn keyword netrcKeyword    macdef nextgroup=netrcInit,netrcMacroName
-                            \ skipwhite skipnl
+syn keyword netrcKeyword    macdef
+                          \ nextgroup=netrcInit,netrcMacroName skipwhite skipnl
 syn region  netrcMacro      contained start='.' end='^$'
 
 syn match   netrcMachine    contained display '\S\+'
@@ -25,14 +26,14 @@
 syn match   netrcLogin      contained display '"[^\\"]*\(\\.[^\\"]*\)*"'
 syn match   netrcPassword   contained display '\S\+'
 syn match   netrcPassword   contained display '"[^\\"]*\(\\.[^\\"]*\)*"'
-syn match   netrcMacroName  contained display '\S\+' nextgroup=netrcMacro
-                            \ skipwhite skipnl
+syn match   netrcMacroName  contained display '\S\+'
+                          \ nextgroup=netrcMacro skipwhite skipnl
 syn match   netrcMacroName  contained display '"[^\\"]*\(\\.[^\\"]*\)*"'
-                            \ nextgroup=netrcMacro skipwhite skipnl
+                          \ nextgroup=netrcMacro skipwhite skipnl
 
 syn keyword netrcSpecial    contained anonymous
-syn match   netrcInit       contained '\<init$' nextgroup=netrcMacro
-                            \ skipwhite skipnl
+syn match   netrcInit       contained '\<init$'
+                          \ nextgroup=netrcMacro skipwhite skipnl
 
 syn sync fromstart
 
diff -u -r --new-file runtime/syntax.orig/netrw.vim runtime/syntax/netrw.vim
--- runtime/syntax.orig/netrw.vim	2008-03-28 13:35:41.000000000 -0500
+++ runtime/syntax/netrw.vim	2010-01-12 14:33:53.000000000 -0600
@@ -1,7 +1,7 @@
 " Language   : Netrw Remote-Directory Listing Syntax
 " Maintainer : Charles E. Campbell, Jr.
-" Last change: Feb 06, 2008
-" Version    : 12
+" Last change: Jan 14, 2009
+" Version    : 16
 " ---------------------------------------------------------------------
 
 " Syntax Clearing: {{{1
@@ -16,85 +16,91 @@
 syn cluster NetrwGroup		contains=netrwHide,netrwSortBy,netrwSortSeq,netrwQuickHelp,netrwVersion,netrwCopyTgt
 syn cluster NetrwTreeGroup	contains=netrwDir,netrwSymLink,netrwExe
 
-syn match  netrwSpecial		"\%(\S\+ \)*\S\+[*|=]\ze\%(\s\{2,}\|$\)"		contains=netrwClassify
-syn match  netrwDir		"\.\{1,2}/"						contains=netrwClassify
-syn match  netrwDir		"\%(\S\+ \)*\S\+/"					contains=netrwClassify
-syn match  netrwSizeDate	"\<\d\+\s\d\{1,2}/\d\{1,2}/\d\{4}\s"			contains=netrwDateSep skipwhite nextgroup=netrwTime
-syn match  netrwSymLink		"\%(\S\+ \)*\S\+@\ze\%(\s\{2,}\|$\)"  			contains=netrwClassify
-syn match  netrwExe		"\%(\S\+ \)*\S\+\*\ze\%(\s\{2,}\|$\)" 			contains=netrwClassify
-syn match  netrwTreeBar		"^\%(| \)*"						contains=netrwTreeBarSpace	nextgroup=@netrwTreeGroup
-syn match  netrwTreeBarSpace	" "				contained
-
-syn match  netrwClassify	"[*=|@/]\ze\%(\s\{2,}\|$\)"	contained
-syn match  netrwDateSep		"/"				contained
-syn match  netrwTime		"\d\{1,2}:\d\{2}:\d\{2}"	contained		contains=netrwTimeSep
+syn match  netrwPlain		"\(\S\+ \)*\S\+"					contains=@NoSpell
+syn match  netrwSpecial		"\%(\S\+ \)*\S\+[*|=]\ze\%(\s\{2,}\|$\)"		contains=netrwClassify,@NoSpell
+syn match  netrwDir		"\.\{1,2}/"						contains=netrwClassify,@NoSpell
+syn match  netrwDir		"\%(\S\+ \)*\S\+/"					contains=netrwClassify,@NoSpell
+syn match  netrwSizeDate	"\<\d\+\s\d\{1,2}/\d\{1,2}/\d\{4}\s"	skipwhite	contains=netrwDateSep,@NoSpell	nextgroup=netrwTime
+syn match  netrwSymLink		"\%(\S\+ \)*\S\+@\ze\%(\s\{2,}\|$\)"  			contains=netrwClassify,@NoSpell
+syn match  netrwExe		"\%(\S\+ \)*\S\+\*\ze\%(\s\{2,}\|$\)" 			contains=netrwClassify,@NoSpell
+syn match  netrwTreeBar		"^\%([-+|] \)\+"					contains=netrwTreeBarSpace	nextgroup=@netrwTreeGroup
+syn match  netrwTreeBarSpace	" "					contained
+
+syn match  netrwClassify	"[*=|@/]\ze\%(\s\{2,}\|$\)"		contained
+syn match  netrwDateSep		"/"					contained
+syn match  netrwTime		"\d\{1,2}:\d\{2}:\d\{2}"		contained	contains=netrwTimeSep
 syn match  netrwTimeSep		":"
 
-syn match  netrwComment		'".*\%(\t\|$\)'						contains=@NetrwGroup
-syn match  netrwHide		'^"\s*\(Hid\|Show\)ing:'	skipwhite nextgroup=netrwHidePat
+syn match  netrwComment		'".*\%(\t\|$\)'						contains=@NetrwGroup,@NoSpell
+syn match  netrwHide		'^"\s*\(Hid\|Show\)ing:'	skipwhite		contains=@NoSpell		nextgroup=netrwHidePat
 syn match  netrwSlash		"/"				contained
-syn match  netrwHidePat		"[^,]\+"			contained skipwhite nextgroup=netrwHideSep
-syn match  netrwHideSep		","				contained transparent skipwhite nextgroup=netrwHidePat
-syn match  netrwSortBy		"Sorted by"			contained transparent skipwhite nextgroup=netrwList
-syn match  netrwSortSeq		"Sort sequence:"		contained transparent skipwhite nextgroup=netrwList
-syn match  netrwCopyTgt		"Copy/Move Tgt:"		contained transparent skipwhite nextgroup=netrwList
-syn match  netrwList		".*$"				contained		contains=netrwComma
+syn match  netrwHidePat		"[^,]\+"			contained skipwhite	contains=@NoSpell		nextgroup=netrwHideSep
+syn match  netrwHideSep		","				contained skipwhite					nextgroup=netrwHidePat
+syn match  netrwSortBy		"Sorted by"			contained transparent skipwhite				nextgroup=netrwList
+syn match  netrwSortSeq		"Sort sequence:"		contained transparent skipwhite			 	nextgroup=netrwList
+syn match  netrwCopyTgt		"Copy/Move Tgt:"		contained transparent skipwhite				nextgroup=netrwList
+syn match  netrwList		".*$"				contained		contains=netrwComma,@NoSpell
 syn match  netrwComma		","				contained
-syn region netrwQuickHelp	matchgroup=Comment start="Quick Help:\s\+" end="$"	contains=netrwHelpCmd keepend contained
-syn match  netrwHelpCmd		"\S\ze:"			contained skipwhite nextgroup=netrwCmdSep
+syn region netrwQuickHelp	matchgroup=Comment start="Quick Help:\s\+" end="$"	contains=netrwHelpCmd,@NoSpell	keepend contained
+syn match  netrwHelpCmd		"\S\ze:"			contained skipwhite	contains=@NoSpell		nextgroup=netrwCmdSep
 syn match  netrwCmdSep		":"				contained nextgroup=netrwCmdNote
-syn match  netrwCmdNote		".\{-}\ze  "			contained
-syn match  netrwVersion		"(netrw.*)"			contained
+syn match  netrwCmdNote		".\{-}\ze  "			contained		contains=@NoSpell
+syn match  netrwVersion		"(netrw.*)"			contained		contains=@NoSpell
 
 " -----------------------------
 " Special filetype highlighting {{{1
 " -----------------------------
 if exists("g:netrw_special_syntax") && netrw_special_syntax
- syn match netrwBak		"\(\S\+ \)*\S\+\.bak\>"				contains=netrwTreeBar
- syn match netrwCompress	"\(\S\+ \)*\S\+\.\%(gz\|bz2\|Z\|zip\)\>"	contains=netrwTreeBar
- syn match netrwData		"\(\S\+ \)*\S\+\.dat\>"				contains=netrwTreeBar
- syn match netrwHdr		"\(\S\+ \)*\S\+\.h\>"				contains=netrwTreeBar
- syn match netrwLib		"\(\S\+ \)*\S*\.\%(a\|so\|lib\|dll\)\>"		contains=netrwTreeBar
- syn match netrwMakeFile	"\<[mM]akefile\>\|\(\S\+ \)*\S\+\.mak\>"	contains=netrwTreeBar
- syn match netrwObj		"\(\S\+ \)*\S*\.\%(o\|obj\)\>"			contains=netrwTreeBar
- syn match netrwTags    	"\<tags\>"					contains=netrwTreeBar
- syn match netrwTags		"\<\(ANmenu\|ANtags\)\>"			contains=netrwTreeBar
- syn match netrwTilde		"\(\S\+ \)*\S\+\~\>"				contains=netrwTreeBar
- syn match netrwTmp		"\<tmp\(\S\+ \)*\S\+\>\|\(\S\+ \)*\S*tmp\>"	contains=netrwTreeBar
+ syn match netrwBak		"\(\S\+ \)*\S\+\.bak\>"				contains=netrwTreeBar,@NoSpell
+ syn match netrwCompress	"\(\S\+ \)*\S\+\.\%(gz\|bz2\|Z\|zip\)\>"	contains=netrwTreeBar,@NoSpell
+ if has("unix")
+  syn match netrwCoreDump	"\<core\%(\.\d\+\)\=\>"				contains=netrwTreeBar,@NoSpell
+ endif
+ syn match netrwData		"\(\S\+ \)*\S\+\.dat\>"				contains=netrwTreeBar,@NoSpell
+ syn match netrwHdr		"\(\S\+ \)*\S\+\.h\>"				contains=netrwTreeBar,@NoSpell
+ syn match netrwLib		"\(\S\+ \)*\S*\.\%(a\|so\|lib\|dll\)\>"		contains=netrwTreeBar,@NoSpell
+ syn match netrwMakeFile	"\<[mM]akefile\>\|\(\S\+ \)*\S\+\.mak\>"	contains=netrwTreeBar,@NoSpell
+ syn match netrwObj		"\(\S\+ \)*\S*\.\%(o\|obj\)\>"			contains=netrwTreeBar,@NoSpell
+ syn match netrwTags    	"\<tags\>"					contains=netrwTreeBar,@NoSpell
+ syn match netrwTags		"\<\(ANmenu\|ANtags\)\>"			contains=netrwTreeBar,@NoSpell
+ syn match netrwTilde		"\(\S\+ \)*\S\+\~\>"				contains=netrwTreeBar,@NoSpell
+ syn match netrwTmp		"\<tmp\(\S\+ \)*\S\+\>\|\(\S\+ \)*\S*tmp\>"	contains=netrwTreeBar,@NoSpell
 endif
 
 " ---------------------------------------------------------------------
 " Highlighting Links: {{{1
 if !exists("did_drchip_netrwlist_syntax")
  let did_drchip_netrwlist_syntax= 1
- hi link netrwClassify	Function
- hi link netrwCmdSep	Delimiter
- hi link netrwComment	Comment
- hi link netrwDir	Directory
- hi link netrwHelpCmd	Function
- hi link netrwHidePat	Statement
- hi link netrwList	Statement
- hi link netrwVersion	Identifier
- hi link netrwSymLink	Question
- hi link netrwExe	PreProc
- hi link netrwDateSep	Delimiter
-
- hi link netrwTreeBar	Special
- hi link netrwTimeSep	netrwDateSep
- hi link netrwComma	netrwComment
- hi link netrwHide	netrwComment
- hi link netrwMarkFile	Identifier
+ hi default link netrwClassify	Function
+ hi default link netrwCmdSep	Delimiter
+ hi default link netrwComment	Comment
+ hi default link netrwDir	Directory
+ hi default link netrwHelpCmd	Function
+ hi default link netrwHidePat	Statement
+ hi default link netrwHideSep	netrwComment
+ hi default link netrwList	Statement
+ hi default link netrwVersion	Identifier
+ hi default link netrwSymLink	Question
+ hi default link netrwExe	PreProc
+ hi default link netrwDateSep	Delimiter
+
+ hi default link netrwTreeBar	Special
+ hi default link netrwTimeSep	netrwDateSep
+ hi default link netrwComma	netrwComment
+ hi default link netrwHide	netrwComment
+ hi default link netrwMarkFile	Identifier
 
  " special syntax highlighting (see :he g:netrw_special_syntax)
- hi link netrwBak	NonText
- hi link netrwCompress	Folded
- hi link netrwData	DiffChange
- hi link netrwLib	DiffChange
- hi link netrwMakefile	DiffChange
- hi link netrwObj	Folded
- hi link netrwTilde	Folded
- hi link netrwTmp	Folded
- hi link netrwTags	Folded
+ hi default link netrwBak	NonText
+ hi default link netrwCompress	Folded
+ hi default link netrwCoreDump	WarningMsg
+ hi default link netrwData	DiffChange
+ hi default link netrwLib	DiffChange
+ hi default link netrwMakefile	DiffChange
+ hi default link netrwObj	Folded
+ hi default link netrwTilde	Folded
+ hi default link netrwTmp	Folded
+ hi default link netrwTags	Folded
 endif
 
 " Current Syntax: {{{1
diff -u -r --new-file runtime/syntax.orig/papp.vim runtime/syntax/papp.vim
--- runtime/syntax.orig/papp.vim	2004-06-07 09:32:35.000000000 -0500
+++ runtime/syntax/papp.vim	2009-11-28 06:31:38.000000000 -0600
@@ -2,7 +2,7 @@
 "
 " Language:	papp
 " Maintainer:	Marc Lehmann <pcg@goof.com>
-" Last Change:	2003 May 11
+" Last Change:	2009 Nov 11
 " Filenames:    *.papp *.pxml *.pxsl
 " URL:		http://papp.plan9.de/
 
@@ -37,6 +37,7 @@
     syn include @PAppHtml syntax/html.vim
   endif
   unlet b:current_syntax
+  syntax spell default  " added by Bram
 endif
 
 if version < 600
diff -u -r --new-file runtime/syntax.orig/po.vim runtime/syntax/po.vim
--- runtime/syntax.orig/po.vim	2008-06-15 06:29:12.000000000 -0500
+++ runtime/syntax/po.vim	2008-09-18 13:56:38.000000000 -0500
@@ -1,10 +1,10 @@
 " Vim syntax file
 " Language:	po (gettext)
 " Maintainer:	Dwayne Bailey <dwayne@translate.org.za>
-" Last Change:	2008 Jan 08
+" Last Change:	2008 Sep 17
 " Contributors: Dwayne Bailey (Most advanced syntax highlighting)
 "               Leonardo Fontenelle (Spell checking)
-"               Nam SungHyun <namsh@kldp.org> (Original maintainer)
+"               SungHyun Nam <goweol@gmail.com> (Original maintainer)
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
diff -u -r --new-file runtime/syntax.orig/prolog.vim runtime/syntax/prolog.vim
--- runtime/syntax.orig/prolog.vim	2008-05-04 14:21:09.000000000 -0500
+++ runtime/syntax/prolog.vim	2009-12-16 14:38:21.000000000 -0600
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:    PROLOG
 " Maintainers: Thomas Koehler <jean-luc@picard.franken.de>
-" Last Change: 2008 April 5
-" URL:	       http://gott-gehabt/800_wer_wir_sind/thomas/Homepage/Computer/vim/syntax/prolog.vim
+" Last Change: 2009 Dec 04
+" URL:	       http://gott-gehabt.de/800_wer_wir_sind/thomas/Homepage/Computer/vim/syntax/prolog.vim
 
 " There are two sets of highlighting in here:
 " If the "prolog_highlighting_clean" variable exists, it is rather sparse.
@@ -63,7 +63,7 @@
   syn match   prologOperator "=\\=\|=:=\|\\==\|=<\|==\|>=\|\\=\|\\+\|<\|>\|="
   syn match   prologAsIs     "===\|\\===\|<=\|=>"
 
-  syn match   prologNumber	      "\<[0123456789]*\>"
+  syn match   prologNumber	      "\<[0123456789]*\>'\@!"
   syn match   prologCommentError      "\*/"
   syn match   prologSpecialCharacter  ";"
   syn match   prologSpecialCharacter  "!"
diff -u -r --new-file runtime/syntax.orig/pyrex.vim runtime/syntax/pyrex.vim
--- runtime/syntax.orig/pyrex.vim	2004-06-07 09:32:36.000000000 -0500
+++ runtime/syntax/pyrex.vim	2009-11-28 06:31:38.000000000 -0600
@@ -2,7 +2,7 @@
 " Language:	Pyrex
 " Maintainer:	Marco Barisione <marco.bari@people.it>
 " URL:		http://marcobari.altervista.org/pyrex_vim.html
-" Last Change:	2004 May 16
+" Last Change:	2009 Nov 09
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -25,7 +25,7 @@
 syn keyword pyrexType		int long short float double char object void
 syn keyword pyrexType		signed unsigned
 syn keyword pyrexStructure	struct union enum
-syn keyword pyrexPrecondit	include cimport
+syn keyword pyrexInclude	include cimport
 syn keyword pyrexAccess		public private property readonly extern
 " If someome wants Python's built-ins highlighted probably he
 " also wants Pyrex's built-ins highlighted
@@ -35,9 +35,9 @@
 
 " This deletes "from" from the keywords and re-adds it as a
 " match with lower priority than pyrexForFrom
-syn clear   pythonPreCondit
-syn keyword pythonPreCondit     import
-syn match   pythonPreCondit     "from"
+syn clear   pythonInclude
+syn keyword pythonInclude     import
+syn match   pythonInclude     "from"
 
 " With "for[^:]*\zsfrom" VIM does not match "for" anymore, so
 " I used the slower "\@<=" form
@@ -54,7 +54,7 @@
   HiLink pyrexStatement		Statement
   HiLink pyrexType		Type
   HiLink pyrexStructure		Structure
-  HiLink pyrexPrecondit		PreCondit
+  HiLink pyrexInclude		PreCondit
   HiLink pyrexAccess		pyrexStatement
   if exists("python_highlight_builtins") || exists("pyrex_highlight_builtins")
       HiLink pyrexBuiltin	Function
diff -u -r --new-file runtime/syntax.orig/python.vim runtime/syntax/python.vim
--- runtime/syntax.orig/python.vim	2006-10-15 16:04:19.000000000 -0500
+++ runtime/syntax/python.vim	2009-10-28 15:56:59.000000000 -0500
@@ -1,143 +1,252 @@
 " Vim syntax file
 " Language:	Python
 " Maintainer:	Neil Schemenauer <nas@python.ca>
-" Updated:	2006-10-15
-"		Added Python 2.4 features 2006 May 4 (Dmitry Vasiliev)
+" Last Change:	2009-10-13
+" Credits:	Zvezdan Petkovic <zpetkovic@acm.org>
+"		Neil Schemenauer <nas@python.ca>
+"		Dmitry Vasiliev
 "
-" Options to control Python syntax highlighting:
+"		This version is a major rewrite by Zvezdan Petkovic.
 "
-" For highlighted numbers:
+"		- introduced highlighting of doctests
+"		- updated keywords, built-ins, and exceptions
+"		- corrected regular expressions for
 "
-"    let python_highlight_numbers = 1
+"		  * functions
+"		  * decorators
+"		  * strings
+"		  * escapes
+"		  * numbers
+"		  * space error
 "
-" For highlighted builtin functions:
+"		- corrected synchronization
+"		- more highlighting is ON by default, except
+"		- space error highlighting is OFF by default
 "
-"    let python_highlight_builtins = 1
+" Optional highlighting can be controlled using these variables.
 "
-" For highlighted standard exceptions:
+"   let python_no_builtin_highlight = 1
+"   let python_no_doctest_code_highlight = 1
+"   let python_no_doctest_highlight = 1
+"   let python_no_exception_highlight = 1
+"   let python_no_number_highlight = 1
+"   let python_space_error_highlight = 1
 "
-"    let python_highlight_exceptions = 1
+" All the options above can be switched on together.
 "
-" Highlight erroneous whitespace:
-"
-"    let python_highlight_space_errors = 1
-"
-" If you want all possible Python highlighting (the same as setting the
-" preceding options):
-"
-"    let python_highlight_all = 1
+"   let python_highlight_all = 1
 "
 
-" For version 5.x: Clear all syntax items
-" For version 6.x: Quit when a syntax file was already loaded
+" For version 5.x: Clear all syntax items.
+" For version 6.x: Quit when a syntax file was already loaded.
 if version < 600
   syntax clear
 elseif exists("b:current_syntax")
   finish
 endif
 
-
-syn keyword pythonStatement	break continue del
-syn keyword pythonStatement	except exec finally
-syn keyword pythonStatement	pass print raise
-syn keyword pythonStatement	return try with
-syn keyword pythonStatement	global assert
-syn keyword pythonStatement	lambda yield
-syn keyword pythonStatement	def class nextgroup=pythonFunction skipwhite
-syn match   pythonFunction	"[a-zA-Z_][a-zA-Z0-9_]*" contained
+" Keep Python keywords in alphabetical order inside groups for easy
+" comparison with the table in the 'Python Language Reference'
+" http://docs.python.org/reference/lexical_analysis.html#keywords.
+" Groups are in the order presented in NAMING CONVENTIONS in syntax.txt.
+" Exceptions come last at the end of each group (class and def below).
+"
+" Keywords 'with' and 'as' are new in Python 2.6
+" (use 'from __future__ import with_statement' in Python 2.5).
+"
+" Some compromises had to be made to support both Python 3.0 and 2.6.
+" We include Python 3.0 features, but when a definition is duplicated,
+" the last definition takes precedence.
+"
+" - 'False', 'None', and 'True' are keywords in Python 3.0 but they are
+"   built-ins in 2.6 and will be highlighted as built-ins below.
+" - 'exec' is a built-in in Python 3.0 and will be highlighted as
+"   built-in below.
+" - 'nonlocal' is a keyword in Python 3.0 and will be highlighted.
+" - 'print' is a built-in in Python 3.0 and will be highlighted as
+"   built-in below (use 'from __future__ import print_function' in 2.6)
+"
+syn keyword pythonStatement	False, None, True
+syn keyword pythonStatement	as assert break continue del exec global
+syn keyword pythonStatement	lambda nonlocal pass print return with yield
+syn keyword pythonStatement	class def nextgroup=pythonFunction skipwhite
+syn keyword pythonConditional	elif else if
 syn keyword pythonRepeat	for while
-syn keyword pythonConditional	if elif else
 syn keyword pythonOperator	and in is not or
-" AS will be a keyword in Python 3
-syn keyword pythonPreCondit	import from as
-syn match   pythonComment	"#.*$" contains=pythonTodo,@Spell
-syn keyword pythonTodo		TODO FIXME XXX contained
+syn keyword pythonException	except finally raise try
+syn keyword pythonInclude	from import
 
 " Decorators (new in Python 2.4)
 syn match   pythonDecorator	"@" display nextgroup=pythonFunction skipwhite
+" The zero-length non-grouping match before the function name is
+" extremely important in pythonFunction.  Without it, everything is
+" interpreted as a function inside the contained environment of
+" doctests.
+" A dot must be allowed because of @MyClass.myfunc decorators.
+syn match   pythonFunction
+      \ "\%(\%(def\s\|class\s\|@\)\s*\)\@<=\h\%(\w\|\.\)*" contained
+
+syn match   pythonComment	"#.*$" contains=pythonTodo,@Spell
+syn keyword pythonTodo		FIXME NOTE NOTES TODO XXX contained
 
-" strings
-syn region pythonString		matchgroup=Normal start=+[uU]\='+ end=+'+ skip=+\\\\\|\\'+ contains=pythonEscape,@Spell
-syn region pythonString		matchgroup=Normal start=+[uU]\="+ end=+"+ skip=+\\\\\|\\"+ contains=pythonEscape,@Spell
-syn region pythonString		matchgroup=Normal start=+[uU]\="""+ end=+"""+ contains=pythonEscape,@Spell
-syn region pythonString		matchgroup=Normal start=+[uU]\='''+ end=+'''+ contains=pythonEscape,@Spell
-syn region pythonRawString	matchgroup=Normal start=+[uU]\=[rR]'+ end=+'+ skip=+\\\\\|\\'+ contains=@Spell
-syn region pythonRawString	matchgroup=Normal start=+[uU]\=[rR]"+ end=+"+ skip=+\\\\\|\\"+ contains=@Spell
-syn region pythonRawString	matchgroup=Normal start=+[uU]\=[rR]"""+ end=+"""+ contains=@Spell
-syn region pythonRawString	matchgroup=Normal start=+[uU]\=[rR]'''+ end=+'''+ contains=@Spell
-syn match  pythonEscape		+\\[abfnrtv'"\\]+ contained
-syn match  pythonEscape		"\\\o\{1,3}" contained
-syn match  pythonEscape		"\\x\x\{2}" contained
-syn match  pythonEscape		"\(\\u\x\{4}\|\\U\x\{8}\)" contained
-syn match  pythonEscape		"\\$"
+" Triple-quoted strings can contain doctests.
+syn region  pythonString
+      \ start=+[uU]\=\z(['"]\)+ end="\z1" skip="\\\\\|\\\z1"
+      \ contains=pythonEscape,@Spell
+syn region  pythonString
+      \ start=+[uU]\=\z('''\|"""\)+ end="\z1" keepend
+      \ contains=pythonEscape,pythonSpaceError,pythonDoctest,@Spell
+syn region  pythonRawString
+      \ start=+[uU]\=[rR]\z(['"]\)+ end="\z1" skip="\\\\\|\\\z1"
+      \ contains=@Spell
+syn region  pythonRawString
+      \ start=+[uU]\=[rR]\z('''\|"""\)+ end="\z1" keepend
+      \ contains=pythonSpaceError,pythonDoctest,@Spell
+
+syn match   pythonEscape	+\\[abfnrtv'"\\]+ contained
+syn match   pythonEscape	"\\\o\{1,3}" contained
+syn match   pythonEscape	"\\x\x\{2}" contained
+syn match   pythonEscape	"\%(\\u\x\{4}\|\\U\x\{8}\)" contained
+" Python allows case-insensitive Unicode IDs: http://www.unicode.org/charts/
+syn match   pythonEscape	"\\N{\a\+\%(\s\a\+\)*}" contained
+syn match   pythonEscape	"\\$"
 
 if exists("python_highlight_all")
-  let python_highlight_numbers = 1
-  let python_highlight_builtins = 1
-  let python_highlight_exceptions = 1
-  let python_highlight_space_errors = 1
+  if exists("python_no_builtin_highlight")
+    unlet python_no_builtin_highlight
+  endif
+  if exists("python_no_doctest_code_highlight")
+    unlet python_no_doctest_code_highlight
+  endif
+  if exists("python_no_doctest_highlight")
+    unlet python_no_doctest_highlight
+  endif
+  if exists("python_no_exception_highlight")
+    unlet python_no_exception_highlight
+  endif
+  if exists("python_no_number_highlight")
+    unlet python_no_number_highlight
+  endif
+  let python_space_error_highlight = 1
 endif
 
-if exists("python_highlight_numbers")
+" It is very important to understand all details before changing the
+" regular expressions below or their order.
+" The word boundaries are *not* the floating-point number boundaries
+" because of a possible leading or trailing decimal point.
+" The expressions below ensure that all valid number literals are
+" highlighted, and invalid number literals are not.  For example,
+"
+" - a decimal point in '4.' at the end of a line is highlighted,
+" - a second dot in 1.0.0 is not highlighted,
+" - 08 is not highlighted,
+" - 08e0 or 08j are highlighted,
+"
+" and so on, as specified in the 'Python Language Reference'.
+" http://docs.python.org/reference/lexical_analysis.html#numeric-literals
+if !exists("python_no_number_highlight")
   " numbers (including longs and complex)
-  syn match   pythonNumber	"\<0x\x\+[Ll]\=\>"
-  syn match   pythonNumber	"\<\d\+[LljJ]\=\>"
-  syn match   pythonNumber	"\.\d\+\([eE][+-]\=\d\+\)\=[jJ]\=\>"
-  syn match   pythonNumber	"\<\d\+\.\([eE][+-]\=\d\+\)\=[jJ]\=\>"
-  syn match   pythonNumber	"\<\d\+\.\d\+\([eE][+-]\=\d\+\)\=[jJ]\=\>"
-endif
-
-if exists("python_highlight_builtins")
-  " builtin functions, types and objects, not really part of the syntax
-  syn keyword pythonBuiltin	True False bool enumerate set frozenset help
-  syn keyword pythonBuiltin	reversed sorted sum
-  syn keyword pythonBuiltin	Ellipsis None NotImplemented __import__ abs
-  syn keyword pythonBuiltin	apply buffer callable chr classmethod cmp
-  syn keyword pythonBuiltin	coerce compile complex delattr dict dir divmod
-  syn keyword pythonBuiltin	eval execfile file filter float getattr globals
-  syn keyword pythonBuiltin	hasattr hash hex id input int intern isinstance
-  syn keyword pythonBuiltin	issubclass iter len list locals long map max
-  syn keyword pythonBuiltin	min object oct open ord pow property range
-  syn keyword pythonBuiltin	raw_input reduce reload repr round setattr
-  syn keyword pythonBuiltin	slice staticmethod str super tuple type unichr
-  syn keyword pythonBuiltin	unicode vars xrange zip
-endif
-
-if exists("python_highlight_exceptions")
-  " builtin exceptions and warnings
-  syn keyword pythonException	ArithmeticError AssertionError AttributeError
-  syn keyword pythonException	DeprecationWarning EOFError EnvironmentError
-  syn keyword pythonException	Exception FloatingPointError IOError
-  syn keyword pythonException	ImportError IndentationError IndexError
-  syn keyword pythonException	KeyError KeyboardInterrupt LookupError
-  syn keyword pythonException	MemoryError NameError NotImplementedError
-  syn keyword pythonException	OSError OverflowError OverflowWarning
-  syn keyword pythonException	ReferenceError RuntimeError RuntimeWarning
-  syn keyword pythonException	StandardError StopIteration SyntaxError
-  syn keyword pythonException	SyntaxWarning SystemError SystemExit TabError
-  syn keyword pythonException	TypeError UnboundLocalError UnicodeError
-  syn keyword pythonException	UnicodeEncodeError UnicodeDecodeError
-  syn keyword pythonException	UnicodeTranslateError
-  syn keyword pythonException	UserWarning ValueError Warning WindowsError
-  syn keyword pythonException	ZeroDivisionError
+  syn match   pythonNumber	"\<0[oO]\=\o\+[Ll]\=\>"
+  syn match   pythonNumber	"\<0[xX]\x\+[Ll]\=\>"
+  syn match   pythonNumber	"\<0[bB][01]\+[Ll]\=\>"
+  syn match   pythonNumber	"\<\%([1-9]\d*\|0\)[Ll]\=\>"
+  syn match   pythonNumber	"\<\d\+[jJ]\>"
+  syn match   pythonNumber	"\<\d\+[eE][+-]\=\d\+[jJ]\=\>"
+  syn match   pythonNumber
+	\ "\<\d\+\.\%([eE][+-]\=\d\+\)\=[jJ]\=\%(\W\|$\)\@="
+  syn match   pythonNumber
+	\ "\%(^\|\W\)\@<=\d*\.\d\+\%([eE][+-]\=\d\+\)\=[jJ]\=\>"
+endif
+
+" Group the built-ins in the order in the 'Python Library Reference' for
+" easier comparison.
+" http://docs.python.org/library/constants.html
+" http://docs.python.org/library/functions.html
+" http://docs.python.org/library/functions.html#non-essential-built-in-functions
+" Python built-in functions are in alphabetical order.
+if !exists("python_no_builtin_highlight")
+  " built-in constants
+  " 'False', 'True', and 'None' are also reserved words in Python 3.0
+  syn keyword pythonBuiltin	False True None
+  syn keyword pythonBuiltin	NotImplemented Ellipsis __debug__
+  " built-in functions
+  syn keyword pythonBuiltin	abs all any bin bool chr classmethod
+  syn keyword pythonBuiltin	compile complex delattr dict dir divmod
+  syn keyword pythonBuiltin	enumerate eval filter float format
+  syn keyword pythonBuiltin	frozenset getattr globals hasattr hash
+  syn keyword pythonBuiltin	help hex id input int isinstance
+  syn keyword pythonBuiltin	issubclass iter len list locals map max
+  syn keyword pythonBuiltin	min next object oct open ord pow print
+  syn keyword pythonBuiltin	property range repr reversed round set
+  syn keyword pythonBuiltin	setattr slice sorted staticmethod str
+  syn keyword pythonBuiltin	sum super tuple type vars zip __import__
+  " Python 2.6 only
+  syn keyword pythonBuiltin	basestring callable cmp execfile file
+  syn keyword pythonBuiltin	long raw_input reduce reload unichr
+  syn keyword pythonBuiltin	unicode xrange
+  " Python 3.0 only
+  syn keyword pythonBuiltin	ascii bytearray bytes exec memoryview
+  " non-essential built-in functions; Python 2.6 only
+  syn keyword pythonBuiltin	apply buffer coerce intern
+endif
+
+" From the 'Python Library Reference' class hierarchy at the bottom.
+" http://docs.python.org/library/exceptions.html
+if !exists("python_no_exception_highlight")
+  " builtin base exceptions (only used as base classes for other exceptions)
+  syn keyword pythonExceptions	BaseException Exception
+  syn keyword pythonExceptions	ArithmeticError EnvironmentError
+  syn keyword pythonExceptions	LookupError
+  " builtin base exception removed in Python 3.0
+  syn keyword pythonExceptions	StandardError
+  " builtin exceptions (actually raised)
+  syn keyword pythonExceptions	AssertionError AttributeError BufferError
+  syn keyword pythonExceptions	EOFError FloatingPointError GeneratorExit
+  syn keyword pythonExceptions	IOError ImportError IndentationError
+  syn keyword pythonExceptions	IndexError KeyError KeyboardInterrupt
+  syn keyword pythonExceptions	MemoryError NameError NotImplementedError
+  syn keyword pythonExceptions	OSError OverflowError ReferenceError
+  syn keyword pythonExceptions	RuntimeError StopIteration SyntaxError
+  syn keyword pythonExceptions	SystemError SystemExit TabError TypeError
+  syn keyword pythonExceptions	UnboundLocalError UnicodeError
+  syn keyword pythonExceptions	UnicodeDecodeError UnicodeEncodeError
+  syn keyword pythonExceptions	UnicodeTranslateError ValueError VMSError
+  syn keyword pythonExceptions	WindowsError ZeroDivisionError
+  " builtin warnings
+  syn keyword pythonExceptions	BytesWarning DeprecationWarning FutureWarning
+  syn keyword pythonExceptions	ImportWarning PendingDeprecationWarning
+  syn keyword pythonExceptions	RuntimeWarning SyntaxWarning UnicodeWarning
+  syn keyword pythonExceptions	UserWarning Warning
 endif
 
-if exists("python_highlight_space_errors")
+if exists("python_space_error_highlight")
   " trailing whitespace
-  syn match   pythonSpaceError   display excludenl "\S\s\+$"ms=s+1
+  syn match   pythonSpaceError	display excludenl "\s\+$"
   " mixed tabs and spaces
-  syn match   pythonSpaceError   display " \+\t"
-  syn match   pythonSpaceError   display "\t\+ "
+  syn match   pythonSpaceError	display " \+\t"
+  syn match   pythonSpaceError	display "\t\+ "
 endif
 
-" This is fast but code inside triple quoted strings screws it up. It
-" is impossible to fix because the only way to know if you are inside a
-" triple quoted string is to start from the beginning of the file. If
-" you have a fast machine you can try uncommenting the "sync minlines"
-" and commenting out the rest.
-syn sync match pythonSync grouphere NONE "):$"
-syn sync maxlines=200
-"syn sync minlines=2000
+" Do not spell doctests inside strings.
+" Notice that the end of a string, either ''', or """, will end the contained
+" doctest too.  Thus, we do *not* need to have it as an end pattern.
+if !exists("python_no_doctest_highlight")
+  if !exists("python_no_doctest_code_higlight")
+    syn region pythonDoctest
+	  \ start="^\s*>>>\s" end="^\s*$"
+	  \ contained contains=ALLBUT,pythonDoctest,@Spell
+    syn region pythonDoctestValue
+	  \ start=+^\s*\%(>>>\s\|\.\.\.\s\|"""\|'''\)\@!\S\++ end="$"
+	  \ contained
+  else
+    syn region pythonDoctest
+	  \ start="^\s*>>>" end="^\s*$"
+	  \ contained contains=@NoSpell
+  endif
+endif
+
+" Sync at the beginning of class, function, or method definition.
+syn sync match pythonSync grouphere NONE "^\s*\%(def\|class\)\s\+\h\w*\s*("
 
 if version >= 508 || !exists("did_python_syn_inits")
   if version <= 508
@@ -147,35 +256,40 @@
     command -nargs=+ HiLink hi def link <args>
   endif
 
-  " The default methods for highlighting.  Can be overridden later
+  " The default highlight links.  Can be overridden later.
   HiLink pythonStatement	Statement
-  HiLink pythonFunction		Function
   HiLink pythonConditional	Conditional
   HiLink pythonRepeat		Repeat
-  HiLink pythonString		String
-  HiLink pythonRawString	String
-  HiLink pythonEscape		Special
   HiLink pythonOperator		Operator
-  HiLink pythonPreCondit	PreCondit
+  HiLink pythonException	Exception
+  HiLink pythonInclude		Include
+  HiLink pythonDecorator	Define
+  HiLink pythonFunction		Function
   HiLink pythonComment		Comment
   HiLink pythonTodo		Todo
-  HiLink pythonDecorator	Define
-  if exists("python_highlight_numbers")
-    HiLink pythonNumber	Number
+  HiLink pythonString		String
+  HiLink pythonRawString	String
+  HiLink pythonEscape		Special
+  if !exists("python_no_number_highlight")
+    HiLink pythonNumber		Number
   endif
-  if exists("python_highlight_builtins")
+  if !exists("python_no_builtin_highlight")
     HiLink pythonBuiltin	Function
   endif
-  if exists("python_highlight_exceptions")
-    HiLink pythonException	Exception
+  if !exists("python_no_exception_highlight")
+    HiLink pythonExceptions	Structure
   endif
-  if exists("python_highlight_space_errors")
+  if exists("python_space_error_highlight")
     HiLink pythonSpaceError	Error
   endif
+  if !exists("python_no_doctest_highlight")
+    HiLink pythonDoctest	Special
+    HiLink pythonDoctestValue	Define
+  endif
 
   delcommand HiLink
 endif
 
 let b:current_syntax = "python"
 
-" vim: ts=8
+" vim:set sw=2 sts=2 ts=8 noet:
diff -u -r --new-file runtime/syntax.orig/readline.vim runtime/syntax/readline.vim
--- runtime/syntax.orig/readline.vim	2007-06-17 10:03:20.000000000 -0500
+++ runtime/syntax/readline.vim	2009-06-13 07:38:40.000000000 -0500
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         readline(3) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2007-06-17
+" Latest Revision:  2009-05-25
 "   readline_has_bash - if defined add support for bash specific
 "                       settings/functions
 
@@ -128,6 +128,7 @@
                                 \ arrow-key-prefix vi-back-to-indent vi-bword
                                 \ vi-bWord vi-eword vi-eWord vi-fword vi-fWord
                                 \ vi-next-word
+                                \ vi-movement-mode
 
 if exists("readline_has_bash")
   syn keyword readlineFunctions contained
diff -u -r --new-file runtime/syntax.orig/remind.vim runtime/syntax/remind.vim
--- runtime/syntax.orig/remind.vim	2006-05-12 12:55:59.000000000 -0500
+++ runtime/syntax/remind.vim	2009-10-08 16:18:08.000000000 -0500
@@ -1,12 +1,13 @@
 " Vim syntax file
 " Language:	Remind
 " Maintainer:	Davide Alberani <alberanid@libero.it>
-" Last Change:	10 May 2006
-" Version:	0.3
+" Last Change:	18 Sep 2009
+" Version:	0.5
 " URL:		http://erlug.linux.it/~da/vim/syntax/remind.vim
 "
-" remind is a sophisticated reminder service; you can download remind from:
-" http://www.roaringpenguin.com/penguin/open_source_remind.php
+" remind is a sophisticated reminder service
+" you can download remind from:
+"   http://www.roaringpenguin.com/penguin/open_source_remind.php
 
 if version < 600
   syntax clear
@@ -14,24 +15,30 @@
   finish
 endif
 
-" shut case off
+" shut case off.
 syn case ignore
 
 syn keyword remindCommands	REM OMIT SET FSET UNSET
-syn keyword remindExpiry	UNTIL SCANFROM SCAN WARN SCHED
+syn keyword remindExpiry	UNTIL FROM SCANFROM SCAN WARN SCHED
 syn keyword remindTag		PRIORITY TAG
 syn keyword remindTimed		AT DURATION
 syn keyword remindMove		ONCE SKIP BEFORE AFTER
-syn keyword remindSpecial	INCLUDE INC BANNER PUSH-OMIT-CONTEXT PUSH CLEAR-OMIT-CONTEXT CLEAR POP-OMIT-CONTEXT POP
+syn keyword remindSpecial	INCLUDE INC BANNER PUSH-OMIT-CONTEXT PUSH CLEAR-OMIT-CONTEXT CLEAR POP-OMIT-CONTEXT POP COLOR
 syn keyword remindRun		MSG MSF RUN CAL SATISFY SPECIAL PS PSFILE SHADE MOON
 syn keyword remindConditional	IF ELSE ENDIF IFTRIG
+syn keyword remindDebug		DEBUG DUMPVARS DUMP ERRMSG FLUSH PRESERVE
 syn match remindComment		"#.*$"
 syn region remindString		start=+'+ end=+'+ skip=+\\\\\|\\'+ oneline
 syn region remindString		start=+"+ end=+"+ skip=+\\\\\|\\"+ oneline
-syn keyword remindDebug		DEBUG DUMPVARS DUMP ERRMSG FLUSH PRESERVE
 syn match remindVar		"\$[_a-zA-Z][_a-zA-Z0-9]*"
 syn match remindSubst		"%[^ ]"
 syn match remindAdvanceNumber	"\(\*\|+\|-\|++\|--\)[0-9]\+"
+" XXX: use different separators for dates and times?
+syn match remindDateSeparators	"[/:@\.-]" contained
+syn match remindTimes		"[0-9]\{1,2}[:\.][0-9]\{1,2}" contains=remindDateSeparators
+" XXX: why not match only valid dates?  Ok, checking for 'Feb the 30' would
+"       be impossible, but at least check for valid months and times.
+syn match remindDates		"'[0-9]\{4}[/-][0-9]\{1,2}[/-][0-9]\{1,2}\(@[0-9]\{1,2}[:\.][0-9]\{1,2}\)\?'" contains=remindDateSeparators
 " This will match trailing whitespaces that seem to break rem2ps.
 " Courtesy of Michael Dunn.
 syn match remindWarning		display excludenl "\S\s\+$"ms=s+1
@@ -54,11 +61,14 @@
   HiLink remindRun		Function
   HiLink remindConditional	Conditional
   HiLink remindComment		Comment
+  HiLink remindTimes		String
   HiLink remindString		String
   HiLink remindDebug		Debug
   HiLink remindVar		Identifier
   HiLink remindSubst		Constant
   HiLink remindAdvanceNumber	Number
+  HiLink remindDateSeparators	Comment
+  HiLink remindDates		String
   HiLink remindWarning		Error
 
   delcommand HiLink
diff -u -r --new-file runtime/syntax.orig/rhelp.vim runtime/syntax/rhelp.vim
--- runtime/syntax.orig/rhelp.vim	2008-04-10 14:24:17.000000000 -0500
+++ runtime/syntax/rhelp.vim	2009-05-14 13:53:07.000000000 -0500
@@ -1,13 +1,14 @@
 " Vim syntax file
 " Language:    R Help File
 " Maintainer:  Johannes Ranke <jranke@uni-bremen.de>
-" Last Change: 2008 Apr 10
-" Version:     0.7.1
-" SVN:		   $Id: rhelp.vim 81 2008-04-10 08:30:11Z ranke $
+" Last Change: 2009 Mai 12
+" Version:     0.7.2
+" SVN:		   $Id: rhelp.vim 86 2009-05-12 19:23:47Z ranke $
 " Remarks:     - Now includes R syntax highlighting in the appropriate
 "                sections if an r.vim file is in the same directory or in the
 "                default debian location.
 "              - There is no Latex markup in equations
+"              - Thanks to Will Gray for finding and fixing a bug
 
 " Version Clears: {{{1
 " For version 5.x: Clear all syntax items
@@ -57,7 +58,7 @@
 
 " Links {{{1
 syn region rhelpLink matchgroup=rhelpSection start="\\link{" end="}" contained keepend
-syn region rhelpLink matchgroup=rhelpSection start="\\link\[.*\]{" end="}" contained keepend
+syn region rhelpLink matchgroup=rhelpSection start="\\link\[.\{-}\]{" end="}" contained keepend
 syn region rhelpLink matchgroup=rhelpSection start="\\linkS4class{" end="}" contained keepend
 
 " Type Styles {{{1
diff -u -r --new-file runtime/syntax.orig/rnoweb.vim runtime/syntax/rnoweb.vim
--- runtime/syntax.orig/rnoweb.vim	2007-05-05 12:55:31.000000000 -0500
+++ runtime/syntax/rnoweb.vim	2009-05-05 14:48:52.000000000 -0500
@@ -1,9 +1,9 @@
 " Vim syntax file
 " Language:    R noweb Files
 " Maintainer:  Johannes Ranke <jranke@uni-bremen.de>
-" Last Change: 2007 Mär 30
-" Version:     0.8
-" SVN:	       $Id: rnoweb.vim,v 1.3 2007/05/05 17:55:31 vimboss Exp $
+" Last Change: 2009 May 05
+" Version:     0.9
+" SVN:	       $Id: rnoweb.vim 84 2009-05-03 19:52:47Z ranke $
 " Remarks:     - This file is inspired by the proposal of 
 "				 Fernando Henrique Ferraz Pereira da Rosa <feferraz@ime.usp.br>
 "			     http://www.ime.usp.br/~feferraz/en/sweavevim.html
@@ -25,6 +25,7 @@
 unlet b:current_syntax
 
 syn cluster texMatchGroup add=@rnoweb
+syn cluster texMathMatchGroup add=rnowebSexpr
 syn cluster texEnvGroup add=@rnoweb
 syn cluster texFoldGroup add=@rnoweb
 syn cluster texDocGroup		add=@rnoweb
diff -u -r --new-file runtime/syntax.orig/rst.vim runtime/syntax/rst.vim
--- runtime/syntax.orig/rst.vim	2006-07-03 18:49:39.000000000 -0500
+++ runtime/syntax/rst.vim	2010-02-11 06:41:37.000000000 -0600
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         reStructuredText documentation format
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-07-04
+" Latest Revision:  2010-01-23
 
 if exists("b:current_syntax")
   finish
@@ -12,12 +12,9 @@
 
 syn case ignore
 
-" FIXME: The problem with these two is that Vim doesn’t seem to like
-" matching across line boundaries.
-"
-" syn match   rstSections /^.*\n[=`:.'"~^_*+#-]\+$/
+syn match   rstSections "^\%(\([=`:.'"~^_*+#-]\)\1\+\n\)\=.\+\n\([=`:.'"~^_*+#-]\)\2\+$"
 
-" syn match   rstTransition  /^\s*[=`:.'"~^_*+#-]\{4,}\s*$/
+syn match   rstTransition  /^[=`:.'"~^_*+#-]\{4,}\s*$/
 
 syn cluster rstCruft                contains=rstEmphasis,rstStrongEmphasis,
       \ rstInterpretedText,rstInlineLiteral,rstSubstitutionReference,
@@ -140,12 +137,12 @@
 
 " TODO: Use better syncing.  I don’t know the specifics of syncing well enough,
 " though.
-syn sync minlines=50
+syn sync minlines=50 linebreaks=1
 
 hi def link rstTodo                         Todo
 hi def link rstComment                      Comment
-"hi def link rstSections                     Type
-"hi def link rstTransition                   Type
+hi def link rstSections                     Type
+hi def link rstTransition                   Type
 hi def link rstLiteralBlock                 String
 hi def link rstQuotedLiteralBlock           String
 hi def link rstDoctestBlock                 PreProc
diff -u -r --new-file runtime/syntax.orig/samba.vim runtime/syntax/samba.vim
--- runtime/syntax.orig/samba.vim	2004-09-21 04:51:35.000000000 -0500
+++ runtime/syntax/samba.vim	2009-09-18 05:27:18.000000000 -0500
@@ -2,8 +2,10 @@
 " Language:	samba configuration files (smb.conf)
 " Maintainer:	Rafael Garcia-Suarez <rgarciasuarez@free.fr>
 " URL:		http://rgarciasuarez.free.fr/vim/syntax/samba.vim
-" Last change:	2004 September 21
-
+" Last change:	2009 Aug 06
+"
+"               New maintainer wanted!
+"
 " Don't forget to run your config file through testparm(1)!
 
 " For version 5.x: Clear all syntax items
@@ -51,7 +53,7 @@
 syn keyword sambaKeyword contained netbios nis notify nt null offset ok ole
 syn keyword sambaKeyword contained only open oplock oplocks options order os
 syn keyword sambaKeyword contained output packet page panic passwd password
-syn keyword sambaKeyword contained passwords path permissions pipe port
+syn keyword sambaKeyword contained passwords path permissions pipe port ports
 syn keyword sambaKeyword contained postexec postscript prediction preexec
 syn keyword sambaKeyword contained prefered preferred preload preserve print
 syn keyword sambaKeyword contained printable printcap printer printers
diff -u -r --new-file runtime/syntax.orig/scheme.vim runtime/syntax/scheme.vim
--- runtime/syntax.orig/scheme.vim	2007-06-16 15:09:14.000000000 -0500
+++ runtime/syntax/scheme.vim	2009-11-28 06:33:43.000000000 -0600
@@ -1,6 +1,6 @@
 " Vim syntax file
-" Language:	Scheme (R5RS)
-" Last Change:	2007 Jun 16
+" Language:	Scheme (R5RS + some R6RS extras)
+" Last Change:	2009 Nov 27
 " Maintainer:	Sergey Khorev <sergey.khorev@gmail.com>
 " Original author:	Dirk van Deun <dirk@igwe.vub.ac.be>
 
@@ -26,8 +26,8 @@
 
 " Fascist highlighting: everything that doesn't fit the rules is an error...
 
-syn match	schemeError	oneline    ![^ \t()\[\]";]*!
-syn match	schemeError	oneline    ")"
+syn match	schemeError	![^ \t()\[\]";]*!
+syn match	schemeError	")"
 
 " Quoted and backquoted stuff
 
@@ -71,6 +71,8 @@
 syn keyword schemeSyntax begin do delay set! else =>
 syn keyword schemeSyntax quote quasiquote unquote unquote-splicing
 syn keyword schemeSyntax define-syntax let-syntax letrec-syntax syntax-rules
+" R6RS
+syn keyword schemeSyntax define-record-type fields protocol
 
 syn keyword schemeFunc not boolean? eq? eqv? equal? pair? cons car cdr set-car!
 syn keyword schemeFunc set-cdr! caar cadr cdar cddr caaar caadr cadar caddr
@@ -109,30 +111,39 @@
 syn keyword schemeFunc dynamic-wind port? values call-with-values
 syn keyword schemeFunc scheme-report-environment null-environment
 syn keyword schemeFunc interaction-environment
+" R6RS
+syn keyword schemeFunc make-eq-hashtable make-eqv-hashtable make-hashtable
+syn keyword schemeFunc hashtable? hashtable-size hashtable-ref hashtable-set!
+syn keyword schemeFunc hashtable-delete! hashtable-contains? hashtable-update!
+syn keyword schemeFunc hashtable-copy hashtable-clear! hashtable-keys
+syn keyword schemeFunc hashtable-entries hashtable-equivalence-function hashtable-hash-function
+syn keyword schemeFunc hashtable-mutable? equal-hash string-hash string-ci-hash symbol-hash 
+syn keyword schemeFunc find for-all exists filter partition fold-left fold-right
+syn keyword schemeFunc remp remove remv remq memp assp cons*
 
 " ... so that a single + or -, inside a quoted context, would not be
 " interpreted as a number (outside such contexts, it's a schemeFunc)
 
-syn match	schemeDelimiter	oneline    !\.[ \t\[\]()";]!me=e-1
-syn match	schemeDelimiter	oneline    !\.$!
+syn match	schemeDelimiter	!\.[ \t\[\]()";]!me=e-1
+syn match	schemeDelimiter	!\.$!
 " ... and a single dot is not a number but a delimiter
 
 " This keeps all other stuff unhighlighted, except *stuff* and <stuff>:
 
-syn match	schemeOther	oneline    ,[a-z!$%&*/:<=>?^_~+@#%-][-a-z!$%&*/:<=>?^_~0-9+.@#%]*,
-syn match	schemeError	oneline    ,[a-z!$%&*/:<=>?^_~+@#%-][-a-z!$%&*/:<=>?^_~0-9+.@#%]*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*,
+syn match	schemeOther	,[a-z!$%&*/:<=>?^_~+@#%-][-a-z!$%&*/:<=>?^_~0-9+.@#%]*,
+syn match	schemeError	,[a-z!$%&*/:<=>?^_~+@#%-][-a-z!$%&*/:<=>?^_~0-9+.@#%]*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*,
 
-syn match	schemeOther	oneline    "\.\.\."
-syn match	schemeError	oneline    !\.\.\.[^ \t\[\]()";]\+!
+syn match	schemeOther	"\.\.\."
+syn match	schemeError	!\.\.\.[^ \t\[\]()";]\+!
 " ... a special identifier
 
-syn match	schemeConstant	oneline    ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*[ \t\[\]()";],me=e-1
-syn match	schemeConstant	oneline    ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*$,
-syn match	schemeError	oneline    ,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*,
-
-syn match	schemeConstant	oneline    ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[ \t\[\]()";],me=e-1
-syn match	schemeConstant	oneline    ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>$,
-syn match	schemeError	oneline    ,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*,
+syn match	schemeConstant	,\*[-a-z!$%&*/:<=>?^_~0-9+.@]\+\*[ \t\[\]()";],me=e-1
+syn match	schemeConstant	,\*[-a-z!$%&*/:<=>?^_~0-9+.@]\+\*$,
+syn match	schemeError	,\*[-a-z!$%&*/:<=>?^_~0-9+.@]*\*[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*,
+
+syn match	schemeConstant	,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[ \t\[\]()";],me=e-1
+syn match	schemeConstant	,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>$,
+syn match	schemeError	,<[-a-z!$%&*/:<=>?^_~0-9+.@]*>[^-a-z!$%&*/:<=>?^_~0-9+.@ \t\[\]()";]\+[^ \t\[\]()";]*,
 
 " Non-quoted lists, and strings:
 
@@ -153,23 +164,27 @@
 " Writing out the complete description of Scheme numerals without
 " using variables is a day's work for a trained secretary...
 
-syn match	schemeOther	oneline    ![+-][ \t\[\]()";]!me=e-1
-syn match	schemeOther	oneline    ![+-]$!
+syn match	schemeOther	![+-][ \t\[\]()";]!me=e-1
+syn match	schemeOther	![+-]$!
 "
 " This is a useful lax approximation:
-syn match	schemeNumber	oneline    "[-#+0-9.][-#+/0-9a-f@i.boxesfdl]*"
-syn match	schemeError	oneline    ![-#+0-9.][-#+/0-9a-f@i.boxesfdl]*[^-#+/0-9a-f@i.boxesfdl \t\[\]()";][^ \t\[\]()";]*!
+syn match	schemeNumber	"[-#+.]\=[0-9][-#+/0-9a-f@i.boxesfdl]*"
+syn match	schemeError	![-#+0-9.][-#+/0-9a-f@i.boxesfdl]*[^-#+/0-9a-f@i.boxesfdl \t\[\]()";][^ \t\[\]()";]*!
 
-syn match	schemeBoolean	oneline    "#[tf]"
-syn match	schemeError	oneline    !#[tf][^ \t\[\]()";]\+!
+syn match	schemeBoolean	"#[tf]"
+syn match	schemeError	!#[tf][^ \t\[\]()";]\+!
+
+syn match	schemeCharacter	"#\\"
+syn match	schemeCharacter	"#\\."
+syn match       schemeError	!#\\.[^ \t\[\]()";]\+!
+syn match	schemeCharacter	"#\\space"
+syn match	schemeError	!#\\space[^ \t\[\]()";]\+!
+syn match	schemeCharacter	"#\\newline"
+syn match	schemeError	!#\\newline[^ \t\[\]()";]\+!
+
+" R6RS
+syn match schemeCharacter "#\\x[0-9a-fA-F]\+"
 
-syn match	schemeChar	oneline    "#\\"
-syn match	schemeChar	oneline    "#\\."
-syn match       schemeError	oneline    !#\\.[^ \t\[\]()";]\+!
-syn match	schemeChar	oneline    "#\\space"
-syn match	schemeError	oneline    !#\\space[^ \t\[\]()";]\+!
-syn match	schemeChar	oneline    "#\\newline"
-syn match	schemeError	oneline    !#\\newline[^ \t\[\]()";]\+!
 
 if exists("b:is_mzscheme") || exists("is_mzscheme")
     " MzScheme extensions
@@ -177,11 +192,11 @@
     syn region	schemeComment start="#|" end="|#"
 
     " #%xxx are the special MzScheme identifiers
-    syn match schemeOther oneline    "#%[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
+    syn match schemeOther "#%[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
     " anything limited by |'s is identifier
-    syn match schemeOther oneline    "|[^|]\+|"
+    syn match schemeOther "|[^|]\+|"
 
-    syn match	schemeChar	oneline    "#\\\%(return\|tab\)"
+    syn match	schemeCharacter	"#\\\%(return\|tab\)"
 
     " Modules require stmt
     syn keyword schemeExtSyntax module require dynamic-require lib prefix all-except prefix-all-except rename
@@ -234,8 +249,8 @@
     " multiline comment
     syntax region schemeMultilineComment start=/#|/ end=/|#/ contains=schemeMultilineComment
 
-    syn match schemeOther oneline    "##[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
-    syn match schemeExtSyntax oneline    "#:[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
+    syn match schemeOther "##[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
+    syn match schemeExtSyntax "#:[-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
 
     syn keyword schemeExtSyntax unit uses declare hide foreign-declare foreign-parse foreign-parse/spec
     syn keyword schemeExtSyntax foreign-lambda foreign-lambda* define-external define-macro load-library
@@ -266,7 +281,7 @@
     endif
 
     " suggested by Alex Queiroz
-    syn match schemeExtSyntax oneline    "#![-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
+    syn match schemeExtSyntax "#![-a-z!$%&*/:<=>?^_~0-9+.@#%]\+"
     syn region schemeString start=+#<#\s*\z(.*\)+ end=+^\z1$+ 
 endif
 
@@ -290,7 +305,7 @@
   HiLink schemeFunc		Function
 
   HiLink schemeString		String
-  HiLink schemeChar		Character
+  HiLink schemeCharacter	Character
   HiLink schemeNumber		Number
   HiLink schemeBoolean		Boolean
 
diff -u -r --new-file runtime/syntax.orig/screen.vim runtime/syntax/screen.vim
--- runtime/syntax.orig/screen.vim	2006-04-21 07:41:02.000000000 -0500
+++ runtime/syntax/screen.vim	2010-01-12 14:33:53.000000000 -0600
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         screen(1) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2006-04-19
+" Latest Revision:  2010-01-03
 
 if exists("b:current_syntax")
   finish
@@ -15,54 +15,219 @@
 syn keyword screenTodo      contained TODO FIXME XXX NOTE
 
 syn region  screenComment   display oneline start='#' end='$'
-                            \ contains=screenTodo,@Spell
+                          \ contains=screenTodo,@Spell
 
 syn region  screenString    display oneline start=+"+ skip=+\\"+ end=+"+
-                            \ contains=screenVariable,screenSpecial
+                          \ contains=screenVariable,screenSpecial
 
 syn region  screenLiteral   display oneline start=+'+ skip=+\\'+ end=+'+
 
-syn match   screenVariable  contained display '$\(\h\w*\|{\h\w*}\)'
+syn match   screenVariable  contained display '$\%(\h\w*\|{\h\w*}\)'
 
 syn keyword screenBoolean   on off
 
 syn match   screenNumbers   display '\<\d\+\>'
 
 syn match   screenSpecials  contained
-                            \ '%\([%aAdDhlmMstuwWyY?:{]\|[0-9]*n\|0?cC\)'
+                          \ '%\%([%aAdDhlmMstuwWyY?:{]\|[0-9]*n\|0?cC\)'
 
-syn keyword screenCommands  acladd aclchg acldel aclgrp aclumask activity
-                            \ addacl allpartial at attrcolor autodetach
-                            \ bell_msg bind bindkey bufferfile caption chacl
-                            \ chdir clear colon command compacthist console
-                            \ copy copy_regcrlf debug detach digraph dinfo
-                            \ crlf displays dumptermcap echo exec fit focus
-                            \ height help history info kill lastmsg license
-                            \ lockscreen markkeys meta msgminwait msgwait
-                            \ multiuser nethack next nonblock number only
-                            \ other partial_state password paste pastefont
-                            \ pow_break pow_detach_msg prev printcmd process
-                            \ quit readbuf readreg redisplay register
-                            \ remove removebuf reset resize screen select
-                            \ sessionname setenv shelltitle silencewait
-                            \ verbose sleep sorendition split startup_message
-                            \ stuff su suspend time title umask version wall
-                            \ width writebuf xoff xon defmode hardstatus
-                            \ altscreen break breaktype copy_reg defbreaktype
-                            \ defencoding deflog encoding eval ignorecase
-                            \ ins_reg maxwin partial pow_detach setsid source
-                            \ unsetenv windowlist windows defautonuke autonuke
-                            \ defbce bce defc1 c1 defcharset charset defescape
-                            \ escape defflow flow defkanji kanji deflogin
-                            \ login defmonitor monitor defhstatus hstatus
-                            \ defobuflimit obuflimit defscrollback scrollback
-                            \ defshell shell defsilence silence defslowpaste
-                            \ slowpaste defutf8 utf8 defwrap wrap defwritelock
-                            \ writelock defzombie zombie defgr gr hardcopy
-                            \ hardcopy_append hardcopydir hardstatus log
-                            \ logfile login logtstamp mapdefault mapnotnext
-                            \ maptimeout term termcap terminfo termcapinfo
-                            \ vbell vbell_msg vbellwait
+syn keyword screenCommands
+                          \ acladd
+                          \ aclchg
+                          \ acldel
+                          \ aclgrp
+                          \ aclumask
+                          \ activity
+                          \ addacl
+                          \ allpartial
+                          \ altscreen
+                          \ at
+                          \ attrcolor
+                          \ autodetach
+                          \ autonuke
+                          \ backtick
+                          \ bce
+                          \ bd_bc_down
+                          \ bd_bc_left
+                          \ bd_bc_right
+                          \ bd_bc_up
+                          \ bd_bell
+                          \ bd_braille_table
+                          \ bd_eightdot
+                          \ bd_info
+                          \ bd_link
+                          \ bd_lower_left
+                          \ bd_lower_right
+                          \ bd_ncrc
+                          \ bd_port
+                          \ bd_scroll
+                          \ bd_skip
+                          \ bd_start_braille
+                          \ bd_type
+                          \ bd_upper_left
+                          \ bd_upper_right
+                          \ bd_width
+                          \ bell
+                          \ bell_msg
+                          \ bind
+                          \ bindkey
+                          \ blanker
+                          \ blankerprg
+                          \ break
+                          \ breaktype
+                          \ bufferfile
+                          \ c1
+                          \ caption
+                          \ chacl
+                          \ charset
+                          \ chdir
+                          \ clear
+                          \ colon
+                          \ command
+                          \ compacthist
+                          \ console
+                          \ copy
+                          \ crlf
+                          \ debug
+                          \ defautonuke
+                          \ defbce
+                          \ defbreaktype
+                          \ defc1
+                          \ defcharset
+                          \ defencoding
+                          \ defescape
+                          \ defflow
+                          \ defgr
+                          \ defhstatus
+                          \ defkanji
+                          \ deflog
+                          \ deflogin
+                          \ defmode
+                          \ defmonitor
+                          \ defnonblock
+                          \ defobuflimit
+                          \ defscrollback
+                          \ defshell
+                          \ defsilence
+                          \ defslowpaste
+                          \ defutf8
+                          \ defwrap
+                          \ defwritelock
+                          \ detach
+                          \ digraph
+                          \ dinfo
+                          \ displays
+                          \ dumptermcap
+                          \ echo
+                          \ encoding
+                          \ escape
+                          \ eval
+                          \ exec
+                          \ fit
+                          \ flow
+                          \ focus
+                          \ gr
+                          \ hardcopy
+                          \ hardcopy_append
+                          \ hardcopydir
+                          \ hardstatus
+                          \ height
+                          \ help
+                          \ history
+                          \ hstatus
+                          \ idle
+                          \ ignorecase
+                          \ info
+                          \ kanji
+                          \ kill
+                          \ lastmsg
+                          \ layout
+                          \ license
+                          \ lockscreen
+                          \ log
+                          \ logfile
+                          \ login
+                          \ logtstamp
+                          \ mapdefault
+                          \ mapnotnext
+                          \ maptimeout
+                          \ markkeys
+                          \ maxwin
+                          \ meta
+                          \ monitor
+                          \ msgminwait
+                          \ msgwait
+                          \ multiuser
+                          \ nethack
+                          \ next
+                          \ nonblock
+                          \ number
+                          \ obuflimit
+                          \ only
+                          \ other
+                          \ partial
+                          \ password
+                          \ paste
+                          \ pastefont
+                          \ pow_break
+                          \ pow_detach
+                          \ pow_detach_msg
+                          \ prev
+                          \ printcmd
+                          \ process
+                          \ quit
+                          \ readbuf
+                          \ readreg
+                          \ redisplay
+                          \ register
+                          \ remove
+                          \ removebuf
+                          \ reset
+                          \ resize
+                          \ screen
+                          \ scrollback
+                          \ select
+                          \ sessionname
+                          \ setenv
+                          \ setsid
+                          \ shell
+                          \ shelltitle
+                          \ silence
+                          \ silencewait
+                          \ sleep
+                          \ slowpaste
+                          \ sorendition
+                          \ source
+                          \ split
+                          \ startup_message
+                          \ stuff
+                          \ su
+                          \ suspend
+                          \ term
+                          \ termcap
+                          \ termcapinfo
+                          \ terminfo
+                          \ time
+                          \ title
+                          \ umask
+                          \ unsetenv
+                          \ utf8
+                          \ vbell
+                          \ vbell_msg
+                          \ vbellwait
+                          \ verbose
+                          \ version
+                          \ wall
+                          \ width
+                          \ windowlist
+                          \ windows
+                          \ wrap
+                          \ writebuf
+                          \ writelock
+                          \ xoff
+                          \ xon
+                          \ zmodem
+                          \ zombie
 
 hi def link screenEscape    Special
 hi def link screenComment   Comment
diff -u -r --new-file runtime/syntax.orig/sdc.vim runtime/syntax/sdc.vim
--- runtime/syntax.orig/sdc.vim	1969-12-31 18:00:00.000000000 -0600
+++ runtime/syntax/sdc.vim	2009-05-05 13:28:48.000000000 -0500
@@ -0,0 +1,41 @@
+" Vim syntax file
+" Language:     SDC - Synopsys Design Constraints
+" Maintainer:   Maurizio Tranchero - maurizio.tranchero@gmail.com
+" Last Change:  Thu Mar  25 17:35:16 CET 2009
+" Credits:      based on TCL Vim syntax file
+" Version:	0.3
+
+" Quit when a syntax file was already loaded
+if exists("b:current_syntax")
+  finish
+endif
+
+" Read the TCL syntax to start with
+runtime! syntax/tcl.vim
+
+" SDC-specific keywords
+syn keyword sdcCollections	foreach_in_collection
+syn keyword sdcObjectsQuery	get_clocks get_ports
+syn keyword sdcObjectsInfo	get_point_info get_node_info get_path_info
+syn keyword sdcObjectsInfo	get_timing_paths set_attribute
+syn keyword sdcConstraints	set_false_path
+syn keyword sdcNonIdealities	set_min_delay set_max_delay
+syn keyword sdcNonIdealities	set_input_delay set_output_delay
+syn keyword sdcNonIdealities	set_load set_min_capacitance set_max_capacitance
+syn keyword sdcCreateOperations	create_clock create_timing_netlist update_timing_netlist
+
+" command flags highlighting
+syn match sdcFlags		"[[:space:]]-[[:alpha:]]*\>"
+
+" Define the default highlighting.
+hi def link sdcCollections      Repeat
+hi def link sdcObjectsInfo      Operator
+hi def link sdcCreateOperations	Operator
+hi def link sdcObjectsQuery	Operator
+hi def link sdcConstraints	Operator
+hi def link sdcNonIdealities	Operator
+hi def link sdcFlags		Special
+
+let b:current_syntax = "sdc"
+
+" vim: ts=8
diff -u -r --new-file runtime/syntax.orig/sgmllnx.vim runtime/syntax/sgmllnx.vim
--- runtime/syntax.orig/sgmllnx.vim	2004-06-07 09:32:35.000000000 -0500
+++ runtime/syntax/sgmllnx.vim	2008-09-18 13:56:21.000000000 -0500
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:	SGML-linuxdoc (supported by old sgmltools-1.x)
 "		(for more information, visit www.sgmltools.org)
-" Maintainer:	Nam SungHyun <namsh@kldp.org>
-" Last Change:	2001 Apr 26
+" Maintainer:	SungHyun Nam <goweol@gmail.com>
+" Last Change:	2008 Sep 17
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
diff -u -r --new-file runtime/syntax.orig/sh.vim runtime/syntax/sh.vim
--- runtime/syntax.orig/sh.vim	2008-07-14 15:23:42.000000000 -0500
+++ runtime/syntax/sh.vim	2010-01-12 14:45:24.000000000 -0600
@@ -2,8 +2,8 @@
 " Language:		shell (sh) Korn shell (ksh) bash (sh)
 " Maintainer:		Dr. Charles E. Campbell, Jr.  <NdrOchipS@PcampbellAfamily.Mbiz>
 " Previous Maintainer:	Lennart Schultz <Lennart.Schultz@ecmwf.int>
-" Last Change:		Jul 11, 2008
-" Version:		102
+" Last Change:		Nov 17, 2009
+" Version:		110
 " URL:		http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
 " For options and settings, please use:      :help ft-sh-syntax
 " This file includes many ideas from Éric Brunet (eric.brunet@ens.fr)
@@ -67,13 +67,13 @@
 
 " Clusters: contains=@... clusters {{{1
 "==================================
-syn cluster shErrorList	contains=shDoError,shIfError,shInError,shCaseError,shEsacError,shCurlyError,shParenError,shTestError
+syn cluster shErrorList	contains=shDoError,shIfError,shInError,shCaseError,shEsacError,shCurlyError,shParenError,shTestError,shOK
 if exists("b:is_kornshell")
  syn cluster ErrorList add=shDTestError
 endif
-syn cluster shArithParenList	contains=shArithmetic,shDeref,shDerefSimple,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shSingleQuote,shDoubleQuote,shStatement,shVariable,shAlias,shTest,shCtrlSeq,shSpecial,shParen
+syn cluster shArithParenList	contains=shArithmetic,shCaseEsac,shDeref,shDerefSimple,shEcho,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shRedir,shSingleQuote,shDoubleQuote,shStatement,shVariable,shAlias,shTest,shCtrlSeq,shSpecial,shParen,bashSpecialVariables,bashStatement
 syn cluster shArithList	contains=@shArithParenList,shParenError
-syn cluster shCaseEsacList	contains=shCaseStart,shCase,shCaseBar,shCaseIn,shComment,shDeref,shDerefSimple,shCaseCommandSub,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote,shCtrlSeq,@shErrorList,shStringSpecial
+syn cluster shCaseEsacList	contains=shCaseStart,shCase,shCaseBar,shCaseIn,shComment,shDeref,shDerefSimple,shCaseCommandSub,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote,shCtrlSeq,@shErrorList,shStringSpecial,shCaseRange
 syn cluster shCaseList	contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq
 syn cluster shColonList	contains=@shCaseList
 syn cluster shCommandSubList	contains=shArithmetic,shDeref,shDerefSimple,shEscape,shNumber,shOperator,shPosnParm,shExSingleQuote,shSingleQuote,shDoubleQuote,shStatement,shVariable,shSubSh,shAlias,shTest,shCtrlSeq,shSpecial
@@ -84,7 +84,7 @@
 syn cluster shEchoList	contains=shArithmetic,shCommandSub,shDeref,shDerefSimple,shExpr,shExSingleQuote,shSingleQuote,shDoubleQuote,shCtrlSeq,shEchoQuote
 syn cluster shExprList1	contains=shCharClass,shNumber,shOperator,shExSingleQuote,shSingleQuote,shDoubleQuote,shExpr,shDblBrace,shDeref,shDerefSimple,shCtrlSeq
 syn cluster shExprList2	contains=@shExprList1,@shCaseList,shTest
-syn cluster shFunctionList	contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shRedir,shSetList,shSource,shStatement,shVariable,shOperator,shCtrlSeq
+syn cluster shFunctionList	contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shHereDoc,shIf,shOption,shRedir,shSetList,shSource,shStatement,shVariable,shOperator,shCtrlSeq
 if exists("b:is_kornshell") || exists("b:is_bash")
  syn cluster shFunctionList	add=shRepeat
  syn cluster shFunctionList	add=shDblBrace,shDblParen
@@ -94,19 +94,18 @@
 syn cluster shHereListDQ	contains=shBeginHere,@shDblQuoteList,shHerePayload
 syn cluster shIdList	contains=shCommandSub,shWrapLineOperator,shSetOption,shDeref,shDerefSimple,shRedir,shExSingleQuote,shSingleQuote,shDoubleQuote,shExpr,shCtrlSeq,shStringSpecial
 syn cluster shLoopList	contains=@shCaseList,shTestOpr,shExpr,shDblBrace,shConditional,shCaseEsac,shTest,@shErrorList,shSet
-syn cluster shSubShList	contains=@shCaseList,shOperator
+syn cluster shSubShList	contains=@shCommandSubList,shCaseEsac,shColon,shCommandSub,shCommandSub,shComment,shDo,shEcho,shExpr,shFor,shIf,shRedir,shSetList,shSource,shStatement,shVariable,shCtrlSeq,shOperator
 syn cluster shTestList	contains=shCharClass,shComment,shCommandSub,shDeref,shDerefSimple,shDoubleQuote,shExpr,shExpr,shNumber,shOperator,shExSingleQuote,shSingleQuote,shTestOpr,shTest,shCtrlSeq
 
-
 " Echo: {{{1
 " ====
 " This one is needed INSIDE a CommandSub, so that `echo bla` be correct
-syn region shEcho matchgroup=shStatement start="\<echo\>"  skip="\\$" matchgroup=shOperator end="$" matchgroup=NONE end="[<>;&|()]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 contains=@shEchoList skipwhite nextgroup=shQuickComment
-syn region shEcho matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shOperator end="$" matchgroup=NONE end="[<>;&|()]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 contains=@shEchoList skipwhite nextgroup=shQuickComment
-syn match  shEchoQuote contained	'\%(\\\\\)*\\["`']'
+syn region shEcho matchgroup=shStatement start="\<echo\>"  skip="\\$" matchgroup=shOperator end="$" matchgroup=NONE end="[<>;&|()]"me=e-1 end="\d[<>]"me=e-2 end="\s#"me=e-2 contains=@shEchoList skipwhite nextgroup=shQuickComment
+syn region shEcho matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shOperator end="$" matchgroup=NONE end="[<>;&|()]"me=e-1 end="\d[<>]"me=e-2 end="\s#"me=e-2 contains=@shEchoList skipwhite nextgroup=shQuickComment
+syn match  shEchoQuote contained	'\%(\\\\\)*\\["`'()]'
 
 " This must be after the strings, so that ... \" will be correct
-syn region shEmbeddedEcho contained matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shOperator end="$" matchgroup=NONE end="[<>;&|`)]"me=e-1 end="\d[<>]"me=e-2 end="#"me=e-1 contains=shNumber,shExSingleQuote,shSingleQuote,shDeref,shDerefSimple,shSpecialVar,shOperator,shDoubleQuote,shCharClass,shCtrlSeq
+syn region shEmbeddedEcho contained matchgroup=shStatement start="\<print\>" skip="\\$" matchgroup=shOperator end="$" matchgroup=NONE end="[<>;&|`)]"me=e-1 end="\d[<>]"me=e-2 end="\s#"me=e-2 contains=shNumber,shExSingleQuote,shSingleQuote,shDeref,shDerefSimple,shSpecialVar,shOperator,shDoubleQuote,shCharClass,shCtrlSeq
 
 " Alias: {{{1
 " =====
@@ -125,6 +124,7 @@
 syn match   shEsacError "\<esac\>"
 syn match   shCurlyError "}"
 syn match   shParenError ")"
+syn match   shOK	'\.\(done\|fi\|in\|esac\)'
 if exists("b:is_kornshell")
  syn match     shDTestError "]]"
 endif
@@ -152,14 +152,13 @@
 
 " Subshells: {{{1
 " ==========
-syn region shExpr  transparent matchgroup=shExprRegion  start="{" end="}"	contains=@shExprList2
-syn region shSubSh transparent matchgroup=shSubShRegion start="(" end=")"	contains=@shSubShList
+syn region shExpr  transparent matchgroup=shExprRegion  start="{" end="}"	contains=@shExprList2 nextgroup=shMoreSpecial
+syn region shSubSh transparent matchgroup=shSubShRegion start="(" end=")"	contains=@shSubShList nextgroup=shMoreSpecial
 
 " Tests: {{{1
 "=======
-"syn region  shExpr transparent matchgroup=shRange start="\[" skip=+\\\\\|\\$+ end="\]" contains=@shTestList
-syn region shExpr	matchgroup=shRange start="\[" skip=+\\\\\|\\$+ end="\]" contains=@shTestList
-syn region shTest	transparent matchgroup=shStatement start="\<test\>" skip=+\\\\\|\\$+ matchgroup=NONE end="[;&|]"me=e-1 end="$" contains=@shExprList1
+syn region shExpr	matchgroup=shRange start="\[" skip=+\\\\\|\\$+ end="\]" contains=@shTestList,shSpecial
+syn region shTest	transparent matchgroup=shStatement start="\<test\s" skip=+\\\\\|\\$+ matchgroup=NONE end="[;&|]"me=e-1 end="$" contains=@shExprList1
 syn match  shTestOpr	contained	"<=\|>=\|!=\|==\|-.\>\|-\(nt\|ot\|ef\|eq\|ne\|lt\|le\|gt\|ge\)\>\|[!<>]"
 syn match  shTestOpr	contained	'=' skipwhite nextgroup=shTestDoubleQuote,shTestSingleQuote,shTestPattern
 syn match  shTestPattern	contained	'\w\+'
@@ -203,10 +202,11 @@
 " ====
 syn match   shCaseBar	contained skipwhite "\(^\|[^\\]\)\(\\\\\)*\zs|"		nextgroup=shCase,shCaseStart,shCaseBar,shComment,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote
 syn match   shCaseStart	contained skipwhite skipnl "("			nextgroup=shCase,shCaseBar
-syn region  shCase	contained skipwhite skipnl matchgroup=shSnglCase start="\%(\\.\|[^#$()'" \t]\)\{-}\zs)"  end=";;" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment
 if (g:sh_fold_enabled % (s:sh_fold_ifdofor * 2))/s:sh_fold_ifdofor
+ syn region  shCase	fold contained skipwhite skipnl matchgroup=shSnglCase start="\%(\\.\|[^#$()'" \t]\)\{-}\zs)"  end=";;" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment
  syn region  shCaseEsac	fold matchgroup=shConditional start="\<case\>" end="\<esac\>"	contains=@shCaseEsacList
 else
+ syn region  shCase	contained skipwhite skipnl matchgroup=shSnglCase start="\%(\\.\|[^#$()'" \t]\)\{-}\zs)"  end=";;" end="esac"me=s-1 contains=@shCaseList nextgroup=shCaseStart,shCase,shComment
  syn region  shCaseEsac	matchgroup=shConditional start="\<case\>" end="\<esac\>"	contains=@shCaseEsacList
 endif
 syn keyword shCaseIn	contained skipwhite skipnl in			nextgroup=shCase,shCaseStart,shCaseBar,shComment,shCaseExSingleQuote,shCaseSingleQuote,shCaseDoubleQuote
@@ -218,6 +218,7 @@
 syn region  shCaseSingleQuote	matchgroup=shOperator start=+'+ end=+'+		contains=shStringSpecial		skipwhite skipnl nextgroup=shCaseBar	contained
 syn region  shCaseDoubleQuote	matchgroup=shOperator start=+"+ skip=+\\\\\|\\.+ end=+"+	contains=@shDblQuoteList,shStringSpecial	skipwhite skipnl nextgroup=shCaseBar	contained
 syn region  shCaseCommandSub	start=+`+ skip=+\\\\\|\\.+ end=+`+		contains=@shCommandSubList		skipwhite skipnl nextgroup=shCaseBar	contained
+syn region  shCaseRange	matchgroup=Delimiter start=+\[+ skip=+\\\\+ end=+]+	contained
 
 " Misc: {{{1
 "======
@@ -256,34 +257,36 @@
 
 syn match   shSource	"^\.\s"
 syn match   shSource	"\s\.\s"
-syn region  shColon	start="^\s*:" end="$\|" end="#"me=e-1 contains=@shColonList
+"syn region  shColon	start="^\s*:" end="$" end="\s#"me=e-2 contains=@shColonList
+syn region  shColon	start="^\s*\zs:" end="$" end="\s#"me=e-2
 
 " String And Character Constants: {{{1
 "================================
 syn match   shNumber	"-\=\<\d\+\>#\="
 syn match   shCtrlSeq	"\\\d\d\d\|\\[abcfnrtv0]"		contained
 if exists("b:is_bash")
- syn match   shSpecial	"\\\o\o\o\|\\x\x\x\|\\c.\|\\[abefnrtv]"	contained
+ syn match   shSpecial	"\\\o\o\o\|\\x\x\x\|\\c[^"]\|\\[abefnrtv]"	contained
 endif
 if exists("b:is_bash")
  syn region  shExSingleQuote	matchgroup=shOperator start=+\$'+ skip=+\\\\\|\\.+ end=+'+	contains=shStringSpecial,shSpecial
 else
  syn region  shExSingleQuote	matchGroup=Error start=+\$'+ skip=+\\\\\|\\.+ end=+'+	contains=shStringSpecial
 endif
-syn region  shSingleQuote	matchgroup=shOperator start=+'+ end=+'+		contains=shStringSpecial,@Spell
+syn region  shSingleQuote	matchgroup=shOperator start=+'+ end=+'+		contains=@Spell
 syn region  shDoubleQuote	matchgroup=shOperator start=+"+ skip=+\\"+ end=+"+	contains=@shDblQuoteList,shStringSpecial,@Spell
 syn match   shStringSpecial	"[^[:print:] \t]"	contained
 syn match   shStringSpecial	"\%(\\\\\)*\\[\\"'`$()#]"
-syn match   shSpecial	"[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]"
+syn match   shSpecial	"[^\\]\zs\%(\\\\\)*\\[\\"'`$()#]" nextgroup=shMoreSpecial
 syn match   shSpecial	"^\%(\\\\\)*\\[\\"'`$()#]"
+syn match   shMoreSpecial	"\%(\\\\\)*\\[\\"'`$()#]" nextgroup=shMoreSpecial contained
 
 " Comments: {{{1
 "==========
-syn cluster    shCommentGroup	contains=shTodo,@Spell
-syn keyword    shTodo	contained	COMBAK FIXME TODO XXX
-syn match      shComment	"^\s*\zs#.*$"	contains=@shCommentGroup
-syn match      shComment	"\s\zs#.*$"	contains=@shCommentGroup
-syn match      shQuickComment	contained	"#.*$"
+syn cluster	shCommentGroup	contains=shTodo,@Spell
+syn keyword	shTodo	contained		COMBAK FIXME TODO XXX
+syn match	shComment		"^\s*\zs#.*$"	contains=@shCommentGroup
+syn match	shComment		"\s\zs#.*$"	contains=@shCommentGroup
+syn match	shQuickComment	contained	"#.*$"
 
 " Here Documents: {{{1
 " =========================================
@@ -338,13 +341,13 @@
 syn match  shVariable	"\<\([bwglsav]:\)\=[a-zA-Z0-9.!@_%+,]*\ze="	nextgroup=shSetIdentifier
 syn match  shSetIdentifier	"="		contained	nextgroup=shPattern,shDeref,shDerefSimple,shDoubleQuote,shSingleQuote,shExSingleQuote
 if exists("b:is_bash")
- syn region shSetList oneline matchgroup=shSet start="\<\(declare\|typeset\|local\|export\|unset\)\>\ze[^/]" end="$"	matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze#\|=" contains=@shIdList
- syn region shSetList oneline matchgroup=shSet start="\<set\>\ze[^/]" end="\ze[;|)]\|$"			matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze[#=]" contains=@shIdList
+ syn region shSetList oneline matchgroup=shSet start="\<\(declare\|typeset\|local\|export\|unset\)\>\ze[^/]" end="$"	matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+#\|=" contains=@shIdList
+ syn region shSetList oneline matchgroup=shSet start="\<set\>\ze[^/]" end="\ze[;|)]\|$"			matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList
 elseif exists("b:is_kornshell")
- syn region shSetList oneline matchgroup=shSet start="\<\(typeset\|export\|unset\)\>\ze[^/]" end="$"		matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze[#=]" contains=@shIdList
- syn region shSetList oneline matchgroup=shSet start="\<set\>\ze[^/]" end="$"				matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze[#=]" contains=@shIdList
+ syn region shSetList oneline matchgroup=shSet start="\<\(typeset\|export\|unset\)\>\ze[^/]" end="$"		matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList
+ syn region shSetList oneline matchgroup=shSet start="\<set\>\ze[^/]" end="$"				matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList
 else
- syn region shSetList oneline matchgroup=shSet start="\<\(set\|export\|unset\)\>\ze[^/]" end="$"		matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze[#=]" contains=@shIdList
+ syn region shSetList oneline matchgroup=shSet start="\<\(set\|export\|unset\)\>\ze[^/]" end="$"		matchgroup=shOperator end="\ze[}|);&]" matchgroup=NONE end="\ze\s\+[#=]" contains=@shIdList
 endif
 
 " Functions: {{{1
@@ -492,7 +495,7 @@
 hi def link shCaseSingleQuote	shSingleQuote
 hi def link shCaseStart	shConditional
 hi def link shCmdSubRegion	shShellVariables
-hi def link shColon	shStatement
+hi def link shColon	shComment
 hi def link shDerefOp	shOperator
 hi def link shDerefPOL	shDerefOp
 hi def link shDerefPPS	shDerefOp
@@ -511,6 +514,7 @@
 hi def link shHereDoc	shString
 hi def link shHerePayload	shHereDoc
 hi def link shLoop	shStatement
+hi def link shMoreSpecial	shSpecial
 hi def link shOption	shCommandSub
 hi def link shPattern	shString
 hi def link shParen	shArithmetic
diff -u -r --new-file runtime/syntax.orig/sisu.vim runtime/syntax/sisu.vim
--- runtime/syntax.orig/sisu.vim	2008-05-27 14:24:19.000000000 -0500
+++ runtime/syntax/sisu.vim	2008-11-09 07:12:28.000000000 -0600
@@ -1,6 +1,6 @@
 "SiSU Vim syntax file
 "SiSU Maintainer: Ralph Amissah <ralph@amissah.com>
-"SiSU Markup:     SiSU (sisu-0.66.0, 2008-02-24)
+"SiSU Markup:     SiSU (sisu-0.69.0, 2008-09-16)
 "(originally looked at Ruby Vim by Mirko Nasato)
 
 if version < 600
@@ -81,6 +81,7 @@
 syn region sisu_comment matchgroup=sisu_comment start="^%\{1,2\} " end="$"
 "font face curly brackets
 "syn region sisu_identifier contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_sem start="\S\+:{" end="}:[^<>,.!?:; ]\+" oneline
+syn region sisu_index matchgroup=sisu_index_block start="^={" end="}"
 syn region sisu_control contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="\*{" end="}\*"
 syn region sisu_control contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="!{" end="}!"
 syn region sisu_underline contains=sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_fontface start="_{" end="}_"
@@ -162,7 +163,6 @@
 hi def link sisu_fontface         Include
 hi def link sisu_strikeout        DiffDelete
 hi def link sisu_content_alt      Special
-hi def link sisu_sem_content      String
 hi def link sisu_sem_content      SpecialKey
 hi def link sisu_sem_block        Special
 hi def link sisu_sem_marker       Visual
@@ -173,6 +173,8 @@
 hi def link sisu_sem_ex_content   Comment
 "hi def link sisu_sem_ex_content   SpecialKey
 hi def link sisu_sem_ex_block     Comment
+hi def link sisu_index            SpecialKey
+hi def link sisu_index_block      Visual
 hi def link sisu_content_endnote  Special
 hi def link sisu_control          Define
 hi def link sisu_ocn              Include
diff -u -r --new-file runtime/syntax.orig/spec.vim runtime/syntax/spec.vim
--- runtime/syntax.orig/spec.vim	2005-01-04 03:46:51.000000000 -0600
+++ runtime/syntax/spec.vim	2009-12-16 14:42:02.000000000 -0600
@@ -1,8 +1,7 @@
 " Filename:    spec.vim
 " Purpose:     Vim syntax file
 " Language:    SPEC: Build/install scripts for Linux RPM packages
-" Maintainer:  Donovan Rebbechi elflord@pegasus.rutgers.edu
-" URL:	       http://pegasus.rutgers.edu/~elflord/vim/syntax/spec.vim
+" Maintainer:  Donovan Rebbechi elflord@panix.com
 " Last Change: Fri Dec 3 11:54 EST 2004 Marcin Dalecki
 
 " For version 5.x: Clear all syntax items
diff -u -r --new-file runtime/syntax.orig/spyce.vim runtime/syntax/spyce.vim
--- runtime/syntax.orig/spyce.vim	2004-06-07 09:32:36.000000000 -0500
+++ runtime/syntax/spyce.vim	2009-11-28 06:33:43.000000000 -0600
@@ -2,7 +2,7 @@
 " Language:	   SPYCE
 " Maintainer:	 Rimon Barr <rimon AT acm DOT org>
 " URL:		     http://spyce.sourceforge.net
-" Last Change: 2003 May 11
+" Last Change: 2009 Nov 11
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -25,6 +25,7 @@
 else
   runtime! syntax/html.vim
   unlet b:current_syntax
+  syntax spell default  " added by Bram
 endif
 
 " include python
diff -u -r --new-file runtime/syntax.orig/sqlanywhere.vim runtime/syntax/sqlanywhere.vim
--- runtime/syntax.orig/sqlanywhere.vim	2008-02-06 14:32:21.000000000 -0600
+++ runtime/syntax/sqlanywhere.vim	2009-10-08 16:18:57.000000000 -0500
@@ -2,10 +2,11 @@
 " Vim syntax file
 " Language:    SQL, Adaptive Server Anywhere
 " Maintainer:  David Fishburn <fishburn at ianywhere dot com>
-" Last Change: Tue 29 Jan 2008 12:54:19 PM Eastern Standard Time
-" Version:     10.0.1
+" Last Change: 2009 Mar 15
+" Version:     11.0.1
 
-" Description: Updated to Adaptive Server Anywhere 10.0.1
+" Description: Updated to Adaptive Server Anywhere 11.0.1
+"              Updated to Adaptive Server Anywhere 10.0.1
 "              Updated to Adaptive Server Anywhere  9.0.2
 "              Updated to Adaptive Server Anywhere  9.0.1
 "              Updated to Adaptive Server Anywhere  9.0.0
@@ -54,20 +55,24 @@
 syn keyword sqlFunction	 strtouuid varexists
 
 " 9.0.1 functions
-syn keyword sqlFunction	 acos asin atan atn2 cast ceiling convert cos cot 
+syn keyword sqlFunction	 acos asin atan atn2 cast ceiling convert cos cot
 syn keyword sqlFunction	 char_length coalesce dateformat datetime degrees exp
-syn keyword sqlFunction	 floor getdate insertstr 
+syn keyword sqlFunction	 floor getdate insertstr
 syn keyword sqlFunction	 log log10 lower mod pi power
-syn keyword sqlFunction	 property radians replicate round sign sin 
+syn keyword sqlFunction	 property radians replicate round sign sin
 syn keyword sqlFunction	 sqldialect tan truncate truncnum
 syn keyword sqlFunction	 base64_encode base64_decode
 syn keyword sqlFunction	 hash compress decompress encrypt decrypt
 
+" 11.0.1 functions
+syn keyword sqlFunction	 connection_extended_property text_handle_vector_match
+syn keyword sqlFunction	 read_client_file write_client_file
+
 " string functions
 syn keyword sqlFunction	 ascii char left ltrim repeat
 syn keyword sqlFunction	 space right rtrim trim lcase ucase
 syn keyword sqlFunction	 locate charindex patindex replace
-syn keyword sqlFunction	 errormsg csconvert 
+syn keyword sqlFunction	 errormsg csconvert
 
 " property functions
 syn keyword sqlFunction	 db_id db_name property_name
@@ -358,125 +363,135 @@
 syn keyword sqlFunction	 sa_set_http_header sa_set_http_option
 syn keyword sqlFunction	 sa_http_variable_info sa_http_header_info
 
-" http functions 9.0.1 
+" http functions 9.0.1
 syn keyword sqlFunction	 http_encode http_decode
 syn keyword sqlFunction	 html_encode html_decode
 
 " keywords
-syn keyword sqlKeyword	 absolute accent action activ add address after
-syn keyword sqlKeyword	 algorithm allow_dup_row
-syn keyword sqlKeyword	 alter and any as append asc ascii ase at atomic
-syn keyword sqlKeyword	 attach attended audit authorization 
+syn keyword sqlKeyword	 absolute accent action active add address aes_decrypt
+syn keyword sqlKeyword	 after aggregate algorithm allow_dup_row allowed
+syn keyword sqlKeyword	 alter and ansi_substring any as append apply asc ascii ase
+syn keyword sqlKeyword	 assign at atan2 atomic attach attended audit authorization
 syn keyword sqlKeyword	 autoincrement autostop batch bcp before
-syn keyword sqlKeyword	 between blank blanks block
-syn keyword sqlKeyword	 both bottom unbounded break bufferpool
+syn keyword sqlKeyword	 between bit_and bit_length bit_or bit_substr bit_xor
+syn keyword sqlKeyword	 blank blanks block
+syn keyword sqlKeyword	 both bottom unbounded break breaker bufferpool
 syn keyword sqlKeyword	 build bulk by byte bytes cache calibrate calibration
 syn keyword sqlKeyword	 cancel capability cascade cast
-syn keyword sqlKeyword	 catalog changes char char_convert check checksum
+syn keyword sqlKeyword	 catalog ceil changes char char_convert check checksum
 syn keyword sqlKeyword	 class classes client cmp
-syn keyword sqlKeyword	 cluster clustered collation column columns
+syn keyword sqlKeyword	 cluster clustered collation
+syn keyword sqlKeyword	 column columns
 syn keyword sqlKeyword	 command comment committed comparisons
 syn keyword sqlKeyword	 compatible component compressed compute computes
-syn keyword sqlKeyword	 concat confirm conflict connection
+syn keyword sqlKeyword	 concat configuration confirm conflict connection
 syn keyword sqlKeyword	 console consolidate consolidated
-syn keyword sqlKeyword	 constraint constraints continue
-syn keyword sqlKeyword	 convert copy count crc cross cube
+syn keyword sqlKeyword	 constraint constraints content continue
+syn keyword sqlKeyword	 convert coordinator copy count count_set_bits
+syn keyword sqlKeyword	 crc createtime cross cube cume_dist
 syn keyword sqlKeyword	 current cursor data data database
 syn keyword sqlKeyword	 current_timestamp current_user
-syn keyword sqlKeyword	 datatype dba dbfile
-syn keyword sqlKeyword	 dbspace dbspacename debug decoupled
-syn keyword sqlKeyword	 decrypted default defaults deferred definition
+syn keyword sqlKeyword	 databases datatype dba dbfile
+syn keyword sqlKeyword	 dbspace dbspaces dbspacename debug decoupled
+syn keyword sqlKeyword	 decrypted default defaults default_dbspace deferred
+syn keyword sqlKeyword	 definer definition
 syn keyword sqlKeyword	 delay deleting delimited dependencies desc
 syn keyword sqlKeyword	 description detach deterministic directory
-syn keyword sqlKeyword	 disable disabled distinct do domain download
+syn keyword sqlKeyword	 disable disabled distinct do domain download duplicate
 syn keyword sqlKeyword	 dsetpass dttm dynamic each editproc ejb
-syn keyword sqlKeyword	 else elseif enable encapsulated encrypted end 
-syn keyword sqlKeyword	 encoding endif engine erase error escape escapes event
-syn keyword sqlKeyword	 every except exception exclude exclusive exec 
-syn keyword sqlKeyword	 existing exists expanded express
+syn keyword sqlKeyword	 else elseif empty enable encapsulated encrypted end
+syn keyword sqlKeyword	 encoding endif engine environment erase error escape escapes event
+syn keyword sqlKeyword	 event_parameter every except exception exclude excluded exclusive exec
+syn keyword sqlKeyword	 existing exists expanded expiry express exprtype extended_property
 syn keyword sqlKeyword	 external externlogin factor failover false
-syn keyword sqlKeyword	 fastfirstrow fieldproc file filler
-syn keyword sqlKeyword	 fillfactor finish first first_keyword 
-syn keyword sqlKeyword	 following force foreign format 
-syn keyword sqlKeyword	 freepage french fresh full function go global
-syn keyword sqlKeyword	 group handler hash having header hexadecimal 
-syn keyword sqlKeyword	 hidden high history hold holdlock
-syn keyword sqlKeyword	 hours id identified identity ignore
+syn keyword sqlKeyword	 fastfirstrow fieldproc file files filler
+syn keyword sqlKeyword	 fillfactor finish first first_keyword first_value
+syn keyword sqlKeyword	 following force foreign format forxml forxml_sep fp frame
+syn keyword sqlKeyword	 freepage french fresh full function gb get_bit go global
+syn keyword sqlKeyword	 group handler hash having header hexadecimal
+syn keyword sqlKeyword	 hidden high history hg hng hold holdlock host
+syn keyword sqlKeyword	 hours http_body http_session_timeout id identified identity ignore
 syn keyword sqlKeyword	 ignore_dup_key ignore_dup_row immediate
-syn keyword sqlKeyword	 in inactive inactivity incremental index info 
+syn keyword sqlKeyword	 in inactiv inactive inactivity included incremental
+syn keyword sqlKeyword	 index index_enabled index_lparen indexonly info
 syn keyword sqlKeyword	 inline inner inout insensitive inserting
 syn keyword sqlKeyword	 instead integrated
-syn keyword sqlKeyword	 internal into introduced iq is isolation jar java
+syn keyword sqlKeyword	 internal intersection into introduced invoker iq is isolation
+syn keyword sqlKeyword	 jar java java_location java_main_userid java_vm_options
 syn keyword sqlKeyword	 jconnect jdk join kb key keep kerberos language last
-syn keyword sqlKeyword	 last_keyword lateral left level like
-syn keyword sqlKeyword	 limit local location log 
-syn keyword sqlKeyword	 logging login logscan long low lru main
-syn keyword sqlKeyword	 match materialized max maximum membership 
-syn keyword sqlKeyword	 minutes mirror mode modify monitor  mru
-syn keyword sqlKeyword	 name named national native natural new next no
+syn keyword sqlKeyword	 last_keyword last_value lateral ld left len lf ln level like
+syn keyword sqlKeyword	 limit local location log
+syn keyword sqlKeyword	 logging login logscan long low lru main manual mark
+syn keyword sqlKeyword	 match matched materialized max maximum mb membership
+syn keyword sqlKeyword	 merge metadata methods minimum minutes mirror mode modify monitor move mru
+syn keyword sqlKeyword	 multiplex name named national native natural new next no
 syn keyword sqlKeyword	 noholdlock nolock nonclustered none not
-syn keyword sqlKeyword	 notify null nulls of off old on
-syn keyword sqlKeyword	 only optimization optimizer option
+syn keyword sqlKeyword	 notify null nullable_constant nulls object oem_string of off offline
+syn keyword sqlKeyword	 old on online only openstring optimization optimizer option
 syn keyword sqlKeyword	 or order others out outer over
 syn keyword sqlKeyword	 package packetsize padding page pages
-syn keyword sqlKeyword	 paglock parallel part partition partner password path
-syn keyword sqlKeyword	 pctfree plan preceding precision prefetch prefix
-syn keyword sqlKeyword	 preserve preview primary 
-syn keyword sqlKeyword	 prior priqty private privileges procedure profile
-syn keyword sqlKeyword	 public publication publish publisher
-syn keyword sqlKeyword	 quote quotes range readcommitted readonly
+syn keyword sqlKeyword	 paglock parallel part partial partition partitions partner password path
+syn keyword sqlKeyword	 pctfree plan policy populate port postfilter preceding precision
+syn keyword sqlKeyword	 prefetch prefilter prefix preserve preview primary
+syn keyword sqlKeyword	 prior priority priqty private privileges procedure profile
+syn keyword sqlKeyword	 property_is_cumulative property_is_numeric public publication publish publisher
+syn keyword sqlKeyword	 quiesce quote quotes range readclientfile readcommitted reader readfile readonly
 syn keyword sqlKeyword	 readpast readuncommitted readwrite rebuild
 syn keyword sqlKeyword	 received recompile recover recursive references
-syn keyword sqlKeyword	 referencing refresh relative relocate
+syn keyword sqlKeyword	 referencing refresh regex regexp regexp_substr relative relocate
 syn keyword sqlKeyword	 rename repeatable repeatableread
-syn keyword sqlKeyword	 replicate rereceive resend reserve reset
+syn keyword sqlKeyword	 replicate request_timeout required rereceive resend reserve reset
 syn keyword sqlKeyword	 resizing resolve resource respect
 syn keyword sqlKeyword	 restrict result retain
-syn keyword sqlKeyword	 returns right 
-syn keyword sqlKeyword	 rollup root row rowlock rows save 
-syn keyword sqlKeyword	 schedule schema scripted scroll seconds secqty
+syn keyword sqlKeyword	 returns reverse right role
+syn keyword sqlKeyword	 rollup root row row_number rowlock rows save
+syn keyword sqlKeyword	 sa_index_hash sa_internal_fk_verify sa_internal_termbreak
+syn keyword sqlKeyword	 sa_order_preserving_hash sa_order_preserving_hash_big sa_order_preserving_hash_prefix
+syn keyword sqlKeyword	 schedule schema scope scripted scroll seconds secqty security
 syn keyword sqlKeyword	 send sensitive sent serializable
-syn keyword sqlKeyword	 server server session sets 
+syn keyword sqlKeyword	 server server session set_bit set_bits sets
 syn keyword sqlKeyword	 share simple since site size skip
-syn keyword sqlKeyword	 snapshot soapheader some sorted_data 
-syn keyword sqlKeyword	 sqlcode sqlid sqlstate stacker stale statement
-syn keyword sqlKeyword	 statistics status stogroup store
-syn keyword sqlKeyword	 strip subpages subscribe subscription
-syn keyword sqlKeyword	 subtransaction synchronization
+syn keyword sqlKeyword	 snapshot soapheader soap_header split some sorted_data
+syn keyword sqlKeyword	 sqlcode sqlid sqlflagger sqlstate sqrt square
+syn keyword sqlKeyword	 stacker stale statement statistics status stddev_pop stddev_samp
+syn keyword sqlKeyword	 stemmer stogroup stoplist store
+syn keyword sqlKeyword	 strip stripesizekb striping subpages subscribe subscription
+syn keyword sqlKeyword	 subtransaction suser_id suser_name synchronization
 syn keyword sqlKeyword	 syntax_error table tablock
-syn keyword sqlKeyword	 tablockx tb temp template temporary then
-syn keyword sqlKeyword	 ties timezone to top tracing
-syn keyword sqlKeyword	 transaction transactional tries true 
+syn keyword sqlKeyword	 tablockx tb temp template temporary term then
+syn keyword sqlKeyword	 ties timezone to to_char to_nchar top traced_plan tracing
+syn keyword sqlKeyword	 transfer transaction transactional tries true
 syn keyword sqlKeyword	 tsequal type tune uncommitted unconditionally
-syn keyword sqlKeyword	 unenforced unique union unknown unload 
-syn keyword sqlKeyword	 updating updlock upgrade upload use user
+syn keyword sqlKeyword	 unenforced unicode unique union unistr unknown unlimited unload
+syn keyword sqlKeyword	 unpartition unquiesce updatetime updating updlock upgrade upload
+syn keyword sqlKeyword	 upper use user
 syn keyword sqlKeyword	 using utc utilities validproc
 syn keyword sqlKeyword	 value values varchar variable
-syn keyword sqlKeyword	 varying vcat verify view virtual wait 
-syn keyword sqlKeyword	 warning web when where window with with_auto
+syn keyword sqlKeyword	 varying var_pop var_samp vcat verify versions view virtual wait
+syn keyword sqlKeyword	 warning wd web when where window with with_auto
 syn keyword sqlKeyword	 with_auto with_cube with_rollup without
-syn keyword sqlKeyword	 with_lparen within word work workload writefile 
-syn keyword sqlKeyword	 writers writeserver xlock zeros
+syn keyword sqlKeyword	 with_lparen within word work workload write writefile
+syn keyword sqlKeyword	 writeclientfile writer writers writeserver xlock zeros
 " XML function support
-syn keyword sqlFunction	 openxml xmlelement xmlforest xmlgen xmlconcat xmlagg 
-syn keyword sqlFunction	 xmlattributes 
+syn keyword sqlFunction	 openxml xmlelement xmlforest xmlgen xmlconcat xmlagg
+syn keyword sqlFunction	 xmlattributes
 syn keyword sqlKeyword	 raw auto elements explicit
 " HTTP support
-syn keyword sqlKeyword	 authorization secure url service
+syn keyword sqlKeyword	 authorization secure url service next_soap_header
 " HTTP 9.0.2 new procedure keywords
 syn keyword sqlKeyword	 namespace certificate clientport proxy
 " OLAP support 9.0.0
-syn keyword sqlKeyword	 covar_pop covar_samp corr regr_slope regr_intercept 
+syn keyword sqlKeyword	 covar_pop covar_samp corr regr_slope regr_intercept
 syn keyword sqlKeyword	 regr_count regr_r2 regr_avgx regr_avgy
 syn keyword sqlKeyword	 regr_sxx regr_syy regr_sxy
 
 " Alternate keywords
 syn keyword sqlKeyword	 character dec options proc reference
-syn keyword sqlKeyword	 subtrans tran syn keyword 
+syn keyword sqlKeyword	 subtrans tran syn keyword
 
 
 syn keyword sqlOperator	 in any some all between exists
-syn keyword sqlOperator	 like escape not is and or 
+syn keyword sqlOperator	 like escape not is and or
 syn keyword sqlOperator  intersect minus
 syn keyword sqlOperator  prior distinct
 
@@ -496,43 +511,38 @@
 
 
 syn keyword sqlType	 char long varchar text
-syn keyword sqlType	 bigint decimal double float int integer numeric 
+syn keyword sqlType	 bigint decimal double float int integer numeric
 syn keyword sqlType	 smallint tinyint real
 syn keyword sqlType	 money smallmoney
-syn keyword sqlType	 bit 
-syn keyword sqlType	 date datetime smalldate time timestamp 
+syn keyword sqlType	 bit
+syn keyword sqlType	 date datetime smalldate time timestamp
 syn keyword sqlType	 binary image varbinary uniqueidentifier
 syn keyword sqlType	 xml unsigned
 " New types 10.0.0
 syn keyword sqlType	 varbit nchar nvarchar
 
 syn keyword sqlOption    Allow_nulls_by_default
+syn keyword sqlOption    Allow_read_client_file
+syn keyword sqlOption    Allow_snapshot_isolation
+syn keyword sqlOption    Allow_write_client_file
 syn keyword sqlOption    Ansi_blanks
 syn keyword sqlOption    Ansi_close_cursors_on_rollback
-syn keyword sqlOption    Ansi_integer_overflow
 syn keyword sqlOption    Ansi_permissions
+syn keyword sqlOption    Ansi_substring
 syn keyword sqlOption    Ansi_update_constraints
 syn keyword sqlOption    Ansinull
-syn keyword sqlOption    Assume_distinct_servers
 syn keyword sqlOption    Auditing
 syn keyword sqlOption    Auditing_options
-syn keyword sqlOption    Auto_commit
-syn keyword sqlOption    Auto_refetch
-syn keyword sqlOption    Automatic_timestamp
 syn keyword sqlOption    Background_priority
-syn keyword sqlOption    Bell
-syn keyword sqlOption    Blob_threshold
 syn keyword sqlOption    Blocking
 syn keyword sqlOption    Blocking_timeout
 syn keyword sqlOption    Chained
-syn keyword sqlOption    Char_OEM_Translation
 syn keyword sqlOption    Checkpoint_time
 syn keyword sqlOption    Cis_option
 syn keyword sqlOption    Cis_rowset_size
 syn keyword sqlOption    Close_on_endtrans
-syn keyword sqlOption    Command_delimiter
-syn keyword sqlOption    Commit_on_exit
-syn keyword sqlOption    Compression
+syn keyword sqlOption    Collect_statistics_on_dml_updates
+syn keyword sqlOption    Conn_auditing
 syn keyword sqlOption    Connection_authentication
 syn keyword sqlOption    Continue_after_raiserror
 syn keyword sqlOption    Conversion_error
@@ -543,125 +553,90 @@
 syn keyword sqlOption    Date_order
 syn keyword sqlOption    Debug_messages
 syn keyword sqlOption    Dedicated_task
+syn keyword sqlOption    Default_dbspace
 syn keyword sqlOption    Default_timestamp_increment
 syn keyword sqlOption    Delayed_commit_timeout
 syn keyword sqlOption    Delayed_commits
-syn keyword sqlOption    Delete_old_logs
-syn keyword sqlOption    Describe_Java_Format
-syn keyword sqlOption    Divide_by_zero_error
-syn keyword sqlOption    Echo
 syn keyword sqlOption    Escape_character
 syn keyword sqlOption    Exclude_operators
 syn keyword sqlOption    Extended_join_syntax
-syn keyword sqlOption    External_remote_options
 syn keyword sqlOption    Fire_triggers
 syn keyword sqlOption    First_day_of_week
-syn keyword sqlOption    Float_as_double
 syn keyword sqlOption    For_xml_null_treatment
 syn keyword sqlOption    Force_view_creation
 syn keyword sqlOption    Global_database_id
-syn keyword sqlOption    Headings
-syn keyword sqlOption    Input_format
+syn keyword sqlOption    Http_session_timeout
 syn keyword sqlOption    Integrated_server_name
 syn keyword sqlOption    Isolation_level
-syn keyword sqlOption    ISQL_command_timing
-syn keyword sqlOption    ISQL_escape_character
-syn keyword sqlOption    ISQL_field_separator
-syn keyword sqlOption    ISQL_log
-syn keyword sqlOption    ISQL_plan
-syn keyword sqlOption    ISQL_plan_cursor_sensitivity
-syn keyword sqlOption    ISQL_plan_cursor_writability
-syn keyword sqlOption    ISQL_quote
-syn keyword sqlOption    Java_heap_size
-syn keyword sqlOption    Java_input_output
-syn keyword sqlOption    Java_namespace_size
-syn keyword sqlOption    Java_page_buffer_size
+syn keyword sqlOption    Java_location
+syn keyword sqlOption    Java_main_userid
+syn keyword sqlOption    Java_vm_options
 syn keyword sqlOption    Lock_rejected_rows
 syn keyword sqlOption    Log_deadlocks
-syn keyword sqlOption    Log_detailed_plans
-syn keyword sqlOption    Log_max_requests
 syn keyword sqlOption    Login_mode
 syn keyword sqlOption    Login_procedure
+syn keyword sqlOption    Materialized_view_optimization
+syn keyword sqlOption    Max_client_statements_cached
 syn keyword sqlOption    Max_cursor_count
 syn keyword sqlOption    Max_hash_size
 syn keyword sqlOption    Max_plans_cached
+syn keyword sqlOption    Max_priority
+syn keyword sqlOption    Max_query_tasks
 syn keyword sqlOption    Max_recursive_iterations
 syn keyword sqlOption    Max_statement_count
-syn keyword sqlOption    Max_work_table_hash_size
+syn keyword sqlOption    Max_temp_space
 syn keyword sqlOption    Min_password_length
 syn keyword sqlOption    Nearest_century
 syn keyword sqlOption    Non_keywords
-syn keyword sqlOption    NULLS
-syn keyword sqlOption    ODBC_describe_binary_as_varbinary
-syn keyword sqlOption    ODBC_distinguish_char_and_varchar
-syn keyword sqlOption    On_Charset_conversion_failure
-syn keyword sqlOption    On_error
+syn keyword sqlOption    Odbc_describe_binary_as_varbinary
+syn keyword sqlOption    Odbc_distinguish_char_and_varchar
+syn keyword sqlOption    Oem_string
+syn keyword sqlOption    On_charset_conversion_failure
 syn keyword sqlOption    On_tsql_error
-syn keyword sqlOption    Optimistic_wait_for_commit
 syn keyword sqlOption    Optimization_goal
 syn keyword sqlOption    Optimization_level
-syn keyword sqlOption    Optimization_logging
 syn keyword sqlOption    Optimization_workload
-syn keyword sqlOption    Output_format
-syn keyword sqlOption    Output_length
-syn keyword sqlOption    Output_nulls
-syn keyword sqlOption    Percent_as_comment
 syn keyword sqlOption    Pinned_cursor_percent_of_cache
+syn keyword sqlOption    Post_login_procedure
 syn keyword sqlOption    Precision
 syn keyword sqlOption    Prefetch
 syn keyword sqlOption    Preserve_source_format
 syn keyword sqlOption    Prevent_article_pkey_update
-syn keyword sqlOption    Qualify_owners
-syn keyword sqlOption    Query_plan_on_open
-syn keyword sqlOption    Quiet
-syn keyword sqlOption    Quote_all_identifiers
+syn keyword sqlOption    Priority
+syn keyword sqlOption    Query_mem_timeout
 syn keyword sqlOption    Quoted_identifier
 syn keyword sqlOption    Read_past_deleted
 syn keyword sqlOption    Recovery_time
 syn keyword sqlOption    Remote_idle_timeout
 syn keyword sqlOption    Replicate_all
-syn keyword sqlOption    Replication_error
-syn keyword sqlOption    Replication_error_piece
+syn keyword sqlOption    Request_timeout
 syn keyword sqlOption    Return_date_time_as_string
-syn keyword sqlOption    Return_java_as_string
-syn keyword sqlOption    RI_Trigger_time
 syn keyword sqlOption    Rollback_on_deadlock
 syn keyword sqlOption    Row_counts
-syn keyword sqlOption    Save_remote_passwords
 syn keyword sqlOption    Scale
-syn keyword sqlOption    Screen_format
-syn keyword sqlOption    Sort_Collation
-syn keyword sqlOption    SQL_flagger_error_level
-syn keyword sqlOption    SQL_flagger_warning_level
-syn keyword sqlOption    SQLConnect
-syn keyword sqlOption    SQLStart
-syn keyword sqlOption    SR_Date_Format
-syn keyword sqlOption    SR_Time_Format
-syn keyword sqlOption    SR_TimeStamp_Format
-syn keyword sqlOption    Statistics
+syn keyword sqlOption    Secure_feature_key
+syn keyword sqlOption    Sort_collation
+syn keyword sqlOption    Sql_flagger_error_level
+syn keyword sqlOption    Sql_flagger_warning_level
 syn keyword sqlOption    String_rtruncation
-syn keyword sqlOption    Subscribe_by_remote
 syn keyword sqlOption    Subsume_row_locks
-syn keyword sqlOption    Suppress_TDS_debugging
-syn keyword sqlOption    TDS_Empty_string_is_null
+syn keyword sqlOption    Suppress_tds_debugging
+syn keyword sqlOption    Synchronize_mirror_on_commit
+syn keyword sqlOption    Tds_empty_string_is_null
 syn keyword sqlOption    Temp_space_limit_check
-syn keyword sqlOption    Thread_count
-syn keyword sqlOption    Thread_stack
-syn keyword sqlOption    Thread_swaps
 syn keyword sqlOption    Time_format
 syn keyword sqlOption    Time_zone_adjustment
 syn keyword sqlOption    Timestamp_format
-syn keyword sqlOption    Truncate_date_values
 syn keyword sqlOption    Truncate_timestamp_values
-syn keyword sqlOption    Truncate_with_auto_commit
-syn keyword sqlOption    Truncation_length
-syn keyword sqlOption    Tsql_hex_constant
+syn keyword sqlOption    Tsql_outer_joins
 syn keyword sqlOption    Tsql_variables
+syn keyword sqlOption    Updatable_statement_isolation
 syn keyword sqlOption    Update_statistics
+syn keyword sqlOption    Upgrade_database_capability
 syn keyword sqlOption    User_estimates
-syn keyword sqlOption    Verify_all_columns
-syn keyword sqlOption    Verify_threshold
+syn keyword sqlOption    Verify_password_function
 syn keyword sqlOption    Wait_for_commit
+syn keyword sqlOption    Webservice_namespace_host
 
 " Strings and characters:
 syn region sqlString		start=+"+    end=+"+ contains=@Spell
diff -u -r --new-file runtime/syntax.orig/sshconfig.vim runtime/syntax/sshconfig.vim
--- runtime/syntax.orig/sshconfig.vim	2006-03-05 15:55:08.000000000 -0600
+++ runtime/syntax/sshconfig.vim	2009-07-26 06:44:10.000000000 -0500
@@ -1,23 +1,21 @@
 " Vim syntax file
-" This is a GENERATED FILE. Please always refer to source file at the URI below.
-" Language: OpenSSH server configuration file (ssh_config)
-" Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
-" Last Change: 2006-03-05
-" URL: http://trific.ath.cx/Ftp/vim/syntax/sshconfig.vim
+" Language: OpenSSH client configuration file (ssh_config)
+" Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
+" Last Change: 2009-07-09
 
 " Setup
 if version >= 600
-	if exists("b:current_syntax")
-		finish
-	endif
+  if exists("b:current_syntax")
+    finish
+  endif
 else
-	syntax clear
+  syntax clear
 endif
 
 if version >= 600
-	setlocal iskeyword=_,-,a-z,A-Z,48-57
+  setlocal iskeyword=_,-,a-z,A-Z,48-57
 else
-	set iskeyword=_,-,a-z,A-Z,48-57
+  set iskeyword=_,-,a-z,A-Z,48-57
 endif
 
 syn case ignore
@@ -28,19 +26,21 @@
 
 " Constants
 syn keyword sshconfigYesNo yes no ask
-syn keyword sshconfigCipher blowfish des 3des
+syn keyword sshconfigYesNo any auto
 syn keyword sshconfigCipher aes128-cbc 3des-cbc blowfish-cbc cast128-cbc
 syn keyword sshconfigCipher aes192-cbc aes256-cbc aes128-ctr aes256-ctr
 syn keyword sshconfigCipher arcfour arcfour128 arcfour256 cast128-cbc
 syn keyword sshconfigMAC hmac-md5 hmac-sha1 hmac-ripemd160 hmac-sha1-96
 syn keyword sshconfigMAC hmac-md5-96
+syn match sshconfigMAC "\<umac-64@openssh\.com\>"
 syn keyword sshconfigHostKeyAlg ssh-rsa ssh-dss
 syn keyword sshconfigPreferredAuth hostbased publickey password
 syn keyword sshconfigPreferredAuth keyboard-interactive
 syn keyword sshconfigLogLevel QUIET FATAL ERROR INFO VERBOSE
 syn keyword sshconfigLogLevel DEBUG DEBUG1 DEBUG2 DEBUG3
-syn keyword sshconfigSysLogFacility DAEMON USER AUTH LOCAL0 LOCAL1 LOCAL2
-syn keyword sshconfigSysLogFacility LOCAL3 LOCAL4 LOCAL5 LOCAL6 LOCAL7
+syn keyword sshconfigSysLogFacility DAEMON USER AUTH AUTHPRIV LOCAL0 LOCAL1
+syn keyword sshconfigSysLogFacility LOCAL2 LOCAL3 LOCAL4 LOCAL5 LOCAL6 LOCAL7
+syn match sshconfigVar "%[rhpldun]\>"
 syn match sshconfigSpecial "[*?]"
 syn match sshconfigNumber "\d\+"
 syn match sshconfigHostPort "\<\(\d\{1,3}\.\)\{3}\d\{1,3}\(:\d\+\)\?\>"
@@ -49,57 +49,68 @@
 
 " Keywords
 syn keyword sshconfigHostSect Host
-syn keyword sshconfigKeyword AddressFamily BatchMode BindAddress
+syn keyword sshconfigKeyword AddressFamily
+syn keyword sshconfigKeyword BatchMode BindAddress
 syn keyword sshconfigKeyword ChallengeResponseAuthentication CheckHostIP
 syn keyword sshconfigKeyword Cipher Ciphers ClearAllForwardings
 syn keyword sshconfigKeyword Compression CompressionLevel ConnectTimeout
 syn keyword sshconfigKeyword ConnectionAttempts ControlMaster
-syn keyword sshconfigKeyword ControlPath DynamicForward EnableSSHKeysign
-syn keyword sshconfigKeyword EscapeChar ForwardAgent ForwardX11
-syn keyword sshconfigKeyword ForwardX11Trusted GSSAPIAuthentication
+syn keyword sshconfigKeyword ControlPath DynamicForward
+syn keyword sshconfigKeyword EnableSSHKeysign EscapeChar ExitOnForwardFailure
+syn keyword sshconfigKeyword ForwardAgent ForwardX11
+syn keyword sshconfigKeyword ForwardX11Trusted
+syn keyword sshconfigKeyword GSSAPIAuthentication
 syn keyword sshconfigKeyword GSSAPIDelegateCredentials GatewayPorts
-syn keyword sshconfigKeyword GlobalKnownHostsFile HostKeyAlgorithms
-syn keyword sshconfigKeyword HashKnownHosts KbdInteractiveDevices
+syn keyword sshconfigKeyword GlobalKnownHostsFile
+syn keyword sshconfigKeyword HostKeyAlgorithms HashKnownHosts
 syn keyword sshconfigKeyword HostKeyAlias HostName HostbasedAuthentication
-syn keyword sshconfigKeyword IdentitiesOnly IdentityFile LocalForward
-syn keyword sshconfigKeyword LogLevel MACs NoHostAuthenticationForLocalhost
-syn keyword sshconfigKeyword NumberOfPasswordPrompts PasswordAuthentication
+syn keyword sshconfigKeyword IdentitiesOnly IdentityFile
+syn keyword sshconfigKeyword KbdInteractiveAuthentication KbdInteractiveDevices
+syn keyword sshconfigKeyword LocalCommand LocalForward LogLevel
+syn keyword sshconfigKeyword MACs
+syn keyword sshconfigKeyword NoHostAuthenticationForLocalhost
+syn keyword sshconfigKeyword NumberOfPasswordPrompts
+syn keyword sshconfigKeyword PasswordAuthentication PermitLocalCommand
 syn keyword sshconfigKeyword Port PreferredAuthentications Protocol
 syn keyword sshconfigKeyword ProxyCommand PubkeyAuthentication
-syn keyword sshconfigKeyword RSAAuthentication RemoteForward
-syn keyword sshconfigKeyword RhostsAuthentication RhostsRSAAuthentication
+syn keyword sshconfigKeyword PermitLocalCommand
+syn keyword sshconfigKeyword RSAAuthentication RemoteForward RekeyLimit
+syn keyword sshconfigKeyword RhostsRSAAuthentication
 syn keyword sshconfigKeyword SendEnv ServerAliveCountMax ServerAliveInterval
 syn keyword sshconfigKeyword SmartcardDevice StrictHostKeyChecking
+syn keyword sshconfigKeyword Tunnel TunnelDevice
 syn keyword sshconfigKeyword TCPKeepAlive UsePrivilegedPort User
-syn keyword sshconfigKeyword UserKnownHostsFile VerifyHostKeyDNS XAuthLocation
+syn keyword sshconfigKeyword UserKnownHostsFile
+syn keyword sshconfigKeyword VerifyHostKeyDNS VisualHostKey
+syn keyword sshconfigKeyword XAuthLocation
 
 " Define the default highlighting
 if version >= 508 || !exists("did_sshconfig_syntax_inits")
-	if version < 508
-		let did_sshconfig_syntax_inits = 1
-		command -nargs=+ HiLink hi link <args>
-	else
-		command -nargs=+ HiLink hi def link <args>
-	endif
-
-	HiLink sshconfigComment Comment
-	HiLink sshconfigTodo Todo
-	HiLink sshconfigHostPort sshconfigConstant
-	HiLink sshconfigNumber sshconfigConstant
-	HiLink sshconfigConstant Constant
-	HiLink sshconfigYesNo sshconfigEnum
-	HiLink sshconfigCipher sshconfigEnum
-	HiLink sshconfigMAC sshconfigEnum
-	HiLink sshconfigHostKeyAlg sshconfigEnum
-	HiLink sshconfigLogLevel sshconfigEnum
-	HiLink sshconfigSysLogFacility sshconfigEnum
-	HiLink sshconfigPreferredAuth sshconfigEnum
-	HiLink sshconfigEnum Function
-	HiLink sshconfigSpecial Special
-	HiLink sshconfigKeyword Keyword
-	HiLink sshconfigHostSect Type
-	delcommand HiLink
+  if version < 508
+    let did_sshconfig_syntax_inits = 1
+    command -nargs=+ HiLink hi link <args>
+  else
+    command -nargs=+ HiLink hi def link <args>
+  endif
+
+  HiLink sshconfigComment        Comment
+  HiLink sshconfigTodo           Todo
+  HiLink sshconfigHostPort       sshconfigConstant
+  HiLink sshconfigNumber         sshconfigConstant
+  HiLink sshconfigConstant       Constant
+  HiLink sshconfigYesNo          sshconfigEnum
+  HiLink sshconfigCipher         sshconfigEnum
+  HiLink sshconfigMAC            sshconfigEnum
+  HiLink sshconfigHostKeyAlg     sshconfigEnum
+  HiLink sshconfigLogLevel       sshconfigEnum
+  HiLink sshconfigSysLogFacility sshconfigEnum
+  HiLink sshconfigPreferredAuth  sshconfigEnum
+  HiLink sshconfigVar            sshconfigEnum
+  HiLink sshconfigEnum           Identifier
+  HiLink sshconfigSpecial        Special
+  HiLink sshconfigKeyword        Keyword
+  HiLink sshconfigHostSect       Type
+  delcommand HiLink
 endif
 
 let b:current_syntax = "sshconfig"
-
diff -u -r --new-file runtime/syntax.orig/sshdconfig.vim runtime/syntax/sshdconfig.vim
--- runtime/syntax.orig/sshdconfig.vim	2006-03-05 15:55:08.000000000 -0600
+++ runtime/syntax/sshdconfig.vim	2009-07-26 06:41:55.000000000 -0500
@@ -1,23 +1,21 @@
 " Vim syntax file
-" This is a GENERATED FILE. Please always refer to source file at the URI below.
 " Language: OpenSSH server configuration file (sshd_config)
-" Maintainer: David Ne\v{c}as (Yeti) <yeti@physics.muni.cz>
-" Last Change: 2006-03-05
-" URL: http://trific.ath.cx/Ftp/vim/syntax/sshdconfig.vim
+" Maintainer: David Necas (Yeti) <yeti@physics.muni.cz>
+" Last Change: 2009-07-09
 
 " Setup
 if version >= 600
-	if exists("b:current_syntax")
-		finish
-	endif
+  if exists("b:current_syntax")
+    finish
+  endif
 else
-	syntax clear
+  syntax clear
 endif
 
 if version >= 600
-	setlocal iskeyword=_,-,a-z,A-Z,48-57
+  setlocal iskeyword=_,-,a-z,A-Z,48-57
 else
-	set iskeyword=_,-,a-z,A-Z,48-57
+  set iskeyword=_,-,a-z,A-Z,48-57
 endif
 
 syn case ignore
@@ -27,78 +25,87 @@
 syn keyword sshdconfigTodo TODO FIXME NOT contained
 
 " Constants
-syn keyword sshdconfigYesNo yes no
+syn keyword sshdconfigYesNo yes no none
+syn keyword sshdconfigAddressFamily any inet inet6
 syn keyword sshdconfigCipher aes128-cbc 3des-cbc blowfish-cbc cast128-cbc
 syn keyword sshdconfigCipher aes192-cbc aes256-cbc aes128-ctr aes256-ctr
 syn keyword sshdconfigCipher arcfour arcfour128 arcfour256 cast128-cbc
 syn keyword sshdconfigMAC hmac-md5 hmac-sha1 hmac-ripemd160 hmac-sha1-96
 syn keyword sshdconfigMAC hmac-md5-96
+syn match sshdconfigMAC "\<umac-64@openssh\.com\>"
 syn keyword sshdconfigRootLogin without-password forced-commands-only
 syn keyword sshdconfigLogLevel QUIET FATAL ERROR INFO VERBOSE
 syn keyword sshdconfigLogLevel DEBUG DEBUG1 DEBUG2 DEBUG3
-syn keyword sshdconfigSysLogFacility DAEMON USER AUTH LOCAL0 LOCAL1 LOCAL2
-syn keyword sshdconfigSysLogFacility LOCAL3 LOCAL4 LOCAL5 LOCAL6 LOCAL7
+syn keyword sshdconfigSysLogFacility DAEMON USER AUTH AUTHPRIV LOCAL0 LOCAL1
+syn keyword sshdconfigSysLogFacility LOCAL2 LOCAL3 LOCAL4 LOCAL5 LOCAL6 LOCAL7
 syn match sshdconfigSpecial "[*?]"
 syn match sshdconfigNumber "\d\+"
 syn match sshdconfigHostPort "\<\(\d\{1,3}\.\)\{3}\d\{1,3}\(:\d\+\)\?\>"
 syn match sshdconfigHostPort "\<\([-a-zA-Z0-9]\+\.\)\+[-a-zA-Z0-9]\{2,}\(:\d\+\)\?\>"
+" FIXME: this matches quite a few things which are NOT valid IPv6 addresses
 syn match sshdconfigHostPort "\<\(\x\{,4}:\)\+\x\{,4}:\d\+\>"
 syn match sshdconfigTime "\<\(\d\+[sSmMhHdDwW]\)\+\>"
 
 " Keywords
-syn keyword sshdconfigKeyword AcceptEnv AddressFamily
+syn keyword sshdconfigMatch Host User Group Address
+syn keyword sshdconfigKeyword AcceptEnv AddressFamily AllowAgentForwarding
 syn keyword sshdconfigKeyword AllowGroups AllowTcpForwarding
-syn keyword sshdconfigKeyword AllowUsers AuthorizedKeysFile Banner
-syn keyword sshdconfigKeyword ChallengeResponseAuthentication
+syn keyword sshdconfigKeyword AllowUsers AuthorizedKeysFile
+syn keyword sshdconfigKeyword Banner
+syn keyword sshdconfigKeyword ChallengeResponseAuthentication ChrootDirectory
 syn keyword sshdconfigKeyword Ciphers ClientAliveCountMax
 syn keyword sshdconfigKeyword ClientAliveInterval Compression
-syn keyword sshdconfigKeyword DenyGroups DenyUsers GSSAPIAuthentication
-syn keyword sshdconfigKeyword GSSAPICleanupCredentials GatewayPorts
-syn keyword sshdconfigKeyword HostKey HostbasedAuthentication
+syn keyword sshdconfigKeyword DenyGroups DenyUsers
+syn keyword sshdconfigKeyword ForceCommand
+syn keyword sshdconfigKeyword GatewayPorts GSSAPIAuthentication
+syn keyword sshdconfigKeyword GSSAPICleanupCredentials
+syn keyword sshdconfigKeyword HostbasedAuthentication HostKey
 syn keyword sshdconfigKeyword IgnoreRhosts IgnoreUserKnownHosts
-syn keyword sshdconfigKeyword KerberosAuthentication KerberosOrLocalPasswd
-syn keyword sshdconfigKeyword KerberosTgtPassing KerberosTicketCleanup
-syn keyword sshdconfigKeyword KerberosGetAFSToken
-syn keyword sshdconfigKeyword KeyRegenerationInterval ListenAddress
-syn keyword sshdconfigKeyword LogLevel LoginGraceTime MACs MaxAuthTries
-syn keyword sshdconfigKeyword MaxStartups PasswordAuthentication
-syn keyword sshdconfigKeyword PermitEmptyPasswords PermitRootLogin
+syn keyword sshdconfigKeyword KerberosAuthentication KerberosGetAFSToken
+syn keyword sshdconfigKeyword KerberosOrLocalPasswd KerberosTicketCleanup
+syn keyword sshdconfigKeyword KeyRegenerationInterval
+syn keyword sshdconfigKeyword ListenAddress LoginGraceTime LogLevel
+syn keyword sshdconfigKeyword MACs Match MaxAuthTries MaxSessions MaxStartups
+syn keyword sshdconfigKeyword PasswordAuthentication PermitEmptyPasswords
+syn keyword sshdconfigKeyword PermitRootLogin PermitOpen PermitTunnel
 syn keyword sshdconfigKeyword PermitUserEnvironment PidFile Port
 syn keyword sshdconfigKeyword PrintLastLog PrintMotd Protocol
-syn keyword sshdconfigKeyword PubkeyAuthentication RSAAuthentication
-syn keyword sshdconfigKeyword RhostsAuthentication RhostsRSAAuthentication
-syn keyword sshdconfigKeyword ServerKeyBits StrictModes Subsystem
-syn keyword sshdconfigKeyword ShowPatchLevel
-syn keyword sshdconfigKeyword SyslogFacility TCPKeepAlive UseDNS
-syn keyword sshdconfigKeyword UseLogin UsePAM UsePrivilegeSeparation
+syn keyword sshdconfigKeyword PubkeyAuthentication
+syn keyword sshdconfigKeyword RhostsRSAAuthentication RSAAuthentication
+syn keyword sshdconfigKeyword ServerKeyBits ShowPatchLevel StrictModes
+syn keyword sshdconfigKeyword Subsystem SyslogFacility
+syn keyword sshdconfigKeyword TCPKeepAlive
+syn keyword sshdconfigKeyword UseDNS UseLogin UsePAM UsePrivilegeSeparation
 syn keyword sshdconfigKeyword X11DisplayOffset X11Forwarding
 syn keyword sshdconfigKeyword X11UseLocalhost XAuthLocation
 
 " Define the default highlighting
 if version >= 508 || !exists("did_sshdconfig_syntax_inits")
-	if version < 508
-		let did_sshdconfig_syntax_inits = 1
-		command -nargs=+ HiLink hi link <args>
-	else
-		command -nargs=+ HiLink hi def link <args>
-	endif
-
-	HiLink sshdconfigComment Comment
-	HiLink sshdconfigTodo Todo
-	HiLink sshdconfigHostPort sshdconfigConstant
-	HiLink sshdconfigTime sshdconfigConstant
-	HiLink sshdconfigNumber sshdconfigConstant
-	HiLink sshdconfigConstant Constant
-	HiLink sshdconfigYesNo sshdconfigEnum
-	HiLink sshdconfigCipher sshdconfigEnum
-	HiLink sshdconfigMAC sshdconfigEnum
-	HiLink sshdconfigRootLogin sshdconfigEnum
-	HiLink sshdconfigLogLevel sshdconfigEnum
-	HiLink sshdconfigSysLogFacility sshdconfigEnum
-	HiLink sshdconfigEnum Function
-	HiLink sshdconfigSpecial Special
-	HiLink sshdconfigKeyword Keyword
-	delcommand HiLink
+  if version < 508
+    let did_sshdconfig_syntax_inits = 1
+    command -nargs=+ HiLink hi link <args>
+  else
+    command -nargs=+ HiLink hi def link <args>
+  endif
+
+  HiLink sshdconfigComment        Comment
+  HiLink sshdconfigTodo           Todo
+  HiLink sshdconfigHostPort       sshdconfigConstant
+  HiLink sshdconfigTime           sshdconfigConstant
+  HiLink sshdconfigNumber         sshdconfigConstant
+  HiLink sshdconfigConstant       Constant
+  HiLink sshdconfigYesNo          sshdconfigEnum
+  HiLink sshdconfigAddressFamily  sshdconfigEnum
+  HiLink sshdconfigCipher         sshdconfigEnum
+  HiLink sshdconfigMAC            sshdconfigEnum
+  HiLink sshdconfigRootLogin      sshdconfigEnum
+  HiLink sshdconfigLogLevel       sshdconfigEnum
+  HiLink sshdconfigSysLogFacility sshdconfigEnum
+  HiLink sshdconfigEnum           Function
+  HiLink sshdconfigSpecial        Special
+  HiLink sshdconfigKeyword        Keyword
+  HiLink sshdconfigMatch          Type
+  delcommand HiLink
 endif
 
 let b:current_syntax = "sshdconfig"
diff -u -r --new-file runtime/syntax.orig/taskdata.vim runtime/syntax/taskdata.vim
--- runtime/syntax.orig/taskdata.vim	1969-12-31 18:00:00.000000000 -0600
+++ runtime/syntax/taskdata.vim	2009-07-26 06:44:44.000000000 -0500
@@ -0,0 +1,43 @@
+" Vim syntax file
+" Language:	task data
+" Maintainer:	John Florian <jflorian@doubledog.org>
+" Updated:	Wed Jul  8 19:46:20 EDT 2009
+
+
+" For version 5.x: Clear all syntax items.
+" For version 6.x: Quit when a syntax file was already loaded.
+if version < 600
+  syntax clear
+elseif exists("b:current_syntax")
+  finish
+endif
+
+" Key Names for values.
+syn keyword taskdataKey		description due end entry imask mask parent
+syn keyword taskdataKey		priority project recur start status tags uuid
+syn match taskdataKey		"annotation_\d\+"
+syn match taskdataUndo		"^time.*$"
+syn match taskdataUndo		"^\(old \|new \|---\)"
+
+" Values associated with key names.
+"
+" Strings
+syn region taskdataString	matchgroup=Normal start=+"+ end=+"+
+			\	contains=taskdataEncoded,taskdataUUID,@Spell
+"
+" Special Embedded Characters (e.g., "&comma;")
+syn match taskdataEncoded	"&\a\+;" contained
+" UUIDs
+syn match taskdataUUID		"\x\{8}-\(\x\{4}-\)\{3}\x\{12}" contained
+
+
+" The default methods for highlighting.  Can be overridden later.
+hi def link taskdataEncoded	Function
+hi def link taskdataKey		Statement
+hi def link taskdataString 	String
+hi def link taskdataUUID 	Special
+hi def link taskdataUndo 	Type
+
+let b:current_syntax = "taskdata"
+
+" vim:noexpandtab
diff -u -r --new-file runtime/syntax.orig/taskedit.vim runtime/syntax/taskedit.vim
--- runtime/syntax.orig/taskedit.vim	1969-12-31 18:00:00.000000000 -0600
+++ runtime/syntax/taskedit.vim	2009-07-26 06:44:44.000000000 -0500
@@ -0,0 +1,35 @@
+" Vim syntax file
+" Language:	support for 'task 42 edit'
+" Maintainer:	John Florian <jflorian@doubledog.org>
+" Updated:	Wed Jul  8 19:46:32 EDT 2009
+
+
+" For version 5.x: Clear all syntax items.
+" For version 6.x: Quit when a syntax file was already loaded.
+if version < 600
+  syntax clear
+elseif exists("b:current_syntax")
+  finish
+endif
+
+syn match taskeditHeading	"^\s*#\s*Name\s\+Editable details\s*$" contained
+syn match taskeditHeading	"^\s*#\s*-\+\s\+-\+\s*$" contained
+syn match taskeditReadOnly	"^\s*#\s*\(UU\)\?ID:.*$" contained
+syn match taskeditReadOnly	"^\s*#\s*Status:.*$" contained
+syn match taskeditReadOnly	"^\s*#\s*i\?Mask:.*$" contained
+syn match taskeditKey		"^ *.\{-}:" nextgroup=taskeditString
+syn match taskeditComment	"^\s*#.*$"
+			\	contains=taskeditReadOnly,taskeditHeading
+syn match taskeditString	".*$" contained contains=@Spell
+
+
+" The default methods for highlighting.  Can be overridden later.
+hi def link taskeditComment	Comment
+hi def link taskeditHeading	Function
+hi def link taskeditKey		Statement
+hi def link taskeditReadOnly	Special
+hi def link taskeditString	String
+
+let b:current_syntax = "taskedit"
+
+" vim:noexpandtab
diff -u -r --new-file runtime/syntax.orig/tcl.vim runtime/syntax/tcl.vim
--- runtime/syntax.orig/tcl.vim	2006-11-17 13:25:54.000000000 -0600
+++ runtime/syntax/tcl.vim	2009-06-03 05:07:39.000000000 -0500
@@ -1,13 +1,16 @@
 " Vim syntax file
-" Language:	TCL/TK
-" Maintainer:	Brett Cannon <brett@python.org>
+" Language:	Tcl/Tk
+" Maintainer:	Taylor Venable <taylor@metasyntax.net>
+" 		(previously Brett Cannon <brett@python.org>)
 " 		(previously Dean Copsey <copsey@cs.ucdavis.edu>)
 "		(previously Matt Neumann <mattneu@purpleturtle.com>)
 "		(previously Allan Kelly <allan@fruitloaf.co.uk>)
 " Original:	Robin Becker <robin@jessikat.demon.co.uk>
-" Last Change:	2006 Nov 17
+" Last Change:	2009/04/06 02:38:36
+" Version:	1.13
+" URL:		http://real.metasyntax.net:2357/cvs/cvsweb.cgi/Config/vim/syntax/tcl.vim
 "
-" Keywords TODO: format clock click anchor
+" Keywords TODO: click anchor
 
 " For version 5.x: Clear all syntax items
 " For version 6.x: Quit when a syntax file was already loaded
@@ -17,19 +20,40 @@
   finish
 endif
 
-" A bunch of useful keywords
-syn keyword tclStatement  tell socket subst open eof pwd glob list exec pid
-syn keyword tclStatement  auto_load_index time unknown eval lrange fblocked
-syn keyword tclStatement  lsearch auto_import gets lappend proc variable llength
-syn keyword tclStatement  auto_execok return linsert error catch clock info
-syn keyword tclStatement  split array fconfigure concat join lreplace source
-syn keyword tclStatement  fcopy global auto_qualify update close cd auto_load
-syn keyword tclStatement  file append format read package set binary namespace
-syn keyword tclStatement  scan trace seek flush after vwait uplevel lset rename
-syn keyword tclStatement  fileevent regexp upvar unset encoding expr load regsub
-syn keyword tclStatement interp exit puts incr lindex lsort tclLog string
+" Basic Tcl commands: http://www.tcl.tk/man/tcl8.5/TclCmd/contents.htm
+syn keyword tclCommand		after append apply array bgerror binary catch cd chan clock
+syn keyword tclCommand		close concat dde dict encoding eof error eval exec exit
+syn keyword tclCommand		expr fblocked fconfigure fcopy file fileevent filename flush
+syn keyword tclCommand		format gets glob global history incr info interp join
+syn keyword tclCommand		lappend lassign lindex linsert list llength load lrange lrepeat
+syn keyword tclCommand		lreplace lreverse lsearch lset lsort memory namespace open package
+syn keyword tclCommand		pid proc puts pwd read regexp registry regsub rename return
+syn keyword tclCommand		scan seek set socket source split string subst tell time
+syn keyword tclCommand		trace unknown unload unset update uplevel upvar variable vwait
+
+" The 'Tcl Standard Library' commands: http://www.tcl.tk/man/tcl8.5/TclCmd/library.htm
+syn keyword tclCommand		auto_execok auto_import auto_load auto_mkindex auto_mkindex_old
+syn keyword tclCommand		auto_qualify auto_reset parray tcl_endOfWord tcl_findLibrary
+syn keyword tclCommand		tcl_startOfNextWord tcl_startOfPreviousWord tcl_wordBreakAfter
+syn keyword tclCommand		tcl_wordBreakBefore
+
+" Commands that were added in Tcl 8.6
+
+syn keyword tclCommand		my oo::copy oo::define oo::objdefine self
+syn keyword tclCommand		coroutine tailcall throw yield
+
+" Global variables used by Tcl: http://www.tcl.tk/man/tcl8.5/TclCmd/tclvars.htm
+syn keyword tclVars		env errorCode errorInfo tcl_library tcl_patchLevel tcl_pkgPath
+syn keyword tclVars		tcl_platform tcl_precision tcl_rcFileName tcl_traceCompile
+syn keyword tclVars		tcl_traceExec tcl_wordchars tcl_nonwordchars tcl_version argc argv
+syn keyword tclVars		argv0 tcl_interactive geometry
+
+" Strings which expr accepts as boolean values, aside from zero / non-zero.
+syn keyword tclBoolean		true false on off yes no
+
 syn keyword tclLabel		case default
 syn keyword tclConditional	if then else elseif switch
+syn keyword tclConditional	try finally
 syn keyword tclRepeat		while for foreach break continue
 syn keyword tcltkSwitch	contained	insert create polygon fill outline tag
 
@@ -63,9 +87,14 @@
 syn keyword tcltkWidgetSwitch contained delete names types create
 " variable reference
 	" ::optional::namespaces
-syn match tclVarRef "$\(\(::\)\?\([[:alnum:]_.]*::\)*\)\a[a-zA-Z0-9_.]*"
+syn match tclVarRef "$\(\(::\)\?\([[:alnum:]_]*::\)*\)\a[[:alnum:]_]*"
 	" ${...} may contain any character except '}'
 syn match tclVarRef "${[^}]*}"
+
+" The syntactic unquote-splicing replacement for [expand].
+syn match tclExpand '\s{\*}'
+syn match tclExpand '^{\*}'
+
 " menu, mane add
 syn keyword tcltkWidgetSwitch contained active end last none cascade checkbutton command radiobutton separator
 syn keyword tcltkWidgetSwitch contained activebackground actveforeground accelerator background bitmap columnbreak
@@ -130,11 +159,10 @@
 
 " EXPR
 " commands associated with expr
-syn keyword tcltkMaths	contained	acos	cos	hypot	sinh
-syn keyword tcltkMaths	contained	asin	cosh	log	sqrt
-syn keyword tcltkMaths	contained	atan	exp	log10	tan
-syn keyword tcltkMaths	contained	atan2	floor	pow	tanh
-syn keyword tcltkMaths	contained	ceil	fmod	sin
+syn keyword tcltkMaths contained	abs acos asin atan atan2 bool ceil cos cosh double entier
+syn keyword tcltkMaths contained	exp floor fmod hypot int isqrt log log10 max min pow rand
+syn keyword tcltkMaths contained	round sin sinh sqrt srand tan tanh wide
+
 syn region tcltkCommand matchgroup=tcltkCommandColor start="\<expr\>" matchgroup=NONE skip="^\s*$" end="]\|[^\\]*\s*$"me=e-1  contains=tclLineContinue,tcltkMaths,tclNumber,tclVarRef,tclString,tcltlWidgetSwitch,tcltkCommand,tcltkPackConf
 
 " format
@@ -165,17 +193,26 @@
 
 syn keyword tclTodo contained	TODO
 
+" Sequences which are backslash-escaped: http://www.tcl.tk/man/tcl8.5/TclCmd/Tcl.htm#M16
+" Octal, hexadecimal, unicode codepoints, and the classics.
+" Tcl takes as many valid characters in a row as it can, so \xAZ in a string is newline followed by 'Z'.
+syn match   tclSpecial contained '\\\([0-7]\{1,3}\|x\x\{1,2}\|u\x\{1,4}\|[abfnrtv]\)'
+syn match   tclSpecial contained '\\[\[\]\{\}\"\$]'
 
-" String and Character contstants
-" Highlight special characters (those which have a backslash) differently
-syn match   tclSpecial contained "\\\d\d\d\=\|\\."
+" Command appearing inside another command or inside a string.
+syn region tclEmbeddedStatement	start='\[' end='\]' contained contains=tclCommand,tclNumber,tclLineContinue,tclString,tclVarRef,tclEmbeddedStatement
 " A string needs the skip argument as it may legitimately contain \".
 " Match at start of line
 syn region  tclString		  start=+^"+ end=+"+ contains=tclSpecial skip=+\\\\\|\\"+
 "Match all other legal strings.
-syn region  tclString		  start=+[^\\]"+ms=s+1  end=+"+ contains=tclSpecial skip=+\\\\\|\\"+
+syn region  tclString		  start=+[^\\]"+ms=s+1  end=+"+ contains=tclSpecial,tclVarRef,tclEmbeddedStatement skip=+\\\\\|\\"+
+
+" Line continuation is backslash immediately followed by newline.
+syn match tclLineContinue '\\$'
 
-syn match   tclLineContinue "\\\s*$"
+if exists('g:tcl_warn_continuation')
+    syn match tclNotLineContinue '\\\s\+$'
+endif
 
 "integer number, or floating point number without a dot and with "f".
 syn case ignore
@@ -208,13 +245,13 @@
   endif
 
   HiLink tcltkSwitch		Special
+  HiLink tclExpand		Special
   HiLink tclLabel		Label
   HiLink tclConditional		Conditional
   HiLink tclRepeat		Repeat
   HiLink tclNumber		Number
   HiLink tclError		Error
-  HiLink tclStatement		Statement
-  "HiLink tclStatementColor	Statement
+  HiLink tclCommand		Statement
   HiLink tclString		String
   HiLink tclComment		Comment
   HiLink tclSpecial		Special
@@ -223,6 +260,9 @@
   HiLink tcltkCommandColor	Statement
   HiLink tcltkWidgetColor	Structure
   HiLink tclLineContinue	WarningMsg
+if exists('g:tcl_warn_continuation')
+  HiLink tclNotLineContinue	ErrorMsg
+endif
   HiLink tcltkStringSwitch	Special
   HiLink tcltkArraySwitch	Special
   HiLink tcltkLsortSwitch	Special
@@ -232,7 +272,6 @@
   HiLink tcltkNamespaceSwitch	Special
   HiLink tcltkWidgetSwitch	Special
   HiLink tcltkPackConfColor	Identifier
-  "HiLink tcltkLsort		Statement
   HiLink tclVarRef		Identifier
 
   delcommand HiLink
@@ -240,4 +279,4 @@
 
 let b:current_syntax = "tcl"
 
-" vim: ts=8
+" vim: ts=8 noet
diff -u -r --new-file runtime/syntax.orig/tcsh.vim runtime/syntax/tcsh.vim
--- runtime/syntax.orig/tcsh.vim	2007-06-17 06:20:06.000000000 -0500
+++ runtime/syntax/tcsh.vim	2009-12-24 10:29:21.000000000 -0600
@@ -1,6 +1,6 @@
 " tcsh.vim: Vim syntax file for tcsh scripts
-" Maintainer:	Gautam Iyer <gi1242@users.sourceforge.net>
-" Modified:	Sat 16 Jun 2007 04:52:12 PM PDT
+" Maintainer:	Gautam Iyer <gi1242@gmail.com>
+" Modified:	Thu 17 Dec 2009 06:05:07 PM EST
 "
 " Description: We break up each statement into a "command" and an "end" part.
 " All groups are either a "command" or part of the "end" of a statement (ie
@@ -60,7 +60,7 @@
 " alias and unalias (contains special aliases)
 syn keyword tcshAliases contained beepcmd cwdcmd jobcmd helpcommand periodic precmd postcmd shell
 syn keyword tcshBuiltin	nextgroup=tcshAliCmd skipwhite alias unalias
-syn match   tcshAliCmd	contained nextgroup=tcshAliEnd skipwhite '\v[\w-]+' contains=tcshAliases
+syn match   tcshAliCmd	contained nextgroup=tcshAliEnd skipwhite '\v(\w|-)+' contains=tcshAliases
 syn region  tcshAliEnd	contained transparent matchgroup=tcshBuiltin start='' skip='\\$' end='$\|;' contains=@tcshStatementEnds
 
 " if statements
@@ -197,7 +197,11 @@
 
 " ----- Synchronising -----
 if exists('tcsh_minlines')
-    exec 'syn sync minlines=' . tcsh_minlines
+    if tcsh_minlines == 'fromstart'
+	syn sync fromstart
+    else
+	exec 'syn sync minlines=' . tcsh_minlines
+    endif
 else
     syn sync minlines=100	" Some completions can be quite long
 endif
diff -u -r --new-file runtime/syntax.orig/tex.vim runtime/syntax/tex.vim
--- runtime/syntax.orig/tex.vim	2008-07-29 14:43:38.000000000 -0500
+++ runtime/syntax/tex.vim	2010-01-12 14:39:39.000000000 -0600
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:	TeX
 " Maintainer:	Dr. Charles E. Campbell, Jr. <NdrchipO@ScampbellPfamily.AbizM>
-" Last Change:	Jun 03, 2008
-" Version:	41
+" Last Change:	Dec 28, 2009
+" Version:	46
 " URL:		http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
 "
 " Notes: {{{1
@@ -103,6 +103,7 @@
 syn cluster texEnvGroup		contains=texMatcher,texMathDelim,texSpecialChar,texStatement
 syn cluster texFoldGroup	contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texInputFile,texLength,texLigature,texMatcher,texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ,texNewCmd,texNewEnv,texOnlyMath,texOption,texParen,texRefZone,texSection,texSectionMarker,texSectionZone,texSpaceCode,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,@texMathZones,texTitle,texAbstract
 syn cluster texMatchGroup	contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texMatcher,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,@Spell
+syn cluster texStyleGroup	contains=texAccent,texBadMath,texComment,texDefCmd,texDelimiter,texDocType,texInput,texLength,texLigature,texNewCmd,texNewEnv,texOnlyMath,texParen,texRefZone,texSection,texSpecialChar,texStatement,texString,texTypeSize,texTypeStyle,texZone,texInputFile,texOption,texStyleStatement,@Spell,texStyleMatcher
 syn cluster texRefGroup		contains=texMatcher,texComment,texDelimiter
 if !exists("tex_no_math")
  syn cluster texMathZones	contains=texMathZoneV,texMathZoneW,texMathZoneX,texMathZoneY,texMathZoneZ
@@ -179,24 +180,24 @@
 
 " \begin{}/\end{} section markers: {{{1
 syn match  texSectionMarker	"\\begin\>\|\\end\>" nextgroup=texSectionName
-syn region texSectionName	matchgroup=Delimiter start="{" end="}"  contained nextgroup=texSectionModifier
-syn region texSectionModifier	matchgroup=Delimiter start="\[" end="]" contained
+syn region texSectionName	matchgroup=Delimiter start="{" end="}"  contained	nextgroup=texSectionModifier	contains=texComment
+syn region texSectionModifier	matchgroup=Delimiter start="\[" end="]" contained	contains=texComment
 
 " \documentclass, \documentstyle, \usepackage: {{{1
 syn match  texDocType		"\\documentclass\>\|\\documentstyle\>\|\\usepackage\>"	nextgroup=texSectionName,texDocTypeArgs
-syn region texDocTypeArgs	matchgroup=Delimiter start="\[" end="]"			contained	nextgroup=texSectionName
+syn region texDocTypeArgs	matchgroup=Delimiter start="\[" end="]"			contained	nextgroup=texSectionName	contains=texComment
 
 " Preamble syntax-based folding support: {{{1
 if g:tex_fold_enabled && has("folding")
- syn region texPreamble	transparent fold	start='\zs\\documentclass\>' end='\ze\\begin{document}'	contains=@texMatchGroup
+ syn region texPreamble	transparent fold	start='\zs\\documentclass\>' end='\ze\\begin{document}'	contains=texStyle,@texMatchGroup
 endif
 
 " TeX input: {{{1
 syn match texInput		"\\input\s\+[a-zA-Z/.0-9_^]\+"hs=s+7				contains=texStatement
-syn match texInputFile		"\\include\(graphics\|list\)\=\(\[.\{-}\]\)\=\s*{.\{-}}"	contains=texStatement,texInputCurlies
+syn match texInputFile		"\\include\(graphics\|list\)\=\(\[.\{-}\]\)\=\s*{.\{-}}"	contains=texStatement,texInputCurlies,texInputFileOpt
 syn match texInputFile		"\\\(epsfig\|input\|usepackage\)\s*\(\[.*\]\)\={.\{-}}"		contains=texStatement,texInputCurlies,texInputFileOpt
 syn match texInputCurlies	"[{}]"								contained
-syn region texInputFileOpt	matchgroup=Delimiter start="\[" end="\]"			contained
+syn region texInputFileOpt	matchgroup=Delimiter start="\[" end="\]"			contained	contains=texComment
 
 " Type Styles (LaTeX 2.09): {{{1
 syn match texTypeStyle		"\\rm\>"
@@ -309,7 +310,7 @@
    exe 'syn region '.grpname.' start='."'".'\\begin\s*{\s*'.a:mathzone.'\s*}'."'".' end='."'".'\\end\s*{\s*'.a:mathzone.'\s*}'."'".' keepend contains=@texMathZoneGroup'.foldcmd
    exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
    exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
-   exe 'HiLink '.grpname.' texMath'
+   exe 'hi def link '.grpname.' texMath'
    if a:starform
     let grpname  = "texMathZone".a:sfx.'S'
     let syncname = "texSyncMathZone".a:sfx.'S'
@@ -317,7 +318,7 @@
     exe 'syn region '.grpname.' start='."'".'\\begin\s*{\s*'.a:mathzone.'\*\s*}'."'".' end='."'".'\\end\s*{\s*'.a:mathzone.'\*\s*}'."'".' keepend contains=@texMathZoneGroup'.foldcmd
     exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
     exe 'syn sync match '.syncname.' grouphere '.grpname.' "\\begin\s*{\s*'.a:mathzone.'\*\s*}"'
-    exe 'HiLink '.grpname.' texMath'
+    exe 'hi def link '.grpname.' texMath'
    endif
  endfun
 
@@ -399,7 +400,7 @@
 " Separate lines used for verb` and verb# so that the end conditions {{{1
 " will appropriately terminate.  Ideally vim would let me save a
 " character from the start pattern and re-use it in the end-pattern.
-syn region texZone		start="\\begin{verbatim}"		end="\\end{verbatim}\|%stopzone\>"	contains=@Spell
+syn region texZone		start="\\begin{[vV]erbatim}"		end="\\end{[vV]erbatim}\|%stopzone\>"	contains=@Spell
 " listings package:
 syn region texZone		start="\\begin{lstlisting}"		end="\\end{lstlisting}\|%stopzone\>"	contains=@Spell
 " moreverb package:
@@ -456,6 +457,14 @@
 " TeX String Delimiters: {{{1
 syn match texString		"\(``\|''\|,,\)"
 
+" makeatletter -- makeatother sections
+if !exists("g:tex_no_error")
+ syn region texStyle			matchgroup=texStatement start='\\makeatletter' end='\\makeatother'	contains=@texStyleGroup contained
+ syn match  texStyleStatement		"\\[a-zA-Z@]\+"	contained
+ syn region texStyleMatcher		matchgroup=Delimiter start="{" skip="\\\\\|\\[{}]"	end="}"		contains=@texStyleGroup,texError	contained
+ syn region texStyleMatcher		matchgroup=Delimiter start="\["				end="]"		contains=@texStyleGroup,texError	contained
+endif
+
 " LaTeX synchronization: {{{1
 syn sync maxlines=200
 syn sync minlines=50
@@ -507,6 +516,7 @@
    HiLink texMathDelimSet2	texMathDelim
    HiLink texMathDelimKey	texMathDelim
    HiLink texMathMatcher	texMath
+   HiLink texMathZoneV		texMath
    HiLink texMathZoneW		texMath
    HiLink texMathZoneX		texMath
    HiLink texMathZoneY		texMath
@@ -516,6 +526,7 @@
   HiLink texSectionMarker	texCmdName
   HiLink texSectionName		texSection
   HiLink texSpaceCode		texStatement
+  HiLink texStyleStatement	texStatement
   HiLink texTypeSize		texType
   HiLink texTypeStyle		texType
 
diff -u -r --new-file runtime/syntax.orig/uil.vim runtime/syntax/uil.vim
--- runtime/syntax.orig/uil.vim	2004-06-07 09:32:35.000000000 -0500
+++ runtime/syntax/uil.vim	2009-12-16 14:38:21.000000000 -0600
@@ -1,8 +1,9 @@
 " Vim syntax file
 " Language:	Motif UIL (User Interface Language)
 " Maintainer:	Thomas Koehler <jean-luc@picard.franken.de>
-" Last Change:	2002 Sep 20
-" URL:		http://jeanluc-picard.de/vim/syntax/uil.vim
+" Last Change:	2009 Dec 04
+" URL:		http://gott-gehabt.de/800_wer_wir_sind/thomas/Homepage/Computer/vim/syntax/uil.vim
+
 
 " Quit when a syntax file was already loaded
 if version < 600
diff -u -r --new-file runtime/syntax.orig/updatedb.vim runtime/syntax/updatedb.vim
--- runtime/syntax.orig/updatedb.vim	2007-10-25 09:36:25.000000000 -0500
+++ runtime/syntax/updatedb.vim	2009-06-13 07:38:40.000000000 -0500
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         updatedb.conf(5) configuration file
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2007-10-25
+" Latest Revision:  2009-05-25
 
 if exists("b:current_syntax")
   finish
@@ -18,7 +18,11 @@
 syn match   updatedbBegin   display '^'
                             \ nextgroup=updatedbName,updatedbComment skipwhite
 
-syn keyword updatedbName    contained PRUNEFS PRUNEPATHS PRUNE_BIND_MOUNTS
+syn keyword updatedbName    contained
+                            \ PRUNEFS
+                            \ PRUNENAMES
+                            \ PRUNEPATHS
+                            \ PRUNE_BIND_MOUNTS
                             \ nextgroup=updatedbNameEq
 
 syn match   updatedbNameEq  contained display '=' nextgroup=updatedbValue
diff -u -r --new-file runtime/syntax.orig/vim.vim runtime/syntax/vim.vim
--- runtime/syntax.orig/vim.vim	2008-07-29 14:43:38.000000000 -0500
+++ runtime/syntax/vim.vim	2010-01-12 14:33:53.000000000 -0600
@@ -1,8 +1,8 @@
 " Vim syntax file
 " Language:	Vim 7.2 script
 " Maintainer:	Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change:	July 29, 2008
-" Version:	7.2-82
+" Last Change:	Nov 18, 2009
+" Version:	7.2-95
 " Automatically generated keyword lists: {{{1
 
 " Quit when a syntax file was already loaded {{{2
@@ -16,11 +16,11 @@
 syn cluster vimCommentGroup	contains=vimTodo,@Spell
 
 " regular vim commands {{{2
-syn keyword vimCommand contained	abc[lear] argdo argu[ment] bel[owright] bN[ext] breakd[el] b[uffer] caddb[uffer] cb[uffer] cex[pr] cg[etfile] checkt[ime] cnew[er] col[der] con[tinue] cq[uit] delc[ommand] diffoff diffu[pdate] dr[op] echom[sg] em[enu] endt[ry] exu[sage] fin[d] foldc[lose] fu[nction] ha[rdcopy] helpt[ags] if is[earch] ju[mps] kee[pmarks] lan[guage] lc[d] lefta[bove] lgetb[uffer] lgrepa[dd] lla[st] lmapc[lear] lnf[ile] loc[kmarks] lpf[ile] lt[ag] mak[e] menut[ranslate] mkvie[w] mzf[ile] n[ext] nu[mber] opt[ions] perld[o] pp[op] P[rint] promptr[epl] ptj[ump] ptp[revious] pw[d] q[uit] redi[r] reg[isters] rew[ind] rubyd[o] sal[l] sba[ll] sbn[ext] sb[uffer] setf[iletype] sfir[st] sim[alt] sm[ap] sn[ext] snor[emap] so[urce] spellr[epall] spr[evious] star[tinsert] stopi[nsert] sunmenu t tabe[dit] tabm[ove] tabo[nly] ta[g] tclf[ile] tj[ump] tn[ext] tr[ewind] tu[nmenu] undol[ist] verb[ose] vim[grep] vmapc[lear] wh[ile] win[size] wq wv[iminfo] xm[ap] XMLent xnoremenu
-syn keyword vimCommand contained	abo[veleft] arge[dit] as[cii] bf[irst] bo[tright] breakl[ist] buffers cad[dexpr] cc cf[ile] c[hange] cla[st] cn[ext] colo[rscheme] cope[n] cr[ewind] d[elete] diffpatch dig[raphs] ds[earch] echon emenu* endw[hile] f[ile] fini[sh] folddoc[losed] go[to] h[elp] hid[e] ij[ump] isp[lit] k laddb[uffer] la[st] lch[dir] lex[pr] lgete[xpr] lh[elpgrep] lli[st] lnew[er] lNf[ile] lockv[ar] lp[revious] lv[imgrep] ma[rk] mk[exrc] mkv[imrc] mz[scheme] N[ext] omapc[lear] pc[lose] po[p] pre[serve] profd[el] ps[earch] ptl[ast] ptr[ewind] pyf[ile] quita[ll] red[o] res[ize] ri[ght] rubyf[ile] san[dbox] sbf[irst] sbN[ext] scripte[ncoding] setg[lobal] sh[ell] sla[st] smapc[lear] sN[ext] snoreme spelld[ump] spellu[ndo] sre[wind] startr[eplace] sts[elect] sus[pend] tab tabf[ind] tabnew tabp[revious] tags te[aroff] tl[ast] tN[ext] try una[bbreviate] unh[ide] ve[rsion] vimgrepa[dd] vne[w] winc[md] wn[ext] wqa[ll] X xmapc[lear] XMLns xunme
-syn keyword vimCommand contained	al[l] argg[lobal] bad[d] bl[ast] bp[revious] br[ewind] bun[load] caddf[ile] ccl[ose] cfir[st] changes cl[ist] cN[ext] comc[lear] co[py] cuna[bbrev] delf[unction] diffpu[t] di[splay] dsp[lit] e[dit] endfo[r] ene[w] files fir[st] foldd[oopen] gr[ep] helpf[ind] his[tory] il[ist] iuna[bbrev] keepalt lad[dexpr] later lcl[ose] lf[ile] lg[etfile] l[ist] lmak[e] lne[xt] ln[oremap] lol[der] lr[ewind] lvimgrepa[dd] marks mks[ession] mod[e] nbkey nmapc[lear] on[ly] ped[it] popu prev[ious] prof[ile] pta[g] ptn[ext] pts[elect] py[thon] r[ead] redr[aw] ret[ab] rightb[elow] ru[ntime] sa[rgument] sbl[ast] sbp[revious] scrip[tnames] setl[ocal] sign sl[eep] sme sni[ff] snoremenu spe[llgood] spellw[rong] sta[g] stj[ump] sun[hide] sv[iew] tabc[lose] tabfir[st] tabn[ext] tabr[ewind] tc[l] tf[irst] tm to[pleft] ts[elect] u[ndo] unlo[ckvar] vert[ical] vi[sual] vs[plit] windo wN[ext] w[rite] xa[ll] xme xn[oremap] xunmenu
-syn keyword vimCommand contained	arga[dd] argl[ocal] ba[ll] bm[odified] brea[k] bro[wse] bw[ipeout] cal[l] cd cgetb[uffer] chd[ir] clo[se] cnf[ile] comp[iler] cpf[ile] cw[indow] delm[arks] diffsplit dj[ump] earlier el[se] endf[unction] ex filetype fix[del] foldo[pen] grepa[dd] helpg[rep] iabc[lear] imapc[lear] j[oin] keepj[umps] laddf[ile] lb[uffer] le[ft] lfir[st] lgr[ep] ll lm[ap] lN[ext] lo[adview] lop[en] ls lw[indow] mat[ch] mksp[ell] m[ove] new noh[lsearch] o[pen] pe[rl] popu[p] p[rint] promptf[ind] ptf[irst] ptN[ext] pu[t] qa[ll] rec[over] redraws[tatus] retu[rn] rub[y] rv[iminfo] sav[eas] sbm[odified] sbr[ewind] se[t] sf[ind] sil[ent] sm[agic] smenu sno[magic] sor[t] spelli[nfo] sp[lit] startg[replace] st[op] sunme syncbind tabd[o] tabl[ast] tabN[ext] tabs tcld[o] th[row] tm[enu] tp[revious] tu undoj[oin] up[date] vie[w] viu[sage] wa[ll] winp[os] wp[revious] ws[verb] x[it] xmenu xnoreme y[ank]
-syn keyword vimCommand contained	argd[elete] ar[gs] bd[elete] bn[ext] breaka[dd] bufdo cabc[lear] cat[ch] ce[nter] cgete[xpr] che[ckpath] cmapc[lear] cNf[ile] conf[irm] cp[revious] debugg[reedy] diffg[et] diffthis dl[ist] echoe[rr] elsei[f] en[dif] exi[t] fina[lly] fo[ld] for 
+syn keyword vimCommand contained	abc[lear] argdo argu[ment] bel[owright] bN[ext] breakd[el] b[uffer] caddb[uffer] cb[uffer] cex[pr] cg[etfile] checkt[ime] cnew[er] col[der] con[tinue] cq[uit] delc[ommand] diffoff diffu[pdate] dr[op] echom[sg] em[enu] en[dif] ex files fini[sh] foldc[lose] for grepa[dd] helpg[rep] iabc[lear] imapc[lear] j[oin] keepj[umps] laddf[ile] lb[uffer] le[ft] lfir[st] lgr[ep] ll lmapc[lear] lnf[ile] lockv[ar] lp[revious] lv[imgrep] ma[rk] mk[exrc] mkv[imrc] mz[scheme] N[ext] ol[dfiles] opt[ions] perld[o] pp[op] P[rint] promptr[epl] ptj[ump] ptp[revious] pw[d] q[uit] redi[r] reg[isters] rew[ind] rubyd[o] sal[l] sba[ll] sbn[ext] sb[uffer] setf[iletype] sfir[st] sim[alt] sm[ap] sN[ext] snoremenu spe[llgood] spellw[rong] sta[g] stj[ump] sun[hide] sv[iew] tabc[lose] tabfir[st] tabn[ext] tabr[ewind] tc[l] tf[irst] tm to[pleft] ts[elect] u[ndo] unlo[ckvar] vert[ical] vi[sual] vs[plit] windo wN[ext] w[rite] xa[ll] xmenu xnoremenu
+syn keyword vimCommand contained	abo[veleft] arge[dit] as[cii] bf[irst] bo[tright] breakl[ist] buffers cad[dexpr] cc cf[ile] c[hange] cla[st] cn[ext] colo[rscheme] cope[n] cr[ewind] d[elete] diffpatch dig[raphs] ds[earch] echon emenu* endt[ry] exi[t] filetype fir[st] folddoc[losed] fu[nction] ha[rdcopy] helpt[ags] if is[earch] ju[mps] kee[pmarks] lan[guage] lc[d] lefta[bove] lgetb[uffer] lgrepa[dd] lla[st] lnew[er] lNf[ile] lol[der] lr[ewind] lvimgrepa[dd] marks mks[ession] mod[e] nbkey nmapc[lear] omapc[lear] pc[lose] po[p] pre[serve] profd[el] ps[earch] ptl[ast] ptr[ewind] pyf[ile] quita[ll] red[o] res[ize] ri[ght] rubyf[ile] san[dbox] sbf[irst] sbN[ext] scripte[ncoding] setg[lobal] sh[ell] sla[st] sme sni[ff] sor[t] spelli[nfo] sp[lit] startg[replace] st[op] sunme syncbind tabd[o] tabl[ast] tabN[ext] tabs tcld[o] th[row] tm[enu] tp[revious] tu undoj[oin] up[date] vie[w] viu[sage] wa[ll] winp[os] wp[revious] ws[verb] x[it] XMLent xunme
+syn keyword vimCommand contained	al[l] argg[lobal] bad[d] bl[ast] bp[revious] br[ewind] bun[load] caddf[ile] ccl[ose] cfir[st] changes cl[ist] cN[ext] comc[lear] co[py] cuna[bbrev] delf[unction] diffpu[t] di[splay] dsp[lit] e[dit] endfo[r] endw[hile] exu[sage] fina[lly] fix[del] foldd[oopen] go[to] h[elp] hid[e] ij[ump] isp[lit] k laddb[uffer] la[st] lch[dir] lex[pr] lgete[xpr] lh[elpgrep] lli[st] lne[xt] lo[adview] lop[en] ls lw[indow] mat[ch] mksp[ell] m[ove] new noh[lsearch] on[ly] ped[it] popu prev[ious] prof[ile] pta[g] ptn[ext] pts[elect] py[thon] r[ead] redr[aw] ret[ab] rightb[elow] ru[ntime] sa[rgument] sbl[ast] sbp[revious] scrip[tnames] setl[ocal] sign sl[eep] smenu sno[magic] so[urce] spellr[epall] spr[evious] star[tinsert] stopi[nsert] sunmenu t tabe[dit] tabm[ove] tabo[nly] ta[g] tclf[ile] tj[ump] tn[ext] tr[ewind] tu[nmenu] undol[ist] verb[ose] vim[grep] vmapc[lear] wh[ile] win[size] wq wv[iminfo] xmapc[lear] XMLns xunmenu
+syn keyword vimCommand contained	arga[dd] argl[ocal] ba[ll] bm[odified] brea[k] bro[wse] bw[ipeout] cal[l] cd cgetb[uffer] chd[ir] clo[se] cnf[ile] comp[iler] cpf[ile] cw[indow] delm[arks] diffsplit dj[ump] earlier el[se] endf[unction] ene[w] f[ile] fin[d] fo[ld] foldo[pen] gr[ep] helpf[ind] his[tory] il[ist] iuna[bbrev] keepalt lad[dexpr] later lcl[ose] lf[ile] lg[etfile] l[ist] lmak[e] lN[ext] loc[kmarks] lpf[ile] lt[ag] mak[e] menut[ranslate] mkvie[w] mzf[ile] n[ext] nu[mber] o[pen] pe[rl] popu[p] p[rint] promptf[ind] ptf[irst] ptN[ext] pu[t] qa[ll] rec[over] redraws[tatus] retu[rn] rub[y] rv[iminfo] sav[eas] sbm[odified] sbr[ewind] se[t] sf[ind] sil[ent] sm[agic] sn[ext] snoreme spelld[ump] spellu[ndo] sre[wind] startr[eplace] sts[elect] sus[pend] tab tabf[ind] tabnew tabp[revious] tags te[aroff] tl[ast] tN[ext] try una[bbreviate] unh[ide] ve[rsion] vimgrepa[dd] vne[w] winc[md] wn[ext] wqa[ll] X xme xnoreme y[ank]
+syn keyword vimCommand contained	argd[elete] ar[gs] bd[elete] bn[ext] breaka[dd] bufdo cabc[lear] cat[ch] ce[nter] cgete[xpr] che[ckpath] cmapc[lear] cNf[ile] conf[irm] cp[revious] debugg[reedy] diffg[et] diffthis dl[ist] echoe[rr] elsei[f] 
 syn match   vimCommand contained	"\<z[-+^.=]"
 
 " vimOptions are caught only when contained in a vimSet {{{2
@@ -33,7 +33,7 @@
 syn keyword vimOption contained	altkeymap arabic autowrite backupcopy bdir bin bomb bt cd ci cinw co completefunc cp cscopetag csto debug dict dir eb enc errorbells expandtab fdl fenc fileformat fml foldignore foldopen fs gfn grepprg guiheadroom helplang history hls imactivatekey iminsert inde insertmode iskeyword keymodel laststatus lisp lpl magic maxfuncdepth menuitems mm modifiable mousem mps number opendevice paste pex pmbcs printencoding prompt rdt ri 
 
 " vimOptions: These are the turn-off setting variants {{{2
-syn keyword vimOption contained	noacd noallowrevins noantialias noarabic noarshape noautoread noaw noballooneval nobinary nobk nobuflisted nocin noconfirm nocopyindent nocscopeverbose nocuc nocursorline nodg nodisable noeb noedcompatible noendofline noequalalways noesckeys noex noexrc nofk nofoldenable nogdefault nohid nohk nohkmapp nohls noic noignorecase noimc noimd noinf noinsertmode nojoinspaces nolazyredraw nolinebreak nolist nolpl noma nomagic noml nomodeline nomodified nomousef nomousehide nonumber noopendevice nopi nopreviewwindow nopvw noremap norevins norightleft norl noro noru nosb noscb noscs nosft noshelltemp noshortname noshowfulltag noshowmode nosm nosmartindent nosmd nosol nosplitbelow nospr nossl nostartofline noswapfile nota notagrelative notbi notbs noterse notextmode notgst notimeout noto notr nottybuiltin notx novisualbell nowarn noweirdinvert nowfw nowinfixheight nowiv nowrap nowrite nowritebackup
+syn keyword vimOption contained	noacd noallowrevins noantialias noarabic noarshape noautoread noaw noballooneval nobinary nobk nobuflisted nocin noconfirm nocopyindent nocscopeverbose nocuc nocursorline nodg noimdisable noeb noedcompatible noendofline noequalalways noesckeys noex noexrc nofk nofoldenable nogdefault nohid nohk nohkmapp nohls noic noignorecase noimc noimd noinf noinsertmode nojoinspaces nolazyredraw nolinebreak nolist nolpl noma nomagic noml nomodeline nomodified nomousef nomousehide nonumber noopendevice nopi nopreviewwindow nopvw noremap norevins norightleft norl noro noru nosb noscb noscs nosft noshelltemp noshortname noshowfulltag noshowmode nosm nosmartindent nosmd nosol nosplitbelow nospr nossl nostartofline noswapfile nota notagrelative notbi notbs noterse notextmode notgst notimeout noto notr nottybuiltin notx novisualbell nowarn noweirdinvert nowfw nowinfixheight nowiv nowrap nowrite nowritebackup
 syn keyword vimOption contained	noai noaltkeymap noar noarabicshape noautochdir noautowrite noawa nobeval nobiosk nobl nocf nocindent noconsk nocp nocst nocul nodeco nodiff noea noed noek noeol noerrorbells noet noexpandtab nofen nofkmap nogd noguipty nohidden nohkmap nohkp nohlsearch noicon noim noimcmdline noincsearch noinfercase nois nojs nolbr nolisp noloadplugins nolz nomacatsui nomh nomod nomodifiable nomore nomousefocus nonu noodev nopaste nopreserveindent noprompt noreadonly norestorescreen nori norightleftcmd norlc nors noruler nosc noscrollbind nosecure noshellslash noshiftround noshowcmd noshowmatch nosi nosmartcase nosmarttab nosn nospell nosplitright nosr nosta nostmp noswf notagbsearch notagstack notbidi notermbidi notextauto notf notildeop notitle notop nottimeout nottyfast novb nowa nowb nowfh nowildmenu nowinfixwidth nowmnu nowrapscan nowriteany nows
 syn keyword vimOption contained	noakm noanti noarab noari noautoindent noautowriteall nobackup nobin nobioskey nobomb noci nocompatible noconskey nocscopetag nocsverb nocursorcolumn nodelcombine nodigraph 
 
@@ -62,7 +62,7 @@
 syn keyword vimAutoEvent contained	BufAdd BufCreate BufDelete BufEnter BufFilePost BufFilePre BufHidden BufLeave BufNew BufNewFile BufRead BufReadCmd BufReadPost BufReadPre BufUnload BufWinEnter BufWinLeave BufWipeout BufWrite BufWriteCmd BufWritePost BufWritePre Cmd-event CmdwinEnter CmdwinLeave ColorScheme CursorHold CursorHoldI CursorMoved CursorMovedI EncodingChanged FileAppendCmd FileAppendPost FileAppendPre FileChangedRO FileChangedShell FileChangedShellPost FileEncoding FileReadCmd FileReadPost FileReadPre FileType FileWriteCmd FileWritePost FileWritePre FilterReadPost FilterReadPre FilterWritePost FilterWritePre FocusGained FocusLost FuncUndefined GUIEnter GUIFailed InsertChange InsertEnter InsertLeave MenuPopup QuickFixCmdPost QuickFixCmdPre RemoteReply SessionLoadPost ShellCmdPost ShellFilterPost SourceCmd SourcePre SpellFileMissing StdinReadPost StdinReadPre SwapExists Syntax TabEnter TabLeave TermChanged TermResponse User UserGettingBored VimEnter VimLeave VimLeavePre VimResized WinEnter WinLeave 
 
 " Highlight commonly used Groupnames {{{2
-syn keyword vimGroup contained	Comment Constant String Character Number Boolean Float Identifier Function Statement Conditional Repeat Label Operator Keyword Exception PreProc Include Define Macro PreCondit Type StorageClass Structure Typedef Special SpecialChar Tag Delimiter SpecialComment Debug Underlined Ignore Error Todo 
+syn keyword vimGroup contained	Comment Constant String Character Number Boolean Float Identifier Function Statement Conditional Repeat Label Operator Keyword Exception PreProc Include Define Macro PreCondit Type StorageClass Structure Typedef Special SpecialChar Tag Delimiter SpecialComment Debug Underlined Ignore Error Todo None
 
 " Default highlighting groups {{{2
 syn keyword vimHLGroup contained	Cursor CursorColumn CursorIM CursorLine DiffAdd DiffChange DiffDelete DiffText Directory ErrorMsg FoldColumn Folded IncSearch LineNr MatchParen Menu ModeMsg MoreMsg NonText Normal Pmenu PmenuSbar PmenuSel PmenuThumb Question Scrollbar Search SignColumn SpecialKey SpellBad SpellCap SpellLocal SpellRare StatusLine StatusLineNC TabLine TabLineFill TabLineSel Title Tooltip VertSplit Visual VisualNOS WarningMsg WildMenu 
@@ -99,8 +99,9 @@
 syn match vimCmdSep	"[:|]\+"	skipwhite nextgroup=vimAddress,vimAutoCmd,vimCommand,vimExtCmd,vimFilter,vimLet,vimMap,vimMark,vimSet,vimSyntax,vimUserCmd
 syn match vimIsCommand	"\<\h\w*\>"	contains=vimCommand
 syn match vimVar		"\<[bwglsav]:\K\k*\>"
-syn match vimVar contained	"\<\K\k*\>"
-syn keyword vimCommand contained	in
+syn match vimVar        contained	"\<\K\k*\>"
+syn match vimFBVar      contained   "\<[bwglsav]:\K\k*\>"
+syn keyword vimCommand  contained	in
 
 " Insertions And Appends: insert append {{{2
 " =======================
@@ -127,7 +128,7 @@
 
 " Augroup : vimAugroupError removed because long augroups caused sync'ing problems. {{{2
 " ======= : Trade-off: Increasing synclines with slower editing vs augroup END error checking.
-syn cluster vimAugroupList	contains=vimIsCommand,vimFunction,vimFunctionError,vimLineComment,vimSpecFile,vimOper,vimNumber,vimComment,vimString,vimSubst,vimMark,vimRegister,vimAddress,vimFilter,vimCmplxRepeat,vimComment,vimLet,vimSet,vimAutoCmd,vimRegion,vimSynLine,vimNotation,vimCtrlChar,vimFuncVar,vimContinue
+syn cluster vimAugroupList	contains=vimIsCommand,vimFuncName,vimFunction,vimFunctionError,vimLineComment,vimSpecFile,vimOper,vimNumber,vimOperParen,vimComment,vimString,vimSubst,vimMark,vimRegister,vimAddress,vimFilter,vimCmplxRepeat,vimComment,vimLet,vimSet,vimAutoCmd,vimRegion,vimSynLine,vimNotation,vimCtrlChar,vimFuncVar,vimContinue
 if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'a'
  syn region  vimAugroup	fold start="\<aug\%[roup]\>\s\+\K\k*" end="\<aug\%[roup]\>\s\+[eE][nN][dD]\>"	contains=vimAugroupKey,vimAutoCmd,@vimAugroupList keepend
 else
@@ -141,156 +142,154 @@
 
 " Operators: {{{2
 " =========
-syn cluster vimOperGroup	contains=vimOper,vimOperParen,vimNumber,vimString,vimRegister,vimContinue
-syn match  vimOper	"\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}"	skipwhite nextgroup=vimString,vimSpecFile
-syn match  vimOper	"||\|&&\|[-+.]"	skipwhite nextgroup=vimString,vimSpecFile
-syn region vimOperParen 	oneline matchgroup=vimOper start="(" end=")" contains=@vimOperGroup
-syn region vimOperParen	oneline matchgroup=vimSep  start="{" end="}" contains=@vimOperGroup nextgroup=vimVar
+syn cluster	vimOperGroup	contains=vimFunc,vimFuncVar,vimOper,vimOperParen,vimNumber,vimString,vimRegister,vimContinue
+syn match	vimOper	"\(==\|!=\|>=\|<=\|=\~\|!\~\|>\|<\|=\)[?#]\{0,2}"	skipwhite nextgroup=vimString,vimSpecFile
+syn match	vimOper	"||\|&&\|[-+.]"	skipwhite nextgroup=vimString,vimSpecFile
+syn region	vimOperParen 	oneline matchgroup=vimParenSep	start="(" end=")" contains=@vimOperGroup
+syn region	vimOperParen	oneline matchgroup=vimSep	start="{" end="}" contains=@vimOperGroup nextgroup=vimVar,vimFuncVar
 if !exists("g:vimsyn_noerror")
- syn match  vimOperError	")"
+ syn match	vimOperError	")"
 endif
 
 " Functions : Tag is provided for those who wish to highlight tagged functions {{{2
 " =========
-syn cluster vimFuncList	contains=vimCommand,vimFuncKey,Tag,vimFuncSID
-syn cluster vimFuncBodyList	contains=vimAddress,vimAutoCmd,vimCmplxRepeat,vimComment,vimComment,vimContinue,vimCtrlChar,vimEcho,vimEchoHL,vimExecute,vimIf,vimFunc,vimFunction,vimFunctionError,vimFuncVar,vimIsCommand,vimLet,vimLineComment,vimMap,vimMark,vimNorm,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegion,vimRegister,vimSet,vimSpecFile,vimString,vimSubst,vimSynLine,vimUserCommand
-if !exists("g:vimsyn_noerror")
- syn match   vimFunctionError	"\<fu\%[nction]!\=\s\+\zs\U\i\{-}\ze\s*("                	contains=vimFuncKey,vimFuncBlank nextgroup=vimFuncBody
-endif
-syn match   vimFunction	"\<fu\%[nction]!\=\s\+\(\(<[sS][iI][dD]>\|[Ss]:\|\u\|\i\+#\)\i*\|\(g:\)\=\(\I\i*\.\)\+\I\i*\)\ze\s*("	contains=@vimFuncList nextgroup=vimFuncBody
+syn cluster	vimFuncList	contains=vimCommand,vimFunctionError,vimFuncKey,Tag,vimFuncSID
+syn cluster	vimFuncBodyList	contains=vimAbb,vimAddress,vimAugroupKey,vimAutoCmd,vimCmplxRepeat,vimComment,vimComment,vimContinue,vimCtrlChar,vimEcho,vimEchoHL,vimExecute,vimIf,vimIsCommand,vimFBVar,vimFunc,vimFunction,vimFuncVar,vimHighlight,vimIsCommand,vimLet,vimLineComment,vimMap,vimMark,vimNorm,vimNotation,vimNotFunc,vimNumber,vimOper,vimOperParen,vimRegion,vimRegister,vimSet,vimSpecFile,vimString,vimSubst,vimSynLine,vimUserCommand
+syn match	vimFunction	"\<fu\%[nction]!\=\s\+\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)\=\%(\i\|[#.]\|{.\{-1,}}\)*\ze\s*("	contains=@vimFuncList nextgroup=vimFuncBody
+
 if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'f'
- syn region  vimFuncBody  contained	fold start="\ze("	matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)"		contains=@vimFuncBodyList
+ syn region	vimFuncBody  contained	fold start="\ze("	matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)"		contains=@vimFuncBodyList
 else                                                                                                          
- syn region  vimFuncBody  contained	start="\ze("	matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)"		contains=@vimFuncBodyList
+ syn region	vimFuncBody  contained	start="\ze("	matchgroup=vimCommand end="\<\(endf\>\|endfu\%[nction]\>\)"		contains=@vimFuncBodyList
 endif
-syn match   vimFuncVar   contained	"a:\(\I\i*\|\d\+\)"
-syn match   vimFuncSID   contained	"\c<sid>\|\<s:"
-syn keyword vimFuncKey   contained	fu[nction]
-syn match   vimFuncBlank contained	"\s\+"
+syn match	vimFuncVar   contained	"a:\(\K\k*\|\d\+\)"
+syn match	vimFuncSID   contained	"\c<sid>\|\<s:"
+syn keyword	vimFuncKey   contained	fu[nction]
+syn match	vimFuncBlank contained	"\s\+"
 
-syn keyword vimPattern   contained	start	skip	end
+syn keyword	vimPattern   contained	start	skip	end
 
 " Special Filenames, Modifiers, Extension Removal: {{{2
 " ===============================================
-syn match vimSpecFile	"<c\(word\|WORD\)>"	nextgroup=vimSpecFileMod,vimSubst
-syn match vimSpecFile	"<\([acs]file\|amatch\|abuf\)>"	nextgroup=vimSpecFileMod,vimSubst
-syn match vimSpecFile	"\s%[ \t:]"ms=s+1,me=e-1	nextgroup=vimSpecFileMod,vimSubst
-syn match vimSpecFile	"\s%$"ms=s+1	nextgroup=vimSpecFileMod,vimSubst
-syn match vimSpecFile	"\s%<"ms=s+1,me=e-1	nextgroup=vimSpecFileMod,vimSubst
-syn match vimSpecFile	"#\d\+\|[#%]<\>"	nextgroup=vimSpecFileMod,vimSubst
-syn match vimSpecFileMod	"\(:[phtre]\)\+"	contained
+syn match	vimSpecFile	"<c\(word\|WORD\)>"	nextgroup=vimSpecFileMod,vimSubst
+syn match	vimSpecFile	"<\([acs]file\|amatch\|abuf\)>"	nextgroup=vimSpecFileMod,vimSubst
+syn match	vimSpecFile	"\s%[ \t:]"ms=s+1,me=e-1	nextgroup=vimSpecFileMod,vimSubst
+syn match	vimSpecFile	"\s%$"ms=s+1	nextgroup=vimSpecFileMod,vimSubst
+syn match	vimSpecFile	"\s%<"ms=s+1,me=e-1	nextgroup=vimSpecFileMod,vimSubst
+syn match	vimSpecFile	"#\d\+\|[#%]<\>"	nextgroup=vimSpecFileMod,vimSubst
+syn match	vimSpecFileMod	"\(:[phtre]\)\+"	contained
 
 " User-Specified Commands: {{{2
 " =======================
-syn cluster vimUserCmdList	contains=vimAddress,vimSyntax,vimHighlight,vimAutoCmd,vimCmplxRepeat,vimComment,vimCtrlChar,vimEscapeBrace,vimFilter,vimFunc,vimFunction,vimIsCommand,vimMark,vimNotation,vimNumber,vimOper,vimRegion,vimRegister,vimLet,vimSet,vimSetEqual,vimSetString,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange,vimSynLine
-syn keyword vimUserCommand	contained	com[mand]
-syn match   vimUserCmd	"\<com\%[mand]!\=\>.*$"	contains=vimUserAttrb,vimUserCommand,@vimUserCmdList
-syn match   vimUserAttrb	contained	"-n\%[args]=[01*?+]"	contains=vimUserAttrbKey,vimOper
-syn match   vimUserAttrb	contained	"-com\%[plete]="	contains=vimUserAttrbKey,vimOper nextgroup=vimUserAttrbCmplt,vimUserCmdError
-syn match   vimUserAttrb	contained	"-ra\%[nge]\(=%\|=\d\+\)\="	contains=vimNumber,vimOper,vimUserAttrbKey
-syn match   vimUserAttrb	contained	"-cou\%[nt]=\d\+"	contains=vimNumber,vimOper,vimUserAttrbKey
-syn match   vimUserAttrb	contained	"-bang\=\>"	contains=vimOper,vimUserAttrbKey
-syn match   vimUserAttrb	contained	"-bar\>"	contains=vimOper,vimUserAttrbKey
-syn match   vimUserAttrb	contained	"-re\%[gister]\>"	contains=vimOper,vimUserAttrbKey
+syn cluster	vimUserCmdList	contains=vimAddress,vimSyntax,vimHighlight,vimAutoCmd,vimCmplxRepeat,vimComment,vimCtrlChar,vimEscapeBrace,vimFilter,vimFunc,vimFuncName,vimFunction,vimFunctionError,vimIsCommand,vimMark,vimNotation,vimNumber,vimOper,vimRegion,vimRegister,vimLet,vimSet,vimSetEqual,vimSetString,vimSpecFile,vimString,vimSubst,vimSubstRep,vimSubstRange,vimSynLine
+syn keyword	vimUserCommand	contained	com[mand]
+syn match	vimUserCmd	"\<com\%[mand]!\=\>.*$"	contains=vimUserAttrb,vimUserCommand,@vimUserCmdList
+syn match	vimUserAttrb	contained	"-n\%[args]=[01*?+]"	contains=vimUserAttrbKey,vimOper
+syn match	vimUserAttrb	contained	"-com\%[plete]="	contains=vimUserAttrbKey,vimOper nextgroup=vimUserAttrbCmplt,vimUserCmdError
+syn match	vimUserAttrb	contained	"-ra\%[nge]\(=%\|=\d\+\)\="	contains=vimNumber,vimOper,vimUserAttrbKey
+syn match	vimUserAttrb	contained	"-cou\%[nt]=\d\+"	contains=vimNumber,vimOper,vimUserAttrbKey
+syn match	vimUserAttrb	contained	"-bang\=\>"	contains=vimOper,vimUserAttrbKey
+syn match	vimUserAttrb	contained	"-bar\>"	contains=vimOper,vimUserAttrbKey
+syn match	vimUserAttrb	contained	"-re\%[gister]\>"	contains=vimOper,vimUserAttrbKey
 if !exists("g:vimsyn_noerror")
- syn match   vimUserCmdError	contained	"\S\+\>"
+ syn match	vimUserCmdError	contained	"\S\+\>"
 endif
 syn case ignore
-syn keyword vimUserAttrbKey   contained	bar	ban[g]	cou[nt]	ra[nge] com[plete]	n[args]	re[gister]
-syn keyword vimUserAttrbCmplt contained	augroup buffer command dir environment event expression file function help highlight mapping menu option something tag tag_listfiles var
-syn keyword vimUserAttrbCmplt contained	custom customlist nextgroup=vimUserAttrbCmpltFunc,vimUserCmdError
-syn match   vimUserAttrbCmpltFunc contained	",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\w*\%(#\u\w*\)\+\|\u\w*\)"hs=s+1 nextgroup=vimUserCmdError
+syn keyword	vimUserAttrbKey   contained	bar	ban[g]	cou[nt]	ra[nge] com[plete]	n[args]	re[gister]
+syn keyword	vimUserAttrbCmplt contained	augroup buffer command dir environment event expression file function help highlight mapping menu option shellcmd something tag tag_listfiles var
+syn keyword	vimUserAttrbCmplt contained	custom customlist nextgroup=vimUserAttrbCmpltFunc,vimUserCmdError
+syn match	vimUserAttrbCmpltFunc contained	",\%([sS]:\|<[sS][iI][dD]>\)\=\%(\h\w*\%(#\u\w*\)\+\|\u\w*\)"hs=s+1 nextgroup=vimUserCmdError
 
 syn case match
-syn match   vimUserAttrbCmplt contained	"custom,\u\w*"
+syn match	vimUserAttrbCmplt contained	"custom,\u\w*"
 
 " Lower Priority Comments: after some vim commands... {{{2
 " =======================
-syn match  vimComment	excludenl +\s"[^\-:.%#=*].*$+lc=1	contains=@vimCommentGroup,vimCommentString
-syn match  vimComment	+\<endif\s\+".*$+lc=5	contains=@vimCommentGroup,vimCommentString
-syn match  vimComment	+\<else\s\+".*$+lc=4	contains=@vimCommentGroup,vimCommentString
-syn region vimCommentString	contained oneline start='\S\s\+"'ms=e	end='"'
+syn match	vimComment	excludenl +\s"[^\-:.%#=*].*$+lc=1	contains=@vimCommentGroup,vimCommentString
+syn match	vimComment	+\<endif\s\+".*$+lc=5	contains=@vimCommentGroup,vimCommentString
+syn match	vimComment	+\<else\s\+".*$+lc=4	contains=@vimCommentGroup,vimCommentString
+syn region	vimCommentString	contained oneline start='\S\s\+"'ms=e	end='"'
 
 " Environment Variables: {{{2
 " =====================
-syn match vimEnvvar	"\$\I\i*"
-syn match vimEnvvar	"\${\I\i*}"
+syn match	vimEnvvar	"\$\I\i*"
+syn match	vimEnvvar	"\${\I\i*}"
 
 " In-String Specials: {{{2
 " Try to catch strings, if nothing else matches (therefore it must precede the others!)
 "  vimEscapeBrace handles ["]  []"] (ie. "s don't terminate string inside [])
-syn region vimEscapeBrace	oneline   contained transparent start="[^\\]\(\\\\\)*\[\zs\^\=\]\=" skip="\\\\\|\\\]" end="]"me=e-1
-syn match  vimPatSepErr	contained	"\\)"
-syn match  vimPatSep	contained	"\\|"
-syn region vimPatSepZone	oneline   contained   matchgroup=vimPatSepZ start="\\%\=\ze(" skip="\\\\" end="\\)\|[^\]['"]"	contains=@vimStringGroup
-syn region vimPatRegion	contained transparent matchgroup=vimPatSepR start="\\[z%]\=(" end="\\)"	contains=@vimSubstList oneline
-syn match  vimNotPatSep	contained	"\\\\"
-syn cluster vimStringGroup	contains=vimEscapeBrace,vimPatSep,vimNotPatSep,vimPatSepErr,vimPatSepZone,@Spell
-syn region vimString	oneline keepend	start=+[^:a-zA-Z>!\\@]"+lc=1 skip=+\\\\\|\\"+ end=+"+	contains=@vimStringGroup
-syn region vimString	oneline keepend	start=+[^:a-zA-Z>!\\@]'+lc=1 end=+'+
-syn region vimString	oneline	start=+=!+lc=1	skip=+\\\\\|\\!+ end=+!+	contains=@vimStringGroup
-syn region vimString	oneline	start="=+"lc=1	skip="\\\\\|\\+" end="+"	contains=@vimStringGroup
-syn region vimString	oneline	start="\s/\s*\A"lc=1 skip="\\\\\|\\+" end="/"	contains=@vimStringGroup
-syn match  vimString	contained	+"[^"]*\\$+	skipnl nextgroup=vimStringCont
-syn match  vimStringCont	contained	+\(\\\\\|.\)\{-}[^\\]"+
+syn region	vimEscapeBrace	oneline   contained transparent start="[^\\]\(\\\\\)*\[\zs\^\=\]\=" skip="\\\\\|\\\]" end="]"me=e-1
+syn match	vimPatSepErr	contained	"\\)"
+syn match	vimPatSep	contained	"\\|"
+syn region	vimPatSepZone	oneline   contained   matchgroup=vimPatSepZ start="\\%\=\ze(" skip="\\\\" end="\\)\|[^\]['"]"	contains=@vimStringGroup
+syn region	vimPatRegion	contained transparent matchgroup=vimPatSepR start="\\[z%]\=(" end="\\)"	contains=@vimSubstList oneline
+syn match	vimNotPatSep	contained	"\\\\"
+syn cluster	vimStringGroup	contains=vimEscapeBrace,vimPatSep,vimNotPatSep,vimPatSepErr,vimPatSepZone,@Spell
+syn region	vimString	oneline keepend	start=+[^:a-zA-Z>!\\@]"+lc=1 skip=+\\\\\|\\"+ end=+"+	contains=@vimStringGroup
+syn region	vimString	oneline keepend	start=+[^:a-zA-Z>!\\@]'+lc=1 end=+'+
+syn region	vimString	oneline	start=+=!+lc=1	skip=+\\\\\|\\!+ end=+!+	contains=@vimStringGroup
+syn region	vimString	oneline	start="=+"lc=1	skip="\\\\\|\\+" end="+"	contains=@vimStringGroup
+syn region	vimString	oneline	start="\s/\s*\A"lc=1 skip="\\\\\|\\+" end="/"	contains=@vimStringGroup
+syn match	vimString	contained	+"[^"]*\\$+	skipnl nextgroup=vimStringCont
+syn match	vimStringCont	contained	+\(\\\\\|.\)\{-}[^\\]"+
 
 " Substitutions: {{{2
 " =============
-syn cluster vimSubstList	contains=vimPatSep,vimPatRegion,vimPatSepErr,vimSubstTwoBS,vimSubstRange,vimNotation
-syn cluster vimSubstRepList	contains=vimSubstSubstr,vimSubstTwoBS,vimNotation
-syn cluster vimSubstList	add=vimCollection
-syn match   vimSubst	"\(:\+\s*\|^\s*\||\s*\)\<s\%[ubstitute][:[:alpha:]]\@!" nextgroup=vimSubstPat
-syn match   vimSubst	"s\%[ubstitute][:[:alpha:]]\@!"	nextgroup=vimSubstPat contained
-syn match   vimSubst	"/\zss\%[ubstitute]\ze/"	nextgroup=vimSubstPat
-syn match   vimSubst1       contained	"s\%[ubstitute]\>"	nextgroup=vimSubstPat
-syn region  vimSubstPat     contained	matchgroup=vimSubstDelim start="\z([^a-zA-Z( \t[\]&]\)"rs=s+1 skip="\\\\\|\\\z1" end="\z1"re=e-1,me=e-1	 contains=@vimSubstList	nextgroup=vimSubstRep4	oneline
-syn region  vimSubstRep4    contained	matchgroup=vimSubstDelim start="\z(.\)" skip="\\\\\|\\\z1" end="\z1" matchgroup=vimNotation end="<[cC][rR]>" contains=@vimSubstRepList	nextgroup=vimSubstFlagErr	oneline
-syn region  vimCollection   contained transparent	start="\\\@<!\[" skip="\\\[" end="\]"	contains=vimCollClass
-syn match   vimCollClassErr contained	"\[:.\{-\}:\]"
-syn match   vimCollClass    contained transparent	"\[:\(alnum\|alpha\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|xdigit\|return\|tab\|escape\|backspace\):\]"
-syn match   vimSubstSubstr  contained	"\\z\=\d"
-syn match   vimSubstTwoBS   contained	"\\\\"
-syn match   vimSubstFlagErr contained	"[^< \t\r|]\+" contains=vimSubstFlags
-syn match   vimSubstFlags   contained	"[&cegiIpr]\+"
+syn cluster	vimSubstList	contains=vimPatSep,vimPatRegion,vimPatSepErr,vimSubstTwoBS,vimSubstRange,vimNotation
+syn cluster	vimSubstRepList	contains=vimSubstSubstr,vimSubstTwoBS,vimNotation
+syn cluster	vimSubstList	add=vimCollection
+syn match	vimSubst	"\(:\+\s*\|^\s*\||\s*\)\<s\%[ubstitute][:[:alpha:]]\@!" nextgroup=vimSubstPat
+syn match	vimSubst	"s\%[ubstitute][:#[:alpha:]]\@!"	nextgroup=vimSubstPat contained
+syn match	vimSubst	"/\zss\%[ubstitute]\ze/"	nextgroup=vimSubstPat
+syn match	vimSubst1       contained	"s\%[ubstitute]\>"	nextgroup=vimSubstPat
+syn region	vimSubstPat     contained	matchgroup=vimSubstDelim start="\z([^a-zA-Z( \t[\]&]\)"rs=s+1 skip="\\\\\|\\\z1" end="\z1"re=e-1,me=e-1	 contains=@vimSubstList	nextgroup=vimSubstRep4	oneline
+syn region	vimSubstRep4    contained	matchgroup=vimSubstDelim start="\z(.\)" skip="\\\\\|\\\z1" end="\z1" matchgroup=vimNotation end="<[cC][rR]>" contains=@vimSubstRepList	nextgroup=vimSubstFlagErr	oneline
+syn region	vimCollection   contained transparent	start="\\\@<!\[" skip="\\\[" end="\]"	contains=vimCollClass
+syn match	vimCollClassErr contained	"\[:.\{-\}:\]"
+syn match	vimCollClass    contained transparent	"\[:\(alnum\|alpha\|blank\|cntrl\|digit\|graph\|lower\|print\|punct\|space\|upper\|xdigit\|return\|tab\|escape\|backspace\):\]"
+syn match	vimSubstSubstr  contained	"\\z\=\d"
+syn match	vimSubstTwoBS   contained	"\\\\"
+syn match	vimSubstFlagErr contained	"[^< \t\r|]\+" contains=vimSubstFlags
+syn match	vimSubstFlags   contained	"[&cegiIpr]\+"
 
 " 'String': {{{2
-syn match  vimString	"[^(,]'[^']\{-}\zs'"
+syn match	vimString	"[^(,]'[^']\{-}\zs'"
 
 " Marks, Registers, Addresses, Filters: {{{2
-syn match  vimMark	"'[a-zA-Z0-9]\ze[-+,!]"	nextgroup=vimOper,vimMarkNumber,vimSubst
-syn match  vimMark	"'[<>]\ze[-+,!]"		nextgroup=vimOper,vimMarkNumber,vimSubst
-syn match  vimMark	",\zs'[<>]\ze"		nextgroup=vimOper,vimMarkNumber,vimSubst
-syn match  vimMark	"[!,:]\zs'[a-zA-Z0-9]"	nextgroup=vimOper,vimMarkNumber,vimSubst
-syn match  vimMark	"\<norm\%[al]\s\zs'[a-zA-Z0-9]"	nextgroup=vimOper,vimMarkNumber,vimSubst
-syn match  vimMarkNumber	"[-+]\d\+"		nextgroup=vimSubst contained contains=vimOper
-syn match  vimPlainMark contained	"'[a-zA-Z0-9]"
-
-syn match  vimRegister	'[^,;]\zs"[a-zA-Z0-9.%#:_\-/]\ze[^a-zA-Z_":]'
-syn match  vimRegister	'\<norm\s\+\zs"[a-zA-Z0-9]'
-syn match  vimRegister	'\<normal\s\+\zs"[a-zA-Z0-9]'
-syn match  vimRegister	'@"'
-syn match  vimPlainRegister contained	'"[a-zA-Z0-9\-:.%#*+=]'
+syn match	vimMark	"'[a-zA-Z0-9]\ze[-+,!]"	nextgroup=vimOper,vimMarkNumber,vimSubst
+syn match	vimMark	"'[<>]\ze[-+,!]"		nextgroup=vimOper,vimMarkNumber,vimSubst
+syn match	vimMark	",\zs'[<>]\ze"		nextgroup=vimOper,vimMarkNumber,vimSubst
+syn match	vimMark	"[!,:]\zs'[a-zA-Z0-9]"	nextgroup=vimOper,vimMarkNumber,vimSubst
+syn match	vimMark	"\<norm\%[al]\s\zs'[a-zA-Z0-9]"	nextgroup=vimOper,vimMarkNumber,vimSubst
+syn match	vimMarkNumber	"[-+]\d\+"		nextgroup=vimSubst contained contains=vimOper
+syn match	vimPlainMark contained	"'[a-zA-Z0-9]"
+
+syn match	vimRegister	'[^,;[{]\zs"[a-zA-Z0-9.%#:_\-/]\ze[^a-zA-Z_":]'
+syn match	vimRegister	'\<norm\s\+\zs"[a-zA-Z0-9]'
+syn match	vimRegister	'\<normal\s\+\zs"[a-zA-Z0-9]'
+syn match	vimRegister	'@"'
+syn match	vimPlainRegister contained	'"[a-zA-Z0-9\-:.%#*+=]'
 
-syn match  vimAddress	",\zs[.$]"	skipwhite nextgroup=vimSubst1
-syn match  vimAddress	"%\ze\a"	skipwhite nextgroup=vimString,vimSubst1
+syn match	vimAddress	",\zs[.$]"	skipwhite nextgroup=vimSubst1
+syn match	vimAddress	"%\ze\a"	skipwhite nextgroup=vimString,vimSubst1
 
-syn match  vimFilter contained	"^!.\{-}\(|\|$\)"		contains=vimSpecFile
-syn match  vimFilter contained	"\A!.\{-}\(|\|$\)"ms=s+1	contains=vimSpecFile
+syn match	vimFilter contained	"^!.\{-}\(|\|$\)"		contains=vimSpecFile
+syn match	vimFilter contained	"\A!.\{-}\(|\|$\)"ms=s+1	contains=vimSpecFile
 
 " Complex repeats (:h complex-repeat) {{{2
-"syn match  vimCmplxRepeat	'[^a-zA-Z_/\\()]q[0-9a-zA-Z"]'lc=1
-"syn match  vimCmplxRepeat	'@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\)'
+syn match	vimCmplxRepeat	'[^a-zA-Z_/\\()]q[0-9a-zA-Z"]'lc=1
+syn match	vimCmplxRepeat	'@[0-9a-z".=@:]\ze\($\|[^a-zA-Z]\)'
 
 " Set command and associated set-options (vimOptions) with comment {{{2
-syn region vimSet		matchgroup=vimCommand start="\<\%(setl\%[ocal]\|setg\%[lobal]\|set\)\>" skip="\%(\\\\\)*\\." end="$" matchgroup=vimNotation end="<[cC][rR]>" keepend oneline contains=vimSetEqual,vimOption,vimErrSetting,vimComment,vimSetString,vimSetMod
-syn region vimSetEqual  contained	start="="	skip="\\\\\|\\\s" end="[| \t]\|$"me=e-1 contains=vimCtrlChar,vimSetSep,vimNotation oneline
-syn region vimSetString contained	start=+="+hs=s+1	skip=+\\\\\|\\"+  end=+"+	contains=vimCtrlChar
-syn match  vimSetSep    contained	"[,:]"
-syn match  vimSetMod	contained	"&vim\|[!&]\|all&"
+syn region	vimSet		matchgroup=vimCommand start="\<\%(setl\%[ocal]\|setg\%[lobal]\|set\)\>" skip="\%(\\\\\)*\\." end="$" matchgroup=vimNotation end="<[cC][rR]>" keepend oneline contains=vimSetEqual,vimOption,vimErrSetting,vimComment,vimSetString,vimSetMod
+syn region	vimSetEqual	contained	start="[=:]\|[-+^]=" skip="\\\\\|\\\s" end="[| \t]\|$"me=e-1 contains=vimCtrlChar,vimSetSep,vimNotation oneline
+syn region	vimSetString	contained	start=+="+hs=s+1	skip=+\\\\\|\\"+  end=+"+	contains=vimCtrlChar
+syn match	vimSetSep	contained	"[,:]"
+syn match	vimSetMod	contained	"&vim\=\|[!&?<]\|all&"
 
 " Let {{{2
 " ===
-syn keyword vimLet	let	unl[et]	skipwhite nextgroup=vimVar
+syn keyword	vimLet	let	unl[et]	skipwhite nextgroup=vimVar,vimFuncVar
 
 " Abbreviations {{{2
 " =============
@@ -298,232 +297,235 @@
 
 " Autocmd {{{2
 " =======
-syn match   vimAutoEventList	contained	"\(!\s\+\)\=\(\a\+,\)*\a\+"	contains=vimAutoEvent nextgroup=vimAutoCmdSpace
-syn match   vimAutoCmdSpace	contained	"\s\+"	nextgroup=vimAutoCmdSfxList
-syn match   vimAutoCmdSfxList	contained	"\S*"
-syn keyword vimAutoCmd	au[tocmd] do[autocmd] doautoa[ll]	skipwhite nextgroup=vimAutoEventList
+syn match	vimAutoEventList	contained	"\(!\s\+\)\=\(\a\+,\)*\a\+"	contains=vimAutoEvent nextgroup=vimAutoCmdSpace
+syn match	vimAutoCmdSpace	contained	"\s\+"	nextgroup=vimAutoCmdSfxList
+syn match	vimAutoCmdSfxList	contained	"\S*"
+syn keyword	vimAutoCmd	au[tocmd] do[autocmd] doautoa[ll]	skipwhite nextgroup=vimAutoEventList
 
 " Echo and Execute -- prefer strings! {{{2
 " ================
-syn region  vimEcho	oneline excludenl matchgroup=vimCommand start="\<ec\%[ho]\>" skip="\(\\\\\)*\\|" end="$\||" contains=vimFunc,vimString,varVar
-syn region  vimExecute	oneline excludenl matchgroup=vimCommand start="\<exe\%[cute]\>" skip="\(\\\\\)*\\|" end="$\||\|<[cC][rR]>" contains=vimIsCommand,vimString,vimOper,vimVar,vimNotation,vimOperParen
-syn match   vimEchoHL	"echohl\="	skipwhite nextgroup=vimGroup,vimHLGroup,vimEchoHLNone
+syn region	vimEcho	oneline excludenl matchgroup=vimCommand start="\<ec\%[ho]\>" skip="\(\\\\\)*\\|" end="$\||" contains=vimFunc,vimFuncVar,vimString,vimVar
+syn region	vimExecute	oneline excludenl matchgroup=vimCommand start="\<exe\%[cute]\>" skip="\(\\\\\)*\\|" end="$\||\|<[cC][rR]>" contains=vimFuncVar,vimIsCommand,vimOper,vimNotation,vimOperParen,vimString,vimVar
+syn match	vimEchoHL	"echohl\="	skipwhite nextgroup=vimGroup,vimHLGroup,vimEchoHLNone
 syn case ignore
-syn keyword vimEchoHLNone	none
+syn keyword	vimEchoHLNone	none
 syn case match
 
 " Maps {{{2
 " ====
-syn match   vimMap	"\<map\>!\=\ze\s*[^(]" skipwhite nextgroup=vimMapMod,vimMapLhs
-syn keyword vimMap	cm[ap] cno[remap] im[ap] ino[remap] ln[oremap] nm[ap] nn[oremap] no[remap] om[ap] ono[remap] snor[emap] vm[ap] vn[oremap] xn[oremap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs
-syn keyword vimMap	mapc[lear]
-syn match   vimMapLhs    contained	"\S\+"	contains=vimNotation,vimCtrlChar skipwhite nextgroup=vimMapRhs
-syn match   vimMapBang   contained	"!"	skipwhite nextgroup=vimMapMod,vimMapLhs
-syn match   vimMapMod    contained	"\c<\(buffer\|expr\|\(local\)\=leader\|plug\|script\|sid\|unique\|silent\)\+>" contains=vimMapModKey,vimMapModErr skipwhite nextgroup=vimMapMod,vimMapLhs
-syn match   vimMapRhs    contained  ".*" contains=vimNotation,vimCtrlChar skipnl nextgroup=vimMapRhsExtend
-syn match   vimMapRhsExtend contained "^\s*\\.*$" contains=vimContinue
+syn match	vimMap		"\<map\>!\=\ze\s*[^(]" skipwhite nextgroup=vimMapMod,vimMapLhs
+syn keyword	vimMap		cm[ap] cno[remap] im[ap] ino[remap] lm[ap] ln[oremap] nm[ap] nn[oremap] no[remap] om[ap] ono[remap] smap snor[emap] vm[ap] vn[oremap] xm[ap] xn[oremap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs
+syn keyword	vimMap		mapc[lear]
+syn keyword	vimUnmap		cu[nmap] iu[nmap] lu[nmap] nun[map] ou[nmap] sunm[ap] unm[ap] unm[ap] vu[nmap] xu[nmap] skipwhite nextgroup=vimMapBang,vimMapMod,vimMapLhs
+syn match	vimMapLhs	contained	"\S\+"			contains=vimNotation,vimCtrlChar skipwhite nextgroup=vimMapRhs
+syn match	vimMapBang	contained	"!"			skipwhite nextgroup=vimMapMod,vimMapLhs
+syn match	vimMapMod	contained	"\c<\(buffer\|expr\|\(local\)\=leader\|plug\|script\|sid\|unique\|silent\)\+>" contains=vimMapModKey,vimMapModErr skipwhite nextgroup=vimMapMod,vimMapLhs
+syn match	vimMapRhs	contained	".*" contains=vimNotation,vimCtrlChar	skipnl nextgroup=vimMapRhsExtend
+syn match	vimMapRhsExtend	contained	"^\s*\\.*$"			contains=vimContinue
 syn case ignore
-syn keyword vimMapModKey contained	buffer	expr	leader	localleader	plug	script	sid	silent	unique
+syn keyword	vimMapModKey	contained	buffer	expr	leader	localleader	plug	script	sid	silent	unique
 syn case match
 
 " Menus {{{2
 " =====
-syn cluster vimMenuList contains=vimMenuBang,vimMenuPriority,vimMenuName,vimMenuMod
-syn keyword vimCommand	am[enu] an[oremenu] aun[menu] cme[nu] cnoreme[nu] cunme[nu] ime[nu] inoreme[nu] iunme[nu] me[nu] nme[nu] nnoreme[nu] noreme[nu] nunme[nu] ome[nu] onoreme[nu] ounme[nu] unme[nu] vme[nu] vnoreme[nu] vunme[nu] skipwhite nextgroup=@vimMenuList
-syn match   vimMenuName	"[^ \t\\<]\+"	contained nextgroup=vimMenuNameMore,vimMenuMap
-syn match   vimMenuPriority	"\d\+\(\.\d\+\)*"	contained skipwhite nextgroup=vimMenuName
-syn match   vimMenuNameMore	"\c\\\s\|<tab>\|\\\."	contained nextgroup=vimMenuName,vimMenuNameMore contains=vimNotation
-syn match   vimMenuMod    contained	"\c<\(script\|silent\)\+>"  skipwhite contains=vimMapModKey,vimMapModErr nextgroup=@vimMenuList
-syn match   vimMenuMap	"\s"	contained skipwhite nextgroup=vimMenuRhs
-syn match   vimMenuRhs	".*$"	contained contains=vimString,vimComment,vimIsCommand
-syn match   vimMenuBang	"!"	contained skipwhite nextgroup=@vimMenuList
+syn cluster	vimMenuList contains=vimMenuBang,vimMenuPriority,vimMenuName,vimMenuMod
+syn keyword	vimCommand	am[enu] an[oremenu] aun[menu] cme[nu] cnoreme[nu] cunme[nu] ime[nu] inoreme[nu] iunme[nu] me[nu] nme[nu] nnoreme[nu] noreme[nu] nunme[nu] ome[nu] onoreme[nu] ounme[nu] unme[nu] vme[nu] vnoreme[nu] vunme[nu] skipwhite nextgroup=@vimMenuList
+syn match	vimMenuName	"[^ \t\\<]\+"	contained nextgroup=vimMenuNameMore,vimMenuMap
+syn match	vimMenuPriority	"\d\+\(\.\d\+\)*"	contained skipwhite nextgroup=vimMenuName
+syn match	vimMenuNameMore	"\c\\\s\|<tab>\|\\\."	contained nextgroup=vimMenuName,vimMenuNameMore contains=vimNotation
+syn match	vimMenuMod    contained	"\c<\(script\|silent\)\+>"  skipwhite contains=vimMapModKey,vimMapModErr nextgroup=@vimMenuList
+syn match	vimMenuMap	"\s"	contained skipwhite nextgroup=vimMenuRhs
+syn match	vimMenuRhs	".*$"	contained contains=vimString,vimComment,vimIsCommand
+syn match	vimMenuBang	"!"	contained skipwhite nextgroup=@vimMenuList
 
 " Angle-Bracket Notation (tnx to Michael Geddes) {{{2
 " ======================
 syn case ignore
-syn match vimNotation	"\(\\\|<lt>\)\=<\([scamd]-\)\{0,4}x\=\(f\d\{1,2}\|[^ \t:]\|cr\|lf\|linefeed\|return\|k\=del\%[ete]\|bs\|backspace\|tab\|esc\|right\|left\|help\|undo\|insert\|ins\|k\=home\|k\=end\|kplus\|kminus\|kdivide\|kmultiply\|kenter\|space\|k\=\(page\)\=\(\|down\|up\)\)>" contains=vimBracket
-syn match vimNotation	"\(\\\|<lt>\)\=<\([scam2-4]-\)\{0,4}\(right\|left\|middle\)\(mouse\)\=\(drag\|release\)\=>"	contains=vimBracket
-syn match vimNotation	"\(\\\|<lt>\)\=<\(bslash\|plug\|sid\|space\|bar\|nop\|nul\|lt\)>"		contains=vimBracket
-syn match vimNotation	'\(\\\|<lt>\)\=<C-R>[0-9a-z"%#:.\-=]'he=e-1			contains=vimBracket
-syn match vimNotation	'\(\\\|<lt>\)\=<\%(q-\)\=\(line[12]\|count\|bang\|reg\|args\|f-args\|lt\)>'	contains=vimBracket
-syn match vimNotation	"\(\\\|<lt>\)\=<\([cas]file\|abuf\|amatch\|cword\|cWORD\|client\)>"		contains=vimBracket
-syn match vimBracket contained	"[\\<>]"
+syn match	vimNotation	"\(\\\|<lt>\)\=<\([scamd]-\)\{0,4}x\=\(f\d\{1,2}\|[^ \t:]\|cr\|lf\|linefeed\|return\|k\=del\%[ete]\|bs\|backspace\|tab\|esc\|right\|left\|help\|undo\|insert\|ins\|k\=home\|k\=end\|kplus\|kminus\|kdivide\|kmultiply\|kenter\|space\|k\=\(page\)\=\(\|down\|up\)\)>" contains=vimBracket
+syn match	vimNotation	"\(\\\|<lt>\)\=<\([scam2-4]-\)\{0,4}\(right\|left\|middle\)\(mouse\)\=\(drag\|release\)\=>"	contains=vimBracket
+syn match	vimNotation	"\(\\\|<lt>\)\=<\(bslash\|plug\|sid\|space\|bar\|nop\|nul\|lt\)>"		contains=vimBracket
+syn match	vimNotation	'\(\\\|<lt>\)\=<C-R>[0-9a-z"%#:.\-=]'he=e-1			contains=vimBracket
+syn match	vimNotation	'\(\\\|<lt>\)\=<\%(q-\)\=\(line[12]\|count\|bang\|reg\|args\|f-args\|lt\)>'	contains=vimBracket
+syn match	vimNotation	"\(\\\|<lt>\)\=<\([cas]file\|abuf\|amatch\|cword\|cWORD\|client\)>"		contains=vimBracket
+syn match	vimBracket contained	"[\\<>]"
 syn case match
 
 " User Function Highlighting {{{2
 " (following Gautam Iyer's suggestion)
 " ==========================
-syn match vimFunc		"\%(\%([gGsS]:\|<[sS][iI][dD]>\)\=\%([a-zA-Z0-9_.]\+\.\)*\I[a-zA-Z0-9_.]*\)\ze\s*("		contains=vimFuncName,vimUserFunc,vimExecute
-syn match vimUserFunc contained	"\%(\%([gGsS]:\|<[sS][iI][dD]>\)\=\%([a-zA-Z0-9_.]\+\.\)*\I[a-zA-Z0-9_.]*\)\|\<\u[a-zA-Z0-9.]*\>\|\<if\>"	contains=vimNotation
-syn match vimNotFunc	"\<if\>\|\<el\%[seif]\>"
+syn match vimFunc		"\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%([a-zA-Z0-9_.]\+\.\)*\I[a-zA-Z0-9_.]*\)\ze\s*("		contains=vimFuncName,vimUserFunc,vimExecute
+syn match vimUserFunc contained	"\%(\%([sSgGbBwWtTlL]:\|<[sS][iI][dD]>\)\=\%([a-zA-Z0-9_.]\+\.\)*\I[a-zA-Z0-9_.]*\)\|\<\u[a-zA-Z0-9.]*\>\|\<if\>"	contains=vimNotation
+syn match vimNotFunc	"\<if\>\|\<el\%[seif]\>\|\<return\>\|\<while\>"
 
 " Errors And Warnings: {{{2
 " ====================
 if !exists("g:vimsyn_noerror")
- syn match vimElseIfErr	"\<else\s\+if\>"
- syn match vimBufnrWarn	/\<bufnr\s*(\s*["']\.['"]\s*)/
+ syn match	vimFunctionError	"\s\zs[a-z0-9]\i\{-}\ze\s*("			contained contains=vimFuncKey,vimFuncBlank
+" syn match	vimFunctionError	"\s\zs\%(<[sS][iI][dD]>\|[sSgGbBwWtTlL]:\)[0-9]\i\{-}\ze\s*("	contained contains=vimFuncKey,vimFuncBlank
+ syn match	vimElseIfErr	"\<else\s\+if\>"
+ syn match	vimBufnrWarn	/\<bufnr\s*(\s*["']\.['"]\s*)/
 endif
 
 " Norm {{{2
 " ====
-syn match vimNorm		"\<norm\%[al]!\=" skipwhite nextgroup=vimNormCmds
-syn match vimNormCmds contained	".*$"
+syn match	vimNorm		"\<norm\%[al]!\=" skipwhite nextgroup=vimNormCmds
+syn match	vimNormCmds contained	".*$"
 
 " Syntax {{{2
 "=======
-syn match   vimGroupList	contained	"@\=[^ \t,]*"	contains=vimGroupSpecial,vimPatSep
-syn match   vimGroupList	contained	"@\=[^ \t,]*,"	nextgroup=vimGroupList contains=vimGroupSpecial,vimPatSep
-syn keyword vimGroupSpecial	contained	ALL	ALLBUT
-if !exists("g:vimsyn_noerror")
- syn match   vimSynError	contained	"\i\+"
- syn match   vimSynError	contained	"\i\+="	nextgroup=vimGroupList
-endif
-syn match   vimSynContains	contained	"\<contain\(s\|edin\)="	nextgroup=vimGroupList
-syn match   vimSynKeyContainedin	contained	"\<containedin="	nextgroup=vimGroupList
-syn match   vimSynNextgroup	contained	"nextgroup="	nextgroup=vimGroupList
+syn match	vimGroupList	contained	"@\=[^ \t,]*"	contains=vimGroupSpecial,vimPatSep
+syn match	vimGroupList	contained	"@\=[^ \t,]*,"	nextgroup=vimGroupList contains=vimGroupSpecial,vimPatSep
+syn keyword	vimGroupSpecial	contained	ALL	ALLBUT	CONTAINED	TOP
+if !exists("g:vimsyn_noerror")
+ syn match	vimSynError	contained	"\i\+"
+ syn match	vimSynError	contained	"\i\+="	nextgroup=vimGroupList
+endif
+syn match	vimSynContains	contained	"\<contain\(s\|edin\)="	nextgroup=vimGroupList
+syn match	vimSynKeyContainedin	contained	"\<containedin="	nextgroup=vimGroupList
+syn match	vimSynNextgroup	contained	"nextgroup="	nextgroup=vimGroupList
 
-syn match   vimSyntax	"\<sy\%[ntax]\>"	contains=vimCommand skipwhite nextgroup=vimSynType,vimComment
-syn match   vimAuSyntax	contained	"\s+sy\%[ntax]"	contains=vimCommand skipwhite nextgroup=vimSynType,vimComment
+syn match	vimSyntax	"\<sy\%[ntax]\>"	contains=vimCommand skipwhite nextgroup=vimSynType,vimComment
+syn match	vimAuSyntax	contained	"\s+sy\%[ntax]"	contains=vimCommand skipwhite nextgroup=vimSynType,vimComment
 
 " Syntax: case {{{2
-syn keyword vimSynType	contained	case	skipwhite nextgroup=vimSynCase,vimSynCaseError
+syn keyword	vimSynType	contained	case	skipwhite nextgroup=vimSynCase,vimSynCaseError
 if !exists("g:vimsyn_noerror")
- syn match   vimSynCaseError	contained	"\i\+"
+ syn match	vimSynCaseError	contained	"\i\+"
 endif
-syn keyword vimSynCase	contained	ignore	match
+syn keyword	vimSynCase	contained	ignore	match
 
 " Syntax: clear {{{2
-syn keyword vimSynType	contained	clear	skipwhite nextgroup=vimGroupList
+syn keyword	vimSynType	contained	clear	skipwhite nextgroup=vimGroupList
 
 " Syntax: cluster {{{2
-syn keyword vimSynType	contained	cluster	skipwhite nextgroup=vimClusterName
-syn region  vimClusterName	contained	matchgroup=vimGroupName start="\k\+" skip="\\\\\|\\|" matchgroup=vimSep end="$\||" contains=vimGroupAdd,vimGroupRem,vimSynContains,vimSynError
-syn match   vimGroupAdd	contained	"add="	nextgroup=vimGroupList
-syn match   vimGroupRem	contained	"remove="	nextgroup=vimGroupList
+syn keyword	vimSynType	contained	cluster	skipwhite nextgroup=vimClusterName
+syn region	vimClusterName	contained	matchgroup=vimGroupName start="\k\+" skip="\\\\\|\\|" matchgroup=vimSep end="$\||" contains=vimGroupAdd,vimGroupRem,vimSynContains,vimSynError
+syn match	vimGroupAdd	contained	"add="	nextgroup=vimGroupList
+syn match	vimGroupRem	contained	"remove="	nextgroup=vimGroupList
 
 " Syntax: include {{{2
-syn keyword vimSynType	contained	include	skipwhite nextgroup=vimGroupList
+syn keyword	vimSynType	contained	include	skipwhite nextgroup=vimGroupList
 
 " Syntax: keyword {{{2
-syn cluster vimSynKeyGroup	contains=vimSynNextgroup,vimSynKeyOpt,vimSynKeyContainedin
-syn keyword vimSynType	contained	keyword	skipwhite nextgroup=vimSynKeyRegion
-syn region  vimSynKeyRegion	contained oneline keepend	matchgroup=vimGroupName start="\k\+" skip="\\\\\|\\|" matchgroup=vimSep end="|\|$" contains=@vimSynKeyGroup
-syn match   vimSynKeyOpt	contained	"\<\(conceal\|contained\|transparent\|skipempty\|skipwhite\|skipnl\)\>"
+syn cluster	vimSynKeyGroup	contains=vimSynNextgroup,vimSynKeyOpt,vimSynKeyContainedin
+syn keyword	vimSynType	contained	keyword	skipwhite nextgroup=vimSynKeyRegion
+syn region	vimSynKeyRegion	contained oneline keepend	matchgroup=vimGroupName start="\k\+" skip="\\\\\|\\|" matchgroup=vimSep end="|\|$" contains=@vimSynKeyGroup
+syn match	vimSynKeyOpt	contained	"\<\(conceal\|contained\|transparent\|skipempty\|skipwhite\|skipnl\)\>"
 
 " Syntax: match {{{2
-syn cluster vimSynMtchGroup	contains=vimMtchComment,vimSynContains,vimSynError,vimSynMtchOpt,vimSynNextgroup,vimSynRegPat,vimNotation
-syn keyword vimSynType	contained	match	skipwhite nextgroup=vimSynMatchRegion
-syn region  vimSynMatchRegion	contained keepend	matchgroup=vimGroupName start="\k\+" matchgroup=vimSep end="|\|$" contains=@vimSynMtchGroup
-syn match   vimSynMtchOpt	contained	"\<\(conceal\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|extend\|skipnl\|fold\)\>"
+syn cluster	vimSynMtchGroup	contains=vimMtchComment,vimSynContains,vimSynError,vimSynMtchOpt,vimSynNextgroup,vimSynRegPat,vimNotation
+syn keyword	vimSynType	contained	match	skipwhite nextgroup=vimSynMatchRegion
+syn region	vimSynMatchRegion	contained keepend	matchgroup=vimGroupName start="\k\+" matchgroup=vimSep end="|\|$" contains=@vimSynMtchGroup
+syn match	vimSynMtchOpt	contained	"\<\(conceal\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|extend\|skipnl\|fold\)\>"
 if has("conceal")
- syn match   vimSynMtchOpt	contained	"\<cchar="	nextgroup=VimSynMtchCchar
- syn match   vimSynMtchCchar	contained	"."
+ syn match	vimSynMtchOpt	contained	"\<cchar="	nextgroup=VimSynMtchCchar
+ syn match	vimSynMtchCchar	contained	"\S"
 endif
 
 " Syntax: off and on {{{2
-syn keyword vimSynType	contained	enable	list	manual	off	on	reset
+syn keyword	vimSynType	contained	enable	list	manual	off	on	reset
 
 " Syntax: region {{{2
-syn cluster vimSynRegPatGroup	contains=vimPatSep,vimNotPatSep,vimSynPatRange,vimSynNotPatRange,vimSubstSubstr,vimPatRegion,vimPatSepErr,vimNotation
-syn cluster vimSynRegGroup	contains=vimSynContains,vimSynNextgroup,vimSynRegOpt,vimSynReg,vimSynMtchGrp
-syn keyword vimSynType	contained	region	skipwhite nextgroup=vimSynRegion
-syn region  vimSynRegion	contained keepend	matchgroup=vimGroupName start="\k\+" skip="\\\\\|\\|" end="|\|$" contains=@vimSynRegGroup
-syn match   vimSynRegOpt	contained	"\<\(conceal\(ends\)\=\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|keepend\|oneline\|extend\|skipnl\|fold\)\>"
-syn match   vimSynReg	contained	"\(start\|skip\|end\)="he=e-1	nextgroup=vimSynRegPat
-syn match   vimSynMtchGrp	contained	"matchgroup="	nextgroup=vimGroup,vimHLGroup
-syn region  vimSynRegPat	contained extend	start="\z([-`~!@#$%^&*_=+;:'",./?]\)"  skip="\\\\\|\\\z1"  end="\z1"  contains=@vimSynRegPatGroup skipwhite nextgroup=vimSynPatMod,vimSynReg
-syn match   vimSynPatMod	contained	"\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\="
-syn match   vimSynPatMod	contained	"\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\=," nextgroup=vimSynPatMod
-syn match   vimSynPatMod	contained	"lc=\d\+"
-syn match   vimSynPatMod	contained	"lc=\d\+," nextgroup=vimSynPatMod
-syn region  vimSynPatRange	contained	start="\["	skip="\\\\\|\\]"   end="]"
-syn match   vimSynNotPatRange	contained	"\\\\\|\\\["
-syn match   vimMtchComment	contained	'"[^"]\+$'
+syn cluster	vimSynRegPatGroup	contains=vimPatSep,vimNotPatSep,vimSynPatRange,vimSynNotPatRange,vimSubstSubstr,vimPatRegion,vimPatSepErr,vimNotation
+syn cluster	vimSynRegGroup	contains=vimSynContains,vimSynNextgroup,vimSynRegOpt,vimSynReg,vimSynMtchGrp
+syn keyword	vimSynType	contained	region	skipwhite nextgroup=vimSynRegion
+syn region	vimSynRegion	contained keepend	matchgroup=vimGroupName start="\k\+" skip="\\\\\|\\|" end="|\|$" contains=@vimSynRegGroup
+syn match	vimSynRegOpt	contained	"\<\(conceal\(ends\)\=\|transparent\|contained\|excludenl\|skipempty\|skipwhite\|display\|keepend\|oneline\|extend\|skipnl\|fold\)\>"
+syn match	vimSynReg	contained	"\(start\|skip\|end\)="he=e-1	nextgroup=vimSynRegPat
+syn match	vimSynMtchGrp	contained	"matchgroup="	nextgroup=vimGroup,vimHLGroup
+syn region	vimSynRegPat	contained extend	start="\z([-`~!@#$%^&*_=+;:'",./?]\)"  skip="\\\\\|\\\z1"  end="\z1"  contains=@vimSynRegPatGroup skipwhite nextgroup=vimSynPatMod,vimSynReg
+syn match	vimSynPatMod	contained	"\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\="
+syn match	vimSynPatMod	contained	"\(hs\|ms\|me\|hs\|he\|rs\|re\)=[se]\([-+]\d\+\)\=," nextgroup=vimSynPatMod
+syn match	vimSynPatMod	contained	"lc=\d\+"
+syn match	vimSynPatMod	contained	"lc=\d\+," nextgroup=vimSynPatMod
+syn region	vimSynPatRange	contained	start="\["	skip="\\\\\|\\]"   end="]"
+syn match	vimSynNotPatRange	contained	"\\\\\|\\\["
+syn match	vimMtchComment	contained	'"[^"]\+$'
 
 " Syntax: sync {{{2
 " ============
 syn keyword vimSynType	contained	sync	skipwhite	nextgroup=vimSyncC,vimSyncLines,vimSyncMatch,vimSyncError,vimSyncLinebreak,vimSyncLinecont,vimSyncRegion
 if !exists("g:vimsyn_noerror")
- syn match   vimSyncError	contained	"\i\+"
+ syn match	vimSyncError	contained	"\i\+"
 endif
-syn keyword vimSyncC	contained	ccomment	clear	fromstart
-syn keyword vimSyncMatch	contained	match	skipwhite	nextgroup=vimSyncGroupName
-syn keyword vimSyncRegion	contained	region	skipwhite	nextgroup=vimSynReg
-syn match   vimSyncLinebreak	contained	"\<linebreaks="	skipwhite	nextgroup=vimNumber
-syn keyword vimSyncLinecont	contained	linecont	skipwhite	nextgroup=vimSynRegPat
-syn match   vimSyncLines	contained	"\(min\|max\)\=lines="	nextgroup=vimNumber
-syn match   vimSyncGroupName	contained	"\k\+"	skipwhite	nextgroup=vimSyncKey
-syn match   vimSyncKey	contained	"\<groupthere\|grouphere\>"	skipwhite nextgroup=vimSyncGroup
-syn match   vimSyncGroup	contained	"\k\+"	skipwhite	nextgroup=vimSynRegPat,vimSyncNone
-syn keyword vimSyncNone	contained	NONE
+syn keyword	vimSyncC	contained	ccomment	clear	fromstart
+syn keyword	vimSyncMatch	contained	match	skipwhite	nextgroup=vimSyncGroupName
+syn keyword	vimSyncRegion	contained	region	skipwhite	nextgroup=vimSynReg
+syn match	vimSyncLinebreak	contained	"\<linebreaks="	skipwhite	nextgroup=vimNumber
+syn keyword	vimSyncLinecont	contained	linecont	skipwhite	nextgroup=vimSynRegPat
+syn match	vimSyncLines	contained	"\(min\|max\)\=lines="	nextgroup=vimNumber
+syn match	vimSyncGroupName	contained	"\k\+"	skipwhite	nextgroup=vimSyncKey
+syn match	vimSyncKey	contained	"\<groupthere\|grouphere\>"	skipwhite nextgroup=vimSyncGroup
+syn match	vimSyncGroup	contained	"\k\+"	skipwhite	nextgroup=vimSynRegPat,vimSyncNone
+syn keyword	vimSyncNone	contained	NONE
 
 " Additional IsCommand, here by reasons of precedence {{{2
 " ====================
-syn match vimIsCommand	"<Bar>\s*\a\+"	transparent contains=vimCommand,vimNotation
+syn match	vimIsCommand	"<Bar>\s*\a\+"	transparent contains=vimCommand,vimNotation
 
 " Highlighting {{{2
 " ============
-syn cluster vimHighlightCluster	contains=vimHiLink,vimHiClear,vimHiKeyList,vimComment
-syn match   vimHighlight	"\<hi\%[ghlight]\>" skipwhite nextgroup=vimHiBang,@vimHighlightCluster
-syn match   vimHiBang	contained	"!"	  skipwhite nextgroup=@vimHighlightCluster
-
-syn match   vimHiGroup	contained	"\i\+"
+syn cluster	vimHighlightCluster		contains=vimHiLink,vimHiClear,vimHiKeyList,vimComment
+syn match	vimHighlight	"\<hi\%[ghlight]\>"	skipwhite nextgroup=vimHiBang,@vimHighlightCluster
+syn match	vimHiBang	contained	"!"	skipwhite nextgroup=@vimHighlightCluster
+       	
+syn match	vimHiGroup	contained	"\i\+"
 syn case ignore
-syn keyword vimHiAttrib	contained	none bold inverse italic reverse standout underline undercurl
-syn keyword vimFgBgAttrib	contained	none bg background fg foreground
+syn keyword	vimHiAttrib	contained	none bold inverse italic reverse standout underline undercurl
+syn keyword	vimFgBgAttrib	contained	none bg background fg foreground
 syn case match
-syn match   vimHiAttribList	contained	"\i\+"	contains=vimHiAttrib
-syn match   vimHiAttribList	contained	"\i\+,"he=e-1	contains=vimHiAttrib nextgroup=vimHiAttribList
+syn match	vimHiAttribList	contained	"\i\+"	contains=vimHiAttrib
+syn match	vimHiAttribList	contained	"\i\+,"he=e-1	contains=vimHiAttrib nextgroup=vimHiAttribList
 syn case ignore
-syn keyword vimHiCtermColor	contained	black blue brown cyan darkBlue darkcyan darkgray darkgreen darkgrey darkmagenta darkred darkyellow gray green grey lightblue lightcyan lightgray lightgreen lightgrey lightmagenta lightred magenta red white yellow
+syn keyword	vimHiCtermColor	contained	black blue brown cyan darkBlue darkcyan darkgray darkgreen darkgrey darkmagenta darkred darkyellow gray green grey lightblue lightcyan lightgray lightgreen lightgrey lightmagenta lightred magenta red white yellow
 
 syn case match
-syn match   vimHiFontname	contained	"[a-zA-Z\-*]\+"
-syn match   vimHiGuiFontname	contained	"'[a-zA-Z\-* ]\+'"
-syn match   vimHiGuiRgb	contained	"#\x\{6}"
+syn match	vimHiFontname	contained	"[a-zA-Z\-*]\+"
+syn match	vimHiGuiFontname	contained	"'[a-zA-Z\-* ]\+'"
+syn match	vimHiGuiRgb	contained	"#\x\{6}"
 if !exists("g:vimsyn_noerror")
- syn match   vimHiCtermError	contained	"[^0-9]\i*"
+ syn match	vimHiCtermError	contained	"[^0-9]\i*"
 endif
 
 " Highlighting: hi group key=arg ... {{{2
-syn cluster vimHiCluster contains=vimHiGroup,vimHiTerm,vimHiCTerm,vimHiStartStop,vimHiCtermFgBg,vimHiGui,vimHiGuiFont,vimHiGuiFgBg,vimHiKeyError,vimNotation
-syn region vimHiKeyList	contained oneline start="\i\+" skip="\\\\\|\\|" end="$\||"	contains=@vimHiCluster
+syn cluster	vimHiCluster contains=vimGroup,vimHiGroup,vimHiTerm,vimHiCTerm,vimHiStartStop,vimHiCtermFgBg,vimHiGui,vimHiGuiFont,vimHiGuiFgBg,vimHiKeyError,vimNotation
+syn region	vimHiKeyList	contained oneline start="\i\+" skip="\\\\\|\\|" end="$\||"	contains=@vimHiCluster
 if !exists("g:vimsyn_noerror")
- syn match  vimHiKeyError	contained	"\i\+="he=e-1
+ syn match	vimHiKeyError	contained	"\i\+="he=e-1
 endif
-syn match  vimHiTerm	contained	"\cterm="he=e-1		nextgroup=vimHiAttribList
-syn match  vimHiStartStop	contained	"\c\(start\|stop\)="he=e-1	nextgroup=vimHiTermcap,vimOption
-syn match  vimHiCTerm	contained	"\ccterm="he=e-1		nextgroup=vimHiAttribList
-syn match  vimHiCtermFgBg	contained	"\ccterm[fb]g="he=e-1	nextgroup=vimNumber,vimHiCtermColor,vimFgBgAttrib,vimHiCtermError
-syn match  vimHiGui	contained	"\cgui="he=e-1		nextgroup=vimHiAttribList
-syn match  vimHiGuiFont	contained	"\cfont="he=e-1		nextgroup=vimHiFontname
-syn match  vimHiGuiFgBg	contained	"\cgui\%([fb]g\|sp\)="he=e-1	nextgroup=vimHiGroup,vimHiGuiFontname,vimHiGuiRgb,vimFgBgAttrib
-syn match  vimHiTermcap	contained	"\S\+"		contains=vimNotation
+syn match	vimHiTerm	contained	"\cterm="he=e-1		nextgroup=vimHiAttribList
+syn match	vimHiStartStop	contained	"\c\(start\|stop\)="he=e-1	nextgroup=vimHiTermcap,vimOption
+syn match	vimHiCTerm	contained	"\ccterm="he=e-1		nextgroup=vimHiAttribList
+syn match	vimHiCtermFgBg	contained	"\ccterm[fb]g="he=e-1	nextgroup=vimNumber,vimHiCtermColor,vimFgBgAttrib,vimHiCtermError
+syn match	vimHiGui	contained	"\cgui="he=e-1		nextgroup=vimHiAttribList
+syn match	vimHiGuiFont	contained	"\cfont="he=e-1		nextgroup=vimHiFontname
+syn match	vimHiGuiFgBg	contained	"\cgui\%([fb]g\|sp\)="he=e-1	nextgroup=vimHiGroup,vimHiGuiFontname,vimHiGuiRgb,vimFgBgAttrib
+syn match	vimHiTermcap	contained	"\S\+"		contains=vimNotation
 
 " Highlight: clear {{{2
-syn keyword vimHiClear	contained	clear	nextgroup=vimHiGroup
+syn keyword	vimHiClear	contained	clear	nextgroup=vimHiGroup
 
 " Highlight: link {{{2
-syn region vimHiLink	contained oneline matchgroup=vimCommand start="\<\(def\s\+\)\=link\>\|\<def\>" end="$"	contains=vimHiGroup,vimGroup,vimHLGroup,vimNotation
+syn region	vimHiLink	contained oneline matchgroup=vimCommand start="\<\(def\s\+\)\=link\>\|\<def\>" end="$"	contains=vimHiGroup,vimGroup,vimHLGroup,vimNotation
 
 " Control Characters {{{2
 " ==================
-syn match vimCtrlChar	"[--]"
+syn match	vimCtrlChar	"[--]"
 
 " Beginners - Patterns that involve ^ {{{2
 " =========
-syn match  vimLineComment	+^[ \t:]*".*$+	contains=@vimCommentGroup,vimCommentString,vimCommentTitle
-syn match  vimCommentTitle	'"\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1	contained contains=vimCommentTitleLeader,vimTodo,@vimCommentGroup
-syn match  vimContinue	"^\s*\\"
-syn region vimString	start="^\s*\\\z(['"]\)" skip='\\\\\|\\\z1' end="\z1" oneline keepend contains=@vimStringGroup,vimContinue
-syn match  vimCommentTitleLeader	'"\s\+'ms=s+1	contained
+syn match	vimLineComment	+^[ \t:]*".*$+	contains=@vimCommentGroup,vimCommentString,vimCommentTitle
+syn match	vimCommentTitle	'"\s*\%([sS]:\|\h\w*#\)\=\u\w*\(\s\+\u\w*\)*:'hs=s+1	contained contains=vimCommentTitleLeader,vimTodo,@vimCommentGroup
+syn match	vimContinue	"^\s*\\"
+syn region	vimString	start="^\s*\\\z(['"]\)" skip='\\\\\|\\\z1' end="\z1" oneline keepend contains=@vimStringGroup,vimContinue
+syn match	vimCommentTitleLeader	'"\s\+'ms=s+1	contained
 
 " Searches And Globals: {{{2
 " ====================
-syn match vimSearch	'^\s*[/?].*'		contains=vimSearchDelim
-syn match vimSearchDelim	'^\s*\zs[/?]\|[/?]$'	contained
-syn region vimGlobal	matchgroup=Statement start='\<g\%[lobal]!\=/' skip='\\.' end='/'
-syn region vimGlobal	matchgroup=Statement start='\<v\%[global]!\=/' skip='\\.' end='/'
+syn match	vimSearch	'^\s*[/?].*'		contains=vimSearchDelim
+syn match	vimSearchDelim	'^\s*\zs[/?]\|[/?]$'	contained
+syn region	vimGlobal	matchgroup=Statement start='\<g\%[lobal]!\=/' skip='\\.' end='/'
+syn region	vimGlobal	matchgroup=Statement start='\<v\%[global]!\=/' skip='\\.' end='/'
 
 " Scripts  : perl,ruby : Benoit Cerrina {{{2
 " =======    python,tcl: Johannes Zellner
@@ -541,94 +543,127 @@
 endif
 
 " [-- perl --] {{{3
-if (g:vimsyn_embed =~ 'p' && has("perl")) && filereadable(expand("<sfile>:p:h")."/perl.vim")
+let s:perlpath= expand("<sfile>:p:h")."/perl.vim"
+if !filereadable(s:perlpath)
+ let s:perlpath= globpath(&rtp,"syntax/perl.vim")
+endif
+if (g:vimsyn_embed =~ 'p' && has("perl")) && filereadable(s:perlpath)
  unlet! b:current_syntax
- syn include @vimPerlScript <sfile>:p:h/perl.vim
+ exe "syn include @vimPerlScript ".s:perlpath
  if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'p'
-  syn region vimPerlRegion fold matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPerlScript
-  syn region vimPerlRegion fold matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*$+ end=+\.$+ contains=@vimPerlScript
+  syn region vimPerlRegion fold matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimPerlScript
+  syn region vimPerlRegion fold matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*$+ end=+\.$+	contains=@vimPerlScript
  else
-  syn region vimPerlRegion matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPerlScript
-  syn region vimPerlRegion matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*$+ end=+\.$+ contains=@vimPerlScript
+  syn region vimPerlRegion matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimPerlScript
+  syn region vimPerlRegion matchgroup=vimScriptDelim start=+pe\%[rl]\s*<<\s*$+ end=+\.$+		contains=@vimPerlScript
  endif
+ syn cluster vimFuncBodyList	add=vimPerlRegion
 else
  syn region vimEmbedError start=+pe\%[rl]\s*<<\s*\z(.*\)$+ end=+^\z1$+
  syn region vimEmbedError start=+pe\%[rl]\s*<<\s*$+ end=+\.$+
 endif
+unlet s:perlpath
 
 " [-- ruby --] {{{3
-if (g:vimsyn_embed =~ 'r' && has("ruby")) && filereadable(expand("<sfile>:p:h")."/ruby.vim")
+let s:rubypath= expand("<sfile>:p:h")."/ruby.vim"
+if !filereadable(s:rubypath)
+ let s:rubypath= globpath(&rtp,"syntax/ruby.vim")
+endif
+if (g:vimsyn_embed =~ 'r' && has("ruby")) && filereadable(s:rubypath)
  unlet! b:current_syntax
- syn include @vimRubyScript <sfile>:p:h/ruby.vim
+ exe "syn include @vimRubyScript ".s:rubypath
  if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'r'
-  syn region vimRubyRegion fold matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimRubyScript
+  syn region vimRubyRegion fold matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimRubyScript
  else
-  syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimRubyScript
+  syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimRubyScript
  endif
- syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*$+ end=+\.$+ contains=@vimRubyScript
+ syn region vimRubyRegion matchgroup=vimScriptDelim start=+rub[y]\s*<<\s*$+ end=+\.$+		contains=@vimRubyScript
+ syn cluster vimFuncBodyList	add=vimRubyRegion
 else
  syn region vimEmbedError start=+rub[y]\s*<<\s*\z(.*\)$+ end=+^\z1$+
  syn region vimEmbedError start=+rub[y]\s*<<\s*$+ end=+\.$+
 endif
+unlet s:rubypath
 
 " [-- python --] {{{3
-if (g:vimsyn_embed =~ 'P' && has("python")) && filereadable(expand("<sfile>:p:h")."/python.vim")
+let s:pythonpath= expand("<sfile>:p:h")."/python.vim"
+if !filereadable(s:pythonpath)
+ let s:pythonpath= globpath(&rtp,"syntax/python.vim")
+endif
+if (g:vimsyn_embed =~ 'P' && has("python")) && filereadable(s:pythonpath)
  unlet! b:current_syntax
- syn include @vimPythonScript <sfile>:p:h/python.vim
+ exe "syn include @vimPythonScript ".s:pythonpath
  if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'P'
-  syn region vimPythonRegion fold matchgroup=vimScriptDelim start=+py\%[thon]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPythonScript
-  syn region vimPythonRegion fold matchgroup=vimScriptDelim start=+py\%[thon]\s*<<\s*$+ end=+\.$+ contains=@vimPythonScript
+  syn region vimPythonRegion fold matchgroup=vimScriptDelim start=+py\%[thon]\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimPythonScript
+  syn region vimPythonRegion fold matchgroup=vimScriptDelim start=+py\%[thon]\s*<<\s*$+ end=+\.$+	contains=@vimPythonScript
  else
-  syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimPythonScript
-  syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]\s*<<\s*$+ end=+\.$+ contains=@vimPythonScript
+  syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimPythonScript
+  syn region vimPythonRegion matchgroup=vimScriptDelim start=+py\%[thon]\s*<<\s*$+ end=+\.$+	contains=@vimPythonScript
  endif
+ syn cluster vimFuncBodyList	add=vimPythonRegion
 else
  syn region vimEmbedError start=+py\%[thon]\s*<<\s*\z(.*\)$+ end=+^\z1$+
  syn region vimEmbedError start=+py\%[thon]\s*<<\s*$+ end=+\.$+
 endif
+unlet s:pythonpath
 
 " [-- tcl --] {{{3
 if has("win32") || has("win95") || has("win64") || has("win16")
  " apparently has("tcl") has been hanging vim on some windows systems with cygwin
- let trytcl= (&shell !~ '\<\%(bash\>\|4[nN][tT]\|\<zsh\)\>\%(\.exe\)\=$')
+ let s:trytcl= (&shell !~ '\<\%(bash\>\|4[nN][tT]\|\<zsh\)\>\%(\.exe\)\=$')
 else
- let trytcl= 1
+ let s:trytcl= 1
 endif
-if trytcl
- if (g:vimsyn_embed =~ 't' && has("tcl")) && filereadable(expand("<sfile>:p:h")."/tcl.vim")
+if s:trytcl
+ let s:tclpath= expand("<sfile>:p:h")."/tcl.vim"
+ if !filereadable(s:tclpath)
+  let s:tclpath= globpath(&rtp,"syntax/tcl.vim")
+ endif
+ if (g:vimsyn_embed =~ 't' && has("tcl")) && filereadable(s:tclpath)
   unlet! b:current_syntax
-  syn include @vimTclScript <sfile>:p:h/tcl.vim
+  exe "syn include @vimTclScript ".s:tclpath
   if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 't'
-   syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript
-   syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+ contains=@vimTclScript
+   syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimTclScript
+   syn region vimTclRegion fold matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+	contains=@vimTclScript
   else
-   syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimTclScript
-   syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+ contains=@vimTclScript
+   syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimTclScript
+   syn region vimTclRegion matchgroup=vimScriptDelim start=+tc[l]\=\s*<<\s*$+ end=+\.$+		contains=@vimTclScript
   endif
+  syn cluster vimFuncBodyList	add=vimTclScript
+ else
+  syn region vimEmbedError start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+
+  syn region vimEmbedError start=+tc[l]\=\s*<<\s*$+ end=+\.$+
  endif
+ unlet s:tclpath
 else
  syn region vimEmbedError start=+tc[l]\=\s*<<\s*\z(.*\)$+ end=+^\z1$+
  syn region vimEmbedError start=+tc[l]\=\s*<<\s*$+ end=+\.$+
 endif
-unlet trytcl
+unlet s:trytcl
 
 " [-- mzscheme --] {{{3
-if (g:vimsyn_embed =~ 'm' && has("mzscheme")) && filereadable(expand("<sfile>:p:h")."/scheme.vim")
+let s:mzschemepath= expand("<sfile>:p:h")."/scheme.vim"
+if !filereadable(s:mzschemepath)
+ let s:mzschemepath= globpath(&rtp,"syntax/scheme.vim")
+endif
+if (g:vimsyn_embed =~ 'm' && has("mzscheme")) && filereadable(s:mzschemepath)
  unlet! b:current_syntax
  let iskKeep= &isk
- syn include @vimMzSchemeScript <sfile>:p:h/scheme.vim
+ exe "syn include @vimMzSchemeScript ".s:mzschemepath
  let &isk= iskKeep
  if exists("g:vimsyn_folding") && g:vimsyn_folding =~ 'm'
-  syn region vimMzSchemeRegion fold matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimMzSchemeScript
-  syn region vimMzSchemeRegion fold matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+ contains=@vimMzSchemeScript
+  syn region vimMzSchemeRegion fold matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+	contains=@vimMzSchemeScript
+  syn region vimMzSchemeRegion fold matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+		contains=@vimMzSchemeScript
  else
-  syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+ contains=@vimMzSchemeScript
-  syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+ contains=@vimMzSchemeScript
+  syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+		contains=@vimMzSchemeScript
+  syn region vimMzSchemeRegion matchgroup=vimScriptDelim start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+		contains=@vimMzSchemeScript
  endif
+ syn cluster vimFuncBodyList	add=vimMzSchemeRegion
 else
  syn region vimEmbedError start=+mz\%[scheme]\s*<<\s*\z(.*\)$+ end=+^\z1$+
  syn region vimEmbedError start=+mz\%[scheme]\s*<<\s*$+ end=+\.$+
 endif
+unlet s:mzschemepath
 
 " Synchronize (speed) {{{2
 "============
@@ -643,6 +678,7 @@
 syn sync linecont	"^\s\+\\"
 syn sync match vimAugroupSyncA	groupthere NONE	"\<aug\%[roup]\>\s\+[eE][nN][dD]"
 
+" ====================
 " Highlighting Settings {{{2
 " ====================
 
@@ -709,15 +745,15 @@
 hi def link vimMenuNameMore	vimMenuName
 hi def link vimMtchComment	vimComment
 hi def link vimNorm	vimCommand
+hi def link vimNotFunc	vimCommand
 hi def link vimNotPatSep	vimString
-hi def link vimPatSepR	vimPatSep
-hi def link vimPatSepZ	vimPatSep
 hi def link vimPatSepErr	vimPatSep
+hi def link vimPatSepR	vimPatSep
 hi def link vimPatSepZone	vimString
+hi def link vimPatSepZ	vimPatSep
 hi def link vimPlainMark	vimMark
 hi def link vimPlainRegister	vimRegister
 hi def link vimSearch	vimString
-hi def link vimSearchDelim	Statement
 hi def link vimSetMod	vimOption
 hi def link vimSetString	vimString
 hi def link vimSpecFileMod	vimSpecFile
@@ -738,11 +774,11 @@
 hi def link vimSynRegPat	vimString
 hi def link vimSyntax	vimCommand
 hi def link vimSynType	vimSpecial
+hi def link vimUnmap	vimMap
 hi def link vimUserAttrbCmplt	vimSpecial
 hi def link vimUserAttrbKey	vimOption
 hi def link vimUserAttrb	vimSpecial
 hi def link vimUserCommand	vimCommand
-hi def link vimUserFunc	Normal
 
 hi def link vimAutoEvent	Type
 hi def link vimBracket	Delimiter
@@ -759,24 +795,25 @@
 hi def link vimFuncName	Function
 hi def link vimFuncSID	Special
 hi def link vimFuncVar	Identifier
-hi def link vimGroup	Type
 hi def link vimGroupSpecial	Special
-hi def link vimHLMod	PreProc
+hi def link vimGroup	Type
 hi def link vimHiAttrib	PreProc
 hi def link vimHiTerm	Type
+hi def link vimHLMod	PreProc
 hi def link vimKeyword	Statement
 hi def link vimMark	Number
 hi def link vimMenuName	PreProc
 hi def link vimNotation	Special
-hi def link vimNotFunc	vimCommand
 hi def link vimNumber	Number
+hi def link vimOperError	Error
 hi def link vimOper	Operator
 hi def link vimOption	PreProc
-hi def link vimOperError	Error
+hi def link vimParenSep	Delimiter
 hi def link vimPatSep	SpecialChar
 hi def link vimPattern	Type
 hi def link vimRegister	SpecialChar
 hi def link vimScriptDelim	Comment
+hi def link vimSearchDelim	Statement
 hi def link vimSep	Delimiter
 hi def link vimSetSep	Statement
 hi def link vimSpecFile	Identifier
@@ -786,18 +823,19 @@
 hi def link vimSubstDelim	Delimiter
 hi def link vimSubstFlags	Special
 hi def link vimSubstSubstr	SpecialChar
-hi def link vimSynCase	Type
 hi def link vimSynCaseError	Error
-hi def link vimSynError	Error
-hi def link vimSynOption	Special
-hi def link vimSynReg	Type
+hi def link vimSynCase	Type
 hi def link vimSyncC	Type
 hi def link vimSyncError	Error
 hi def link vimSyncKey	Type
 hi def link vimSyncNone	Type
+hi def link vimSynError	Error
+hi def link vimSynOption	Special
+hi def link vimSynReg	Type
 hi def link vimTodo	Todo
-hi def link vimUserCmdError	Error
 hi def link vimUserAttrbCmpltFunc	Special
+hi def link vimUserCmdError	Error
+hi def link vimUserFunc	Normal
 hi def link vimWarn	WarningMsg
 
 " Current Syntax Variable: {{{2
diff -u -r --new-file runtime/syntax.orig/xml.vim runtime/syntax/xml.vim
--- runtime/syntax.orig/xml.vim	2006-04-11 16:32:00.000000000 -0500
+++ runtime/syntax/xml.vim	2009-07-26 06:44:44.000000000 -0500
@@ -3,7 +3,7 @@
 " Maintainer:	Johannes Zellner <johannes@zellner.org>
 "		Author and previous maintainer:
 "		Paul Siegmann <pauls@euronet.nl>
-" Last Change:	Mi, 13 Apr 2005 22:40:09 CEST
+" Last Change:	2009-07-13 21:26:55
 " Filenames:	*.xml
 " $Id: xml.vim,v 1.3 2006/04/11 21:32:00 vimboss Exp $
 
@@ -216,7 +216,7 @@
     syn region  xmlComment
 	\ start=+<!+
 	\ end=+>+
-	\ contains=xmlCommentPart,xmlCommentError
+	\ contains=xmlCommentStart,xmlCommentError
 	\ extend
 	\ fold
 
@@ -228,11 +228,12 @@
     syn region  xmlComment
 	\ start=+<!+
 	\ end=+>+
-	\ contains=xmlCommentPart,xmlCommentError
+	\ contains=xmlCommentStart,xmlCommentError
 	\ extend
 
 endif
 
+syn match xmlCommentStart   contained "<!" nextgroup=xmlCommentPart
 syn keyword xmlTodo         contained TODO FIXME XXX
 syn match   xmlCommentError contained "[^><!]"
 syn region  xmlCommentPart
@@ -320,6 +321,7 @@
 
 hi def link xmlString		String
 hi def link xmlComment		Comment
+hi def link xmlCommentStart	xmlComment
 hi def link xmlCommentPart	Comment
 hi def link xmlCommentError	Error
 hi def link xmlError		Error
diff -u -r --new-file runtime/syntax.orig/yacc.vim runtime/syntax/yacc.vim
--- runtime/syntax.orig/yacc.vim	2008-03-03 14:33:51.000000000 -0600
+++ runtime/syntax/yacc.vim	2008-12-08 15:08:36.000000000 -0600
@@ -1,95 +1,85 @@
 " Vim syntax file
 " Language:	Yacc
 " Maintainer:	Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change:	Jan 09, 2008
-" Version:	5
+" Last Change:	Oct 21, 2008
+" Version:	7
 " URL:	http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
 "
 " Options: {{{1
 "   g:yacc_uses_cpp : if this variable exists, then C++ is loaded rather than C
-"   g:yacc_minlines : see :help :he syn-sync-minlines -- default 50
-"   g:yacc_maxlines : see :help :he syn-sync-maxlines -- default 200
 
 " ---------------------------------------------------------------------
-" For version 5.x: Clear all syntax items {{{1
-" For version 6.x: Quit when a syntax file was already loaded
+" this version of syntax/yacc.vim requires 6.0 or later
 if version < 600
-  syntax clear
-elseif exists("b:current_syntax")
-  finish
+ finish
+endif
+if exists("b:current_syntax")
+ syntax clear
+endif
+
+" ---------------------------------------------------------------------
+"  Folding Support {{{1
+if has("folding")
+ com! -nargs=+ HiFold	<args> fold
+else
+ com! -nargs=+ HiFold	<args>
 endif
 
 " ---------------------------------------------------------------------
 " Read the C syntax to start with {{{1
-if version >= 600
-  if exists("g:yacc_uses_cpp")
-    runtime! syntax/cpp.vim
-  else
-    runtime! syntax/c.vim
-  endif
-elseif exists("g:yacc_uses_cpp")
-  so <sfile>:p:h/cpp.vim
+if exists("g:yacc_uses_cpp")
+ syn include @yaccCode	<sfile>:p:h/cpp.vim
 else
-  so <sfile>:p:h/c.vim
+ syn include @yaccCode	<sfile>:p:h/c.vim
 endif
 
 " ---------------------------------------------------------------------
-" Clusters {{{1
-syn cluster	yaccActionGroup	contains=yaccDelim,cInParen,cTodo,cIncluded,yaccDelim,yaccCurlyError,yaccUnionCurly,yaccUnion,cUserLabel,cOctalZero,cCppOut2,cCppSkip,cErrInBracket,cErrInParen,cOctalError,cCommentStartError,cParenError
-syn cluster	yaccUnionGroup	contains=yaccKey,cComment,yaccCurly,cType,cStructure,cStorageClass,yaccUnionCurly
-
-" ---------------------------------------------------------------------
-" Yacc stuff {{{1
-syn match	yaccDelim	"^\s*[:|;]"
-syn match	yaccOper	"@\d\+"
-
-syn match	yaccKey	"^\s*%\(token\|type\|left\|right\|start\|ident\|nonassoc\)\>"
-syn match	yaccKey	"\s%\(prec\|expect\)\>"
-syn match	yaccKey	"\$\(<[a-zA-Z_][a-zA-Z_0-9]*>\)\=[\$0-9]\+"
-syn keyword	yaccKeyActn	yyerrok yyclearin
-
-syn match	yaccUnionStart	"^%union"	skipwhite skipnl nextgroup=yaccUnion
-syn region	yaccUnion	contained matchgroup=yaccCurly start="{" matchgroup=yaccCurly end="}"	contains=@yaccUnionGroup
-syn region	yaccUnionCurly	contained matchgroup=yaccCurly start="{" matchgroup=yaccCurly end="}" contains=@yaccUnionGroup
-syn match	yaccBrkt	contained "[<>]"
-syn match	yaccType	"<[a-zA-Z_][a-zA-Z0-9_]*>"	contains=yaccBrkt
-syn match	yaccDefinition	"^[A-Za-z][A-Za-z0-9_]*\_s*:"
-
-" ---------------------------------------------------------------------
-" special Yacc separators {{{1
-syn match	yaccSectionSep	"^[ \t]*%%"
-syn match	yaccSep	"^[ \t]*%{"
-syn match	yaccSep	"^[ \t]*%}"
+"  Yacc Clusters: {{{1
+syn cluster yaccInitCluster	contains=yaccKey,yaccKeyActn,yaccBrkt,yaccType,yaccString,yaccUnionStart,yaccHeader2,yaccComment
+syn cluster yaccRulesCluster	contains=yaccNonterminal,yaccString
+
+" ---------------------------------------------------------------------
+"  Yacc Sections: {{{1
+HiFold syn	region	yaccInit	start='.'ms=s-1,rs=s-1	matchgroup=yaccSectionSep	end='^%%$'me=e-2,re=e-2	contains=@yaccInitCluster	nextgroup=yaccRules	skipwhite skipempty contained
+HiFold syn	region	yaccInit2      start='\%^.'ms=s-1,rs=s-1	matchgroup=yaccSectionSep	end='^%%$'me=e-2,re=e-2	contains=@yaccInitCluster	nextgroup=yaccRules	skipwhite skipempty
+HiFold syn	region	yaccHeader2	matchgroup=yaccSep	start="^\s*\zs%{"	end="^\s*%}"		contains=@yaccCode	nextgroup=yaccInit	skipwhite skipempty contained
+HiFold syn	region	yaccHeader	matchgroup=yaccSep	start="^\s*\zs%{"	end="^\s*%}"		contains=@yaccCode	nextgroup=yaccInit	skipwhite skipempty
+HiFold syn	region	yaccRules	matchgroup=yaccSectionSep	start='^%%$'		end='^%%$'me=e-2,re=e-2	contains=@yaccRulesCluster	nextgroup=yaccEndCode	skipwhite skipempty contained
+HiFold syn	region	yaccEndCode	matchgroup=yaccSectionSep	start='^%%$'		end='\%$'		contains=@yaccCode	contained
+
+" ---------------------------------------------------------------------
+" Yacc Commands: {{{1
+syn	match	yaccDelim	"[:|]"	contained
+syn	match	yaccOper	"@\d\+"	contained
+
+syn	match	yaccKey	"^\s*%\(token\|type\|left\|right\|start\|ident\|nonassoc\)\>"	contained
+syn	match	yaccKey	"\s%\(prec\|expect\)\>"	contained
+syn	match	yaccKey	"\$\(<[a-zA-Z_][a-zA-Z_0-9]*>\)\=[\$0-9]\+"	contained
+syn	keyword	yaccKeyActn	yyerrok yyclearin	contained
+
+syn	match	yaccUnionStart	"^%union"	skipwhite skipnl nextgroup=yaccUnion	contained
+HiFold syn	region	yaccUnion	matchgroup=yaccCurly start="{" matchgroup=yaccCurly end="}" contains=@yaccCode	contained
+syn	match	yaccBrkt	"[<>]"	contained
+syn	match	yaccType	"<[a-zA-Z_][a-zA-Z0-9_]*>"	contains=yaccBrkt	contained
+
+HiFold syn	region	yaccNonterminal	start="^\s*\a\w*\ze\_s*\(/\*\_.\{-}\*/\)\=\_s*:"	matchgroup=yaccDelim end=";"	matchgroup=yaccSectionSep end='^%%$'me=e-2,re=e-2 contains=yaccAction,yaccDelim,yaccString,yaccComment	contained
+syn	region	yaccComment	start="/\*"	end="\*/"
+syn	match	yaccString	"'[^']*'"	contained
+
 
 " ---------------------------------------------------------------------
 " I'd really like to highlight just the outer {}.  Any suggestions??? {{{1
-syn match	yaccCurlyError	"[{}]"
-syn region	yaccAction	matchgroup=yaccCurly start="{" end="}" contains=ALLBUT,@yaccActionGroup
+syn	match	yaccCurlyError	"[{}]"
+HiFold syn	region	yaccAction	matchgroup=yaccCurly start="{" end="}" contains=@yaccCode	contained
 
 " ---------------------------------------------------------------------
 " Yacc synchronization: {{{1
-if exists("g:yacc_maxlines")
- exe "syn sync maxlines=".g:yacc_maxlines
-else
- syn sync maxlines=200
-endif
-if exists("g:yacc_minlines")
- exe "syn sync minlines=".g:yacc_minlines
-else
- syn sync minlines=50
-endif
+syn sync fromstart
 
 " ---------------------------------------------------------------------
 " Define the default highlighting. {{{1
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_yacc_syn_inits")
-  if version < 508
-    let did_yacchdl_syn_inits = 1
-    command -nargs=+ HiLink hi link <args>
-  else
-    command -nargs=+ HiLink hi def link <args>
-  endif
+if !exists("did_yacc_syn_inits")
+  command -nargs=+ HiLink hi def link <args>
 
   " Internal yacc highlighting links {{{2
   HiLink yaccBrkt	yaccStmt
@@ -98,13 +88,15 @@
   HiLink yaccUnionStart	yaccKey
 
   " External yacc highlighting links {{{2
+  HiLink yaccComment	Comment
   HiLink yaccCurly	Delimiter
   HiLink yaccCurlyError	Error
-  HiLink yaccDefinition	Function
-  HiLink yaccDelim	Function
+  HiLink yaccNonterminal	Function
+  HiLink yaccDelim	Delimiter
   HiLink yaccKeyActn	Special
   HiLink yaccSectionSep	Todo
   HiLink yaccSep	Delimiter
+  HiLink yaccString	String
   HiLink yaccStmt	Statement
   HiLink yaccType	Type
 
@@ -113,6 +105,10 @@
 
   delcommand HiLink
 endif
+
+" ---------------------------------------------------------------------
+"  Cleanup: {{{1
+delcommand HiFold
 let b:current_syntax = "yacc"
 
 " ---------------------------------------------------------------------
diff -u -r --new-file runtime/syntax.orig/zsh.vim runtime/syntax/zsh.vim
--- runtime/syntax.orig/zsh.vim	2008-07-18 09:48:32.000000000 -0500
+++ runtime/syntax/zsh.vim	2010-02-11 06:45:15.000000000 -0600
@@ -1,7 +1,7 @@
 " Vim syntax file
 " Language:         Zsh shell script
 " Maintainer:       Nikolai Weibull <now@bitwi.se>
-" Latest Revision:  2008-07-17
+" Latest Revision:  2010-01-23
 
 if exists("b:current_syntax")
   finish
@@ -14,7 +14,7 @@
 
 syn keyword zshTodo             contained TODO FIXME XXX NOTE
 
-syn region  zshComment          display oneline start='\%(^\|\s\)#' end='$'
+syn region  zshComment          oneline start='\%(^\|\s\)#' end='$'
                                 \ contains=zshTodo,@Spell
 
 syn match   zshPreProc          '^\%1l#\%(!\|compdef\|autoload\).*$'