Changeset 52b4b72
- Timestamp:
- Jul 23, 2014, 12:36:25 AM (10 years ago)
- Branches:
- clfs-3.0.0-systemd, master, systemd
- Children:
- 7703780
- Parents:
- 1393767 (diff), d923363 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Files:
-
- 1 added
- 1 deleted
- 3 edited
- 2 moved
Legend:
- Unmodified
- Added
- Removed
-
BOOK/introduction/common/changelog.xml
r1393767 r52b4b72 38 38 39 39 <listitem> 40 <para>21 July 2014</para> 41 <itemizedlist> 42 <listitem> 43 <para>[William Harrington] - Update MPFR 3.1.2 fixes patch for patch 44 level 10 update.</para> 45 </listitem> 46 <listitem> 47 <para>[William Harrington] - Update VIM 7.4 Branch Update patch to 48 patch level 373.</para> 49 </listitem> 50 <listitem> 51 <para>[William Harrington] - Update Linux to 3.14.13.</para> 52 </listitem> 53 </itemizedlist> 54 </listitem> 55 56 <listitem> 40 57 <para>18 July 2014</para> 41 58 <itemizedlist> -
BOOK/packages.ent
r1393767 r52b4b72 329 329 330 330 <!ENTITY linux-version "3.14"> 331 <!ENTITY linux-version2 "&linux-version;.1 2">331 <!ENTITY linux-version2 "&linux-version;.13"> 332 332 <!ENTITY linux-size "78,399 KB"> 333 333 <!ENTITY linux-url "&kernel;linux/kernel/v&linux-dl-version;/linux-&linux-version;.tar.xz"> -
BOOK/patches.ent
r1393767 r52b4b72 42 42 43 43 <!ENTITY linux-sublevel-patch "patch-&linux-version2;.xz"> 44 <!ENTITY linux-sublevel-patch-md5 " 89a5af1f3609d0c27e63fea298dd80ed">45 <!ENTITY linux-sublevel-patch-size "3 24KB">44 <!ENTITY linux-sublevel-patch-md5 "132470897fc5d57f5ac7d658100cc430"> 45 <!ENTITY linux-sublevel-patch-size "338 KB"> 46 46 47 <!ENTITY mpfr-fixes-patch "mpfr-&mpfr-version;-fixes- 3.patch">48 <!ENTITY mpfr-fixes-patch-md5 " 34cec761c2e53658aad1214d77b7f184">49 <!ENTITY mpfr-fixes-patch-size " 45 KB">47 <!ENTITY mpfr-fixes-patch "mpfr-&mpfr-version;-fixes-4.patch"> 48 <!ENTITY mpfr-fixes-patch-md5 "b6c1c0dcbf7661298037eeb346a8669c"> 49 <!ENTITY mpfr-fixes-patch-size "55 KB"> 50 50 51 51 <!ENTITY ncurses-bashfix-patch "ncurses-&ncurses-version;-bash_fix-1.patch"> … … 75 75 <!-- Vim branch update patch area --> 76 76 77 <!ENTITY vim-branch_update-patch "vim-&vim-version;-branch_update- 4.patch">78 <!ENTITY vim-branch_update-patch-md5 " 242c96838a05da13b47d25fb62bf8418">79 <!ENTITY vim-branch_update-patch-size " 2,846KB">77 <!ENTITY vim-branch_update-patch "vim-&vim-version;-branch_update-5.patch"> 78 <!ENTITY vim-branch_update-patch-md5 "ef591881ff7aa8baac8aecc201e20f12"> 79 <!ENTITY vim-branch_update-patch-size "3,139 KB"> 80 80 81 81 <!-- Start of multilib patches --> -
patches/mpfr-3.1.2-fixes-4.patch
r1393767 r52b4b72 1 1 Submitted By: William Harrington (kb0iic at cross-lfs dot org) 2 Date: 2014-0 5-092 Date: 2014-07-21 3 3 Initial Package Version: 3.1.2 4 4 Origin: Upstream 5 5 Upstream Status: Applied 6 Description: Contains all upstream patches of mpfr current to patch level 8.6 Description: Contains all upstream patches of mpfr current to patch level 10. 7 7 8 8 diff -Naurd mpfr-3.1.2-a/PATCHES mpfr-3.1.2-b/PATCHES … … 1279 1279 + return "3.1.2-p8"; 1280 1280 } 1281 diff -Naurd mpfr-3.1.2-a/PATCHES mpfr-3.1.2-b/PATCHES 1282 --- mpfr-3.1.2-a/PATCHES 2014-06-30 15:15:25.533266905 +0000 1283 +++ mpfr-3.1.2-b/PATCHES 2014-06-30 15:15:25.617269178 +0000 1284 @@ -0,0 +1 @@ 1285 +div-overflow 1286 diff -Naurd mpfr-3.1.2-a/VERSION mpfr-3.1.2-b/VERSION 1287 --- mpfr-3.1.2-a/VERSION 2014-06-30 15:15:25.529266797 +0000 1288 +++ mpfr-3.1.2-b/VERSION 2014-06-30 15:15:25.617269178 +0000 1289 @@ -1 +1 @@ 1290 -3.1.2-p8 1291 +3.1.2-p9 1292 diff -Naurd mpfr-3.1.2-a/src/div.c mpfr-3.1.2-b/src/div.c 1293 --- mpfr-3.1.2-a/src/div.c 2013-03-13 15:37:33.000000000 +0000 1294 +++ mpfr-3.1.2-b/src/div.c 2014-06-30 15:15:25.585268312 +0000 1295 @@ -750,7 +750,9 @@ 1296 truncate_check_qh: 1297 if (qh) 1298 { 1299 - qexp ++; 1300 + if (MPFR_LIKELY (qexp < MPFR_EXP_MAX)) 1301 + qexp ++; 1302 + /* else qexp is now incorrect, but one will still get an overflow */ 1303 q0p[q0size - 1] = MPFR_LIMB_HIGHBIT; 1304 } 1305 goto truncate; 1306 @@ -765,7 +767,9 @@ 1307 inex = 1; /* always here */ 1308 if (mpn_add_1 (q0p, q0p, q0size, MPFR_LIMB_ONE << sh)) 1309 { 1310 - qexp ++; 1311 + if (MPFR_LIKELY (qexp < MPFR_EXP_MAX)) 1312 + qexp ++; 1313 + /* else qexp is now incorrect, but one will still get an overflow */ 1314 q0p[q0size - 1] = MPFR_LIMB_HIGHBIT; 1315 } 1316 1317 diff -Naurd mpfr-3.1.2-a/src/mpfr.h mpfr-3.1.2-b/src/mpfr.h 1318 --- mpfr-3.1.2-a/src/mpfr.h 2014-06-30 15:15:25.533266905 +0000 1319 +++ mpfr-3.1.2-b/src/mpfr.h 2014-06-30 15:15:25.613269070 +0000 1320 @@ -27,7 +27,7 @@ 1321 #define MPFR_VERSION_MAJOR 3 1322 #define MPFR_VERSION_MINOR 1 1323 #define MPFR_VERSION_PATCHLEVEL 2 1324 -#define MPFR_VERSION_STRING "3.1.2-p8" 1325 +#define MPFR_VERSION_STRING "3.1.2-p9" 1326 1327 /* Macros dealing with MPFR VERSION */ 1328 #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) 1329 diff -Naurd mpfr-3.1.2-a/src/version.c mpfr-3.1.2-b/src/version.c 1330 --- mpfr-3.1.2-a/src/version.c 2014-06-30 15:15:25.533266905 +0000 1331 +++ mpfr-3.1.2-b/src/version.c 2014-06-30 15:15:25.613269070 +0000 1332 @@ -25,5 +25,5 @@ 1333 const char * 1334 mpfr_get_version (void) 1335 { 1336 - return "3.1.2-p8"; 1337 + return "3.1.2-p9"; 1338 } 1339 diff -Naurd mpfr-3.1.2-a/tests/tdiv.c mpfr-3.1.2-b/tests/tdiv.c 1340 --- mpfr-3.1.2-a/tests/tdiv.c 2013-03-13 15:37:44.000000000 +0000 1341 +++ mpfr-3.1.2-b/tests/tdiv.c 2014-06-30 15:15:25.585268312 +0000 1342 @@ -1104,6 +1104,96 @@ 1343 #define RAND_FUNCTION(x) mpfr_random2(x, MPFR_LIMB_SIZE (x), randlimb () % 100, RANDS) 1344 #include "tgeneric.c" 1345 1346 +static void 1347 +test_extreme (void) 1348 +{ 1349 + mpfr_t x, y, z; 1350 + mpfr_exp_t emin, emax; 1351 + mpfr_prec_t p[4] = { 8, 32, 64, 256 }; 1352 + int xi, yi, zi, j, r; 1353 + unsigned int flags, ex_flags; 1354 + 1355 + emin = mpfr_get_emin (); 1356 + emax = mpfr_get_emax (); 1357 + 1358 + mpfr_set_emin (MPFR_EMIN_MIN); 1359 + mpfr_set_emax (MPFR_EMAX_MAX); 1360 + 1361 + for (xi = 0; xi < 4; xi++) 1362 + { 1363 + mpfr_init2 (x, p[xi]); 1364 + mpfr_setmax (x, MPFR_EMAX_MAX); 1365 + MPFR_ASSERTN (mpfr_check (x)); 1366 + for (yi = 0; yi < 4; yi++) 1367 + { 1368 + mpfr_init2 (y, p[yi]); 1369 + mpfr_setmin (y, MPFR_EMIN_MIN); 1370 + for (j = 0; j < 2; j++) 1371 + { 1372 + MPFR_ASSERTN (mpfr_check (y)); 1373 + for (zi = 0; zi < 4; zi++) 1374 + { 1375 + mpfr_init2 (z, p[zi]); 1376 + RND_LOOP (r) 1377 + { 1378 + mpfr_clear_flags (); 1379 + mpfr_div (z, x, y, (mpfr_rnd_t) r); 1380 + flags = __gmpfr_flags; 1381 + MPFR_ASSERTN (mpfr_check (z)); 1382 + ex_flags = MPFR_FLAGS_OVERFLOW | MPFR_FLAGS_INEXACT; 1383 + if (flags != ex_flags) 1384 + { 1385 + printf ("Bad flags in test_extreme on z = a/b" 1386 + " with %s and\n", 1387 + mpfr_print_rnd_mode ((mpfr_rnd_t) r)); 1388 + printf ("a = "); 1389 + mpfr_dump (x); 1390 + printf ("b = "); 1391 + mpfr_dump (y); 1392 + printf ("Expected flags:"); 1393 + flags_out (ex_flags); 1394 + printf ("Got flags: "); 1395 + flags_out (flags); 1396 + printf ("z = "); 1397 + mpfr_dump (z); 1398 + exit (1); 1399 + } 1400 + mpfr_clear_flags (); 1401 + mpfr_div (z, y, x, (mpfr_rnd_t) r); 1402 + flags = __gmpfr_flags; 1403 + MPFR_ASSERTN (mpfr_check (z)); 1404 + ex_flags = MPFR_FLAGS_UNDERFLOW | MPFR_FLAGS_INEXACT; 1405 + if (flags != ex_flags) 1406 + { 1407 + printf ("Bad flags in test_extreme on z = a/b" 1408 + " with %s and\n", 1409 + mpfr_print_rnd_mode ((mpfr_rnd_t) r)); 1410 + printf ("a = "); 1411 + mpfr_dump (y); 1412 + printf ("b = "); 1413 + mpfr_dump (x); 1414 + printf ("Expected flags:"); 1415 + flags_out (ex_flags); 1416 + printf ("Got flags: "); 1417 + flags_out (flags); 1418 + printf ("z = "); 1419 + mpfr_dump (z); 1420 + exit (1); 1421 + } 1422 + } 1423 + mpfr_clear (z); 1424 + } /* zi */ 1425 + mpfr_nextabove (y); 1426 + } /* j */ 1427 + mpfr_clear (y); 1428 + } /* yi */ 1429 + mpfr_clear (x); 1430 + } /* xi */ 1431 + 1432 + set_emin (emin); 1433 + set_emax (emax); 1434 +} 1435 + 1436 int 1437 main (int argc, char *argv[]) 1438 { 1439 @@ -1130,6 +1220,7 @@ 1440 test_20070603 (); 1441 test_20070628 (); 1442 test_generic (2, 800, 50); 1443 + test_extreme (); 1444 1445 tests_end_mpfr (); 1446 return 0; 1447 diff -Naurd mpfr-3.1.2-a/PATCHES mpfr-3.1.2-b/PATCHES 1448 --- mpfr-3.1.2-a/PATCHES 2014-06-30 15:17:53.337268149 +0000 1449 +++ mpfr-3.1.2-b/PATCHES 2014-06-30 15:17:53.417270314 +0000 1450 @@ -0,0 +1 @@ 1451 +vasprintf 1452 diff -Naurd mpfr-3.1.2-a/VERSION mpfr-3.1.2-b/VERSION 1453 --- mpfr-3.1.2-a/VERSION 2014-06-30 15:17:53.337268149 +0000 1454 +++ mpfr-3.1.2-b/VERSION 2014-06-30 15:17:53.413270206 +0000 1455 @@ -1 +1 @@ 1456 -3.1.2-p9 1457 +3.1.2-p10 1458 diff -Naurd mpfr-3.1.2-a/src/mpfr.h mpfr-3.1.2-b/src/mpfr.h 1459 --- mpfr-3.1.2-a/src/mpfr.h 2014-06-30 15:17:53.337268149 +0000 1460 +++ mpfr-3.1.2-b/src/mpfr.h 2014-06-30 15:17:53.413270206 +0000 1461 @@ -27,7 +27,7 @@ 1462 #define MPFR_VERSION_MAJOR 3 1463 #define MPFR_VERSION_MINOR 1 1464 #define MPFR_VERSION_PATCHLEVEL 2 1465 -#define MPFR_VERSION_STRING "3.1.2-p9" 1466 +#define MPFR_VERSION_STRING "3.1.2-p10" 1467 1468 /* Macros dealing with MPFR VERSION */ 1469 #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) 1470 diff -Naurd mpfr-3.1.2-a/src/vasprintf.c mpfr-3.1.2-b/src/vasprintf.c 1471 --- mpfr-3.1.2-a/src/vasprintf.c 2013-11-15 00:51:49.267334408 +0000 1472 +++ mpfr-3.1.2-b/src/vasprintf.c 2014-06-30 15:17:53.377269231 +0000 1473 @@ -884,14 +884,18 @@ 1474 first digit, we want the exponent for radix two and the decimal 1475 point AFTER the first digit. */ 1476 { 1477 - MPFR_ASSERTN (exp > MPFR_EMIN_MIN /4); /* possible overflow */ 1478 + /* An integer overflow is normally not possible since MPFR_EXP_MIN 1479 + is twice as large as MPFR_EMIN_MIN. */ 1480 + MPFR_ASSERTN (exp > (MPFR_EXP_MIN + 3) / 4); 1481 exp = (exp - 1) * 4; 1482 } 1483 else 1484 /* EXP is the exponent for decimal point BEFORE the first digit, we 1485 want the exponent for decimal point AFTER the first digit. */ 1486 { 1487 - MPFR_ASSERTN (exp > MPFR_EMIN_MIN); /* possible overflow */ 1488 + /* An integer overflow is normally not possible since MPFR_EXP_MIN 1489 + is twice as large as MPFR_EMIN_MIN. */ 1490 + MPFR_ASSERTN (exp > MPFR_EXP_MIN); 1491 --exp; 1492 } 1493 } 1494 diff -Naurd mpfr-3.1.2-a/src/version.c mpfr-3.1.2-b/src/version.c 1495 --- mpfr-3.1.2-a/src/version.c 2014-06-30 15:17:53.337268149 +0000 1496 +++ mpfr-3.1.2-b/src/version.c 2014-06-30 15:17:53.413270206 +0000 1497 @@ -25,5 +25,5 @@ 1498 const char * 1499 mpfr_get_version (void) 1500 { 1501 - return "3.1.2-p9"; 1502 + return "3.1.2-p10"; 1503 } 1504 diff -Naurd mpfr-3.1.2-a/tests/tsprintf.c mpfr-3.1.2-b/tests/tsprintf.c 1505 --- mpfr-3.1.2-a/tests/tsprintf.c 2013-11-15 00:51:49.267334408 +0000 1506 +++ mpfr-3.1.2-b/tests/tsprintf.c 2014-06-30 15:17:53.377269231 +0000 1507 @@ -1184,6 +1184,69 @@ 1508 check_emax_aux (MPFR_EMAX_MAX); 1509 } 1510 1511 +static void 1512 +check_emin_aux (mpfr_exp_t e) 1513 +{ 1514 + mpfr_t x; 1515 + char *s1, s2[256]; 1516 + int i; 1517 + mpfr_exp_t emin; 1518 + mpz_t ee; 1519 + 1520 + MPFR_ASSERTN (e >= LONG_MIN); 1521 + emin = mpfr_get_emin (); 1522 + set_emin (e); 1523 + 1524 + mpfr_init2 (x, 16); 1525 + mpz_init (ee); 1526 + 1527 + mpfr_setmin (x, e); 1528 + mpz_set_si (ee, e); 1529 + mpz_sub_ui (ee, ee, 1); 1530 + 1531 + i = mpfr_asprintf (&s1, "%Ra", x); 1532 + MPFR_ASSERTN (i > 0); 1533 + 1534 + gmp_snprintf (s2, 256, "0x1p%Zd", ee); 1535 + 1536 + if (strcmp (s1, s2) != 0) 1537 + { 1538 + printf ("Error in check_emin_aux for emin = %ld\n", (long) e); 1539 + printf ("Expected %s\n", s2); 1540 + printf ("Got %s\n", s1); 1541 + exit (1); 1542 + } 1543 + 1544 + mpfr_free_str (s1); 1545 + 1546 + i = mpfr_asprintf (&s1, "%Rb", x); 1547 + MPFR_ASSERTN (i > 0); 1548 + 1549 + gmp_snprintf (s2, 256, "1p%Zd", ee); 1550 + 1551 + if (strcmp (s1, s2) != 0) 1552 + { 1553 + printf ("Error in check_emin_aux for emin = %ld\n", (long) e); 1554 + printf ("Expected %s\n", s2); 1555 + printf ("Got %s\n", s1); 1556 + exit (1); 1557 + } 1558 + 1559 + mpfr_free_str (s1); 1560 + 1561 + mpfr_clear (x); 1562 + mpz_clear (ee); 1563 + set_emin (emin); 1564 +} 1565 + 1566 +static void 1567 +check_emin (void) 1568 +{ 1569 + check_emin_aux (-15); 1570 + check_emin_aux (mpfr_get_emin ()); 1571 + check_emin_aux (MPFR_EMIN_MIN); 1572 +} 1573 + 1574 int 1575 main (int argc, char **argv) 1576 { 1577 @@ -1203,6 +1266,7 @@ 1578 decimal (); 1579 mixed (); 1580 check_emax (); 1581 + check_emin (); 1582 1583 #if defined(HAVE_LOCALE_H) && defined(HAVE_SETLOCALE) 1584 locale_da_DK (); -
patches/vim-7.4-branch_update-5.patch
r1393767 r52b4b72 1 1 Submitted By: William Harrington (kb0iic at cross-lfs dot org) 2 Date: 2014-0 5-312 Date: 2014-07-21 3 3 Initial Package Version: 7.4 4 4 Origin: Upstream 5 5 Upstream Status: Applied 6 Description: Contains all upstream patches up to 7.4.3 16.6 Description: Contains all upstream patches up to 7.4.373. 7 7 8 8 diff -Naur vim74.orig/.hg_archival.txt vim74/.hg_archival.txt 9 9 --- vim74.orig/.hg_archival.txt 1970-01-01 00:00:00.000000000 +0000 10 +++ vim74/.hg_archival.txt 2014-0 6-01 00:42:48.067546692+000010 +++ vim74/.hg_archival.txt 2014-07-21 23:33:10.410210199 +0000 11 11 @@ -0,0 +1,5 @@ 12 12 +repo: 770908d1cb47c04be0aef5c173b17ab8be6b6476 13 +node: bed71c37618c11240596390f277d4f5e60d35ebc13 +node: 32a77cc160d922036ee28363f1a183f8e37f77ed 14 14 +branch: default 15 +latesttag: v7-4-3 1616 +latesttagdistance: 115 +latesttag: v7-4-373 16 +latesttagdistance: 2 17 17 diff -Naur vim74.orig/.hgignore vim74/.hgignore 18 18 --- vim74.orig/.hgignore 1970-01-01 00:00:00.000000000 +0000 19 +++ vim74/.hgignore 2014-0 6-01 00:42:48.107546590+000020 @@ -0,0 +1,7 4@@19 +++ vim74/.hgignore 2014-07-21 23:33:10.436876796 +0000 20 @@ -0,0 +1,75 @@ 21 21 +syntax: glob 22 22 + … … 85 85 + 86 86 +# Generated by "make test" 87 +src/po/*.ck 88 +src/testdir/mbyte.vim 89 +src/testdir/mzscheme.vim 90 +src/testdir/lua.vim 91 +src/testdir/small.vim 92 +src/testdir/tiny.vim 87 +src/po/*.ck 88 +src/testdir/mbyte.vim 89 +src/testdir/mzscheme.vim 90 +src/testdir/lua.vim 91 +src/testdir/small.vim 92 +src/testdir/tiny.vim 93 93 +src/testdir/test*.out 94 94 +src/testdir/test.log 95 +src/memfile_test 95 96 diff -Naur vim74.orig/.hgtags vim74/.hgtags 96 97 --- vim74.orig/.hgtags 1970-01-01 00:00:00.000000000 +0000 97 +++ vim74/.hgtags 2014-0 6-01 00:42:48.127546539 +000098 @@ -0,0 +1,30 41@@98 +++ vim74/.hgtags 2014-07-21 23:33:10.453543419 +0000 99 @@ -0,0 +1,3098 @@ 99 100 +004eb98eb3c30714cb6a24ec3e810275080a8413 v7-1-117 100 101 +006e9c8a6a8ad354a5cb6adcce6ebfceddeb20ee v7-0079 … … 3138 3139 +646616b6ff4defcc7bef0b198b540f6d965a8126 v7-4-315 3139 3140 +0fc665889e8f0af532cb4e3be2f0ff0421bf2fbc v7-4-316 3141 +8ffcb546d782121dfc9d88c7edc6f62421efce89 v7-4-317 3142 +5c47dacf397c1c65d2dfc237b3ff395c66ec3d4d v7-4-318 3143 +a076237d1c3849535681e82946a9041ed5525d7f v7-4-319 3144 +f7bc601823e5c81e2ca412506a42eff9fd790ace v7-4-320 3145 +c052937aae8ca5082f308b8ff0712c7eccdd30c8 v7-4-321 3146 +fd96c55d683d76ece4ba01490d9796c13c988cdc v7-4-322 3147 +238f5027830cad22e17a970483af9b160869cdf3 v7-4-323 3148 +c476e0ac8b406693c3877baffa0e97ff25e59b06 v7-4-324 3149 +1f288d2475488c3f44c7248e99019e2612580716 v7-4-325 3150 +1dbcb23ae7a8b68ddbc28b4feb794c4c1db12395 v7-4-326 3151 +99d8f2d72dcd4b850de81998cc9b1120c8165762 v7-4-327 3152 +01d9ffdd6e6ffb39faf946e13ec63bd7dc31e162 v7-4-328 3153 +018df65085f8990c1407442f8c783d4cee72a479 v7-4-329 3154 +f9fa2e506b9f07549cd91074835c5c553db7b3a7 v7-4-330 3155 +6d984caa0409fd284722c44cb09a0a2b5360bd4f v7-4-331 3156 +8fed02d53b45848b0fff60de13d06858963cfb17 v7-4-332 3157 +8ae50e3ef8bf733c0869c01b5132d02feffc0955 v7-4-333 3158 +03d260a8ea0c0c67f424c387dbe2af5754e5e589 v7-4-334 3159 +8ad2ecd116021ad5c945426e8bb80d741392b780 v7-4-335 3160 +a42ba1e5099290a86cac1a9ac490c49e82e4c2cf v7-4-336 3161 +0206ac84ff5fdce6d893c470e0909d2aed547a24 v7-4-337 3162 +ef83b423ebf7de11c1063c795dd2186a9b59b90f v7-4-338 3163 +fd7110d0c3bf4fea3cfa3d16da6c2a945d327c27 v7-4-339 3164 +03f95f5e311b84653df70fb3c08a9d92cf21b8f0 v7-4-340 3165 +adc4a84f72eb44dae657af713922a6e2c1f64ae3 v7-4-341 3166 +8dcc6f142460b2d5eee119a174d441d46d95cd99 v7-4-342 3167 +539ce56d8f35fe2deb5c4f57335e1adf97ae4e74 v7-4-343 3168 +ce284c205558d103326a4c3f22f181774690b3eb v7-4-344 3169 +ea2c5dfee1b04d216ebf992c5f46ecbdfee2854a v7-4-345 3170 +3248c6e40aee01a7254d111dd846c6ec7889a804 v7-4-346 3171 +a162d41f10e1c3c8673d86d8b0c58fdaf1bddeaf v7-4-347 3172 +0b7586868f6da0372af7510650240e22dc1e6e64 v7-4-348 3173 +79950dae1d7de8fc2cb0f8ddd087d403e2b9ce8e v7-4-349 3174 +ad005d0114c1d2d83490787ef7ea2a3c6e5e7b9e v7-4-350 3175 +f9ec944e4474c649faad642797ffd798a7102549 v7-4-351 3176 +b4962cf3a1c06a1f60f1d750df8fcf7035b00b99 v7-4-352 3177 +d42a1d3b74d40f580359dbd139d2d0dfa7235252 v7-4-353 3178 +5deaa4e9812d4b4ae59d8a3e70bf19983e07e6da v7-4-354 3179 +9a4efda75b5ef0f496d6a29c0a4dfcc7c03412f9 v7-4-355 3180 +34465a179ce21c827cab4c65a75e6b490600a96f v7-4-356 3181 +4eedfc4911a1db9c4874689f6c652be0094838f2 v7-4-357 3182 +771b97ba3b4768c77f2070423a93152d6977f012 v7-4-358 3183 +182c7b987283a567121e9c43d831779d1c88645f v7-4-359 3184 +761687c6808f4c9c80d33a919a6bb506dfe9f674 v7-4-360 3185 +a97e5b9dbc26800830e46cf3c1aa6efbfe258097 v7-4-361 3186 +7fa2bed947fde3514a700c96861a537d816d6fd4 v7-4-362 3187 +ff3816167b73fde35017d364b1a820014cd42e76 v7-4-363 3188 +7b324826757595b21b0410a7b6f00227d73c655f v7-4-364 3189 +4625fa27ba6f5b06294675b7f0d1bf8ae8f249fb v7-4-365 3190 +ad775b58706587b6acfb0bb2c732e184efe4f778 v7-4-366 3191 +bdbe2037066df6a463346be1768a56d98001fb36 v7-4-367 3192 +021e16be3c026c9f883b2aba0b48469ecbae5d88 v7-4-368 3193 +72ee0db83788638c36bbcb076cabc2ba6c8cd4e7 v7-4-369 3194 +50575818a97fa4777e52272f5ffc769179d76a8d v7-4-370 3195 +d44f298c43c74555f4ea21b710d377133f948d61 v7-4-371 3196 +a122efb555c4f08405051369310451a627ed524b v7-4-372 3197 +353330c512a9488cf5c1a3f8b8a57fa8cdd83a7a v7-4-373 3140 3198 diff -Naur vim74.orig/Filelist vim74/Filelist 3141 3199 --- vim74.orig/Filelist 2013-07-13 13:23:38.000000000 +0000 3142 +++ vim74/Filelist 2014-0 6-01 00:42:48.197546361+00003200 +++ vim74/Filelist 2014-07-21 23:33:10.503543288 +0000 3143 3201 @@ -3,6 +3,7 @@ 3144 3202 … … 3167 3225 diff -Naur vim74.orig/runtime/autoload/clojurecomplete.vim vim74/runtime/autoload/clojurecomplete.vim 3168 3226 --- vim74.orig/runtime/autoload/clojurecomplete.vim 2013-02-06 14:35:23.000000000 +0000 3169 +++ vim74/runtime/autoload/clojurecomplete.vim 2014-0 6-01 00:42:49.274210286+00003227 +++ vim74/runtime/autoload/clojurecomplete.vim 2014-07-21 23:33:11.583540470 +0000 3170 3228 @@ -1,20 +1,22 @@ 3171 3229 " Vim completion script … … 3208 3266 diff -Naur vim74.orig/runtime/autoload/getscript.vim vim74/runtime/autoload/getscript.vim 3209 3267 --- vim74.orig/runtime/autoload/getscript.vim 2013-04-17 13:40:44.000000000 +0000 3210 +++ vim74/runtime/autoload/getscript.vim 2014-0 6-01 00:42:49.320876834+00003268 +++ vim74/runtime/autoload/getscript.vim 2014-07-21 23:33:11.626873690 +0000 3211 3269 @@ -1,8 +1,8 @@ 3212 3270 " --------------------------------------------------------------------- … … 3240 3298 3241 3299 " this loop updates the GetLatestVimScripts.dat file 3300 diff -Naur vim74.orig/runtime/autoload/htmlcomplete.vim vim74/runtime/autoload/htmlcomplete.vim 3301 --- vim74.orig/runtime/autoload/htmlcomplete.vim 2011-04-28 11:13:20.000000000 +0000 3302 +++ vim74/runtime/autoload/htmlcomplete.vim 2014-07-21 23:33:11.673540235 +0000 3303 @@ -1,7 +1,49 @@ 3304 " Vim completion script 3305 " Language: HTML and XHTML 3306 " Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl ) 3307 -" Last Change: 2011 Apr 28 3308 +" Last Change: 2014 Jun 20 3309 + 3310 +" Distinguish between HTML versions. 3311 +" To use with other HTML versions add another "elseif" condition to match 3312 +" proper DOCTYPE. 3313 +function! htmlcomplete#DetectOmniFlavor() 3314 + if &filetype == 'xhtml' 3315 + let b:html_omni_flavor = 'xhtml10s' 3316 + else 3317 + let b:html_omni_flavor = 'html401t' 3318 + endif 3319 + let i = 1 3320 + let line = "" 3321 + while i < 10 && i < line("$") 3322 + let line = getline(i) 3323 + if line =~ '<!DOCTYPE.*\<DTD ' 3324 + break 3325 + endif 3326 + let i += 1 3327 + endwhile 3328 + if line =~ '<!DOCTYPE.*\<DTD ' " doctype line found above 3329 + if line =~ ' HTML 3\.2' 3330 + let b:html_omni_flavor = 'html32' 3331 + elseif line =~ ' XHTML 1\.1' 3332 + let b:html_omni_flavor = 'xhtml11' 3333 + else " two-step detection with strict/frameset/transitional 3334 + if line =~ ' XHTML 1\.0' 3335 + let b:html_omni_flavor = 'xhtml10' 3336 + elseif line =~ ' HTML 4\.01' 3337 + let b:html_omni_flavor = 'html401' 3338 + elseif line =~ ' HTML 4.0\>' 3339 + let b:html_omni_flavor = 'html40' 3340 + endif 3341 + if line =~ '\<Transitional\>' 3342 + let b:html_omni_flavor .= 't' 3343 + elseif line =~ '\<Frameset\>' 3344 + let b:html_omni_flavor .= 'f' 3345 + else 3346 + let b:html_omni_flavor .= 's' 3347 + endif 3348 + endif 3349 + endif 3350 +endfunction 3351 3352 function! htmlcomplete#CompleteTags(findstart, base) 3353 if a:findstart 3242 3354 diff -Naur vim74.orig/runtime/autoload/netrw.vim vim74/runtime/autoload/netrw.vim 3243 3355 --- vim74.orig/runtime/autoload/netrw.vim 2013-05-19 03:28:33.000000000 +0000 3244 +++ vim74/runtime/autoload/netrw.vim 2014-0 6-01 00:42:49.417543255+00003356 +++ vim74/runtime/autoload/netrw.vim 2014-07-21 23:33:11.806873220 +0000 3245 3357 @@ -1,10 +1,10 @@ 3246 3358 " netrw.vim: Handles file transfer and remote directory listing across … … 10754 10866 diff -Naur vim74.orig/runtime/autoload/netrwSettings.vim vim74/runtime/autoload/netrwSettings.vim 10755 10867 --- vim74.orig/runtime/autoload/netrwSettings.vim 2013-05-03 19:53:43.000000000 +0000 10756 +++ vim74/runtime/autoload/netrwSettings.vim 2014-0 6-01 00:42:49.474209777+000010868 +++ vim74/runtime/autoload/netrwSettings.vim 2014-07-21 23:33:11.856873090 +0000 10757 10869 @@ -1,7 +1,7 @@ 10758 10870 " netrwSettings.vim: makes netrw settings simpler … … 10788 10900 diff -Naur vim74.orig/runtime/autoload/netrw_gitignore.vim vim74/runtime/autoload/netrw_gitignore.vim 10789 10901 --- vim74.orig/runtime/autoload/netrw_gitignore.vim 1970-01-01 00:00:00.000000000 +0000 10790 +++ vim74/runtime/autoload/netrw_gitignore.vim 2014-0 6-01 00:42:49.487543077+000010902 +++ vim74/runtime/autoload/netrw_gitignore.vim 2014-07-21 23:33:12.126872385 +0000 10791 10903 @@ -0,0 +1,71 @@ 10792 10904 +" netrw_gitignore#Hide: gitignore-based hiding … … 10863 10975 diff -Naur vim74.orig/runtime/autoload/phpcomplete.vim vim74/runtime/autoload/phpcomplete.vim 10864 10976 --- vim74.orig/runtime/autoload/phpcomplete.vim 2011-12-08 15:38:25.000000000 +0000 10865 +++ vim74/runtime/autoload/phpcomplete.vim 2014-0 6-01 00:42:49.544209599+000010977 +++ vim74/runtime/autoload/phpcomplete.vim 2014-07-21 23:33:12.173538930 +0000 10866 10978 @@ -1,27 +1,101 @@ 10867 10979 " Vim completion script … … 10872 10984 +" Previous Maintainer: Mikolaj Machowski ( mikmach AT wp DOT pl ) 10873 10985 +" URL: https://github.com/shawncplus/phpcomplete.vim 10874 +" Last Change: 2014 May 0810986 +" Last Change: 2014 May 30 10875 10987 " 10876 10988 -" TODO: … … 10980 11092 10981 11093 if phpbegin == [0,0] && phpend == [0,0] 10982 @@ -37,5116 +111,2449 @@ 11094 @@ -35,5118 +109,2464 @@ 11095 " locate the start of the word 11096 let line = getline('.') 10983 11097 let start = col('.') - 1 10984 11098 - let curline = line('.') 10985 11099 let compl_begin = col('.') - 2 10986 11100 - while start >= 0 && line[start - 1] =~ '[a-zA-Z_0-9\x7f-\xff$]' … … 10991 11105 - return start 10992 11106 + let b:phpbegin = phpbegin 10993 + let b:compl_context = phpcomplete#GetCurrentInstruction(line('.'), col('.') - 2, phpbegin)11107 + let b:compl_context = phpcomplete#GetCurrentInstruction(line('.'), max([0, col('.') - 2]), phpbegin) 10994 11108 10995 11109 + return start … … 11194 11308 + let builtin_classnames = filter(keys(copy(g:php_builtin_classnames)), 'v:val =~? "^'.classname_match_pattern.'"') 11195 11309 + for classname in builtin_classnames 11196 + call add(res, {'word': classname, 'kind': 'c'})11310 + call add(res, {'word': g:php_builtin_classes[tolower(classname)].name, 'kind': 'c'}) 11197 11311 endfor 11198 11312 + let builtin_interfacenames = filter(keys(copy(g:php_builtin_interfacenames)), 'v:val =~? "^'.classname_match_pattern.'"') 11199 11313 + for interfacename in builtin_interfacenames 11200 + call add(res, {'word': interfacename, 'kind': 'i'})11314 + call add(res, {'word': g:php_builtin_interfaces[tolower(interfacename)].name, 'kind': 'i'}) 11201 11315 + endfor 11202 11316 + endif … … 11506 11620 + for [classname, info] in items(g:php_builtin_classnames) 11507 11621 + if classname =~? '^'.base 11508 + let builtin_classnames[leading_slash. classname] = info11622 + let builtin_classnames[leading_slash.g:php_builtin_classes[tolower(classname)].name] = info 11509 11623 endif 11510 11624 endfor … … 16638 16752 - \ 'include(': 'string filename | resource', 16639 16753 - \ 'include_once(': 'string filename | resource', 16754 - \ 'require(': 'string filename | resource', 16640 16755 + for line in file 16641 16756 + let c_name = matchstr(line, '\c\(class\|interface\)\s*\zs[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*') … … 16698 16813 + let menu = g:php_builtin_classes[tolower(classname)]['methods']['__construct']['signature'] 16699 16814 + endif 16700 + call add(res, {'word': leading_slash. classname, 'kind': 'c', 'menu': menu})16815 + call add(res, {'word': leading_slash.g:php_builtin_classes[tolower(classname)].name, 'kind': 'c', 'menu': menu}) 16701 16816 + endfor 16702 16817 + endif … … 16792 16907 + let f_args = matchstr(i, 16793 16908 + \ 'function\s*&\?[a-zA-Z_\x7f-\xff][a-zA-Z_0-9\x7f-\xff]*\s*(\zs.\{-}\ze)\_s*\({\|\_$\)') 16794 + if f_name != '' 16909 + if f_name != '' && stridx(f_name, '__') != 0 16795 16910 + let c_functions[f_name.'('] = f_args 16796 16911 + if g:phpcomplete_parse_docblock_comments 16797 + let c_doc[f_name.'('] = phpcomplete#GetDocBlock(a:sccontent, 'function\s* \<'.f_name.'\>')16912 + let c_doc[f_name.'('] = phpcomplete#GetDocBlock(a:sccontent, 'function\s*&\?\<'.f_name.'\>') 16798 16913 + endif 16799 16914 + endif … … 16915 17030 + " methods 16916 17031 + for [method_name, method_info] in items(class_info.methods) 16917 + if a:base == '' || method_name =~? '^'.a:base17032 + if stridx(method_name, '__') != 0 && (a:base == '' || method_name =~? '^'.a:base) 16918 17033 + call add(res, {'word':method_name.'(', 'kind': 'f', 'menu': method_info.signature, 'info': method_info.signature }) 16919 17034 + endif … … 17183 17298 + return unknown_result 17184 17299 + 17185 + elseif filereadable(classlocation)17300 + elseif classlocation != '' && filereadable(classlocation) 17186 17301 + " Read the next method from the stack and extract only the name 17187 17302 + … … 17191 17306 + " try to find the method's return type in docblock comment 17192 17307 + for classstructure in classcontents 17193 + let doclock_target_pattern = 'function\s\+ '.method.'\|\(public\|private\|protected\|var\).\+\$'.method17308 + let doclock_target_pattern = 'function\s\+&\?'.method.'\|\(public\|private\|protected\|var\).\+\$'.method 17194 17309 + let doc_str = phpcomplete#GetDocBlock(split(classstructure.content, '\n'), doclock_target_pattern) 17195 17310 + if doc_str != '' … … 17223 17338 + let fullnamespace = class_candidate_namespace 17224 17339 + endif 17225 + let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(returnclass, fullnamespace, a:imports) 17340 + " make @return self, static, $this the same way 17341 + " (not exactly what php means by these) 17342 + if returnclass == 'self' || returnclass == 'static' || returnclass == '$this' 17343 + let classname_candidate = a:classname_candidate 17344 + let class_candidate_namespace = a:class_candidate_namespace 17345 + else 17346 + let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(returnclass, fullnamespace, a:imports) 17347 + endif 17226 17348 + endif 17227 17349 + … … 17362 17484 + let classname_candidate = return_type 17363 17485 + let class_candidate_namespace = '\' 17364 + else 17486 + elseif function_file != '' && filereadable(function_file) 17365 17487 + let file_lines = readfile(function_file) 17366 + let docblock_str = phpcomplete#GetDocBlock(file_lines, 'function\s* \<'.function_name.'\>')17488 + let docblock_str = phpcomplete#GetDocBlock(file_lines, 'function\s*&\?\<'.function_name.'\>') 17367 17489 + let docblock = phpcomplete#ParseDocBlock(docblock_str) 17368 17490 + if has_key(docblock.return, 'type') … … 17380 17502 + endif 17381 17503 + else 17504 + " extract the variable name from the context 17505 + let object = methodstack[0] 17506 + let object_is_array = (object =~ '\v^[^[]+\[' ? 1 : 0) 17507 + let object = matchstr(object, variable_name_pattern) 17508 + 17382 17509 + " check Constant lookup 17383 17510 + let constant_object = matchstr(a:context, '\zs'.class_name_pattern.'\ze::') … … 17386 17513 + endif 17387 17514 + 17388 + " extract the variable name from the context 17389 + let object = methodstack[0] 17390 + let object_is_array = (object =~ '\v^[^[]+\[' ? 1 : 0) 17391 + let object = matchstr(object, variable_name_pattern) 17392 + 17393 + " scan the file backwards from current line for explicit type declaration (@var $variable Classname) 17394 + let i = 1 " start from the current line - 1 17395 + while i < a:start_line 17396 + let line = getline(a:start_line - i) 17397 + " in file lookup for /* @var $foo Class */ 17398 + if line =~# '@var\s\+'.object.'\s\+'.class_name_pattern 17399 + let classname_candidate = matchstr(line, '@var\s\+'.object.'\s\+\zs'.class_name_pattern.'\(\[\]\)\?') 17400 + break 17401 + elseif line !~ '^\s*$' 17402 + " type indicator comments should be next to the variable 17403 + " non empty lines break the search 17404 + break 17405 + endif 17406 + let i += 1 17407 + endwhile 17515 + if classname_candidate == '' 17516 + " scan the file backwards from current line for explicit type declaration (@var $variable Classname) 17517 + let i = 1 " start from the current line - 1 17518 + while i < a:start_line 17519 + let line = getline(a:start_line - i) 17520 + " in file lookup for /* @var $foo Class */ 17521 + if line =~# '@var\s\+'.object.'\s\+'.class_name_pattern 17522 + let classname_candidate = matchstr(line, '@var\s\+'.object.'\s\+\zs'.class_name_pattern.'\(\[\]\)\?') 17523 + let [classname_candidate, class_candidate_namespace] = phpcomplete#ExpandClassName(classname_candidate, a:current_namespace, a:imports) 17524 + break 17525 + elseif line !~ '^\s*$' 17526 + " type indicator comments should be next to the variable 17527 + " non empty lines break the search 17528 + break 17529 + endif 17530 + let i += 1 17531 + endwhile 17532 + endif 17408 17533 + 17409 17534 + if classname_candidate != '' … … 17415 17540 + " scan the file backwards from the current line 17416 17541 + let i = 1 17417 + while i < a:start_line 17542 + while i < a:start_line " {{{ 17418 17543 + let line = getline(a:start_line - i) 17419 17544 + … … 17527 17652 + let class_candidate_namespace = '\' 17528 17653 + break 17529 + else 17654 + elseif function_file != '' && filereadable(function_file) 17530 17655 + let file_lines = readfile(function_file) 17531 + let docblock_str = phpcomplete#GetDocBlock(file_lines, 'function\s* \<'.function_name.'\>')17656 + let docblock_str = phpcomplete#GetDocBlock(file_lines, 'function\s*&\?\<'.function_name.'\>') 17532 17657 + let docblock = phpcomplete#ParseDocBlock(docblock_str) 17533 17658 + if has_key(docblock.return, 'type') … … 17579 17704 + 17580 17705 + let i += 1 17581 + endwhile 17706 + endwhile " }}} 17582 17707 + 17583 17708 + if classname_candidate != '' … … 17650 17775 + endif 17651 17776 + 17777 + return '' 17652 17778 +endfunction 17653 17779 +" }}} … … 17660 17786 + endif 17661 17787 + 17788 + 17662 17789 + " do in-file lookup for function definition 17663 17790 + let i = 1 17664 17791 + let buffer_lines = getline(1, line('$')) 17665 17792 + for line in buffer_lines 17666 + if line =~? '^\s*function\s\+ '.a:function_name.'\s*('17793 + if line =~? '^\s*function\s\+&\?'.a:function_name.'\s*(' 17667 17794 + return expand('%:p') 17668 17795 + endif … … 17692 17819 + return no_namespace_candidate 17693 17820 + endif 17821 + 17822 + return '' 17694 17823 +endfunction 17695 17824 +" }}} … … 17782 17911 + silent! below 1new 17783 17912 + silent! 0put =cfile 17784 + call search('\(class\|interface\)\ s\+'.a:class_name.'\(\>\|$\)')17913 + call search('\(class\|interface\)\_s\+'.a:class_name.'\(\>\|$\)') 17785 17914 + let cfline = line('.') 17786 17915 + call search('{') … … 17815 17944 + endif 17816 17945 + let classlocation = phpcomplete#GetClassLocation(extends_class, namespace) 17817 + if filereadable(classlocation)17946 + if classlocation != '' && filereadable(classlocation) 17818 17947 + let full_file_path = fnamemodify(classlocation, ':p') 17819 17948 + let result += phpcomplete#GetClassContentsStructure(full_file_path, readfile(full_file_path), extends_class) … … 18132 18261 + let import['kind'] = 'c' 18133 18262 + let import['builtin'] = 1 18134 + elseif has_key(g:php_builtin_interface s, import.name)18263 + elseif has_key(g:php_builtin_interfacenames, tolower(import.name)) 18135 18264 + let import['kind'] = 'i' 18136 18265 + let import['builtin'] = 1 … … 18360 18489 + endfor 18361 18490 + 18362 + let g:php_builtin_classnames[class _info.name] = ''18491 + let g:php_builtin_classnames[classname] = '' 18363 18492 + for [method_name, method_info] in items(class_info.methods) 18364 18493 + let g:php_builtin_object_functions[classname.'::'.method_name.'('] = method_info.signature … … 18379 18508 + let g:php_builtin_interfacenames[interfacename] = '' 18380 18509 + for [method_name, method_info] in items(class_info.methods) 18381 + let g:php_builtin_object_functions[ classname.'::'.method_name.'('] = method_info.signature18510 + let g:php_builtin_object_functions[interfacename.'::'.method_name.'('] = method_info.signature 18382 18511 + endfor 18383 18512 + for [method_name, method_info] in items(class_info.static_methods) 18384 + let g:php_builtin_object_functions[ classname.'::'.method_name.'('] = method_info.signature18513 + let g:php_builtin_object_functions[interfacename.'::'.method_name.'('] = method_info.signature 18385 18514 + endfor 18386 18515 +endfor … … 18391 18520 + \ 'include(': 'string filename | resource', 18392 18521 + \ 'include_once(': 'string filename | resource', 18393 18522 + \ 'require(': 'string filename | resource', 18394 18523 \ 'require_once(': 'string filename | resource', 18395 18524 \ } … … 18426 18555 diff -Naur vim74.orig/runtime/colors/README.txt vim74/runtime/colors/README.txt 18427 18556 --- vim74.orig/runtime/colors/README.txt 2010-05-15 11:03:31.000000000 +0000 18428 +++ vim74/runtime/colors/README.txt 2014-0 6-01 00:42:49.970875179+000018557 +++ vim74/runtime/colors/README.txt 2014-07-21 23:33:12.600204483 +0000 18429 18558 @@ -36,6 +36,14 @@ 18430 18559 removed in your color scheme. Use something like "gui=NONE" to remove the … … 18444 18573 diff -Naur vim74.orig/runtime/colors/delek.vim vim74/runtime/colors/delek.vim 18445 18574 --- vim74.orig/runtime/colors/delek.vim 2010-05-15 11:03:31.000000000 +0000 18446 +++ vim74/runtime/colors/delek.vim 2014-0 6-01 00:42:50.027541702+000018575 +++ vim74/runtime/colors/delek.vim 2014-07-21 23:33:12.646871028 +0000 18447 18576 @@ -1,10 +1,10 @@ 18448 18577 " Vim color file … … 18474 18603 diff -Naur vim74.orig/runtime/colors/industry.vim vim74/runtime/colors/industry.vim 18475 18604 --- vim74.orig/runtime/colors/industry.vim 1970-01-01 00:00:00.000000000 +0000 18476 +++ vim74/runtime/colors/industry.vim 2014-0 6-01 00:42:50.067541600+000018605 +++ vim74/runtime/colors/industry.vim 2014-07-21 23:33:12.710204196 +0000 18477 18606 @@ -0,0 +1,40 @@ 18478 18607 +" Vim color file … … 18518 18647 diff -Naur vim74.orig/runtime/compiler/gcc.vim vim74/runtime/compiler/gcc.vim 18519 18648 --- vim74.orig/runtime/compiler/gcc.vim 2011-12-15 20:20:22.000000000 +0000 18520 +++ vim74/runtime/compiler/gcc.vim 2014-0 6-01 00:42:50.447540632+000018649 +++ vim74/runtime/compiler/gcc.vim 2014-07-21 23:33:13.026870036 +0000 18521 18650 @@ -25,10 +25,10 @@ 18522 18651 \%f:%l:\ %tarning:\ %m, … … 18536 18665 diff -Naur vim74.orig/runtime/doc/autocmd.txt vim74/runtime/doc/autocmd.txt 18537 18666 --- vim74.orig/runtime/doc/autocmd.txt 2013-08-10 11:24:52.000000000 +0000 18538 +++ vim74/runtime/doc/autocmd.txt 2014-0 6-01 00:42:51.010872531+000018667 +++ vim74/runtime/doc/autocmd.txt 2014-07-21 23:33:13.573535276 +0000 18539 18668 @@ -1,4 +1,4 @@ 18540 18669 -*autocmd.txt* For Vim version 7.4. Last change: 2013 Aug 04 … … 18594 18723 diff -Naur vim74.orig/runtime/doc/change.txt vim74/runtime/doc/change.txt 18595 18724 --- vim74.orig/runtime/doc/change.txt 2013-08-10 11:24:52.000000000 +0000 18596 +++ vim74/runtime/doc/change.txt 2014-0 6-01 00:42:51.047539105+000018725 +++ vim74/runtime/doc/change.txt 2014-07-21 23:33:13.596868549 +0000 18597 18726 @@ -1,4 +1,4 @@ 18598 18727 -*change.txt* For Vim version 7.4. Last change: 2013 Jul 17 18599 +*change.txt* For Vim version 7.4. Last change: 2014 Feb 1118728 +*change.txt* For Vim version 7.4. Last change: 2014 Jun 26 18600 18729 18601 18730 … … 18661 18790 *:sor* *:sort* 18662 18791 :[range]sor[t][!] [i][u][r][n][x][o] [/{pattern}/] 18792 @@ -1707,8 +1717,8 @@ 18793 quite useless. 18794 18795 The details about sorting depend on the library function used. There is no 18796 -guarantee that sorting is "stable" or obeys the current locale. You will have 18797 -to try it out. 18798 +guarantee that sorting obeys the current locale. You will have to try it out. 18799 +Vim does do a "stable" sort. 18800 18801 The sorting can be interrupted, but if you interrupt it too late in the 18802 process you may end up with duplicated lines. This also depends on the system 18663 18803 diff -Naur vim74.orig/runtime/doc/cmdline.txt vim74/runtime/doc/cmdline.txt 18664 18804 --- vim74.orig/runtime/doc/cmdline.txt 2013-08-10 11:24:52.000000000 +0000 18665 +++ vim74/runtime/doc/cmdline.txt 2014-0 6-01 00:42:51.080872353+000018805 +++ vim74/runtime/doc/cmdline.txt 2014-07-21 23:33:13.640201769 +0000 18666 18806 @@ -1,4 +1,4 @@ 18667 18807 -*cmdline.txt* For Vim version 7.4. Last change: 2013 Mar 16 … … 18713 18853 diff -Naur vim74.orig/runtime/doc/develop.txt vim74/runtime/doc/develop.txt 18714 18854 --- vim74.orig/runtime/doc/develop.txt 2013-08-10 11:24:52.000000000 +0000 18715 +++ vim74/runtime/doc/develop.txt 2014-0 6-01 00:42:51.124205576+000018855 +++ vim74/runtime/doc/develop.txt 2014-07-21 23:33:13.676868340 +0000 18716 18856 @@ -1,4 +1,4 @@ 18717 18857 -*develop.txt* For Vim version 7.4. Last change: 2013 Apr 27 … … 18730 18870 diff -Naur vim74.orig/runtime/doc/diff.txt vim74/runtime/doc/diff.txt 18731 18871 --- vim74.orig/runtime/doc/diff.txt 2013-08-10 11:24:52.000000000 +0000 18732 +++ vim74/runtime/doc/diff.txt 2014-0 6-01 00:42:51.130872226+000018872 +++ vim74/runtime/doc/diff.txt 2014-07-21 23:33:13.686868314 +0000 18733 18873 @@ -1,4 +1,4 @@ 18734 18874 -*diff.txt* For Vim version 7.4. Last change: 2013 Jul 07 … … 18765 18905 diff -Naur vim74.orig/runtime/doc/digraph.txt vim74/runtime/doc/digraph.txt 18766 18906 --- vim74.orig/runtime/doc/digraph.txt 2013-08-10 11:24:52.000000000 +0000 18767 +++ vim74/runtime/doc/digraph.txt 2014-0 6-01 00:42:51.154205500+000018907 +++ vim74/runtime/doc/digraph.txt 2014-07-21 23:33:13.713534911 +0000 18768 18908 @@ -1,4 +1,4 @@ 18769 18909 -*digraph.txt* For Vim version 7.4. Last change: 2011 Jan 15 18770 +*digraph.txt* For Vim version 7.4. Last change: 2014 Apr 1718910 +*digraph.txt* For Vim version 7.4. Last change: 2014 Jun 19 18771 18911 18772 18912 … … 18781 18921 Percent sign % Greek/Cyrillic special 18782 18922 Plus + smalls: Arabic, capitals: Hebrew 18783 @@ -1077,7 +1077,7 @@ 18923 @@ -170,6 +170,11 @@ 18924 used for the euro sign, while both of them are the character 164, 0xa4. For 18925 compatibility with zsh Eu can also be used for the euro sign. 18926 18927 +ROUBLE 18928 + 18929 +The rouble sign was added in 2014 as 0x20bd. Vim supports the digraphs =R and 18930 +=P for this. Note that R= and P= are other characters. 18931 + 18932 *digraph-table* 18933 char digraph hex dec official name ~ 18934 ^@ NU 0x00 0 NULL (NUL) 18935 @@ -966,6 +971,8 @@ 18936 ⧠Pt 20A7 8359 PESETA SIGN 18937 â© W= 20A9 8361 WON SIGN 18938 ⬠Eu 20AC 8364 EURO SIGN 18939 +✠=R 20BD 8381 ROUBLE SIGN 18940 +✠=P 20BD 8381 ROUBLE SIGN 18941 â oC 2103 8451 DEGREE CELSIUS 18942 â 18943 co 2105 8453 CARE OF 18944 â oF 2109 8457 DEGREE FAHRENHEIT 18945 @@ -1077,7 +1084,7 @@ 18784 18946 ⥠-T 22A5 8869 UP TACK 18785 18947 â … … 18793 18955 diff -Naur vim74.orig/runtime/doc/editing.txt vim74/runtime/doc/editing.txt 18794 18956 --- vim74.orig/runtime/doc/editing.txt 2013-08-10 11:24:53.000000000 +0000 18795 +++ vim74/runtime/doc/editing.txt 2014-0 6-01 00:42:51.197538723+000018957 +++ vim74/runtime/doc/editing.txt 2014-07-21 23:33:13.746868157 +0000 18796 18958 @@ -1,4 +1,4 @@ 18797 18959 -*editing.txt* For Vim version 7.4. Last change: 2013 Aug 03 18798 +*editing.txt* For Vim version 7.4. Last change: 2014 May 0218960 +*editing.txt* For Vim version 7.4. Last change: 2014 Jul 19 18799 18961 18800 18962 … … 18808 18970 *:keepalt* *:keepa* 18809 18971 :keepalt {cmd} Execute {cmd} while keeping the current alternate file 18810 @@ -1468,14 +1469,15 @@ 18972 @@ -1361,6 +1362,11 @@ 18973 {only available when compiled with the |+cryptv| feature} *E833* 18974 18975 The text in the swap file and the undo file is also encrypted. *E843* 18976 +However, this is done block-by-block and may reduce the time needed to crack a 18977 +password. You can disable the swap file, but then a crash will cause you to 18978 +lose your work. The undo file can be disabled without much disadvantage. > 18979 + :set noundofile 18980 + :noswapfile edit secrets 18981 18982 Note: The text in memory is not encrypted. A system administrator may be able 18983 to see your text while you are editing it. When filtering text with 18984 @@ -1468,14 +1474,15 @@ 18811 18985 ============================================================================== 18812 18986 10. Timestamps *timestamp* *timestamps* … … 18834 19008 diff -Naur vim74.orig/runtime/doc/eval.txt vim74/runtime/doc/eval.txt 18835 19009 --- vim74.orig/runtime/doc/eval.txt 2013-08-10 11:24:53.000000000 +0000 18836 +++ vim74/runtime/doc/eval.txt 2014-0 6-01 00:42:51.230871971+000019010 +++ vim74/runtime/doc/eval.txt 2014-07-21 23:33:13.853534545 +0000 18837 19011 @@ -1,4 +1,4 @@ 18838 19012 -*eval.txt* For Vim version 7.4. Last change: 2013 Aug 03 18839 +*eval.txt* For Vim version 7.4. Last change: 2014 May 0719013 +*eval.txt* For Vim version 7.4. Last change: 2014 Jul 19 18840 19014 18841 19015 … … 19007 19181 has( {feature}) Number TRUE if feature {feature} supported 19008 19182 has_key( {dict}, {key}) Number TRUE if {dict} has entry {key} 19009 @@ -1968,7 +1994,8 @@ 19183 @@ -1861,6 +1887,8 @@ 19184 Number position where {pat} matches in {expr} 19185 matchadd( {group}, {pattern}[, {priority}[, {id}]]) 19186 Number highlight {pattern} with {group} 19187 +matchaddpos( {group}, {list}[, {priority}[, {id}]]) 19188 + Number highlight positions with {group} 19189 matcharg( {nr}) List arguments of |:match| 19190 matchdelete( {id}) Number delete match identified by {id} 19191 matchend( {expr}, {pat}[, {start}[, {count}]]) 19192 @@ -1968,7 +1996,8 @@ 19010 19193 Number last index of {needle} in {haystack} 19011 19194 strtrans( {expr}) String translate string to make it printable … … 19017 19200 String all {pat} in {expr} replaced with {sub} 19018 19201 synID( {lnum}, {col}, {trans}) Number syntax ID at {lnum} and {col} 19019 @@ -1978,6 +200 5,7 @@19202 @@ -1978,6 +2007,7 @@ 19020 19203 synconcealed( {lnum}, {col}) List info about concealing 19021 19204 synstack( {lnum}, {col}) List stack of syntax IDs at {lnum} and {col} … … 19025 19208 tabpagenr( [{arg}]) Number number of current or last tab page 19026 19209 tabpagewinnr( {tabarg}[, {arg}]) 19027 @@ -1995,6 +202 3,8 @@19210 @@ -1995,6 +2025,8 @@ 19028 19211 type( {name}) Number type of variable {name} 19029 19212 undofile( {name}) String undo file name for {name} … … 19034 19217 virtcol( {expr}) Number screen column of cursor or mark 19035 19218 visualmode( [expr]) String last visual mode used 19036 @@ -2076,6 +210 6,18 @@19219 @@ -2076,6 +2108,18 @@ 19037 19220 argidx() The result is the current index in the argument list. 0 is 19038 19221 the first file. argc() - 1 is the last one. See |arglist|. … … 19053 19236 argv([{nr}]) The result is the {nr}th file in the argument list of the 19054 19237 current window. See |arglist|. "argv(0)" is the first one. 19055 @@ -2260,7 +230 2,10 @@19238 @@ -2260,7 +2304,10 @@ 19056 19239 {expr}. Use zero for the first character, it returns zero. 19057 19240 This function is only useful when there are multibyte … … 19065 19248 echo matchstr(str, ".", byteidx(str, 3)) 19066 19249 < will display the fourth character. Another way to do the 19067 @@ -2269,7 +231 4,20 @@19250 @@ -2269,7 +2316,20 @@ 19068 19251 echo strpart(s, 0, byteidx(s, 1)) 19069 19252 < If there are less than {nr} characters -1 is returned. … … 19087 19270 call({func}, {arglist} [, {dict}]) *call()* *E699* 19088 19271 Call function {func} with the items in |List| {arglist} as 19089 @@ -2544,9 +260 2,14 @@19272 @@ -2544,9 +2604,14 @@ 19090 19273 cursor({list}) 19091 19274 Positions the cursor at the column (byte count) {col} in the … … 19098 19281 + [{lnum}, {col}, {off}] 19099 19282 + [{lnum}, {col}, {off}, {curswant}] 19100 + This is like the return value of |getpos()| or |getcurpos |,19283 + This is like the return value of |getpos()| or |getcurpos()|, 19101 19284 + but without the first item. 19102 19285 + … … 19104 19287 If {lnum} is greater than the number of lines in the buffer, 19105 19288 the cursor will be positioned at the last line in the buffer. 19106 @@ -2555,6 +26 18,8 @@19289 @@ -2555,6 +2620,8 @@ 19107 19290 the cursor will be positioned at the last character in the 19108 19291 line. … … 19113 19296 screen columns from the start of the character. E.g., a 19114 19297 position within a <Tab> or after the last character. 19115 @@ -2671,6 +273 6,15 @@19298 @@ -2671,6 +2738,15 @@ 19116 19299 0 does not exist 19117 19300 -1 not implemented on this system … … 19129 19312 exists({expr}) The result is a Number, which is non-zero if {expr} is 19130 19313 defined, zero otherwise. The {expr} argument is a string, 19131 @@ -2683,7 +275 7,8 @@19314 @@ -2683,7 +2759,8 @@ 19132 19315 string) 19133 19316 *funcname built-in function (see |functions|) … … 19139 19322 |internal-variables|). Also works 19140 19323 for |curly-braces-names|, |Dictionary| 19141 @@ -2789,7 +286 4,7 @@19324 @@ -2789,7 +2866,7 @@ 19142 19325 <afile> autocmd file name 19143 19326 <abuf> autocmd buffer number (as a String!) … … 19148 19331 <cword> word under the cursor 19149 19332 <cWORD> WORD under the cursor 19150 @@ -3175,7 +325 0,7 @@19333 @@ -3175,7 +3252,7 @@ 19151 19334 If [expr] is 1, only check if a character is available, it is 19152 19335 not consumed. Return zero if no character available. … … 19157 19340 result is a number. Use nr2char() to convert it to a String. 19158 19341 Otherwise a String is returned with the encoded character. 19159 @@ -3185,7 +326 0,7@@19342 @@ -3185,7 +3262,11 @@ 19160 19343 String when a modifier (shift, control, alt) was used that is 19161 19344 not included in the character. 19162 19345 19163 19346 - When {expr} is 1 only the first byte is returned. For a 19347 + When [expr] is 0 and Esc is typed, there will be a short delay 19348 + while Vim waits to see if this is the start of an escape 19349 + sequence. 19350 + 19164 19351 + When [expr] is 1 only the first byte is returned. For a 19165 19352 one-byte character it is the character itself as a number. 19166 19353 Use nr2char() to convert it to a String. 19167 19354 19168 @@ -3268,6 +334 3,17 @@19355 @@ -3268,6 +3349,17 @@ 19169 19356 Returns an empty string otherwise. 19170 19357 Also see |getcmdpos()|, |setcmdpos()| and |getcmdline()|. … … 19184 19371 getcwd() The result is a String, which is the name of the current 19185 19372 working directory. 19186 @@ -3417,7 +3503,7 @@ 19373 @@ -3389,6 +3481,34 @@ 19374 'pattern': 'FIXME', 'priority': 10, 'id': 2}] > 19375 :unlet m 19376 < 19377 + *getpid()* 19378 +getpid() Return a Number which is the process ID of the Vim process. 19379 + On Unix and MS-Windows this is a unique number, until Vim 19380 + exits. On MS-DOS it's always zero. 19381 + 19382 + *getpos()* 19383 +getpos({expr}) Get the position for {expr}. For possible values of {expr} 19384 + see |line()|. For getting the cursor position see 19385 + |getcurpos()|. 19386 + The result is a |List| with four numbers: 19387 + [bufnum, lnum, col, off] 19388 + "bufnum" is zero, unless a mark like '0 or 'A is used, then it 19389 + is the buffer number of the mark. 19390 + "lnum" and "col" are the position in the buffer. The first 19391 + column is 1. 19392 + The "off" number is zero, unless 'virtualedit' is used. Then 19393 + it is the offset in screen columns from the start of the 19394 + character. E.g., a position within a <Tab> or after the last 19395 + character. 19396 + Note that for '< and '> Visual mode matters: when it is "V" 19397 + (visual line mode) the column of '< is zero and the column of 19398 + '> is a large number. 19399 + This can be used to save and restore the position of a mark: > 19400 + let save_a_mark = getpos("'a") 19401 + ... 19402 + call setpos(''a', save_a_mark 19403 +< Also see |getcurpos()| and |setpos()|. 19404 + 19405 19406 getqflist() *getqflist()* 19407 Returns a list with all the current quickfix errors. Each 19408 @@ -3417,7 +3537,7 @@ 19187 19409 :endfor 19188 19410 … … 19193 19415 {regname}. Example: > 19194 19416 :let cliptext = getreg('*') 19195 @@ -3426,6 +35 12,11 @@19417 @@ -3426,6 +3546,11 @@ 19196 19418 getreg('=', 1) returns the expression itself, so that it can 19197 19419 be restored with |setreg()|. For other registers the extra … … 19205 19427 19206 19428 19207 @@ -3435,7 +35 26,7 @@19429 @@ -3435,7 +3560,7 @@ 19208 19430 "v" for |characterwise| text 19209 19431 "V" for |linewise| text … … 19214 19436 If {regname} is not specified, |v:register| is used. 19215 19437 19216 @@ -3513,11 +36 04,12 @@19438 @@ -3513,11 +3638,12 @@ 19217 19439 See |expand()| for expanding special Vim variables. See 19218 19440 |system()| for getting the raw output of an external command. … … 19229 19451 |glob()|. A path separator is inserted when needed. 19230 19452 To add a comma inside a directory name escape it with a 19231 @@ -3525,11 +36 17,19 @@19453 @@ -3525,11 +3651,19 @@ 19232 19454 trailing backslash, remove it if you put a comma after it. 19233 19455 If the expansion fails for one of the directories, there is no … … 19250 19472 For example, to find all "README.txt" files in the directories 19251 19473 in 'runtimepath' and below: > 19252 @@ -4109,6 +42 09,8 @@19474 @@ -4109,6 +4243,8 @@ 19253 19475 (|mapmode-ic|) 19254 19476 "sid" The script local ID, used for <sid> mappings … … 19259 19481 The mappings local to the current buffer are checked first, 19260 19482 then the global mappings. 19261 @@ -4210,6 +43 12,9 @@19483 @@ -4210,6 +4346,9 @@ 19262 19484 "match"). It will be highlighted with {group}. Returns an 19263 19485 identification number (ID), which can be used to delete the … … 19269 19491 The optional {priority} argument assigns a priority to the 19270 19492 match. A match with a high priority will have its 19271 @@ -4408,7 +4513,8 @@ 19272 19273 *getpos()* 19274 getpos({expr}) Get the position for {expr}. For possible values of {expr} 19493 @@ -4243,6 +4382,41 @@ 19494 available from |getmatches()|. All matches can be deleted in 19495 one operation by |clearmatches()|. 19496 19497 +matchaddpos({group}, {pos}[, {priority}[, {id}]]) *matchaddpos()* 19498 + Same as |matchadd()|, but requires a list of positions {pos} 19499 + instead of a pattern. This command is faster than |matchadd()| 19500 + because it does not require to handle regular expressions and 19501 + sets buffer line boundaries to redraw screen. It is supposed 19502 + to be used when fast match additions and deletions are 19503 + required, for example to highlight matching parentheses. 19504 + 19505 + The list {pos} can contain one of these items: 19506 + - A number. This whole line will be highlighted. The first 19507 + line has number 1. 19508 + - A list with one number, e.g., [23]. The whole line with this 19509 + number will be highlighted. 19510 + - A list with two numbers, e.g., [23, 11]. The first number is 19511 + the line number, the second one is the column number (first 19512 + column is 1, the value must correspond to the byte index as 19513 + |col()| would return). The character at this position will 19514 + be highlighted. 19515 + - A list with three numbers, e.g., [23, 11, 3]. As above, but 19516 + the third number gives the length of the highlight in bytes. 19517 + 19518 + The maximum number of positions is 8. 19519 + 19520 + Example: > 19521 + :highlight MyGroup ctermbg=green guibg=green 19522 + :let m = matchaddpos("MyGroup", [[23, 24], 34]) 19523 +< Deletion of the pattern: > 19524 + :call matchdelete(m) 19525 + 19526 +< Matches added by |matchaddpos()| are returned by 19527 + |getmatches()| with an entry "pos1", "pos2", etc., with the 19528 + value a list like the {pos} item. 19529 + These matches cannot be set via |setmatches()|, however they 19530 + can still be deleted by |clearmatches()|. 19531 + 19532 matcharg({nr}) *matcharg()* 19533 Selects the {nr} match item, as set with a |:match|, 19534 |:2match| or |:3match| command. 19535 @@ -4401,30 +4575,6 @@ 19536 characters. nr2char(0) is a real NUL and terminates the 19537 string, thus results in an empty string. 19538 19539 - *getpid()* 19540 -getpid() Return a Number which is the process ID of the Vim process. 19541 - On Unix and MS-Windows this is a unique number, until Vim 19542 - exits. On MS-DOS it's always zero. 19543 - 19544 - *getpos()* 19545 -getpos({expr}) Get the position for {expr}. For possible values of {expr} 19275 19546 - see |line()|. 19276 + see |line()|. For getting the cursor position see 19277 + |getcurpos()|. 19278 The result is a |List| with four numbers: 19279 [bufnum, lnum, col, off] 19280 "bufnum" is zero, unless a mark like '0 or 'A is used, then it 19281 @@ -4419,11 +4525,14 @@ 19282 it is the offset in screen columns from the start of the 19283 character. E.g., a position within a <Tab> or after the last 19284 character. 19547 - The result is a |List| with four numbers: 19548 - [bufnum, lnum, col, off] 19549 - "bufnum" is zero, unless a mark like '0 or 'A is used, then it 19550 - is the buffer number of the mark. 19551 - "lnum" and "col" are the position in the buffer. The first 19552 - column is 1. 19553 - The "off" number is zero, unless 'virtualedit' is used. Then 19554 - it is the offset in screen columns from the start of the 19555 - character. E.g., a position within a <Tab> or after the last 19556 - character. 19285 19557 - This can be used to save and restore the cursor position: > 19286 19558 - let save_cursor = getpos(".") … … 19288 19560 - call setpos('.', save_cursor) 19289 19561 -< Also see |setpos()|. 19290 + Note that for '< and '> Visual mode matters: when it is "V" 19291 + (visual line mode) the column of '< is zero and the column of 19292 + '> is a large number. 19293 + This can be used to save and restore the position of a mark: > 19294 + let save_a_mark = getpos("'a") 19295 + ... 19296 + call setpos(''a', save_a_mark 19297 +< Also see |getcurpos()| and |setpos()|. 19298 19562 - 19299 19563 or({expr}, {expr}) *or()* 19300 19564 Bitwise OR on the two arguments. The arguments are converted 19301 @@ -5223,8 +5332,9 @@ 19565 to a number. A List, Dict or Float argument causes an error. 19566 @@ -5223,8 +5373,9 @@ 19302 19567 . the cursor 19303 19568 'x mark x … … 19310 19575 "bufnum" is the buffer number. Zero can be used for the 19311 19576 current buffer. Setting the cursor is only possible for 19312 @@ -5242,13 +53 52,26 @@19577 @@ -5242,13 +5393,26 @@ 19313 19578 character. E.g., a position within a <Tab> or after the last 19314 19579 character. … … 19339 19604 19340 19605 setqflist({list} [, {action}]) *setqflist()* 19341 @@ -5300,6 +54 23,8 @@19606 @@ -5300,6 +5464,8 @@ 19342 19607 *setreg()* 19343 19608 setreg({regname}, {value} [,{options}]) … … 19348 19613 then the value is appended. 19349 19614 {options} can also contain a register type specification: 19350 @@ -5312,10 +54 37,15 @@19615 @@ -5312,10 +5478,15 @@ 19351 19616 in the longest line (counting a <Tab> as 1 character). 19352 19617 … … 19368 19633 Examples: > 19369 19634 :call setreg(v:register, @*) 19370 @@ -5323,8 +54 53,11 @@19635 @@ -5323,8 +5494,11 @@ 19371 19636 :call setreg('a', "1\n2\n3", 'b5') 19372 19637 … … 19382 19647 .... 19383 19648 :call setreg('a', var_a, var_amode) 19384 @@ -5390,6 +55 23,7 @@19649 @@ -5390,6 +5564,7 @@ 19385 19650 < This results in a directory listing for the file under the 19386 19651 cursor. Example of use with |system()|: > … … 19390 19655 19391 19656 shiftwidth() *shiftwidth()* 19392 @@ -5449,20 +5 583,26@@19657 @@ -5449,20 +5624,40 @@ 19393 19658 19394 19659 … … 19400 19665 + If you want a list to remain unmodified make a copy first: > 19401 19666 :let sortedlist = sort(copy(mylist)) 19402 < Uses the string representation of each item to sort on. 19403 Numbers sort after Strings, |Lists| after Numbers. 19404 For sorting text in the current buffer use |:sort|. 19405 + 19406 When {func} is given and it is one then case is ignored. 19667 -< Uses the string representation of each item to sort on. 19668 - Numbers sort after Strings, |Lists| after Numbers. 19669 - For sorting text in the current buffer use |:sort|. 19670 - When {func} is given and it is one then case is ignored. 19407 19671 - {dict} is for functions with the "dict" attribute. It will be 19408 19672 - used to set the local variable "self". |Dictionary-function| 19673 + 19674 +< When {func} is omitted, is empty or zero, then sort() uses the 19675 + string representation of each item to sort on. Numbers sort 19676 + after Strings, |Lists| after Numbers. For sorting text in the 19677 + current buffer use |:sort|. 19678 + 19679 + When {func} is given and it is is '1' or 'i' then case is 19680 + ignored. 19681 + 19682 + When {func} is given and it is 'n' then all items will be 19683 + sorted numerical (Implementation detail: This uses the 19684 + strtod() function to parse numbers, Strings, Lists, Dicts and 19685 + Funcrefs will be considered as being 0). 19686 + 19409 19687 When {func} is a |Funcref| or a function name, this function 19410 19688 is called to compare items. The function is invoked with two … … 19416 19694 + used to set the local variable "self". |Dictionary-function| 19417 19695 + 19696 + The sort is stable, items which compare equal (as number or as 19697 + string) will keep their relative position. E.g., when sorting 19698 + on numbers, text strings will sort next to each other, in the 19699 + same order as they were originally. 19700 + 19418 19701 + Also see |uniq()|. 19419 19702 + … … 19421 19704 func MyCompare(i1, i2) 19422 19705 return a:i1 == a:i2 ? 0 : a:i1 > a:i2 ? 1 : -1 19423 @@ -5604,7 +57 44,7 @@19706 @@ -5604,7 +5799,7 @@ 19424 19707 19425 19708 strdisplaywidth({expr}[, {col}]) *strdisplaywidth()* … … 19430 19713 screen column where to start. This matters for Tab 19431 19714 characters. 19432 @@ -5729,12 +5 869,23 @@19715 @@ -5729,12 +5924,23 @@ 19433 19716 Ambiguous, this function's return value depends on 'ambiwidth'. 19434 19717 Also see |strlen()|, |strdisplaywidth()| and |strchars()|. … … 19455 19738 :s/\d\+/\=submatch(0) + 1/ 19456 19739 < This finds the first number in the line and adds one to it. 19457 @@ -5867,19 +60 18,29 @@19740 @@ -5867,19 +6073,29 @@ 19458 19741 valid positions. 19459 19742 … … 19494 19777 < To make the result more system-independent, the shell output 19495 19778 is filtered to replace <CR> with <NL> for Macintosh, and 19496 @@ -5906,6 +6 067,16 @@19779 @@ -5906,6 +6122,16 @@ 19497 19780 Use |:checktime| to force a check. 19498 19781 … … 19511 19794 The result is a |List|, where each item is the number of the 19512 19795 buffer associated with each window in the current tab page. 19513 @@ -5928,7 +6 099,7 @@19796 @@ -5928,7 +6154,7 @@ 19514 19797 The number can be used with the |:tab| command. 19515 19798 … … 19520 19803 {tabarg} specifies the number of tab page to be used. 19521 19804 {arg} is used like with |winnr()|: 19522 @@ -6128,6 +6 299,14 @@19805 @@ -6128,6 +6354,14 @@ 19523 19806 blocks. Each item may again have an "alt" 19524 19807 item. … … 19535 19818 Return a |List| with all the values of {dict}. The |List| is 19536 19819 in arbitrary order. 19537 @@ -6257,6 +64 36,16 @@19820 @@ -6257,6 +6491,16 @@ 19538 19821 winrestview({dict}) 19539 19822 Uses the |Dictionary| returned by |winsaveview()| to restore … … 19552 19835 If the window size changed the result won't be the same. 19553 19836 19554 @@ -6271,7 +6460,9 @@ 19555 not opened when moving around. 19837 @@ -6268,10 +6512,12 @@ 19838 buffer and you want to go back to the original view. 19839 This does not save fold information. Use the 'foldenable' 19840 option to temporarily switch off folding, so that folds are 19841 - not opened when moving around. 19842 + not opened when moving around. This may have side effects. 19556 19843 The return value includes: 19557 19844 lnum cursor line number … … 19563 19850 curswant column for vertical movement 19564 19851 topline first line in the window 19565 @@ -6330,13 +6521,24 @@ 19852 @@ -6322,7 +6568,7 @@ 19853 19854 19855 *feature-list* 19856 -There are three types of features: 19857 +There are four types of features: 19858 1. Features that are only supported when they have been enabled when Vim 19859 was compiled |+feature-list|. Example: > 19860 :if has("cindent") 19861 @@ -6330,13 +6576,24 @@ 19566 19862 Example: > 19567 19863 :if has("gui_running") … … 19592 19888 amiga Amiga version of Vim. 19593 19889 arabic Compiled with Arabic support |Arabic|. 19594 @@ -6503,7 +6705,9 @@ 19890 @@ -6407,8 +6664,8 @@ 19891 keymap Compiled with 'keymap' support. 19892 langmap Compiled with 'langmap' support. 19893 libcall Compiled with |libcall()| support. 19894 -linebreak Compiled with 'linebreak', 'breakat' and 'showbreak' 19895 - support. 19896 +linebreak Compiled with 'linebreak', 'breakat', 'showbreak' and 19897 + 'breakindent' support. 19898 lispindent Compiled with support for lisp indenting. 19899 listcmds Compiled with commands for the buffer list |:files| 19900 and the argument list |arglist|. 19901 @@ -6503,7 +6760,9 @@ 19595 19902 writebackup Compiled with 'writebackup' default on. 19596 19903 xfontset Compiled with X fontset support |xfontset|. … … 19603 19910 xsmp_interact Compiled with interactive X session management support. 19604 19911 xterm_clipboard Compiled with support for xterm clipboard. 19605 @@ -6553,6 +6 757,8 @@19912 @@ -6553,6 +6812,8 @@ 19606 19913 and autocommands defined in the script. It is also possible to call the 19607 19914 function from a mapping defined in the script, but then |<SID>| must be used … … 19612 19919 *:fu* *:function* *E128* *E129* *E123* 19613 19920 :fu[nction] List all functions and their arguments. 19614 @@ -6576,11 +6 782,15 @@19921 @@ -6576,11 +6837,15 @@ 19615 19922 < 19616 19923 See |:verbose-cmd| for more information. … … 19630 19937 {name} can also be a |Dictionary| entry that is a 19631 19938 |Funcref|: > 19632 @@ -6599,7 +68 09,7 @@19939 @@ -6599,7 +6864,7 @@ 19633 19940 19634 19941 For the {arguments} see |function-argument|. … … 19639 19946 expected to take care of a range itself. The range is 19640 19947 passed as "a:firstline" and "a:lastline". If [range] 19641 @@ -6608,10 +68 18,10 @@19948 @@ -6608,10 +6873,10 @@ 19642 19949 of each line. See |function-range-example|. 19643 19950 The cursor is still moved to the first line of the … … 19652 19959 be invoked through an entry in a |Dictionary|. The 19653 19960 local variable "self" will then be set to the 19654 @@ -7273,6 +7 483,8 @@19961 @@ -7273,6 +7538,8 @@ 19655 19962 {pattern}, so long as it does not have a special 19656 19963 meaning (e.g., '|' or '"') and doesn't occur inside … … 19661 19968 an error message because it may vary in different 19662 19969 locales. 19663 @@ -7416,13 +76 28,22 @@19970 @@ -7416,13 +7683,22 @@ 19664 19971 for Vim commands, |shellescape()| for |:!| commands. 19665 19972 Examples: > … … 19691 19998 diff -Naur vim74.orig/runtime/doc/filetype.txt vim74/runtime/doc/filetype.txt 19692 19999 --- vim74.orig/runtime/doc/filetype.txt 2013-08-10 11:24:53.000000000 +0000 19693 +++ vim74/runtime/doc/filetype.txt 2014-0 6-01 00:42:51.354204990+000020000 +++ vim74/runtime/doc/filetype.txt 2014-07-21 23:33:13.986867531 +0000 19694 20001 @@ -1,4 +1,4 @@ 19695 20002 -*filetype.txt* For Vim version 7.4. Last change: 2013 May 25 … … 19729 20036 diff -Naur vim74.orig/runtime/doc/fold.txt vim74/runtime/doc/fold.txt 19730 20037 --- vim74.orig/runtime/doc/fold.txt 2013-08-10 11:24:53.000000000 +0000 19731 +++ vim74/runtime/doc/fold.txt 2014-0 6-01 00:42:51.370871615 +000020038 +++ vim74/runtime/doc/fold.txt 2014-07-21 23:33:13.996867505 +0000 19732 20039 @@ -1,4 +1,4 @@ 19733 20040 -*fold.txt* For Vim version 7.4. Last change: 2010 May 13 … … 19752 20059 diff -Naur vim74.orig/runtime/doc/gui.txt vim74/runtime/doc/gui.txt 19753 20060 --- vim74.orig/runtime/doc/gui.txt 2013-08-10 11:24:53.000000000 +0000 19754 +++ vim74/runtime/doc/gui.txt 2014-0 6-01 00:42:51.410871513+000020061 +++ vim74/runtime/doc/gui.txt 2014-07-21 23:33:14.040200725 +0000 19755 20062 @@ -1,4 +1,4 @@ 19756 20063 -*gui.txt* For Vim version 7.4. Last change: 2013 Jun 12 … … 19782 20089 diff -Naur vim74.orig/runtime/doc/gui_x11.txt vim74/runtime/doc/gui_x11.txt 19783 20090 --- vim74.orig/runtime/doc/gui_x11.txt 2013-08-10 11:24:54.000000000 +0000 19784 +++ vim74/runtime/doc/gui_x11.txt 2014-0 6-01 00:42:51.460871386+000020091 +++ vim74/runtime/doc/gui_x11.txt 2014-07-21 23:33:14.100200568 +0000 19785 20092 @@ -1,4 +1,4 @@ 19786 20093 -*gui_x11.txt* For Vim version 7.4. Last change: 2011 Sep 14 … … 19800 20107 diff -Naur vim74.orig/runtime/doc/if_lua.txt vim74/runtime/doc/if_lua.txt 19801 20108 --- vim74.orig/runtime/doc/if_lua.txt 2013-08-10 11:24:55.000000000 +0000 19802 +++ vim74/runtime/doc/if_lua.txt 2014-0 6-01 00:42:51.564204456+000020109 +++ vim74/runtime/doc/if_lua.txt 2014-07-21 23:33:14.180200360 +0000 19803 20110 @@ -1,4 +1,4 @@ 19804 20111 -*if_lua.txt* For Vim version 7.4. Last change: 2012 Jun 29 … … 19818 20125 diff -Naur vim74.orig/runtime/doc/if_perl.txt vim74/runtime/doc/if_perl.txt 19819 20126 --- vim74.orig/runtime/doc/if_perl.txt 2013-08-10 11:24:55.000000000 +0000 19820 +++ vim74/runtime/doc/if_perl.txt 2014-0 6-01 00:42:51.620870978 +000020127 +++ vim74/runtime/doc/if_perl.txt 2014-07-21 23:33:14.236866878 +0000 19821 20128 @@ -1,4 +1,4 @@ 19822 20129 -*if_perl.txt* For Vim version 7.4. Last change: 2012 Oct 25 … … 19827 20134 diff -Naur vim74.orig/runtime/doc/indent.txt vim74/runtime/doc/indent.txt 19828 20135 --- vim74.orig/runtime/doc/indent.txt 2013-08-10 11:24:56.000000000 +0000 19829 +++ vim74/runtime/doc/indent.txt 2014-0 6-01 00:42:51.750870647+000020136 +++ vim74/runtime/doc/indent.txt 2014-07-21 23:33:14.356866565 +0000 19830 20137 @@ -1,4 +1,4 @@ 19831 20138 -*indent.txt* For Vim version 7.4. Last change: 2013 Aug 03 … … 19972 20279 diff -Naur vim74.orig/runtime/doc/index.txt vim74/runtime/doc/index.txt 19973 20280 --- vim74.orig/runtime/doc/index.txt 2013-08-10 11:24:56.000000000 +0000 19974 +++ vim74/runtime/doc/index.txt 2014-0 6-01 00:42:51.770870596+000020281 +++ vim74/runtime/doc/index.txt 2014-07-21 23:33:14.376866513 +0000 19975 20282 @@ -1,4 +1,4 @@ 19976 20283 -*index.txt* For Vim version 7.4. Last change: 2013 Jul 17 … … 20030 20337 |:nunmap| :nun[map] like ":unmap" but for Normal mode 20031 20338 |:nunmenu| :nunme[nu] remove menu for Normal mode 20339 diff -Naur vim74.orig/runtime/doc/insert.txt vim74/runtime/doc/insert.txt 20340 --- vim74.orig/runtime/doc/insert.txt 2013-08-10 11:24:56.000000000 +0000 20341 +++ vim74/runtime/doc/insert.txt 2014-07-21 23:33:14.403533110 +0000 20342 @@ -1,4 +1,4 @@ 20343 -*insert.txt* For Vim version 7.4. Last change: 2013 Jul 12 20344 +*insert.txt* For Vim version 7.4. Last change: 2014 Jul 06 20345 20346 20347 VIM REFERENCE MANUAL by Bram Moolenaar 20348 @@ -1302,7 +1302,7 @@ 20349 XHTML *ft-xhtml-omni* 20350 20351 CTRL-X CTRL-O provides completion of various elements of (X)HTML files. It is 20352 -designed to support writing of XHTML 1.0 Strict files but will also works for 20353 +designed to support writing of XHTML 1.0 Strict files but will also work for 20354 other versions of HTML. Features: 20355 20356 - after "<" complete tag name depending on context (no div suggestion inside 20357 diff -Naur vim74.orig/runtime/doc/intro.txt vim74/runtime/doc/intro.txt 20358 --- vim74.orig/runtime/doc/intro.txt 2013-08-10 11:24:56.000000000 +0000 20359 +++ vim74/runtime/doc/intro.txt 2014-07-21 23:33:14.423533058 +0000 20360 @@ -1,4 +1,4 @@ 20361 -*intro.txt* For Vim version 7.4. Last change: 2013 Jun 17 20362 +*intro.txt* For Vim version 7.4. Last change: 2014 May 24 20363 20364 20365 VIM REFERENCE MANUAL by Bram Moolenaar 20366 @@ -136,9 +136,10 @@ 20367 Bug reports: *bugs* *bug-reports* *bugreport.vim* 20368 20369 Send bug reports to: Vim Developers <vim_dev@vim.org> 20370 -This is a maillist, many people will see the message. If you don't want that, 20371 -e.g. because it is a security issue, send it to <bugs@vim.org>, this only goes 20372 -to the Vim maintainer (that's Bram). 20373 +This is a maillist, you need to become a member first and many people will see 20374 +the message. If you don't want that, e.g. because it is a security issue, 20375 +send it to <bugs@vim.org>, this only goes to the Vim maintainer (that's Bram). 20376 + 20377 Please be brief; all the time that is spent on answering mail is subtracted 20378 from the time that is spent on improving Vim! Always give a reproducible 20379 example and try to find out which settings or other things influence the 20032 20380 diff -Naur vim74.orig/runtime/doc/map.txt vim74/runtime/doc/map.txt 20033 20381 --- vim74.orig/runtime/doc/map.txt 2013-08-10 11:24:56.000000000 +0000 20034 +++ vim74/runtime/doc/map.txt 2014-0 6-01 00:42:51.837537093+000020382 +++ vim74/runtime/doc/map.txt 2014-07-21 23:33:14.446866330 +0000 20035 20383 @@ -1,4 +1,4 @@ 20036 20384 -*map.txt* For Vim version 7.4. Last change: 2013 Aug 03 20037 +*map.txt* For Vim version 7.4. Last change: 2014 May 1020385 +*map.txt* For Vim version 7.4. Last change: 2014 Jun 02 20038 20386 20039 20387 20040 20388 VIM REFERENCE MANUAL by Bram Moolenaar 20389 @@ -60,17 +60,17 @@ 20390 {rhs}, is then further scanned for mappings. This 20391 allows for nested and recursive use of mappings. 20392 20393 - 20394 -:no[remap] {lhs} {rhs} |mapmode-nvo| *:no* *:noremap* 20395 -:nn[oremap] {lhs} {rhs} |mapmode-n| *:nn* *:nnoremap* 20396 -:vn[oremap] {lhs} {rhs} |mapmode-v| *:vn* *:vnoremap* 20397 -:xn[oremap] {lhs} {rhs} |mapmode-x| *:xn* *:xnoremap* 20398 -:snor[emap] {lhs} {rhs} |mapmode-s| *:snor* *:snoremap* 20399 -:ono[remap] {lhs} {rhs} |mapmode-o| *:ono* *:onoremap* 20400 -:no[remap]! {lhs} {rhs} |mapmode-ic| *:no!* *:noremap!* 20401 -:ino[remap] {lhs} {rhs} |mapmode-i| *:ino* *:inoremap* 20402 -:ln[oremap] {lhs} {rhs} |mapmode-l| *:ln* *:lnoremap* 20403 -:cno[remap] {lhs} {rhs} |mapmode-c| *:cno* *:cnoremap* 20404 + *:nore* *:norem* 20405 +:no[remap] {lhs} {rhs} |mapmode-nvo| *:no* *:noremap* *:nor* 20406 +:nn[oremap] {lhs} {rhs} |mapmode-n| *:nn* *:nnoremap* 20407 +:vn[oremap] {lhs} {rhs} |mapmode-v| *:vn* *:vnoremap* 20408 +:xn[oremap] {lhs} {rhs} |mapmode-x| *:xn* *:xnoremap* 20409 +:snor[emap] {lhs} {rhs} |mapmode-s| *:snor* *:snoremap* 20410 +:ono[remap] {lhs} {rhs} |mapmode-o| *:ono* *:onoremap* 20411 +:no[remap]! {lhs} {rhs} |mapmode-ic| *:no!* *:noremap!* 20412 +:ino[remap] {lhs} {rhs} |mapmode-i| *:ino* *:inoremap* 20413 +:ln[oremap] {lhs} {rhs} |mapmode-l| *:ln* *:lnoremap* 20414 +:cno[remap] {lhs} {rhs} |mapmode-c| *:cno* *:cnoremap* 20415 Map the key sequence {lhs} to {rhs} for the modes 20416 where the map command applies. Disallow mapping of 20417 {rhs}, to avoid nested and recursive mappings. Often 20041 20418 @@ -306,9 +306,21 @@ 20042 20419 to type a count with a zero. … … 20056 20433 +:lmap :lnoremap :lunmap Insert, Command-line, Lang-Arg 20057 20434 +:cmap :cnoremap :cunmap Command-line 20435 + 20058 20436 20059 20437 - commands: modes: ~ 20060 +20061 20438 + COMMANDS MODES ~ 20062 20439 Normal Visual+Select Operator-pending ~ … … 20099 20476 To avoid mapping of the characters you type in insert or Command-line mode, 20100 20477 type a CTRL-V first. The mapping in Insert mode is disabled if the 'paste' 20101 @@ -1359,6 +1371,8 @@ 20478 @@ -816,12 +828,10 @@ 20479 let &selection = "inclusive" 20480 let reg_save = @@ 20481 20482 - if a:0 " Invoked from Visual mode, use '< and '> marks. 20483 - silent exe "normal! `<" . a:type . "`>y" 20484 + if a:0 " Invoked from Visual mode, use gv command. 20485 + silent exe "normal! gvy" 20486 elseif a:type == 'line' 20487 silent exe "normal! '[V']y" 20488 - elseif a:type == 'block' 20489 - silent exe "normal! `[\<C-V>`]y" 20490 else 20491 silent exe "normal! `[v`]y" 20492 endif 20493 @@ -1359,6 +1369,8 @@ 20102 20494 In the cases of the -count and -register attributes, if the optional argument 20103 20495 is supplied, it is removed from the argument list and is available to the … … 20110 20502 diff -Naur vim74.orig/runtime/doc/motion.txt vim74/runtime/doc/motion.txt 20111 20503 --- vim74.orig/runtime/doc/motion.txt 2013-08-10 11:24:57.000000000 +0000 20112 +++ vim74/runtime/doc/motion.txt 2014-0 6-01 00:42:51.920870214+000020504 +++ vim74/runtime/doc/motion.txt 2014-07-21 23:33:14.526866121 +0000 20113 20505 @@ -1,4 +1,4 @@ 20114 20506 -*motion.txt* For Vim version 7.4. Last change: 2013 Jul 17 … … 20128 20520 diff -Naur vim74.orig/runtime/doc/options.txt vim74/runtime/doc/options.txt 20129 20521 --- vim74.orig/runtime/doc/options.txt 2013-08-10 11:24:57.000000000 +0000 20130 +++ vim74/runtime/doc/options.txt 2014-0 6-01 00:42:51.970870087+000020522 +++ vim74/runtime/doc/options.txt 2014-07-21 23:33:14.600199263 +0000 20131 20523 @@ -1,4 +1,4 @@ 20132 20524 -*options.txt* For Vim version 7.4. Last change: 2013 Jul 09 20133 +*options.txt* For Vim version 7.4. Last change: 2014 May 1320525 +*options.txt* For Vim version 7.4. Last change: 2014 Jun 26 20134 20526 20135 20527 … … 20144 20536 global 20145 20537 {not in Vi} 20146 @@ -1884,8 +1884,8 @@ 20538 @@ -1200,6 +1200,38 @@ 20539 break if 'linebreak' is on. Only works for ASCII and also for 8-bit 20540 characters when 'encoding' is an 8-bit encoding. 20541 20542 + *'breakindent'* *'bri'* 20543 +'breakindent' 'bri' boolean (default off) 20544 + local to window 20545 + {not in Vi} 20546 + {not available when compiled without the |+linebreak| 20547 + feature} 20548 + Every wrapped line will continue visually indented (same amount of 20549 + space as the beginning of that line), thus preserving horizontal blocks 20550 + of text. 20551 + 20552 + *'breakindentopt'* *'briopt'* 20553 +'breakindentopt' 'briopt' string (default empty) 20554 + local to window 20555 + {not in Vi} 20556 + {not available when compiled without the |+linebreak| 20557 + feature} 20558 + Settings for 'breakindent'. It can consist of the following optional 20559 + items and must be separated by a comma: 20560 + min:{n} Minimum text width that will be kept after 20561 + applying 'breakindent', even if the resulting 20562 + text should normally be narrower. This prevents 20563 + text indented almost to the right window border 20564 + occupying lot of vertical space when broken. 20565 + shift:{n} After applying 'breakindent', the wrapped line's 20566 + beginning will be shifted by the given number of 20567 + characters. It permits dynamic French paragraph 20568 + indentation (negative) or emphasizing the line 20569 + continuation (positive). 20570 + sbr Display the 'showbreak' value before applying the 20571 + additional indent. 20572 + The default value for min is 20 and shift is 0. 20573 + 20574 *'browsedir'* *'bsdir'* 20575 'browsedir' 'bsdir' string (default: "last") 20576 global 20577 @@ -1884,8 +1916,8 @@ 20147 20578 global 20148 20579 {not in Vi} … … 20155 20586 Commas can be added for readability. 20156 20587 To avoid problems with flags that are added in the future, use the 20157 @@ -2477,7 +2 477,7 @@20588 @@ -2477,7 +2509,7 @@ 20158 20589 20159 20590 *'directory'* *'dir'* … … 20164 20595 global 20165 20596 List of directory names for the swap file, separated with commas. 20166 @@ -4492,6 +4492,8 @@ 20597 @@ -3920,12 +3952,13 @@ 20598 NOTE: This option is reset when 'compatible' is set. 20599 20600 *'history'* *'hi'* 20601 -'history' 'hi' number (Vim default: 20, Vi default: 0) 20602 +'history' 'hi' number (Vim default: 50, Vi default: 0) 20603 global 20604 {not in Vi} 20605 A history of ":" commands, and a history of previous search patterns 20606 - are remembered. This option decides how many entries may be stored in 20607 + is remembered. This option decides how many entries may be stored in 20608 each of these histories (see |cmdline-editing|). 20609 + The maximum value is 10000. 20610 NOTE: This option is set to the Vi default value when 'compatible' is 20611 set and to the Vim default value when 'compatible' is reset. 20612 20613 @@ -4492,6 +4525,8 @@ 20167 20614 be able to execute Normal mode commands. 20168 20615 This is the opposite of the 'keymap' option, where characters are … … 20174 20621 :set langmap=ÎA,ÎB,ΚC,ÎD,ÎE,ΊF,ÎG,ÎH,ÎI,ÎJ,ÎK,ÎL,ÎM,ÎN,ÎO,Î P,QQ,ΡR,ΣS,΀T,ÎU,ΩV,WW,ΧX,Î¥Y,ÎZ,αa,βb,Ïc,ÎŽd,εe,Ïf,γg,ηh,ιi,Οj,κk,λl,ÎŒm,Îœn,οo,Ïp,qq,Ïr,Ïs,Ït,Ξu,Ïv,Ïw,Ïx,Ï 20175 20622 y,ζz 20176 @@ -4629,7 +4631,7 @@ 20623 @@ -4572,12 +4607,13 @@ 20624 {not in Vi} 20625 {not available when compiled without the |+linebreak| 20626 feature} 20627 - If on Vim will wrap long lines at a character in 'breakat' rather 20628 + If on, Vim will wrap long lines at a character in 'breakat' rather 20629 than at the last character that fits on the screen. Unlike 20630 'wrapmargin' and 'textwidth', this does not insert <EOL>s in the file, 20631 - it only affects the way the file is displayed, not its contents. The 20632 - value of 'showbreak' is used to put in front of wrapped lines. 20633 - This option is not used when the 'wrap' option is off or 'list' is on. 20634 + it only affects the way the file is displayed, not its contents. 20635 + If 'breakindent' is set, line is visually indented. Then, the value 20636 + of 'showbreak' is used to put in front of wrapped lines. This option 20637 + is not used when the 'wrap' option is off. 20638 Note that <Tab> characters after an <EOL> are mostly not displayed 20639 with the right amount of white space. 20640 20641 @@ -4629,7 +4665,7 @@ 20177 20642 20178 20643 *'lispwords'* *'lw'* … … 20183 20648 {not available when compiled without the |+lispindent| 20184 20649 feature} 20185 @@ -4757,8 +47 59,9 @@20650 @@ -4757,8 +4793,9 @@ 20186 20651 global or local to buffer |global-local| 20187 20652 {not in Vi} … … 20195 20660 about including spaces and backslashes. 20196 20661 Note that a '|' must be escaped twice: once for ":set" and once for 20197 @@ -6251,6 +62 54,9 @@20662 @@ -6251,6 +6288,9 @@ 20198 20663 A don't give the "ATTENTION" message when an existing swap file 20199 20664 is found. … … 20205 20670 This gives you the opportunity to avoid that a change between buffers 20206 20671 requires you to hit <Enter>, but still gives as useful a message as 20207 @@ -6555,6 +65 61,9 @@20672 @@ -6555,6 +6595,9 @@ 20208 20673 region by listing them: "en_us,en_ca" supports both US and Canadian 20209 20674 English, but not words specific for Australia, New Zealand or Great … … 20215 20680 As a special case the name of a .spl file can be given as-is. The 20216 20681 first "_xx" in the name is removed and used as the region name 20217 @@ -6615,6 +66 24,10 @@20682 @@ -6615,6 +6658,10 @@ 20218 20683 top of the suggestion list with the internal methods. 20219 20684 Lines without a slash are ignored, use this for … … 20226 20691 20227 20692 expr:{expr} Evaluate expression {expr}. Use a function to avoid 20228 @@ -6878,6 +6 891,8 @@20693 @@ -6878,6 +6925,8 @@ 20229 20694 immediately deleted. When 'swapfile' is set, and 'updatecount' is 20230 20695 non-zero, a swap file is immediately created. … … 20235 20700 This option is used together with 'bufhidden' and 'buftype' to 20236 20701 specify special kinds of buffers. See |special-buffers|. 20237 @@ -7498,8 +75 13,8 @@20702 @@ -7498,8 +7547,8 @@ 20238 20703 "s" = button state 20239 20704 "c" = column plus 33 … … 20246 20711 mouse position while the mouse is dragged. This works 20247 20712 much faster and more precise. Your xterm must at 20248 @@ -7521,29 +75 36,35 @@20713 @@ -7521,29 +7570,35 @@ 20249 20714 pterm QNX pterm mouse handling. 20250 20715 *urxvt-mouse* … … 20296 20761 < 20297 20762 *'ttyscroll'* *'tsl'* 20298 @@ -7594,7 +76 15,7 @@20763 @@ -7594,7 +7649,7 @@ 20299 20764 *'undolevels'* *'ul'* 20300 20765 'undolevels' 'ul' number (default 100, 1000 for Unix, VMS, … … 20305 20770 Maximum number of changes that can be undone. Since undo information 20306 20771 is kept in memory, higher numbers will cause more memory to be used 20307 @@ -7605,8 +76 26,9 @@20772 @@ -7605,8 +7660,9 @@ 20308 20773 < But you can also get Vi compatibility by including the 'u' flag in 20309 20774 'cpoptions', and still be able to use CTRL-R to repeat undo. … … 20319 20784 diff -Naur vim74.orig/runtime/doc/os_vms.txt vim74/runtime/doc/os_vms.txt 20320 20785 --- vim74.orig/runtime/doc/os_vms.txt 2013-08-10 11:24:59.000000000 +0000 20321 +++ vim74/runtime/doc/os_vms.txt 2014-0 6-01 00:42:52.130869680+000020786 +++ vim74/runtime/doc/os_vms.txt 2014-07-21 23:33:14.766865495 +0000 20322 20787 @@ -1,4 +1,4 @@ 20323 20788 -*os_vms.txt* For Vim version 7.4. Last change: 2011 Aug 14 … … 20360 20825 diff -Naur vim74.orig/runtime/doc/os_win32.txt vim74/runtime/doc/os_win32.txt 20361 20826 --- vim74.orig/runtime/doc/os_win32.txt 2013-08-10 11:24:59.000000000 +0000 20362 +++ vim74/runtime/doc/os_win32.txt 2014-0 6-01 00:42:52.144202979+000020827 +++ vim74/runtime/doc/os_win32.txt 2014-07-21 23:33:14.783532118 +0000 20363 20828 @@ -93,7 +93,7 @@ 20364 20829 $PATH *win32-PATH* … … 20372 20837 diff -Naur vim74.orig/runtime/doc/pattern.txt vim74/runtime/doc/pattern.txt 20373 20838 --- vim74.orig/runtime/doc/pattern.txt 2013-08-10 11:24:59.000000000 +0000 20374 +++ vim74/runtime/doc/pattern.txt 2014-0 6-01 00:42:52.164202928+000020839 +++ vim74/runtime/doc/pattern.txt 2014-07-21 23:33:14.803532066 +0000 20375 20840 @@ -1,4 +1,4 @@ 20376 20841 -*pattern.txt* For Vim version 7.4. Last change: 2013 Jul 06 20377 +*pattern.txt* For Vim version 7.4. Last change: 2014 May 1320842 +*pattern.txt* For Vim version 7.4. Last change: 2014 May 28 20378 20843 20379 20844 … … 20423 20888 When a composing character appears at the start of the pattern of after an 20424 20889 item that doesn't include the composing character, a match is found at any 20890 @@ -1325,7 +1332,7 @@ 20891 patterns defined by both |matchadd()| and |:match|. 20892 20893 Highlighting matches using |:match| are limited to three 20894 - matches (aside from |:match|, |:2match| and |:3match|are 20895 + matches (aside from |:match|, |:2match| and |:3match| are 20896 available). |matchadd()| does not have this limitation and in 20897 addition makes it possible to prioritize matches. 20898 20425 20899 diff -Naur vim74.orig/runtime/doc/pi_getscript.txt vim74/runtime/doc/pi_getscript.txt 20426 20900 --- vim74.orig/runtime/doc/pi_getscript.txt 2013-08-10 11:24:59.000000000 +0000 20427 +++ vim74/runtime/doc/pi_getscript.txt 2014-0 6-01 00:42:52.197536177+000020901 +++ vim74/runtime/doc/pi_getscript.txt 2014-07-21 23:33:14.836865312 +0000 20428 20902 @@ -1,4 +1,4 @@ 20429 20903 -*pi_getscript.txt* For Vim version 7.4. Last change: 2012 Apr 07 … … 20445 20919 diff -Naur vim74.orig/runtime/doc/pi_netrw.txt vim74/runtime/doc/pi_netrw.txt 20446 20920 --- vim74.orig/runtime/doc/pi_netrw.txt 2013-08-10 11:24:59.000000000 +0000 20447 +++ vim74/runtime/doc/pi_netrw.txt 2014-0 6-01 00:42:52.234202750+000020921 +++ vim74/runtime/doc/pi_netrw.txt 2014-07-21 23:33:14.936865051 +0000 20448 20922 @@ -1,4 +1,4 @@ 20449 20923 -*pi_netrw.txt* For Vim version 7.4. Last change: 2013 May 18 … … 21598 22072 diff -Naur vim74.orig/runtime/doc/pi_vimball.txt vim74/runtime/doc/pi_vimball.txt 21599 22073 --- vim74.orig/runtime/doc/pi_vimball.txt 2013-08-10 11:25:00.000000000 +0000 21600 +++ vim74/runtime/doc/pi_vimball.txt 2014-0 6-01 00:42:52.307535896 +000022074 +++ vim74/runtime/doc/pi_vimball.txt 2014-07-21 23:33:14.990198246 +0000 21601 22075 @@ -188,7 +188,7 @@ 21602 22076 * Changed silent! to sil! (shorter) … … 21610 22084 diff -Naur vim74.orig/runtime/doc/quickfix.txt vim74/runtime/doc/quickfix.txt 21611 22085 --- vim74.orig/runtime/doc/quickfix.txt 2013-08-10 11:25:00.000000000 +0000 21612 +++ vim74/runtime/doc/quickfix.txt 2014-0 6-01 00:42:52.350869119+000022086 +++ vim74/runtime/doc/quickfix.txt 2014-07-21 23:33:15.036864790 +0000 21613 22087 @@ -1,4 +1,4 @@ 21614 22088 -*quickfix.txt* For Vim version 7.4. Last change: 2013 Aug 03 … … 21690 22164 You need to put the following in "vim-javac-filter" somewhere in your path 21691 22165 (e.g., in ~/bin) and make it executable: > 22166 diff -Naur vim74.orig/runtime/doc/quickref.txt vim74/runtime/doc/quickref.txt 22167 --- vim74.orig/runtime/doc/quickref.txt 2013-08-10 11:25:00.000000000 +0000 22168 +++ vim74/runtime/doc/quickref.txt 2014-07-21 23:33:15.056864738 +0000 22169 @@ -1,4 +1,4 @@ 22170 -*quickref.txt* For Vim version 7.4. Last change: 2013 Jun 29 22171 +*quickref.txt* For Vim version 7.4. Last change: 2014 Jun 25 22172 22173 22174 VIM REFERENCE MANUAL by Bram Moolenaar 22175 @@ -624,6 +624,8 @@ 22176 'bioskey' 'biosk' MS-DOS: use bios calls for input characters 22177 'bomb' prepend a Byte Order Mark to the file 22178 'breakat' 'brk' characters that may cause a line break 22179 +'breakindent' 'bri' wrapped line repeats indent 22180 +'breakindentopt' 'briopt' settings for 'breakindent' 22181 'browsedir' 'bsdir' which directory to start browsing in 22182 'bufhidden' 'bh' what to do when buffer is no longer in window 22183 'buflisted' 'bl' whether the buffer shows up in the buffer list 21692 22184 diff -Naur vim74.orig/runtime/doc/recover.txt vim74/runtime/doc/recover.txt 21693 22185 --- vim74.orig/runtime/doc/recover.txt 2013-08-10 11:25:00.000000000 +0000 21694 +++ vim74/runtime/doc/recover.txt 2014-0 6-01 00:42:52.410868967+000022186 +++ vim74/runtime/doc/recover.txt 2014-07-21 23:33:15.096864634 +0000 21695 22187 @@ -1,4 +1,4 @@ 21696 22188 -*recover.txt* For Vim version 7.4. Last change: 2010 Jul 20 … … 21717 22209 diff -Naur vim74.orig/runtime/doc/repeat.txt vim74/runtime/doc/repeat.txt 21718 22210 --- vim74.orig/runtime/doc/repeat.txt 2013-08-10 11:25:00.000000000 +0000 21719 +++ vim74/runtime/doc/repeat.txt 2014-0 6-01 00:42:52.434202241+000022211 +++ vim74/runtime/doc/repeat.txt 2014-07-21 23:33:15.120197906 +0000 21720 22212 @@ -1,4 +1,4 @@ 21721 22213 -*repeat.txt* For Vim version 7.4. Last change: 2013 Jul 25 … … 21771 22263 diff -Naur vim74.orig/runtime/doc/sign.txt vim74/runtime/doc/sign.txt 21772 22264 --- vim74.orig/runtime/doc/sign.txt 2013-08-10 11:25:01.000000000 +0000 21773 +++ vim74/runtime/doc/sign.txt 2014-0 6-01 00:42:52.494202088+000022265 +++ vim74/runtime/doc/sign.txt 2014-07-21 23:33:15.176864425 +0000 21774 22266 @@ -1,4 +1,4 @@ 21775 22267 -*sign.txt* For Vim version 7.4. Last change: 2012 Jul 10 … … 21797 22289 diff -Naur vim74.orig/runtime/doc/spell.txt vim74/runtime/doc/spell.txt 21798 22290 --- vim74.orig/runtime/doc/spell.txt 2013-08-10 11:25:01.000000000 +0000 21799 +++ vim74/runtime/doc/spell.txt 2014-0 6-01 00:42:52.504202062+000022291 +++ vim74/runtime/doc/spell.txt 2014-07-21 23:33:15.190197724 +0000 21800 22292 @@ -1,4 +1,4 @@ 21801 22293 -*spell.txt* For Vim version 7.4. Last change: 2013 Jul 17 21802 +*spell.txt* For Vim version 7.4. Last change: 201 3 Nov 1222294 +*spell.txt* For Vim version 7.4. Last change: 2014 Jul 02 21803 22295 21804 22296 … … 21818 22310 SPELL FILES *spell-load* 21819 22311 22312 @@ -932,9 +939,10 @@ 22313 22314 If you get an E763 warning that the word tables differ you need to update your 22315 ".spl" spell files. If you downloaded the files, get the latest version of 22316 -all spell files you use. Otherwise generate the .spl file again with 22317 -|:mkspell|. If you still get errors check the FOL, LOW and UPP lines in the 22318 -used .aff files. 22319 +all spell files you use. If you are only using one, e.g., German, then also 22320 +download the recent English spell files. Otherwise generate the .spl file 22321 +again with |:mkspell|. If you still get errors check the FOL, LOW and UPP 22322 +lines in the used .aff files. 22323 22324 The XX.ascii.spl spell file generated with the "-ascii" argument will not 22325 contain the table with characters, so that it can be combine with spell files 21820 22326 diff -Naur vim74.orig/runtime/doc/starting.txt vim74/runtime/doc/starting.txt 21821 22327 --- vim74.orig/runtime/doc/starting.txt 2013-08-10 11:25:01.000000000 +0000 21822 +++ vim74/runtime/doc/starting.txt 2014-0 6-01 00:42:52.540868636+000022328 +++ vim74/runtime/doc/starting.txt 2014-07-21 23:33:15.223530970 +0000 21823 22329 @@ -1,4 +1,4 @@ 21824 22330 -*starting.txt* For Vim version 7.4. Last change: 2013 Jul 20 21825 +*starting.txt* For Vim version 7.4. Last change: 2014 Mar 2922331 +*starting.txt* For Vim version 7.4. Last change: 2014 Jul 09 21826 22332 21827 22333 21828 22334 VIM REFERENCE MANUAL by Bram Moolenaar 21829 @@ -1276,8 +1276,10 @@ 22335 @@ -167,7 +167,10 @@ 22336 *-+/* 22337 +/{pat} The cursor will be positioned on the first line containing 22338 "pat" in the first file being edited (see |pattern| for the 22339 - available search patterns). 22340 + available search patterns). The search starts at the cursor 22341 + position, which can be the first line or the cursor position 22342 + last used from |viminfo|. To force a search from the first 22343 + line use "+1 +/pat". 22344 22345 +{command} *-+c* *-c* 22346 -c {command} {command} will be executed after the first file has been 22347 @@ -1276,8 +1279,10 @@ 21830 22348 When [!] is included an existing file is overwritten. 21831 22349 When [file] is omitted or is a number from 1 to 9, a … … 21840 22358 |:loadview| to load this view again. 21841 22359 When [file] is the name of a file ('viewdir' is not 22360 @@ -1501,7 +1506,7 @@ 22361 already set (registers, marks, |v:oldfiles|, etc.) 22362 will be overwritten {not in Vi} 22363 22364 - *:wv* *:wviminfo* *E137* *E138* *E574* 22365 + *:wv* *:wviminfo* *E137* *E138* *E574* *E886* 22366 :wv[iminfo][!] [file] Write to viminfo file [file] (default: see above). 22367 The information in the file is first read in to make 22368 a merge between old and new info. When [!] is used, 21842 22369 diff -Naur vim74.orig/runtime/doc/syntax.txt vim74/runtime/doc/syntax.txt 21843 22370 --- vim74.orig/runtime/doc/syntax.txt 2013-08-10 11:25:01.000000000 +0000 21844 +++ vim74/runtime/doc/syntax.txt 2014-0 6-01 00:42:52.604201808+000022371 +++ vim74/runtime/doc/syntax.txt 2014-07-21 23:33:15.276864164 +0000 21845 22372 @@ -1,4 +1,4 @@ 21846 22373 -*syntax.txt* For Vim version 7.4. Last change: 2013 Jul 05 21847 +*syntax.txt* For Vim version 7.4. Last change: 2014 Apr 0522374 +*syntax.txt* For Vim version 7.4. Last change: 2014 Jun 27 21848 22375 21849 22376 … … 21904 22431 21905 22432 Erlang is a functional programming language developed by Ericsson. Files with 22433 @@ -1647,7 +1688,7 @@ 22434 HTML comments are rather special (see an HTML reference document for the 22435 details), and the syntax coloring scheme will highlight all errors. 22436 However, if you prefer to use the wrong style (starts with <!-- and 22437 -ends with --!>) you can define > 22438 +ends with -->) you can define > 22439 :let html_wrong_comments=1 22440 22441 JavaScript and Visual Basic embedded inside HTML documents are highlighted as 21906 22442 @@ -1918,7 +1959,7 @@ 21907 22443 There are several implementations for LPC, we intend to support most widely … … 21913 22449 21914 22450 :let lpc_pre_v22 = 1 22451 @@ -2238,7 +2279,7 @@ 22452 22453 :let perl_include_pod = 0 22454 22455 -The reduce the complexity of parsing (and increase performance) you can switch 22456 +To reduce the complexity of parsing (and increase performance) you can switch 22457 off two elements in the parsing of variable names and contents. > 22458 22459 To handle package references in variable and function names not differently 21915 22460 @@ -3156,18 +3197,16 @@ 21916 22461 embedded script highlighting they wish to have. > … … 21944 22489 diff -Naur vim74.orig/runtime/doc/tags vim74/runtime/doc/tags 21945 22490 --- vim74.orig/runtime/doc/tags 2013-08-10 12:23:34.000000000 +0000 21946 +++ vim74/runtime/doc/tags 2014-0 6-01 00:42:52.630868407+000022491 +++ vim74/runtime/doc/tags 2014-07-21 23:33:15.336864008 +0000 21947 22492 @@ -12,6 +12,7 @@ 21948 22493 % motion.txt /*%* … … 21953 22498 %:gs cmdline.txt /*%:gs* 21954 22499 %:h cmdline.txt /*%:h* 21955 @@ -1140,6 +1141,7 @@ 22500 @@ -90,6 +91,10 @@ 22501 'bl' options.txt /*'bl'* 22502 'bomb' options.txt /*'bomb'* 22503 'breakat' options.txt /*'breakat'* 22504 +'breakindent' options.txt /*'breakindent'* 22505 +'breakindentopt' options.txt /*'breakindentopt'* 22506 +'bri' options.txt /*'bri'* 22507 +'briopt' options.txt /*'briopt'* 22508 'brk' options.txt /*'brk'* 22509 'browsedir' options.txt /*'browsedir'* 22510 'bs' options.txt /*'bs'* 22511 @@ -1140,6 +1145,7 @@ 21956 22512 +GUI_Photon various.txt /*+GUI_Photon* 21957 22513 +GUI_neXtaw various.txt /*+GUI_neXtaw* … … 21961 22517 +autocmd various.txt /*+autocmd* 21962 22518 +balloon_eval various.txt /*+balloon_eval* 21963 @@ -1199,6 +120 1,7 @@22519 @@ -1199,6 +1205,7 @@ 21964 22520 +mouse various.txt /*+mouse* 21965 22521 +mouse_dec various.txt /*+mouse_dec* … … 21969 22525 +mouse_pterm various.txt /*+mouse_pterm* 21970 22526 +mouse_sgr various.txt /*+mouse_sgr* 21971 @@ -1262,6 +126 5,7 @@22527 @@ -1262,6 +1269,7 @@ 21972 22528 +writebackup various.txt /*+writebackup* 21973 22529 +xfontset various.txt /*+xfontset* … … 21977 22533 +xsmp various.txt /*+xsmp* 21978 22534 +xsmp_interact various.txt /*+xsmp_interact* 21979 @@ -1412,6 +14 16,7 @@22535 @@ -1412,6 +1420,7 @@ 21980 22536 /\%>c pattern.txt /*\/\\%>c* 21981 22537 /\%>l pattern.txt /*\/\\%>l* … … 21985 22541 /\%V pattern.txt /*\/\\%V* 21986 22542 /\%[] pattern.txt /*\/\\%[]* 21987 @@ -1786,6 +179 1,7 @@22543 @@ -1786,6 +1795,7 @@ 21988 22544 :3match pattern.txt /*:3match* 21989 22545 ::. cmdline.txt /*::.* … … 21993 22549 ::gs cmdline.txt /*::gs* 21994 22550 ::h cmdline.txt /*::h* 21995 @@ -1825,6 +183 1,7 @@22551 @@ -1825,6 +1835,7 @@ 21996 22552 :GnatPretty ft_ada.txt /*:GnatPretty* 21997 22553 :GnatTags ft_ada.txt /*:GnatTags* … … 22001 22557 :MkVimball pi_vimball.txt /*:MkVimball* 22002 22558 :N editing.txt /*:N* 22003 @@ -1836,6 +184 3,7 @@22559 @@ -1836,6 +1847,7 @@ 22004 22560 :Nread pi_netrw.txt /*:Nread* 22005 22561 :Ns pi_netrw.txt /*:Ns* … … 22009 22565 :Nwrite pi_netrw.txt /*:Nwrite* 22010 22566 :P various.txt /*:P* 22011 @@ -1967,8 +197 5,8 @@22567 @@ -1967,8 +1979,8 @@ 22012 22568 :cabc map.txt /*:cabc* 22013 22569 :cabclear map.txt /*:cabclear* … … 22019 22575 :caddf quickfix.txt /*:caddf* 22020 22576 :caddfile quickfix.txt /*:caddfile* 22021 @@ -2212,6 +222 0,9 @@22577 @@ -2212,6 +2224,9 @@ 22022 22578 :foldopen fold.txt /*:foldopen* 22023 22579 :for eval.txt /*:for* … … 22029 22585 :function-verbose eval.txt /*:function-verbose* 22030 22586 :g repeat.txt /*:g* 22031 @@ -2298,6 +23 09,8 @@22587 @@ -2298,6 +2313,8 @@ 22032 22588 :keepj motion.txt /*:keepj* 22033 22589 :keepjumps motion.txt /*:keepjumps* … … 22038 22594 :lN quickfix.txt /*:lN* 22039 22595 :lNext quickfix.txt /*:lNext* 22040 @@ -2489,6 +250 2,7 @@22596 @@ -2489,6 +2506,7 @@ 22041 22597 :nbkey netbeans.txt /*:nbkey* 22042 22598 :nbstart netbeans.txt /*:nbstart* … … 22046 22602 :next editing.txt /*:next* 22047 22603 :next_f editing.txt /*:next_f* 22048 @@ -2518,6 +2532,8 @@ 22604 @@ -2509,8 +2527,11 @@ 22605 :noautocmd autocmd.txt /*:noautocmd* 22606 :noh pattern.txt /*:noh* 22607 :nohlsearch pattern.txt /*:nohlsearch* 22608 +:nor map.txt /*:nor* 22609 +:nore map.txt /*:nore* 22610 :norea map.txt /*:norea* 22611 :noreabbrev map.txt /*:noreabbrev* 22612 +:norem map.txt /*:norem* 22613 :noremap map.txt /*:noremap* 22614 :noremap! map.txt /*:noremap!* 22615 :noreme gui.txt /*:noreme* 22616 @@ -2518,6 +2539,8 @@ 22049 22617 :norm various.txt /*:norm* 22050 22618 :normal various.txt /*:normal* … … 22055 22623 :number various.txt /*:number* 22056 22624 :nun map.txt /*:nun* 22057 @@ -2738,6 +27 54,7 @@22625 @@ -2738,6 +2761,7 @@ 22058 22626 :sign-jump sign.txt /*:sign-jump* 22059 22627 :sign-list sign.txt /*:sign-list* … … 22063 22631 :sign-unplace sign.txt /*:sign-unplace* 22064 22632 :sil various.txt /*:sil* 22065 @@ -4294,6 +431 1,11@@22633 @@ -4294,6 +4318,12 @@ 22066 22634 E879 syntax.txt /*E879* 22067 22635 E88 windows.txt /*E88* … … 22072 22640 +E884 eval.txt /*E884* 22073 22641 +E885 sign.txt /*E885* 22642 +E886 starting.txt /*E886* 22074 22643 E89 message.txt /*E89* 22075 22644 E90 message.txt /*E90* 22076 22645 E91 options.txt /*E91* 22077 @@ -4423,6 +44 45,13 @@22646 @@ -4423,6 +4453,13 @@ 22078 22647 OverTheSpot mbyte.txt /*OverTheSpot* 22079 22648 P change.txt /*P* … … 22089 22658 Perl if_perl.txt /*Perl* 22090 22659 Posix intro.txt /*Posix* 22091 @@ -4900,6 +4929,7 @@ 22660 @@ -4766,6 +4803,7 @@ 22661 arglist editing.txt /*arglist* 22662 arglist-position editing.txt /*arglist-position* 22663 arglist-quit usr_07.txt /*arglist-quit* 22664 +arglistid() eval.txt /*arglistid()* 22665 argument-list editing.txt /*argument-list* 22666 argv() eval.txt /*argv()* 22667 as motion.txt /*as* 22668 @@ -4900,6 +4938,7 @@ 22092 22669 byte-count editing.txt /*byte-count* 22093 22670 byte2line() eval.txt /*byte2line()* … … 22097 22674 c change.txt /*c* 22098 22675 c.vim syntax.txt /*c.vim* 22099 @@ -5350,6 +538 0,7 @@22676 @@ -5350,6 +5389,7 @@ 22100 22677 dialog gui_w32.txt /*dialog* 22101 22678 dialogs-added version5.txt /*dialogs-added* … … 22105 22682 dict-identity eval.txt /*dict-identity* 22106 22683 dict-modification eval.txt /*dict-modification* 22107 @@ -5458,6 +54 89,8 @@22684 @@ -5458,6 +5498,8 @@ 22108 22685 escape intro.txt /*escape* 22109 22686 escape() eval.txt /*escape()* … … 22114 22691 eval() eval.txt /*eval()* 22115 22692 eval-examples eval.txt /*eval-examples* 22116 @@ -5492,6 +55 25,7 @@22693 @@ -5492,6 +5534,7 @@ 22117 22694 exclusive-linewise motion.txt /*exclusive-linewise* 22118 22695 executable() eval.txt /*executable()* … … 22122 22699 exists() eval.txt /*exists()* 22123 22700 exp() eval.txt /*exp()* 22124 @@ -5708,6 +57 42,7 @@22701 @@ -5708,6 +5751,7 @@ 22125 22702 ft-changelog-syntax syntax.txt /*ft-changelog-syntax* 22126 22703 ft-chill-syntax syntax.txt /*ft-chill-syntax* … … 22130 22707 ft-coldfusion-syntax syntax.txt /*ft-coldfusion-syntax* 22131 22708 ft-cpp-syntax syntax.txt /*ft-cpp-syntax* 22132 @@ -5724,6 +57 59,7 @@22709 @@ -5724,6 +5768,7 @@ 22133 22710 ft-dtd-syntax syntax.txt /*ft-dtd-syntax* 22134 22711 ft-eiffel-syntax syntax.txt /*ft-eiffel-syntax* … … 22138 22715 ft-form-syntax syntax.txt /*ft-form-syntax* 22139 22716 ft-fortran-indent indent.txt /*ft-fortran-indent* 22140 @@ -5876,6 +59 12,8 @@22717 @@ -5876,6 +5921,8 @@ 22141 22718 g:ada_with_gnat_project_files ft_ada.txt /*g:ada_with_gnat_project_files* 22142 22719 g:ada_withuse_ordinary ft_ada.txt /*g:ada_withuse_ordinary* … … 22147 22724 g:clojure_fuzzy_indent_blacklist indent.txt /*g:clojure_fuzzy_indent_blacklist* 22148 22725 g:clojure_fuzzy_indent_patterns indent.txt /*g:clojure_fuzzy_indent_patterns* 22149 @@ -5924,6 +59 62,7 @@22726 @@ -5924,6 +5971,7 @@ 22150 22727 g:html_use_encoding syntax.txt /*g:html_use_encoding* 22151 22728 g:html_use_xhtml syntax.txt /*g:html_use_xhtml* … … 22155 22732 g:netrw_altv pi_netrw.txt /*g:netrw_altv* 22156 22733 g:netrw_banner pi_netrw.txt /*g:netrw_banner* 22157 @@ -5944,6 +59 83,7 @@22734 @@ -5944,6 +5992,7 @@ 22158 22735 g:netrw_errorlvl pi_netrw.txt /*g:netrw_errorlvl* 22159 22736 g:netrw_fastbrowse pi_netrw.txt /*g:netrw_fastbrowse* … … 22163 22740 g:netrw_ftp pi_netrw.txt /*g:netrw_ftp* 22164 22741 g:netrw_ftp_browse_reject pi_netrw.txt /*g:netrw_ftp_browse_reject* 22165 @@ -5958,6 + 5998,7 @@22742 @@ -5958,6 +6007,7 @@ 22166 22743 g:netrw_hide pi_netrw.txt /*g:netrw_hide* 22167 22744 g:netrw_home pi_netrw.txt /*g:netrw_home* … … 22171 22748 g:netrw_ignorenetrc pi_netrw.txt /*g:netrw_ignorenetrc* 22172 22749 g:netrw_keepdir pi_netrw.txt /*g:netrw_keepdir* 22173 @@ -6358,6 +6399,7 @@ 22750 @@ -6087,6 +6137,7 @@ 22751 getcmdline() eval.txt /*getcmdline()* 22752 getcmdpos() eval.txt /*getcmdpos()* 22753 getcmdtype() eval.txt /*getcmdtype()* 22754 +getcurpos() eval.txt /*getcurpos()* 22755 getcwd() eval.txt /*getcwd()* 22756 getfontname() eval.txt /*getfontname()* 22757 getfperm() eval.txt /*getfperm()* 22758 @@ -6358,6 +6409,7 @@ 22174 22759 hl-WildMenu syntax.txt /*hl-WildMenu* 22175 22760 hlID() eval.txt /*hlID()* … … 22179 22764 home intro.txt /*home* 22180 22765 home-replace editing.txt /*home-replace* 22181 @@ -6669,6 +67 11,7 @@22766 @@ -6669,6 +6721,7 @@ 22182 22767 linewise-visual visual.txt /*linewise-visual* 22183 22768 lisp.vim syntax.txt /*lisp.vim* … … 22187 22772 list-identity eval.txt /*list-identity* 22188 22773 list-index eval.txt /*list-index* 22189 @@ -6921,6 +6964,15 @@ 22774 @@ -6780,6 +6833,7 @@ 22775 match-highlight pattern.txt /*match-highlight* 22776 match-parens tips.txt /*match-parens* 22777 matchadd() eval.txt /*matchadd()* 22778 +matchaddpos() eval.txt /*matchaddpos()* 22779 matcharg() eval.txt /*matcharg()* 22780 matchdelete() eval.txt /*matchdelete()* 22781 matchend() eval.txt /*matchend()* 22782 @@ -6921,6 +6975,15 @@ 22190 22783 netrw pi_netrw.txt /*netrw* 22191 22784 netrw-% pi_netrw.txt /*netrw-%* … … 22203 22796 netrw-D pi_netrw.txt /*netrw-D* 22204 22797 netrw-O pi_netrw.txt /*netrw-O* 22205 @@ -6978,6 +70 30,7 @@22798 @@ -6978,6 +7041,7 @@ 22206 22799 netrw-getftype pi_netrw.txt /*netrw-getftype* 22207 22800 netrw-gf pi_netrw.txt /*netrw-gf* … … 22211 22804 netrw-gx pi_netrw.txt /*netrw-gx* 22212 22805 netrw-handler pi_netrw.txt /*netrw-handler* 22213 @@ -6992,6 +70 45,7 @@22806 @@ -6992,6 +7056,7 @@ 22214 22807 netrw-internal-variables pi_netrw.txt /*netrw-internal-variables* 22215 22808 netrw-intro-browse pi_netrw.txt /*netrw-intro-browse* … … 22219 22812 netrw-listbookmark pi_netrw.txt /*netrw-listbookmark* 22220 22813 netrw-listhack pi_netrw.txt /*netrw-listhack* 22221 @@ -7022,6 +70 76,7 @@22814 @@ -7022,6 +7087,7 @@ 22222 22815 netrw-nexplore pi_netrw.txt /*netrw-nexplore* 22223 22816 netrw-noload pi_netrw.txt /*netrw-noload* … … 22227 22820 netrw-o pi_netrw.txt /*netrw-o* 22228 22821 netrw-options pi_netrw.txt /*netrw-options* 22229 @@ -7033,6 +70 88,7 @@22822 @@ -7033,6 +7099,7 @@ 22230 22823 netrw-p13 pi_netrw.txt /*netrw-p13* 22231 22824 netrw-p14 pi_netrw.txt /*netrw-p14* … … 22235 22828 netrw-p3 pi_netrw.txt /*netrw-p3* 22236 22829 netrw-p4 pi_netrw.txt /*netrw-p4* 22237 @@ -7374,6 +74 30,7 @@22830 @@ -7374,6 +7441,7 @@ 22238 22831 profiling repeat.txt /*profiling* 22239 22832 profiling-variable eval.txt /*profiling-variable* … … 22243 22836 pronounce intro.txt /*pronounce* 22244 22837 psql ft_sql.txt /*psql* 22245 @@ -7577,6 +76 34,7 @@22838 @@ -7577,6 +7645,7 @@ 22246 22839 s/\3 change.txt /*s\/\\3* 22247 22840 s/\9 change.txt /*s\/\\9* … … 22251 22844 s/\L change.txt /*s\/\\L* 22252 22845 s/\U change.txt /*s\/\\U* 22253 @@ -7787,6 +78 45,7 @@22846 @@ -7787,6 +7856,7 @@ 22254 22847 spell-affix-mbyte spell.txt /*spell-affix-mbyte* 22255 22848 spell-affix-not-supported spell.txt /*spell-affix-not-supported* … … 22259 22852 spell-dic-format spell.txt /*spell-dic-format* 22260 22853 spell-double-scoring spell.txt /*spell-double-scoring* 22261 @@ -7872,6 +79 31,7 @@22854 @@ -7872,6 +7942,7 @@ 22262 22855 strdisplaywidth() eval.txt /*strdisplaywidth()* 22263 22856 strftime() eval.txt /*strftime()* … … 22267 22860 string-functions usr_41.txt /*string-functions* 22268 22861 string-match eval.txt /*string-match* 22269 @@ -7936,6 + 7996,7 @@22862 @@ -7936,6 +8007,7 @@ 22270 22863 system() eval.txt /*system()* 22271 22864 system-functions usr_41.txt /*system-functions* … … 22275 22868 t motion.txt /*t* 22276 22869 t: eval.txt /*t:* 22277 @@ -8280,6 +83 41,7 @@22870 @@ -8280,6 +8352,7 @@ 22278 22871 undofile() eval.txt /*undofile()* 22279 22872 undotree() eval.txt /*undotree()* … … 22283 22876 unlisted-buffer windows.txt /*unlisted-buffer* 22284 22877 up-down-motions motion.txt /*up-down-motions* 22285 @@ -8364,6 +84 26,7 @@22878 @@ -8364,6 +8437,7 @@ 22286 22879 v:foldend eval.txt /*v:foldend* 22287 22880 v:foldlevel eval.txt /*v:foldlevel* … … 22291 22884 v:key eval.txt /*v:key* 22292 22885 v:lang eval.txt /*v:lang* 22293 @@ -8377,6 +84 40,7 @@22886 @@ -8377,6 +8451,7 @@ 22294 22887 v:prevcount eval.txt /*v:prevcount* 22295 22888 v:profiling eval.txt /*v:profiling* … … 22301 22894 diff -Naur vim74.orig/runtime/doc/tagsrch.txt vim74/runtime/doc/tagsrch.txt 22302 22895 --- vim74.orig/runtime/doc/tagsrch.txt 2013-08-10 11:25:02.000000000 +0000 22303 +++ vim74/runtime/doc/tagsrch.txt 2014-0 6-01 00:42:52.637535056+000022896 +++ vim74/runtime/doc/tagsrch.txt 2014-07-21 23:33:15.386863877 +0000 22304 22897 @@ -1,4 +1,4 @@ 22305 22898 -*tagsrch.txt* For Vim version 7.4. Last change: 2013 Jul 28 … … 22325 22918 diff -Naur vim74.orig/runtime/doc/term.txt vim74/runtime/doc/term.txt 22326 22919 --- vim74.orig/runtime/doc/term.txt 2013-08-10 11:25:02.000000000 +0000 22327 +++ vim74/runtime/doc/term.txt 2014-0 6-01 00:42:52.644201706+000022920 +++ vim74/runtime/doc/term.txt 2014-07-21 23:33:15.423530448 +0000 22328 22921 @@ -1,4 +1,4 @@ 22329 22922 -*term.txt* For Vim version 7.4. Last change: 2013 Mar 13 … … 22345 22938 diff -Naur vim74.orig/runtime/doc/todo.txt vim74/runtime/doc/todo.txt 22346 22939 --- vim74.orig/runtime/doc/todo.txt 2013-08-10 11:25:02.000000000 +0000 22347 +++ vim74/runtime/doc/todo.txt 2014-0 6-01 00:42:52.700868228+000022940 +++ vim74/runtime/doc/todo.txt 2014-07-21 23:33:15.583530030 +0000 22348 22941 @@ -1,4 +1,4 @@ 22349 22942 -*todo.txt* For Vim version 7.4. Last change: 2013 Aug 10 22350 +*todo.txt* For Vim version 7.4. Last change: 2014 May 2222943 +*todo.txt* For Vim version 7.4. Last change: 2014 Jul 19 22351 22944 22352 22945 22353 22946 VIM REFERENCE MANUAL by Bram Moolenaar 22354 @@ -34,38 +34,2 42@@22947 @@ -34,38 +34,289 @@ 22355 22948 *known-bugs* 22356 22949 -------------------- Known bugs and current work ----------------------- 22357 22950 22951 +Completion menu: remove redraw (Hirohito Higashi) 22952 + 22358 22953 +Regexp problems: 22359 22954 +- Bug with pattern: '\vblock (\d+)\.\n.*\d+%(\1)@<!\.$' … … 22369 22964 + \%u, \%x, \%o, \%d followed by a composing character 22370 22965 + 22966 +Crash when splitting the window when the size is tiny. 22967 +(Yukihiro Nakadaira, 2014 Jul 15-16) 22968 + 22969 +Another problem with splitting window. (Yukihiro Nakadaira, 2014 Jul 17) 22970 +Patch Jul 17. 22971 + 22972 +Using freed memory when jumping from a quickfix list. (lcd47, 2014 Jul 17) 22973 + 22974 +Patch to fix valgrind error. (Dominique Pelle, 2014 Jul 9) 22975 + 22976 +Vroom filetype support. (David Barnett, 2014 Jul 10) 22977 + 22978 +u_undo error. Reproduce with description from Ayberk Ozgur, 2014 Jul 17. 22979 + 22980 +Updated Django files. (Dave Hodder, 2014 Jul 13) 22981 + 22982 +Title of quickfist list is not kept for setqflist(list 'r'). 22983 +(Lcd, 2014 Jul 17) With test Jul 18. 22984 + 22985 +Patch to fix noremap flags not cleared after typing Esc. (Jacob Niehus, 2014 22986 +Jul 9) 22987 + 22371 22988 +Problem that a previous silent ":throw" causes a following try/catch not to 22372 22989 +work. (ZyX, 2013 Sep 28) 22373 22990 + 22991 +DiffChange highlighting doesn't combine with 'cursurline'. (Benjamin Fritz) 22992 +Patch by Christian (2014 Jul 12) 22993 + 22994 +BufWinLeave autocommand executed in the wrong buffer? (Davit Samvelyan, 2014 22995 +Jul 14) 22996 + 22997 +When 'clipboard' is "unnamed", :g/pat/d is very slow. Only set the clipboard 22998 +after the last delete? (Praful, 2014 May 28) 22999 +Patch by Christian Brabandt, 2014 Jun 18. Update Jun 25. 23000 + 23001 +Completion for :buf does not use 'wildignorecase'. (Akshay H, 2014 May 31) 23002 + 22374 23003 +":cd C:\Windows\System32\drivers\etc*" does not work, even though the 22375 23004 +directory exists. (Sergio Gallelli, 2013 Dec 29) 22376 23005 + 23006 +The entries added by matchaddpos() are returned by getmatches() but can't be 23007 +set with setmatches(). (lcd47, 2014 Jun 29) 23008 + 22377 23009 +Problem using ":try" inside ":execute". (ZyX, 2013 Sep 15) 22378 23010 + 22379 +Setting 'ttymouse' empty causes Dec mouse to be detected. (Elijah Griffin,22380 +2014 May 13)22381 +22382 23011 Python: ":py raw_input('prompt')" doesn't work. (Manu Hack) 22383 23012 22384 23013 -Patch to add "acl" and "xpm" as a feature. (Ken Takata, 2013 Jul 8) 23014 +When using an undo file, also restore the changelist, so that "g;" works. 23015 + 23016 +Value returned by virtcol() changes depending on how lines wrap. This is 23017 +inconsistant with the documentation. 23018 + 22385 23019 +MS-Windows: Crash opening very long file name starting with "\\". 22386 23020 +(Christian Brock, 2012 Jun 29) … … 22390 23024 +Adding "~" to 'cdpath' doesn't work for completion? (Davido, 2013 Aug 19) 22391 23025 + 23026 +"hi link" does not respect groups with GUI settings only. (Mark Lodato, 2014 23027 +Jun 8) 23028 + 22392 23029 +Syntax file for gnuplot. Existing one is very old. (Andrew Rasmussen, 2014 22393 23030 +Feb 24) 22394 23031 + 22395 +Add digraph for Rouble: =P. What's the Unicode?22396 +22397 23032 +Issue 174: Detect Mason files. 22398 23033 + … … 22402 23037 + 22403 23038 +PHP syntax is extremely slow. (Anhad Jai Singh, 2014 Jan 19) 23039 + 23040 +Patch for matchparen. (James McCoy, 2014 Jul 11) 22404 23041 + 22405 23042 +Spell files use a latin single quote. Unicode also has another single quote: … … 22413 23050 + 22414 23051 +Win32: use 64 bit stat() if possible. (Ken Takata, 2014 May 12) 22415 +More tests May 14. 23052 +More tests May 14. Update May 29. 23053 23054 -Patch to make has() check for Vim version and patch at the same time. 23055 -(Marc Weber, 2013 Jun 7) 23056 +The garbage collector may use too much stack. Make set_ref_in_item() 23057 +iterative instead of recursive. Test program by Marc Weber (2013 Dec 10) 23058 +Patch by Ben Fritz, 2014 Jun 22. 22416 23059 + 22417 23060 +Idea: For a window in the middle (has window above and below it), use … … 22421 23064 +Can we make ":unlet $VAR" use unsetenv() to delete the env var? 22422 23065 +What for systems that don't have unsetenv()? 22423 +22424 +Patch to make getchar() work for typing Esc. (Yasuhiro Matsumoto, 2014 May 13)22425 +22426 +Patch for problem that v:register is set to '_' after deleting into the black22427 +hole register.22428 23066 + 22429 23067 +This does not give an error: (Andre Sihera, 2014 Mar 21) … … 22436 23074 +from? 22437 23075 + 22438 +P atch to add arglistid(), get the ID of the currently used argument list.22439 + (Marcin Szamotulski, 2014 Apr 27)23076 +Problem with upwards search on Windows (works OK on Linux). (Brett Stahlman, 23077 +2014 Jun 8) 22440 23078 + 22441 23079 +Include a plugin manager with Vim? Neobundle seems to be the best currently. … … 22476 23114 +normal spell file. (Enno Nagel, 2014 Mar 29) 22477 23115 + 22478 +- Patch for 'breakindent' option: repeat indent for wrapped line. (Vaclav 22479 + Smilauer, 2004 Sep 13, fix Oct 31, update 2007 May 30) 22480 + Version for latest MacVim: Tobia Conforto, 2009 Nov 23 22481 + More recent version: https://retracile.net/wiki/VimBreakIndent 22482 + Posted to vim-dev by Taylor Hedberg, 2011 Nov 25 22483 + Update by Taylor Hedberg, 2013 May 30. 22484 + Updated for Vim 7.4 by Ken Takata, 2013 Oct 5. 22485 + Update by Christian Brabandt, 2014 May 9. Remarks by Ken Takata. 22486 + Update by Christian 2014 May 12, github link on May 15 23116 +CTRL-] in Visual mode uses the selected text as a tag. This does not work 23117 +when preceded with CTRL-W. (Patrick Hemmer, 2014 Jun 28) 22487 23118 + 22488 23119 +When typing the first character of a command, e.g. "f", then using a menu, the … … 22495 23126 +various other commands. (ZyX, 2014 Mar 30) 22496 23127 + 23128 +patch to skip sort if no line matches the expression. 23129 +(Christian Brabandt, 2014 Jun 25) 23130 + 23131 +Patch to add sortuniq(). (Cade Forester, 2014 Mar 19) 23132 +Or add uniq() instead? Patch by lcd47, but it has problems. 23133 + 23134 +Patch to support sorting on floating point number. (Alex Jakushev, 2010 Oct 23135 +30) 23136 + 23137 +Patch to support expression argument to sort() instead of a function name. 23138 +Yasuhiro Matsumoto, 2013 May 31. 23139 +Or should we add a more general mechanism, like lambda functions? 23140 + 22497 23141 +VMS: Select() doesn't work properly, typing ESC may hang Vim. Use sys$qiow 22498 23142 +instead. (Samuel Ferencik, 2013 Sep 28) 22499 22500 -Patch to make has() check for Vim version and patch at the same time. 22501 -(Marc Weber, 2013 Jun 7) 23143 + 22502 23144 +Patch for XDG base directory support. (Jean François Bignolles, 2014 Mar 4) 22503 + 22504 +Patch to add flag to shortmess to avoid giving completion messages. 22505 +(Shougo Matsu, 2014 Jan 6, update Jan 11) 23145 +Remark on the docs. Should not be a compile time feature. But then what? 23146 + 23147 +Completion of ":e" is ":earlier", whould be ":edit". Complete to the matching 23148 +command instead of doing this alphabetically. (Mikel Jorgensen) 22506 23149 + 22507 23150 +Patch to add v:completed_item. (Shougo Matsu, 2013 Nov 29). … … 22510 23153 + 22511 23154 +Patch to define macros for hardcoded values. (Elias Diem, 2013 Dec 14) 22512 +22513 +Patch to add sortuniq(). (Cade Forester, 2014 Mar 19)22514 +Or add uniq() instead? Patch by lcd47, but it has problems.22515 23155 + 22516 23156 +Perl: support for Activestate perl 5.18: Issue 170. … … 22527 23167 +Patch to add ":undorecover", get as much text out of the undo file as 22528 23168 +possible. (Christian Brabandt, 2014 Mar 12) 22529 +22530 +Include Haiku port? (Adrien Destugues, Siarzhuk Zharski, 2013 Oct 24)22531 23169 22532 23170 -Several Win32 functions are not using Unicode. 22533 23171 -Patches to fix this. (Ken Takata, 2013 Aug 9) 23172 +Include Haiku port? (Adrien Destugues, Siarzhuk Zharski, 2013 Oct 24) 23173 + 22534 23174 +Updated spec ftplugin. (MatÄj Cepl, 2013 Oct 16) 22535 23175 + … … 22604 23244 22605 23245 The BufUnload event is triggered when re-using the empty buffer. 22606 @@ -76,6 + 280,10 @@23246 @@ -76,6 +327,10 @@ 22607 23247 - The word that was selected (empty if abandoned complete) 22608 23248 - Type of completion: tag, omnifunc, user func. … … 22615 23255 That is, calling a dictionary function on an autoloaded dict. 22616 23256 Works OK for echo, just not for ":call" and ":call call()". (Ted, 2011 Mar 22617 @@ -83,1 0 +291,6@@23257 @@ -83,17 +338,19 @@ 22618 23258 Patch by Christian Brabandt, 2013 Mar 23. 22619 23259 Not 100% sure this is the right solution. … … 22623 23263 -Stocker, 2012 Jan 5) 22624 23264 - 22625 22626 22627 22628 @@ -94,6 +298,19 @@ 23265 -Patch to support expression argument to sort() instead of a function name. 23266 -Yasuhiro Matsumoto, 2013 May 31. 23267 -Or should we add a more general mechanism, like lambda functions? 23268 - 22629 23269 Problem caused by patch 7.3.638: window->open does not update window 22630 23270 correctly. Issue 91. … … 22632 23272 +Patch to add {lhs} to :mapclear: clear all maps starting with {lhs}. 22633 23273 +(Christian Brabandt, 2013 Dec 9) 22634 +22635 +The garbage collector may use too much stack. Make set_ref_in_item()22636 +iterative instead of recursive. Test program by Marc Weber (2013 Dec 10)22637 23274 + 22638 23275 +Exception caused by argument of return is not caught by try/catch. … … 22646 23283 2013 Mar 19, later message) 22647 23284 22648 @@ -108,6 +3 25,8 @@23285 @@ -108,6 +365,8 @@ 22649 23286 Bug with 'cursorline' in diff mode. Line being scrolled into view gets 22650 23287 highlighted as the cursor line. (Alessandro Ivaldi, 2013 Jun 4) … … 22655 23292 May 17: with winlist() and tabpagelist(). 22656 23293 May 19: with local variables. 22657 @@ -119, 6 +338,8@@23294 @@ -119,10 +378,13 @@ 22658 23295 Patch from Christian Brabandt to make the "buffer" argument for ":sign place" 22659 23296 optional. (2013 Jul 12) … … 22664 23301 functions. (Christian Brabandt, 2013 May 8, update May 21) 22665 23302 Patch to add getlocstack() / setlocstack(). (Christian Brabandt, 2013 May 14) 22666 @@ -149,11 +370,19 @@ 23303 Second one. Update May 22. 23304 +Update by Daniel Hahler, 2014 Jul 4. 23305 23306 Patch to make fold updates much faster. (Christian Brabandt, 2012 Dec) 23307 23308 @@ -137,9 +399,6 @@ 23309 23310 Bug: findfile("any", "file:///tmp;") does not work. 23311 23312 -v:register is not directly reset to " after a delete command that specifies a 23313 -register. It is reset after the next command. (Steve Vermeulen, 2013 Mar 16) 23314 - 23315 'ff' is wrong for one-line file without EOL. (Issue 77) 23316 23317 Patch to set antialiasing style on Windows. (Ondrej Balaz, 2013 Mar 14) 23318 @@ -149,11 +408,19 @@ 22667 23319 process that is running. It might actually be some other program, e.g. after 22668 23320 a reboot. … … 22686 23338 not correctly updated. (Paul Harris, 2012 Feb 27) 22687 23339 22688 @@ -167,8 + 396,17 @@23340 @@ -167,8 +434,17 @@ 22689 23341 22690 23342 Patch to add functions for signs. (Christian Brabandt, 2013 Jan 27) … … 22704 23356 Patch to add 'completeselect' option. Specifies how to select a candidate in 22705 23357 insert completion. (Shougo, 2013 May 29) 22706 @@ -182,9 +4 20,6 @@23358 @@ -182,9 +458,6 @@ 22707 23359 Win32: The Python interface only works with one version of Python, selected at 22708 23360 compile time. Can this be made to work with version 2.1 and 2.2 dynamically? … … 22714 23366 Vim script. Requires converting the arguments and return value, like with 22715 23367 vim.bindeval(). 22716 @@ -205,9 +4 40,6 @@23368 @@ -205,9 +478,6 @@ 22717 23369 Add a check for b:no_match_paren in Highlight_matching_Pair() (Marcin 22718 23370 Szamotulski, 2012 Nov 8) … … 22724 23376 22725 23377 Session file creation: 'autochdir' causes trouble. Keep it off until after 22726 @@ -240,10 + 472,6 @@23378 @@ -240,10 +510,6 @@ 22727 23379 Help for 'b:undo_indent'. (Thilo Six, 2012 May 28) 22728 23380 Also question if examples are correct. … … 22735 23387 Suggestion for another map. (Philip Mat, 2012 Jun 18) 22736 23388 But use "gi" instead of "a". Or use CTRL-\ CTRL-O. 22737 @@ -251,1 0 +479,6@@23389 @@ -251,13 +517,12 @@ 22738 23390 Patch to support user name completion on MS-Windows. (Yasuhiro Matsumoto, 2012 22739 23391 Aug 16) … … 22746 23398 is confusing. Should say "the argument list is empty". 22747 23399 22748 @@ -272,27 +496,23 @@ 23400 +xterm supports escape sequences to mark a paste operation. Need to be 23401 +enabled. (Bruno Sutic, 2014 Jul 11) How to know the terminal supports this? 23402 + 23403 URXVT: 23404 - will get stuck if byte sequence does not contain the expected semicolon. 23405 - Use urxvt mouse support also in xterm. Explanations: 23406 @@ -272,27 +537,23 @@ 22749 23407 22750 23408 Patch to list user digraphs. (Christian Brabandt, 2012 Apr 14) … … 22779 23437 22780 23438 Update for vim2html.pl. (Tyru, 2013 Feb 22) 22781 @@ -374,8 + 594,6 @@23439 @@ -374,8 +635,6 @@ 22782 23440 Setting $HOME on MS-Windows is not very well documented. Suggestion by Ben 22783 23441 Fritz (2011 Oct 27). … … 22788 23446 doing ":g/test/d". Putting every delete on the clipboard? (Robert Chan, 2011 22789 23447 Jun 17) 22790 @@ -396,10 +6 14,10 @@23448 @@ -396,10 +655,10 @@ 22791 23449 Changes to manpage plugin. (Elias Toivanen, 2011 Jul 25) 22792 23450 … … 22801 23459 On 64 bit MS-Windows "long" is only 32 bits, but we sometimes need to store a 22802 23460 64 bits value. Change all number options to use nropt_T and define it to the 22803 @@ -419,6 +6 37,8 @@23461 @@ -419,6 +678,8 @@ 22804 23462 When setqflist() uses a filename that triggers a BufReadCmd autocommand Vim 22805 23463 doesn't jump to the correct line with :cfirst. (ZyX, 2011 Sep 18) … … 22810 23468 Patch from Christian Brabandt, 2011 Aug 19. 22811 23469 22812 @@ -456,6 +676,9 @@ 23470 @@ -439,9 +700,6 @@ 23471 23472 "0g@$" puts '] on last byte of multi-byte. (ZyX, 2011 Jan 22) 23473 23474 -Patch to support sorting on floating point number. (Alex Jakushev, 2010 Oct 23475 -30) 23476 - 23477 Patch to addd TextDeletePost and TextYankPost events. (Philippe Vaucher, 2011 23478 May 24) Update May 26. 23479 23480 @@ -456,6 +714,9 @@ 22813 23481 number, but it is in the sign column. Doesn't look right. (ZyX 2011 Jun 5) 22814 23482 Patch by Christian Brabandt, 2011 Jun 5. Introduces new problems. … … 22820 23488 Patch by Christian Brabandt, uses ]e [e ]t and [t. 2011 Aug 9. 22821 23489 22822 @@ -524,9 +7 47,6 @@23490 @@ -524,9 +785,6 @@ 22823 23491 Patch to add FoldedLineNr highlighting: different highlighting for the line 22824 23492 number of a closed fold. (eXerigumo Clanjor, 2013 Jul 15) … … 22830 23498 - Profiling: 22831 23499 ./vim -u NONE -s ~/vim/test/ruby.vim 22832 @@ -556,7 + 776,7 @@23500 @@ -556,7 +814,7 @@ 22833 23501 the system encoding (usually utf-8). 22834 23502 … … 22839 23507 Problem producing tags file when hebrew.frx is present. It has a BOM. 22840 23508 Results in E670. (Tony Mechelynck, 2010 May 2) 22841 @@ -573,8 +793,7 @@ 22842 22843 getpos()/setpos() don't include curswant. getpos() could return a fifth 22844 element. setpos() could accept an optional fifth element. 23509 @@ -571,11 +829,6 @@ 23510 file names unique, also support this for 'backupdir'. (Mikolaj Machowski) 23511 Patch by Christian Brabandt, 2010 Oct 21. 23512 23513 -getpos()/setpos() don't include curswant. getpos() could return a fifth 23514 -element. setpos() could accept an optional fifth element. 22845 23515 -Patch by Christian Brabandt, 2010 Sep 6. Check that new argument is optional 22846 23516 -and that it's documented. 22847 +Patch by Christian Brabandt, 2010 Sep 6. Again 2013 Aug 22. 22848 23517 - 22849 23518 With "tw=55 fo+=a" typing space before ) doesn't work well. (Scott Mcdermott, 22850 23519 2010 Oct 24) 22851 @@ -595,9 +814,6 @@ 23520 23521 @@ -595,9 +848,6 @@ 22852 23522 checked to be in a comment. Implement FM_SKIPCOMM flag of findmatchlimit(). 22853 23523 Issue 46. … … 22859 23529 22860 23530 Using CompilerSet doesn't record where an option was set from. E.g., in the 22861 @@ -620,8 +8 36,6 @@23531 @@ -620,8 +870,6 @@ 22862 23532 When 'lines' is 25 and 'scrolloff' is 12, "j" scrolls zero or two lines 22863 23533 instead of one. (Constantin Pan, 2010 Sep 10) … … 22868 23538 Winckler, 2011 May 11) 22869 23539 Requires a map mode for Insert mode started from blockwise Visual mode. 22870 @@ -629,10 +8 43,6 @@23540 @@ -629,10 +877,6 @@ 22871 23541 Writing nested List and Dict in viminfo gives error message and can't be read 22872 23542 back. (Yukihiro Nakadaira, 2010 Nov 13) … … 22879 23549 Additional info by Dominique Pelle. (also on 2010 Apr 10) 22880 23550 22881 @@ -759,6 + 969,7 @@23551 @@ -759,6 +1003,7 @@ 22882 23552 22883 23553 Patch to add farsi handling to arabic.c (Ali Gholami Rudi, 2009 May 2) … … 22887 23557 Patch to add "focusonly" to 'scrollopt', so that scrollbind also applies in 22888 23558 window that doesn't have focus. (Jonathon Mah, 2009 Jan 12) 22889 @@ -838,8 +10 49,6 @@23559 @@ -838,8 +1083,6 @@ 22890 23560 Win32 GUI: last message from startup doesn't show up when there is an echoerr 22891 23561 command. (Cyril Slobin, 2009 Mar 13) … … 22896 23566 does not work. (Nieko Maatjes, 2009 Jan 8, Ingo Karkat, 2009 Jan 22) 22897 23567 22898 @@ -856,7 +10 65,12 @@23568 @@ -856,7 +1099,12 @@ 22899 23569 Using ~ works OK on 'a' with composing char, but not on 0x0418 with composing 22900 23570 char 0x0301. (Tony Mechelynck, 2009 Mar 4) … … 22910 23580 Inconsistent: starting with $LANG set to es_ES.utf-8 gives Spanish 22911 23581 messages, even though locale is not supported. But ":lang messages 22912 @@ -885,7 +1 099,7 @@23582 @@ -885,7 +1133,7 @@ 22913 23583 Completion for ":buf" doesn't work properly on Win32 when 'shellslash' is off. 22914 23584 (Henrik Ohman, 2009, Jan 29) … … 22919 23589 Use a different option or let it depend on whether 'shell' looks like a 22920 23590 unix-like shell? 22921 @@ -918,8 +11 32,6 @@23591 @@ -918,8 +1166,6 @@ 22922 23592 Add v:motion_force. (Kana Natsuno, 2008 Dec 6) 22923 23593 Maybe call it v:motiontype. … … 22928 23598 doesn't set 'ff' to "unix". (Ben Fritz, 2008 Dec 5) Reusing the old buffer 22929 23599 probably causes this. 22930 @@ -928,7 +11 40,7 @@23600 @@ -928,7 +1174,7 @@ 22931 23601 2009 Jan 16) 22932 23602 … … 22937 23607 Document that default font in Athena can be set with resources: 22938 23608 XtDefaultFont: "9x15" 22939 @@ -942,6 +11 54,7 @@23609 @@ -942,6 +1188,7 @@ 22940 23610 22941 23611 ":pedit %" with a BufReadPre autocommand causes the cursor to move to the … … 22945 23615 Wildmenu not deleted: "gvim -u NONE", ":set nocp wildmenu cmdheight=3 22946 23616 laststatus=2", CTRL-D CTRL-H CTRL-H CTRL-H. (A.Politz, 2008 April 1) 22947 @@ -1085,9 +1 298,6 @@23617 @@ -1085,9 +1332,6 @@ 22948 23618 result in no matches. Convert chars to lower case? (Erik Wognsen, 2009 Apr 22949 23619 16) … … 22955 23625 (Lech Lorens, 2010 Aug 30) 22956 23626 22957 @@ -1289,6 +1 499,7 @@23627 @@ -1289,6 +1533,7 @@ 22958 23628 22959 23629 Win64: Seek error in swap file for a very big file (3 Gbyte). Check storing … … 22963 23633 Win32: patch for fullscreen mode. (Liushaolin, 2008 April 17) 22964 23634 22965 @@ -1296,14 +15 07,17 @@23635 @@ -1296,14 +1541,17 @@ 22966 23636 Depends on 'shellslash', 'shellquote' and 'shellxquote', but shellescape() 22967 23637 only takes 'shellslash' into account. … … 22985 23655 2007 Jun 21) 22986 23656 22987 @@ -1459,6 +1 673,9 @@23657 @@ -1459,6 +1707,9 @@ 22988 23658 tree stops unexpectedly when using ":cd " and entering a directory that 22989 23659 doesn't contain other directories. … … 22995 23665 highlight Normal ctermbg=DarkGray 22996 23666 set background=dark 22997 @@ -1685,7 +19 02,7 @@23667 @@ -1685,7 +1936,7 @@ 22998 23668 - testdir/Make_dos_sh.mak for running tests with MingW. (Bill Mccarthy, 2008 22999 23669 Sep 13) … … 23004 23674 Vissale Neang. (Martin Stubenschrott) Asked Vissale to make the scripts 23005 23675 more friendly for the Vim distribution. 23006 @@ -1715,7 +19 32,7 @@23676 @@ -1715,7 +1966,7 @@ 23007 23677 How does this work? Missing comments. 23008 23678 8 Add a few more command names to the menus. Patch from Jiri Brezina … … 23013 23683 - Include flipcase patch: ~/vim/patches/wall.flipcase2 ? Make it work 23014 23684 for multi-byte characters. 23015 @@ -1864,8 +2 081,6 @@23685 @@ -1864,8 +2115,6 @@ 23016 23686 Win32 GUI known bugs: 23017 23687 - Win32: tearoff menu window should have a scrollbar when it's taller than … … 23022 23692 file names. Can we load unicows.dll dynamically? 23023 23693 8 The -P argument doesn't work very well with many MDI applications. 23024 @@ -1873,9 +2 088,6 @@23694 @@ -1873,9 +2122,6 @@ 23025 23695 Tutorial: http://win32assembly.online.fr/tut32.html 23026 23696 8 In eval.c, io.h is included when MSWIN32 is defined. Shouldn't this be … … 23032 23702 of ":only" is highlighted like the cursor. (Lipelis) 23033 23703 8 When 'encoding' is "utf-8", should use 'guifont' for both normal and wide 23034 @@ -1887,9 +2 099,6 @@23704 @@ -1887,9 +2133,6 @@ 23035 23705 8 Use another default for 'termencoding': the active codepage. Means that 23036 23706 when 'encoding' is changed typing characters still works properly. … … 23042 23712 2004 May 9) 23043 23713 8 Win32: When clicking on the gvim title bar, which gives it focus, produces 23044 @@ -2272,8 +2 481,6 @@23714 @@ -2272,8 +2515,6 @@ 23045 23715 character. (Yasuhiro Matsumoto) It should return 1 when used on a tail 23046 23716 byte, like for utf-8. Store second byte of double-byte in ScreenLines2[] … … 23051 23721 ":insert" command, causing the following "endfunction" not to be found. 23052 23722 Add skipping this perl construction inside function definitions. 23053 @@ -2566,8 +2 773,6 @@23723 @@ -2566,8 +2807,6 @@ 23054 23724 input method called from GDK code. Without Perl it doesn't crash. 23055 23725 - VMS: Vimdiff doesn't work with the VMS diff, because the output looks … … 23060 23730 in Vim as if the rightmost scrollbar was used. 23061 23731 - GTK with Gnome: Produces an error message when starting up: 23062 @@ -2736,10 +29 41,6 @@23732 @@ -2736,10 +2975,6 @@ 23063 23733 23064 23734 … … 23071 23741 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=219777 23072 23742 - Unicode defines another quote character: 0x2019. Use it as an equivalent 23073 @@ -2925,12 +31 26,8 @@23743 @@ -2925,12 +3160,8 @@ 23074 23744 8 toupper() function doesn't handle byte count changes. 23075 23745 7 Searching and composing characters: … … 23084 23754 8 Detect overlong UTF-8 sequences and handle them like illegal bytes. 23085 23755 8 ":s/x/\u\1/" doesn't work, making uppercase isn't done for multi-byte 23086 @@ -3153,6 +33 50,7 @@23756 @@ -3153,6 +3384,7 @@ 23087 23757 Built-in script language: 23088 23758 8 Make the filename and line number available to script functions, so that … … 23092 23762 restore option values. Especially useful for new options. Problem: how 23093 23763 to avoid a performance penalty (esp. for string options)? 23094 @@ -4035,8 +42 33,7 @@23764 @@ -4035,8 +4267,7 @@ 23095 23765 7 Use Tabs for the indent of starting lines, pad with spaces for 23096 23766 continuation lines. Allows changing 'tabstop' without messing up the … … 23102 23772 23103 23773 Java: 23104 @@ -4655,7 +48 52,7 @@23774 @@ -4655,7 +4886,7 @@ 23105 23775 23106 23776 Digraphs: … … 23111 23781 characters? 23112 23782 8 Add command to remove one or more (all) digraphs. (Brown) 23113 @@ -4852,6 +50 49,7 @@23783 @@ -4852,6 +5083,7 @@ 23114 23784 6 Add ":timer" command, to set a command to be executed at a certain 23115 23785 interval, or once after some time has elapsed. (Aaron) … … 23121 23791 diff -Naur vim74.orig/runtime/doc/undo.txt vim74/runtime/doc/undo.txt 23122 23792 --- vim74.orig/runtime/doc/undo.txt 2013-08-10 11:25:02.000000000 +0000 23123 +++ vim74/runtime/doc/undo.txt 2014-0 6-01 00:42:52.734201477+000023793 +++ vim74/runtime/doc/undo.txt 2014-07-21 23:33:15.630196575 +0000 23124 23794 @@ -1,4 +1,4 @@ 23125 23795 -*undo.txt* For Vim version 7.4. Last change: 2012 Mar 04 23126 +*undo.txt* For Vim version 7.4. Last change: 201 3 Sep 0823796 +*undo.txt* For Vim version 7.4. Last change: 2014 May 24 23127 23797 23128 23798 … … 23137 23807 nothing (undoes an undo). 23138 23808 23809 @@ -97,9 +97,9 @@ 23810 or redo. 23811 {not in Vi} 23812 23813 -This is most useful when you need to prompt the user halfway a change. For 23814 -example in a function that calls |getchar()|. Do make sure that there was a 23815 -related change before this that you must join with. 23816 +This is most useful when you need to prompt the user halfway through a change. 23817 +For example in a function that calls |getchar()|. Do make sure that there was 23818 +a related change before this that you must join with. 23819 23820 This doesn't work by itself, because the next key press will start a new 23821 change again. But you can do something like this: > 23139 23822 @@ -249,8 +249,9 @@ 23140 23823 detect if an undo file is no longer synchronized with the file it was written … … 23149 23832 Undo files are normally saved in the same directory as the file. This can be 23150 23833 changed with the 'undodir' option. 23834 diff -Naur vim74.orig/runtime/doc/usr_08.txt vim74/runtime/doc/usr_08.txt 23835 --- vim74.orig/runtime/doc/usr_08.txt 2013-08-10 11:25:03.000000000 +0000 23836 +++ vim74/runtime/doc/usr_08.txt 2014-07-21 23:33:15.696863068 +0000 23837 @@ -1,4 +1,4 @@ 23838 -*usr_08.txt* For Vim version 7.4. Last change: 2006 Jul 18 23839 +*usr_08.txt* For Vim version 7.4. Last change: 2014 Jul 06 23840 23841 VIM USER MANUAL - by Bram Moolenaar 23842 23843 @@ -532,7 +532,7 @@ 23844 23845 You now have two tab pages. The first one has a window for "thisfile" and the 23846 second one a window for "thatfile". It's like two pages that are on top of 23847 -eachother, with a tab sticking out of each page showing the file name. 23848 +each other, with a tab sticking out of each page showing the file name. 23849 23850 Now use the mouse to click on "thisfile" in the top line. The result is 23851 23151 23852 diff -Naur vim74.orig/runtime/doc/usr_25.txt vim74/runtime/doc/usr_25.txt 23152 23853 --- vim74.orig/runtime/doc/usr_25.txt 2013-08-10 11:25:05.000000000 +0000 23153 +++ vim74/runtime/doc/usr_25.txt 2014-0 6-01 00:42:52.944200942+000023854 +++ vim74/runtime/doc/usr_25.txt 2014-07-21 23:33:15.816862755 +0000 23154 23855 @@ -86,7 +86,7 @@ 23155 23856 … … 23163 23864 diff -Naur vim74.orig/runtime/doc/usr_30.txt vim74/runtime/doc/usr_30.txt 23164 23865 --- vim74.orig/runtime/doc/usr_30.txt 2013-08-10 11:25:05.000000000 +0000 23165 +++ vim74/runtime/doc/usr_30.txt 2014-0 6-01 00:42:53.064200637+000023866 +++ vim74/runtime/doc/usr_30.txt 2014-07-21 23:33:15.870195949 +0000 23166 23867 @@ -128,7 +128,7 @@ 23167 23868 You can include special Vim keywords in the command specification. The % … … 23184 23885 diff -Naur vim74.orig/runtime/doc/usr_40.txt vim74/runtime/doc/usr_40.txt 23185 23886 --- vim74.orig/runtime/doc/usr_40.txt 2013-08-10 11:25:05.000000000 +0000 23186 +++ vim74/runtime/doc/usr_40.txt 2014-0 6-01 00:42:53.100867210+000023887 +++ vim74/runtime/doc/usr_40.txt 2014-07-21 23:33:15.920195819 +0000 23187 23888 @@ -209,7 +209,7 @@ 23188 23889 separates the two commands. This also means that a | character can't be used … … 23196 23897 diff -Naur vim74.orig/runtime/doc/usr_41.txt vim74/runtime/doc/usr_41.txt 23197 23898 --- vim74.orig/runtime/doc/usr_41.txt 2013-08-10 11:25:05.000000000 +0000 23198 +++ vim74/runtime/doc/usr_41.txt 2014-0 6-01 00:42:53.110867184+000023899 +++ vim74/runtime/doc/usr_41.txt 2014-07-21 23:33:15.946862416 +0000 23199 23900 @@ -1,4 +1,4 @@ 23200 23901 -*usr_41.txt* For Vim version 7.4. Last change: 2013 Feb 20 23201 +*usr_41.txt* For Vim version 7.4. Last change: 2014 Apr 0523902 +*usr_41.txt* For Vim version 7.4. Last change: 2014 May 28 23202 23903 23203 23904 VIM USER MANUAL - by Bram Moolenaar … … 23248 23949 Variables: *var-functions* 23249 23950 type() type of a variable 23250 @@ -697,11 +706,1 5@@23951 @@ -697,11 +706,16 @@ 23251 23952 wincol() window column number of the cursor 23252 23953 winline() window line number of the cursor … … 23254 23955 + screencol() get screen column of the cursor 23255 23956 + screenrow() get screen row of the cursor 23957 + getcurpos() get position of the cursor 23256 23958 getpos() get position of cursor, mark, etc. 23257 23959 setpos() set position of cursor, mark, etc. … … 23264 23966 Working with text in the current buffer: *text-functions* 23265 23967 getline() get a line or list of lines from the buffer 23266 @@ -729,6 +74 2,7 @@23968 @@ -729,6 +743,7 @@ 23267 23969 pathshorten() shorten directory names in a path 23268 23970 simplify() simplify a path without changing its meaning … … 23272 23974 filewritable() check if a file can be written to 23273 23975 getfperm() get the permissions of a file 23274 @@ -741,7 +75 5,8 @@23976 @@ -741,7 +756,8 @@ 23275 23977 mkdir() create a new directory 23276 23978 delete() delete a file … … 23282 23984 readfile() read a file into a List of lines 23283 23985 writefile() write a List of lines into a file 23284 @@ -757,6 +77 2,7 @@23986 @@ -757,6 +773,7 @@ 23285 23987 Buffers, windows and the argument list: 23286 23988 argc() number of entries in the argument list … … 23290 23992 bufexists() check if a buffer exists 23291 23993 buflisted() check if a buffer exists and is listed 23292 @@ -883,14 +899,22 @@ 23994 @@ -810,6 +827,7 @@ 23995 synconcealed() get info about concealing 23996 diff_hlID() get highlight ID for diff mode at a position 23997 matchadd() define a pattern to highlight (a "match") 23998 + matchaddpos() define a list of positions to highlight 23999 matcharg() get info about |:match| arguments 24000 matchdelete() delete a match defined by |matchadd()| or a 24001 |:match| command 24002 @@ -883,14 +901,22 @@ 23293 24003 libcall() call a function in an external library 23294 24004 libcallnr() idem, returning a number … … 23315 24025 diff -Naur vim74.orig/runtime/doc/usr_42.txt vim74/runtime/doc/usr_42.txt 23316 24026 --- vim74.orig/runtime/doc/usr_42.txt 2013-08-10 11:25:05.000000000 +0000 23317 +++ vim74/runtime/doc/usr_42.txt 2014-0 6-01 00:42:53.120867159+000024027 +++ vim74/runtime/doc/usr_42.txt 2014-07-21 23:33:15.973529013 +0000 23318 24028 @@ -311,7 +311,7 @@ 23319 24029 item with a bitmap. For example, define a new toolbar item with: > … … 23327 24037 diff -Naur vim74.orig/runtime/doc/usr_45.txt vim74/runtime/doc/usr_45.txt 23328 24038 --- vim74.orig/runtime/doc/usr_45.txt 2013-08-10 11:25:06.000000000 +0000 23329 +++ vim74/runtime/doc/usr_45.txt 2014-0 6-01 00:42:53.167533707+000024039 +++ vim74/runtime/doc/usr_45.txt 2014-07-21 23:33:16.006862259 +0000 23330 24040 @@ -328,8 +328,8 @@ 23331 24041 *45.5* Entering language text … … 23341 24051 diff -Naur vim74.orig/runtime/doc/various.txt vim74/runtime/doc/various.txt 23342 24052 --- vim74.orig/runtime/doc/various.txt 2013-08-10 11:25:06.000000000 +0000 23343 +++ vim74/runtime/doc/various.txt 2014-0 6-01 00:42:53.190866981 +000024053 +++ vim74/runtime/doc/various.txt 2014-07-21 23:33:16.030195531 +0000 23344 24054 @@ -1,4 +1,4 @@ 23345 24055 -*various.txt* For Vim version 7.4. Last change: 2013 May 18 … … 23427 24137 diff -Naur vim74.orig/runtime/doc/version5.txt vim74/runtime/doc/version5.txt 23428 24138 --- vim74.orig/runtime/doc/version5.txt 2013-08-10 11:25:07.000000000 +0000 23429 +++ vim74/runtime/doc/version5.txt 2014-0 6-01 00:42:53.237533529+000024139 +++ vim74/runtime/doc/version5.txt 2014-07-21 23:33:16.090195375 +0000 23430 24140 @@ -2020,7 +2020,7 @@ 23431 24141 … … 23439 24149 diff -Naur vim74.orig/runtime/doc/version7.txt vim74/runtime/doc/version7.txt 23440 24150 --- vim74.orig/runtime/doc/version7.txt 2013-08-10 12:23:06.000000000 +0000 23441 +++ vim74/runtime/doc/version7.txt 2014-0 6-01 00:42:53.430866370+000024151 +++ vim74/runtime/doc/version7.txt 2014-07-21 23:33:16.276861554 +0000 23442 24152 @@ -1,4 +1,4 @@ 23443 24153 -*version7.txt* For Vim version 7.4. Last change: 2013 Aug 10 … … 23483 24193 diff -Naur vim74.orig/runtime/doc/vi_diff.txt vim74/runtime/doc/vi_diff.txt 23484 24194 --- vim74.orig/runtime/doc/vi_diff.txt 2013-08-10 11:25:07.000000000 +0000 23485 +++ vim74/runtime/doc/vi_diff.txt 2014-0 6-01 00:42:53.477532917+000024195 +++ vim74/runtime/doc/vi_diff.txt 2014-07-21 23:33:16.303528151 +0000 23486 24196 @@ -1,4 +1,4 @@ 23487 24197 -*vi_diff.txt* For Vim version 7.4. Last change: 2012 Aug 08 … … 23510 24220 diff -Naur vim74.orig/runtime/doc/visual.txt vim74/runtime/doc/visual.txt 23511 24221 --- vim74.orig/runtime/doc/visual.txt 2013-08-10 11:25:08.000000000 +0000 23512 +++ vim74/runtime/doc/visual.txt 2014-0 6-01 00:42:53.920865122+000024222 +++ vim74/runtime/doc/visual.txt 2014-07-21 23:33:16.740193679 +0000 23513 24223 @@ -1,4 +1,4 @@ 23514 24224 -*visual.txt* For Vim version 7.4. Last change: 2012 Aug 15 … … 23541 24251 diff -Naur vim74.orig/runtime/doc/windows.txt vim74/runtime/doc/windows.txt 23542 24252 --- vim74.orig/runtime/doc/windows.txt 2013-08-10 11:25:08.000000000 +0000 23543 +++ vim74/runtime/doc/windows.txt 2014-0 6-01 00:42:53.937531746+000024253 +++ vim74/runtime/doc/windows.txt 2014-07-21 23:33:16.756860302 +0000 23544 24254 @@ -1,4 +1,4 @@ 23545 24255 -*windows.txt* For Vim version 7.4. Last change: 2012 Nov 15 … … 23577 24287 diff -Naur vim74.orig/runtime/filetype.vim vim74/runtime/filetype.vim 23578 24288 --- vim74.orig/runtime/filetype.vim 2013-08-03 15:50:05.000000000 +0000 23579 +++ vim74/runtime/filetype.vim 2014-0 6-01 00:42:54.130864587+000024289 +++ vim74/runtime/filetype.vim 2014-07-21 23:33:16.946859806 +0000 23580 24290 @@ -1,7 +1,7 @@ 23581 24291 " Vim support file to detect file types … … 23583 24293 " Maintainer: Bram Moolenaar <Bram@vim.org> 23584 24294 -" Last Change: 2013 Aug 03 23585 +" Last Change: 2014 Feb 2624295 +" Last Change: 2014 Jul 16 23586 24296 23587 24297 " Listen very carefully, I will say this only once … … 23664 24374 23665 24375 " ERicsson LANGuage; Yaws is erlang too 24376 @@ -843,7 +864,7 @@ 24377 setf xhtml 24378 return 24379 endif 24380 - if getline(n) =~ '{%\s*\(extends\|block\)\>' 24381 + if getline(n) =~ '{%\s*\(extends\|block\|load\)\>' 24382 setf htmldjango 24383 return 24384 endif 23666 24385 @@ -952,6 +973,9 @@ 23667 24386 " Inno Setup … … 23674 24393 au BufNewFile,BufRead *.jal,*.JAL setf jal 23675 24394 23676 @@ -1014,7 +1038,7 @@ 24395 @@ -965,7 +989,7 @@ 24396 au BufNewFile,BufRead *.jj,*.jjt setf javacc 24397 24398 " JavaScript, ECMAScript 24399 -au BufNewFile,BufRead *.js,*.javascript,*.es,*.jsx,*.json setf javascript 24400 +au BufNewFile,BufRead *.js,*.javascript,*.es,*.jsx setf javascript 24401 24402 " Java Server Pages 24403 au BufNewFile,BufRead *.jsp setf jsp 24404 @@ -983,12 +1007,18 @@ 24405 " Jovial 24406 au BufNewFile,BufRead *.jov,*.j73,*.jovial setf jovial 24407 24408 +" JSON 24409 +au BufNewFile,BufRead *.json setf json 24410 + 24411 " Kixtart 24412 au BufNewFile,BufRead *.kix setf kix 24413 24414 " Kimwitu[++] 24415 au BufNewFile,BufRead *.k setf kwt 24416 24417 +" Kivy 24418 +au BufNewFile,BufRead *.kv setf kivy 24419 + 24420 " KDE script 24421 au BufNewFile,BufRead *.ks setf kscript 24422 24423 @@ -1014,7 +1044,7 @@ 23677 24424 au BufNewFile,BufRead *.ld setf ld 23678 24425 … … 23683 24430 " Libao 23684 24431 au BufNewFile,BufRead */etc/libao.conf,*/.libao setf libao 23685 @@ -1169,6 +119 3,9 @@24432 @@ -1169,6 +1199,9 @@ 23686 24433 " MGL 23687 24434 au BufNewFile,BufRead *.mgl setf mgl … … 23693 24440 au BufNewFile,BufRead *.mms call s:FTmms() 23694 24441 23695 @@ -2058,14 +2085,15 @@ 24442 @@ -1619,6 +1652,20 @@ 24443 au BufNewFile,BufRead *.rnw,*.snw setf rnoweb 24444 endif 24445 24446 +" R Markdown file 24447 +if has("fname_case") 24448 + au BufNewFile,BufRead *.Rmd,*.rmd,*.Smd,*.smd setf rmd 24449 +else 24450 + au BufNewFile,BufRead *.rmd,*.smd setf rmd 24451 +endif 24452 + 24453 +" R reStructuredText file 24454 +if has("fname_case") 24455 + au BufNewFile,BufRead *.Rrst,*.rrst,*.Srst,*.srst setf rrst 24456 +else 24457 + au BufNewFile,BufRead *.rrst,*.srst setf rrst 24458 +endif 24459 + 24460 " Rexx, Rebol or R 24461 au BufNewFile,BufRead *.r,*.R call s:FTr() 24462 24463 @@ -2058,14 +2105,15 @@ 23696 24464 " SVG (Scalable Vector Graphics) 23697 24465 au BufNewFile,BufRead *.svg setf svg … … 23712 24480 return 1 23713 24481 endif 23714 @@ -2092,7 +21 20,7 @@24482 @@ -2092,7 +2140,7 @@ 23715 24483 23716 24484 " Task … … 23721 24489 " Tcl (JACL too) 23722 24490 au BufNewFile,BufRead *.tcl,*.tk,*.itcl,*.itk,*.jacl setf tcl 23723 @@ -2217,12 +22 45,12 @@24491 @@ -2217,12 +2265,12 @@ 23724 24492 au BufNewFile,BufRead */etc/updatedb.conf setf updatedb 23725 24493 … … 23738 24506 " Vera 23739 24507 au BufNewFile,BufRead *.vr,*.vri,*.vrh setf vera 23740 @@ -2233,6 +22 61,9 @@24508 @@ -2233,6 +2281,9 @@ 23741 24509 " Verilog-AMS HDL 23742 24510 au BufNewFile,BufRead *.va,*.vams setf verilogams … … 23748 24516 au BufNewFile,BufRead *.hdl,*.vhd,*.vhdl,*.vbe,*.vst setf vhdl 23749 24517 au BufNewFile,BufRead *.vhdl_[0-9]* call s:StarSetf('vhdl') 23750 @@ -2405,7 +24 36,7 @@24518 @@ -2405,7 +2456,7 @@ 23751 24519 au BufNewFile,BufRead *.xsl,*.xslt setf xslt 23752 24520 … … 23757 24525 " Yacc or racc 23758 24526 au BufNewFile,BufRead *.y call s:FTy() 24527 @@ -2630,7 +2681,7 @@ 24528 24529 " Plain text files, needs to be far down to not override others. This avoids 24530 " the "conf" type being used if there is a line starting with '#'. 24531 -au BufNewFile,BufRead *.txt,*.text setf text 24532 +au BufNewFile,BufRead *.txt,*.text,README setf text 24533 24534 24535 " Use the filetype detect plugins. They may overrule any of the previously 23759 24536 diff -Naur vim74.orig/runtime/ftplugin/changelog.vim vim74/runtime/ftplugin/changelog.vim 23760 24537 --- vim74.orig/runtime/ftplugin/changelog.vim 2012-08-23 20:47:22.000000000 +0000 23761 +++ vim74/runtime/ftplugin/changelog.vim 2014-0 6-01 00:42:54.380863951+000024538 +++ vim74/runtime/ftplugin/changelog.vim 2014-07-21 23:33:17.186859180 +0000 23762 24539 @@ -1,7 +1,7 @@ 23763 24540 " Vim filetype plugin file … … 23874 24651 diff -Naur vim74.orig/runtime/ftplugin/clojure.vim vim74/runtime/ftplugin/clojure.vim 23875 24652 --- vim74.orig/runtime/ftplugin/clojure.vim 2013-02-06 14:35:23.000000000 +0000 23876 +++ vim74/runtime/ftplugin/clojure.vim 2014-0 6-01 00:42:54.384197276+000024653 +++ vim74/runtime/ftplugin/clojure.vim 2014-07-21 23:33:17.193525829 +0000 23877 24654 @@ -1,44 +1,60 @@ 23878 24655 " Vim filetype plugin file … … 24006 24783 diff -Naur vim74.orig/runtime/ftplugin/cobol.vim vim74/runtime/ftplugin/cobol.vim 24007 24784 --- vim74.orig/runtime/ftplugin/cobol.vim 2010-05-15 11:04:03.000000000 +0000 24008 +++ vim74/runtime/ftplugin/cobol.vim 2014-0 6-01 00:42:54.400863900+000024785 +++ vim74/runtime/ftplugin/cobol.vim 2014-07-21 23:33:17.206859127 +0000 24009 24786 @@ -1,7 +1,7 @@ 24010 24787 " Vim filetype plugin file … … 24055 24832 diff -Naur vim74.orig/runtime/ftplugin/debchangelog.vim vim74/runtime/ftplugin/debchangelog.vim 24056 24833 --- vim74.orig/runtime/ftplugin/debchangelog.vim 2012-02-04 19:59:23.000000000 +0000 24057 +++ vim74/runtime/ftplugin/debchangelog.vim 2014-0 6-01 00:42:54.534196894+000024834 +++ vim74/runtime/ftplugin/debchangelog.vim 2014-07-21 23:33:17.316858840 +0000 24058 24835 @@ -3,7 +3,7 @@ 24059 24836 " Maintainer: Debian Vim Maintainers <pkg-vim-maintainers@lists.alioth.debian.org> … … 24076 24853 diff -Naur vim74.orig/runtime/ftplugin/fortran.vim vim74/runtime/ftplugin/fortran.vim 24077 24854 --- vim74.orig/runtime/ftplugin/fortran.vim 2012-04-18 07:32:40.000000000 +0000 24078 +++ vim74/runtime/ftplugin/fortran.vim 2014-0 6-01 00:42:54.750863009+000024855 +++ vim74/runtime/ftplugin/fortran.vim 2014-07-21 23:33:17.536858266 +0000 24079 24856 @@ -1,12 +1,12 @@ 24080 24857 " Vim settings file … … 24126 24903 24127 24904 let &cpoptions=s:cposet 24905 diff -Naur vim74.orig/runtime/ftplugin/html.vim vim74/runtime/ftplugin/html.vim 24906 --- vim74.orig/runtime/ftplugin/html.vim 2012-03-11 13:50:46.000000000 +0000 24907 +++ vim74/runtime/ftplugin/html.vim 2014-07-21 23:33:17.760191017 +0000 24908 @@ -20,49 +20,9 @@ 24909 setlocal formatoptions-=t formatoptions+=croql 24910 endif 24911 24912 - 24913 if exists('&omnifunc') 24914 - " Distinguish between HTML versions 24915 - " To use with other HTML versions add another 24916 - " elseif condition to match proper DOCTYPE 24917 - setlocal omnifunc=htmlcomplete#CompleteTags 24918 - 24919 - if &filetype == 'xhtml' 24920 - let b:html_omni_flavor = 'xhtml10s' 24921 - else 24922 - let b:html_omni_flavor = 'html401t' 24923 - endif 24924 - let i = 1 24925 - let line = "" 24926 - while i < 10 && i < line("$") 24927 - let line = getline(i) 24928 - if line =~ '<!DOCTYPE.*\<DTD ' 24929 - break 24930 - endif 24931 - let i += 1 24932 - endwhile 24933 - if line =~ '<!DOCTYPE.*\<DTD ' " doctype line found above 24934 - if line =~ ' HTML 3\.2' 24935 - let b:html_omni_flavor = 'html32' 24936 - elseif line =~ ' XHTML 1\.1' 24937 - let b:html_omni_flavor = 'xhtml11' 24938 - else " two-step detection with strict/frameset/transitional 24939 - if line =~ ' XHTML 1\.0' 24940 - let b:html_omni_flavor = 'xhtml10' 24941 - elseif line =~ ' HTML 4\.01' 24942 - let b:html_omni_flavor = 'html401' 24943 - elseif line =~ ' HTML 4.0\>' 24944 - let b:html_omni_flavor = 'html40' 24945 - endif 24946 - if line =~ '\<Transitional\>' 24947 - let b:html_omni_flavor .= 't' 24948 - elseif line =~ '\<Frameset\>' 24949 - let b:html_omni_flavor .= 'f' 24950 - else 24951 - let b:html_omni_flavor .= 's' 24952 - endif 24953 - endif 24954 - endif 24955 + setlocal omnifunc=htmlcomplete#CompleteTags 24956 + call htmlcomplete#DetectOmniFlavor() 24957 endif 24958 24959 " HTML: thanks to Johannes Zellner and Benji Fisher. 24128 24960 diff -Naur vim74.orig/runtime/ftplugin/j.vim vim74/runtime/ftplugin/j.vim 24129 24961 --- vim74.orig/runtime/ftplugin/j.vim 1970-01-01 00:00:00.000000000 +0000 24130 +++ vim74/runtime/ftplugin/j.vim 2014-0 6-01 00:42:55.014195672+000024962 +++ vim74/runtime/ftplugin/j.vim 2014-07-21 23:33:17.823524185 +0000 24131 24963 @@ -0,0 +1,75 @@ 24132 24964 +" Vim filetype plugin … … 24207 25039 diff -Naur vim74.orig/runtime/ftplugin/jproperties.vim vim74/runtime/ftplugin/jproperties.vim 24208 25040 --- vim74.orig/runtime/ftplugin/jproperties.vim 1970-01-01 00:00:00.000000000 +0000 24209 +++ vim74/runtime/ftplugin/jproperties.vim 2014-0 6-01 00:42:55.057528895+000025041 +++ vim74/runtime/ftplugin/jproperties.vim 2014-07-21 23:33:17.863524080 +0000 24210 25042 @@ -0,0 +1,15 @@ 24211 25043 +" Vim filetype plugin … … 24224 25056 + 24225 25057 +let b:undo_ftplugin = "setl cms< com< fo<" 25058 diff -Naur vim74.orig/runtime/ftplugin/json.vim vim74/runtime/ftplugin/json.vim 25059 --- vim74.orig/runtime/ftplugin/json.vim 1970-01-01 00:00:00.000000000 +0000 25060 +++ vim74/runtime/ftplugin/json.vim 2014-07-21 23:33:17.896857327 +0000 25061 @@ -0,0 +1,17 @@ 25062 +" Vim filetype plugin 25063 +" Language: JSON 25064 +" Maintainer: David Barnett <daviebdawg+vim@gmail.com> 25065 +" Last Change: 2014 Jul 16 25066 + 25067 +if exists('b:did_ftplugin') 25068 + finish 25069 +endif 25070 +let b:did_ftplugin = 1 25071 + 25072 +let b:undo_ftplugin = 'setlocal formatoptions< comments< commentstring<' 25073 + 25074 +setlocal formatoptions-=t 25075 + 25076 +" JSON has no comments. 25077 +setlocal comments= 25078 +setlocal commentstring= 24226 25079 diff -Naur vim74.orig/runtime/ftplugin/lisp.vim vim74/runtime/ftplugin/lisp.vim 24227 25080 --- vim74.orig/runtime/ftplugin/lisp.vim 2013-02-13 11:35:55.000000000 +0000 24228 +++ vim74/runtime/ftplugin/lisp.vim 2014-0 6-01 00:42:55.154195315+000025081 +++ vim74/runtime/ftplugin/lisp.vim 2014-07-21 23:33:18.006857040 +0000 24229 25082 @@ -4,7 +4,7 @@ 24230 25083 " URL: http://sites.google.com/site/khorser/opensource/vim … … 24248 25101 diff -Naur vim74.orig/runtime/ftplugin/python.vim vim74/runtime/ftplugin/python.vim 24249 25102 --- vim74.orig/runtime/ftplugin/python.vim 2012-04-30 11:49:26.000000000 +0000 24250 +++ vim74/runtime/ftplugin/python.vim 2014-0 6-01 00:42:55.670860666+000025103 +++ vim74/runtime/ftplugin/python.vim 2014-07-21 23:33:18.453522541 +0000 24251 25104 @@ -1,7 +1,8 @@ 24252 25105 " Vim filetype plugin file … … 24329 25182 let &cpo = s:keepcpo 24330 25183 unlet s:keepcpo 25184 diff -Naur vim74.orig/runtime/ftplugin/r.vim vim74/runtime/ftplugin/r.vim 25185 --- vim74.orig/runtime/ftplugin/r.vim 1970-01-01 00:00:00.000000000 +0000 25186 +++ vim74/runtime/ftplugin/r.vim 2014-07-21 23:33:18.483522462 +0000 25187 @@ -0,0 +1,31 @@ 25188 +" Vim filetype plugin file 25189 +" Language: R 25190 +" Maintainer: Jakson Alves de Aquino <jalvesaq@gmail.com> 25191 +" Last Change: Sun Feb 23, 2014 04:07PM 25192 + 25193 +" Only do this when not yet done for this buffer 25194 +if exists("b:did_ftplugin") 25195 + finish 25196 +endif 25197 + 25198 +" Don't load another plugin for this buffer 25199 +let b:did_ftplugin = 1 25200 + 25201 +let s:cpo_save = &cpo 25202 +set cpo&vim 25203 + 25204 +setlocal iskeyword=@,48-57,_,. 25205 +setlocal formatoptions-=t 25206 +setlocal commentstring=#\ %s 25207 +setlocal comments=:#',:###,:##,:# 25208 + 25209 +if has("gui_win32") && !exists("b:browsefilter") 25210 + let b:browsefilter = "R Source Files (*.R)\t*.R\n" . 25211 + \ "Files that include R (*.Rnw *.Rd *.Rmd *.Rrst)\t*.Rnw;*.Rd;*.Rmd;*.Rrst\n" . 25212 + \ "All Files (*.*)\t*.*\n" 25213 +endif 25214 + 25215 +let b:undo_ftplugin = "setl cms< com< fo< isk< | unlet! b:browsefilter" 25216 + 25217 +let &cpo = s:cpo_save 25218 +unlet s:cpo_save 24331 25219 diff -Naur vim74.orig/runtime/ftplugin/registry.vim vim74/runtime/ftplugin/registry.vim 24332 25220 --- vim74.orig/runtime/ftplugin/registry.vim 1970-01-01 00:00:00.000000000 +0000 24333 +++ vim74/runtime/ftplugin/registry.vim 2014-0 6-01 00:42:55.717527214+000025221 +++ vim74/runtime/ftplugin/registry.vim 2014-07-21 23:33:18.523522358 +0000 24334 25222 @@ -0,0 +1,36 @@ 24335 25223 +" Vim filetype plugin file … … 24369 25257 +let &cpo = s:cpo_save 24370 25258 +unlet s:cpo_save 25259 diff -Naur vim74.orig/runtime/ftplugin/rhelp.vim vim74/runtime/ftplugin/rhelp.vim 25260 --- vim74.orig/runtime/ftplugin/rhelp.vim 1970-01-01 00:00:00.000000000 +0000 25261 +++ vim74/runtime/ftplugin/rhelp.vim 2014-07-21 23:33:18.536855656 +0000 25262 @@ -0,0 +1,29 @@ 25263 +" Vim filetype plugin file 25264 +" Language: R help file 25265 +" Maintainer: Jakson Alves de Aquino <jalvesaq@gmail.com> 25266 +" Last Change: Wed Jul 09, 2014 06:23PM 25267 + 25268 +" Only do this when not yet done for this buffer 25269 +if exists("b:did_ftplugin") 25270 + finish 25271 +endif 25272 + 25273 +" Don't load another plugin for this buffer 25274 +let b:did_ftplugin = 1 25275 + 25276 +let s:cpo_save = &cpo 25277 +set cpo&vim 25278 + 25279 +setlocal iskeyword=@,48-57,_,. 25280 + 25281 +if has("gui_win32") && !exists("b:browsefilter") 25282 + let b:browsefilter = "R Source Files (*.R *.Rnw *.Rd *.Rmd *.Rrst)\t*.R;*.Rnw;*.Rd;*.Rmd;*.Rrst\n" . 25283 + \ "All Files (*.*)\t*.*\n" 25284 +endif 25285 + 25286 +let b:undo_ftplugin = "setl isk< | unlet! b:browsefilter" 25287 + 25288 +let &cpo = s:cpo_save 25289 +unlet s:cpo_save 25290 + 25291 +" vim: sw=2 25292 diff -Naur vim74.orig/runtime/ftplugin/rmd.vim vim74/runtime/ftplugin/rmd.vim 25293 --- vim74.orig/runtime/ftplugin/rmd.vim 1970-01-01 00:00:00.000000000 +0000 25294 +++ vim74/runtime/ftplugin/rmd.vim 2014-07-21 23:33:18.563522253 +0000 25295 @@ -0,0 +1,43 @@ 25296 +" Vim filetype plugin file 25297 +" Language: R help file 25298 +" Maintainer: Jakson Alves de Aquino <jalvesaq@gmail.com> 25299 +" Last Change: Wed Jul 09, 2014 06:23PM 25300 +" Original work by Alex Zvoleff (adjusted for rmd by Michel Kuhlmann) 25301 + 25302 +" Only do this when not yet done for this buffer 25303 +if exists("b:did_ftplugin") 25304 + finish 25305 +endif 25306 + 25307 +runtime! ftplugin/html.vim ftplugin/html_*.vim ftplugin/html/*.vim 25308 + 25309 +setlocal comments=fb:*,fb:-,fb:+,n:> commentstring=>\ %s 25310 +setlocal formatoptions+=tcqln 25311 +setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^\\s*[-*+]\\s\\+ 25312 +setlocal iskeyword=@,48-57,_,. 25313 + 25314 +let s:cpo_save = &cpo 25315 +set cpo&vim 25316 + 25317 +" Enables pandoc if it is installed 25318 +unlet! b:did_ftplugin 25319 +runtime ftplugin/pandoc.vim 25320 + 25321 +" Don't load another plugin for this buffer 25322 +let b:did_ftplugin = 1 25323 + 25324 +if has("gui_win32") && !exists("b:browsefilter") 25325 + let b:browsefilter = "R Source Files (*.R *.Rnw *.Rd *.Rmd *.Rrst)\t*.R;*.Rnw;*.Rd;*.Rmd;*.Rrst\n" . 25326 + \ "All Files (*.*)\t*.*\n" 25327 +endif 25328 + 25329 +if exists('b:undo_ftplugin') 25330 + let b:undo_ftplugin .= " | setl cms< com< fo< flp< isk< | unlet! b:browsefilter" 25331 +else 25332 + let b:undo_ftplugin = "setl cms< com< fo< flp< isk< | unlet! b:browsefilter" 25333 +endif 25334 + 25335 +let &cpo = s:cpo_save 25336 +unlet s:cpo_save 25337 + 25338 +" vim: sw=2 25339 diff -Naur vim74.orig/runtime/ftplugin/rnoweb.vim vim74/runtime/ftplugin/rnoweb.vim 25340 --- vim74.orig/runtime/ftplugin/rnoweb.vim 1970-01-01 00:00:00.000000000 +0000 25341 +++ vim74/runtime/ftplugin/rnoweb.vim 2014-07-21 23:33:18.580188877 +0000 25342 @@ -0,0 +1,40 @@ 25343 +" Vim filetype plugin file 25344 +" Language: Rnoweb 25345 +" Maintainer: Jakson Alves de Aquino <jalvesaq@gmail.com> 25346 +" Last Change: Wed Jul 09, 2014 06:23PM 25347 + 25348 +" Only do this when not yet done for this buffer 25349 +if exists("b:did_ftplugin") 25350 + finish 25351 +endif 25352 + 25353 +let s:cpo_save = &cpo 25354 +set cpo&vim 25355 + 25356 +runtime! ftplugin/tex.vim 25357 + 25358 +" Don't load another plugin for this buffer 25359 +let b:did_ftplugin = 1 25360 + 25361 +" Enables Vim-Latex-Suite, LaTeX-Box if installed 25362 +runtime ftplugin/tex_*.vim 25363 + 25364 +setlocal iskeyword=@,48-57,_,. 25365 +setlocal suffixesadd=.bib,.tex 25366 +setlocal comments=b:%,b:#,b:##,b:###,b:#' 25367 + 25368 +if has("gui_win32") && !exists("b:browsefilter") 25369 + let b:browsefilter = "R Source Files (*.R *.Rnw *.Rd *.Rmd *.Rrst)\t*.R;*.Rnw;*.Rd;*.Rmd;*.Rrst\n" . 25370 + \ "All Files (*.*)\t*.*\n" 25371 +endif 25372 + 25373 +if exists('b:undo_ftplugin') 25374 + let b:undo_ftplugin .= " | setl isk< sua< com< | unlet! b:browsefilter" 25375 +else 25376 + let b:undo_ftplugin = "setl isk< sua< com< | unlet! b:browsefilter" 25377 +endif 25378 + 25379 +let &cpo = s:cpo_save 25380 +unlet s:cpo_save 25381 + 25382 +" vim: sw=2 25383 diff -Naur vim74.orig/runtime/ftplugin/rrst.vim vim74/runtime/ftplugin/rrst.vim 25384 --- vim74.orig/runtime/ftplugin/rrst.vim 1970-01-01 00:00:00.000000000 +0000 25385 +++ vim74/runtime/ftplugin/rrst.vim 2014-07-21 23:33:18.586855526 +0000 25386 @@ -0,0 +1,37 @@ 25387 +" Vim filetype plugin file 25388 +" Language: reStructuredText documentation format with R code 25389 +" Maintainer: Jakson Alves de Aquino <jalvesaq@gmail.com> 25390 +" Last Change: Wed Jul 09, 2014 06:23PM 25391 +" Original work by Alex Zvoleff 25392 + 25393 +" Only do this when not yet done for this buffer 25394 +if exists("b:did_ftplugin") 25395 + finish 25396 +endif 25397 + 25398 +" Don't load another plugin for this buffer 25399 +let b:did_ftplugin = 1 25400 + 25401 +let s:cpo_save = &cpo 25402 +set cpo&vim 25403 + 25404 +setlocal comments=fb:*,fb:-,fb:+,n:> commentstring=>\ %s 25405 +setlocal formatoptions+=tcqln 25406 +setlocal formatlistpat=^\\s*\\d\\+\\.\\s\\+\\\|^\\s*[-*+]\\s\\+ 25407 +setlocal iskeyword=@,48-57,_,. 25408 + 25409 +if has("gui_win32") && !exists("b:browsefilter") 25410 + let b:browsefilter = "R Source Files (*.R *.Rnw *.Rd *.Rmd *.Rrst)\t*.R;*.Rnw;*.Rd;*.Rmd;*.Rrst\n" . 25411 + \ "All Files (*.*)\t*.*\n" 25412 +endif 25413 + 25414 +if exists('b:undo_ftplugin') 25415 + let b:undo_ftplugin .= " | setl cms< com< fo< flp< isk< | unlet! b:browsefilter" 25416 +else 25417 + let b:undo_ftplugin = "setl cms< com< fo< flp< isk< | unlet! b:browsefilter" 25418 +endif 25419 + 25420 +let &cpo = s:cpo_save 25421 +unlet s:cpo_save 25422 + 25423 +" vim: sw=2 24371 25424 diff -Naur vim74.orig/runtime/ftplugin/scheme.vim vim74/runtime/ftplugin/scheme.vim 24372 25425 --- vim74.orig/runtime/ftplugin/scheme.vim 2013-02-13 11:35:55.000000000 +0000 24373 +++ vim74/runtime/ftplugin/scheme.vim 2014-0 6-01 00:42:55.780860386+000025426 +++ vim74/runtime/ftplugin/scheme.vim 2014-07-21 23:33:18.620188772 +0000 24374 25427 @@ -4,7 +4,7 @@ 24375 25428 " URL: http://sites.google.com/site/khorser/opensource/vim … … 24394 25447 diff -Naur vim74.orig/runtime/ftplugin/spec.vim vim74/runtime/ftplugin/spec.vim 24395 25448 --- vim74.orig/runtime/ftplugin/spec.vim 2012-03-07 12:16:03.000000000 +0000 24396 +++ vim74/runtime/ftplugin/spec.vim 2014-0 6-01 00:42:55.910860055+000025449 +++ vim74/runtime/ftplugin/spec.vim 2014-07-21 23:33:18.763521732 +0000 24397 25450 @@ -1,7 +1,8 @@ 24398 25451 " Plugin to update the %changelog section of RPM spec files … … 24419 25472 diff -Naur vim74.orig/runtime/ftplugin/systemverilog.vim vim74/runtime/ftplugin/systemverilog.vim 24420 25473 --- vim74.orig/runtime/ftplugin/systemverilog.vim 1970-01-01 00:00:00.000000000 +0000 24421 +++ vim74/runtime/ftplugin/systemverilog.vim 2014-0 6-01 00:42:55.994193176+000025474 +++ vim74/runtime/ftplugin/systemverilog.vim 2014-07-21 23:33:18.843521523 +0000 24422 25475 @@ -0,0 +1,11 @@ 24423 25476 +" Vim filetype plugin file … … 24432 25485 +" Behaves just like Verilog 24433 25486 +runtime! ftplugin/verilog.vim 25487 diff -Naur vim74.orig/runtime/ftplugin/text.vim vim74/runtime/ftplugin/text.vim 25488 --- vim74.orig/runtime/ftplugin/text.vim 1970-01-01 00:00:00.000000000 +0000 25489 +++ vim74/runtime/ftplugin/text.vim 2014-07-21 23:33:18.910188015 +0000 25490 @@ -0,0 +1,17 @@ 25491 +" Vim filetype plugin 25492 +" Language: Text 25493 +" Maintainer: David Barnett <daviebdawg+vim@gmail.com> 25494 +" Last Change: 2014 Jul 09 25495 + 25496 +if exists('b:did_ftplugin') 25497 + finish 25498 +endif 25499 +let b:did_ftplugin = 1 25500 + 25501 +let b:undo_ftplugin = 'setlocal comments< commentstring<' 25502 + 25503 +" We intentionally don't set formatoptions-=t since text should wrap as text. 25504 + 25505 +" Pseudo comment leaders to indent bulleted lists. 25506 +setlocal comments=fb:-,fb:* 25507 +setlocal commentstring= 24434 25508 diff -Naur vim74.orig/runtime/indent/clojure.vim vim74/runtime/indent/clojure.vim 24435 25509 --- vim74.orig/runtime/indent/clojure.vim 2013-02-06 14:35:23.000000000 +0000 24436 +++ vim74/runtime/indent/clojure.vim 2014-0 6-01 00:42:56.610858273+000025510 +++ vim74/runtime/indent/clojure.vim 2014-07-21 23:33:19.486853177 +0000 24437 25511 @@ -1,23 +1,27 @@ 24438 25512 " Vim indent file … … 25125 26199 -" vim:sts=4 sw=4 et: 25126 26200 +" vim:sts=8:sw=8:ts=8:noet 26201 diff -Naur vim74.orig/runtime/indent/html.vim vim74/runtime/indent/html.vim 26202 --- vim74.orig/runtime/indent/html.vim 2013-06-13 17:50:24.000000000 +0000 26203 +++ vim74/runtime/indent/html.vim 2014-07-21 23:33:19.803519017 +0000 26204 @@ -1,505 +1,1003 @@ 26205 " Vim indent script for HTML 26206 -" General: "{{{ 26207 -" File: html.vim (Vimscript #2075) 26208 -" Author: Andy Wokula <anwoku@yahoo.de> 26209 -" Last Change: 2013 Jun 12 26210 -" Rev Days: 13 26211 -" Version: 0.9 26212 -" Vim Version: Vim7 26213 -" Description: 26214 -" Improved version of the distributed html indent script, faster on a 26215 -" range of lines. 26216 +" Header: "{{{ 26217 +" Maintainer: Bram Moolenaar 26218 +" Original Author: Andy Wokula <anwoku@yahoo.de> 26219 +" Last Change: 2014 Jul 04 26220 +" Version: 1.0 26221 +" Description: HTML indent script with cached state for faster indenting on a 26222 +" range of lines. 26223 +" Supports template systems through hooks. 26224 +" Supports Closure stylesheets. 26225 " 26226 " Credits: 26227 " indent/html.vim (2006 Jun 05) from J. Zellner 26228 " indent/css.vim (2006 Dec 20) from N. Weibull 26229 " 26230 " History: 26231 +" 2014 June (v1.0) overhaul (Bram) 26232 " 2012 Oct 21 (v0.9) added support for shiftwidth() 26233 " 2011 Sep 09 (v0.8) added HTML5 tags (thx to J. Zuckerman) 26234 " 2008 Apr 28 (v0.6) revised customization 26235 " 2008 Mar 09 (v0.5) fixed 'indk' issue (thx to C.J. Robinson) 26236 -" }}} 26237 +"}}} 26238 26239 -" Init Folklore, check user settings (2nd time ++) "{{{ 26240 -if exists("b:did_indent") 26241 - finish 26242 +" Init Folklore, check user settings (2nd time ++) 26243 +if exists("b:did_indent") "{{{ 26244 + finish 26245 endif 26246 let b:did_indent = 1 26247 26248 setlocal indentexpr=HtmlIndent() 26249 setlocal indentkeys=o,O,<Return>,<>>,{,},!^F 26250 26251 -let b:indent = {"lnum": -1} 26252 -let b:undo_indent = "set inde< indk<| unlet b:indent" 26253 +" "j1" is included to make cindent() work better with Javascript. 26254 +setlocal cino=j1 26255 +" "J1" should be included, but it doen't work properly before 7.4.355. 26256 +if has("patch-7.4.355") 26257 + setlocal cino+=J1 26258 +endif 26259 +" Before patch 7.4.355 indenting after "(function() {" does not work well, add 26260 +" )2 to limit paren search. 26261 +if !has("patch-7.4.355") 26262 + setlocal cino+=)2 26263 +endif 26264 + 26265 +" Needed for % to work when finding start/end of a tag. 26266 +setlocal matchpairs+=<:> 26267 26268 -" Load Once: 26269 -if exists("*HtmlIndent") 26270 - call HtmlIndent_CheckUserSettings() 26271 - finish 26272 +let b:undo_indent = "setlocal inde< indk< cino<" 26273 + 26274 +" b:hi_indent keeps state to speed up indenting consecutive lines. 26275 +let b:hi_indent = {"lnum": -1} 26276 + 26277 +"""""" Code below this is loaded only once. """"" 26278 +if exists("*HtmlIndent") && !exists('g:force_reload_html') 26279 + call HtmlIndent_CheckUserSettings() 26280 + finish 26281 endif 26282 26283 -" Patch 7.3.694 26284 +" shiftwidth() exists since patch 7.3.694 26285 if exists('*shiftwidth') 26286 - let s:ShiftWidth = function('shiftwidth') 26287 + let s:ShiftWidth = function('shiftwidth') 26288 else 26289 - func! s:ShiftWidth() 26290 - return &shiftwidth 26291 - endfunc 26292 + func! s:ShiftWidth() 26293 + return &shiftwidth 26294 + endfunc 26295 endif 26296 26297 +" Allow for line continuation below. 26298 let s:cpo_save = &cpo 26299 set cpo-=C 26300 "}}} 26301 26302 -func! HtmlIndent_CheckUserSettings() "{{{ 26303 - if exists("g:html_indent_inctags") 26304 - call s:AddITags(split(g:html_indent_inctags, ",")) 26305 - endif 26306 - if exists("g:html_indent_autotags") 26307 - call s:RemoveITags(split(g:html_indent_autotags, ",")) 26308 - endif 26309 +" Check and process settings from b:html_indent and g:html_indent... variables. 26310 +" Prefer using buffer-local settings over global settings, so that there can 26311 +" be defaults for all HTML files and exceptions for specific types of HTML 26312 +" files. 26313 +func! HtmlIndent_CheckUserSettings() 26314 + "{{{ 26315 + let inctags = '' 26316 + if exists("b:html_indent_inctags") 26317 + let inctags = b:html_indent_inctags 26318 + elseif exists("g:html_indent_inctags") 26319 + let inctags = g:html_indent_inctags 26320 + endif 26321 + let b:hi_tags = {} 26322 + if len(inctags) > 0 26323 + call s:AddITags(b:hi_tags, split(inctags, ",")) 26324 + endif 26325 + 26326 + let autotags = '' 26327 + if exists("b:html_indent_autotags") 26328 + let autotags = b:html_indent_autotags 26329 + elseif exists("g:html_indent_autotags") 26330 + let autotags = g:html_indent_autotags 26331 + endif 26332 + let b:hi_removed_tags = {} 26333 + if autotags 26334 + call s:RemoveITags(b:hi_removed_tags, split(autotags, ",")) 26335 + endif 26336 + 26337 + " Syntax names indicating being inside a string of an attribute value. 26338 + let string_names = [] 26339 + if exists("b:html_indent_string_names") 26340 + let string_names = b:html_indent_string_names 26341 + elseif exists("g:html_indent_string_names") 26342 + let string_names = g:html_indent_string_names 26343 + endif 26344 + let b:hi_insideStringNames = ['htmlString'] 26345 + if len(string_names) > 0 26346 + for s in string_names 26347 + call add(b:hi_insideStringNames, s) 26348 + endfor 26349 + endif 26350 26351 - let indone = {"zero": 0 26352 - \,"auto": "indent(prevnonblank(v:lnum-1))" 26353 - \,"inc": "b:indent.blocktagind + s:ShiftWidth()"} 26354 - if exists("g:html_indent_script1") 26355 - let s:js1indent = get(indone, g:html_indent_script1, indone.zero) 26356 - endif 26357 - if exists("g:html_indent_style1") 26358 - let s:css1indent = get(indone, g:html_indent_style1, indone.zero) 26359 + " Syntax names indicating being inside a tag. 26360 + let tag_names = [] 26361 + if exists("b:html_indent_tag_names") 26362 + let tag_names = b:html_indent_tag_names 26363 + elseif exists("g:html_indent_tag_names") 26364 + let tag_names = g:html_indent_tag_names 26365 + endif 26366 + let b:hi_insideTagNames = ['htmlTag', 'htmlScriptTag'] 26367 + if len(tag_names) > 0 26368 + for s in tag_names 26369 + call add(b:hi_insideTagNames, s) 26370 + endfor 26371 + endif 26372 + 26373 + let indone = {"zero": 0 26374 + \,"auto": "indent(prevnonblank(v:lnum-1))" 26375 + \,"inc": "b:hi_indent.blocktagind + s:ShiftWidth()"} 26376 + 26377 + let script1 = '' 26378 + if exists("b:html_indent_script1") 26379 + let script1 = b:html_indent_script1 26380 + elseif exists("g:html_indent_script1") 26381 + let script1 = g:html_indent_script1 26382 + endif 26383 + if len(script1) > 0 26384 + let b:hi_js1indent = get(indone, script1, indone.zero) 26385 + else 26386 + let b:hi_js1indent = 0 26387 + endif 26388 + 26389 + let style1 = '' 26390 + if exists("b:html_indent_style1") 26391 + let style1 = b:html_indent_style1 26392 + elseif exists("g:html_indent_style1") 26393 + let style1 = g:html_indent_style1 26394 + endif 26395 + if len(style1) > 0 26396 + let b:hi_css1indent = get(indone, style1, indone.zero) 26397 + else 26398 + let b:hi_css1indent = 0 26399 + endif 26400 + 26401 + if !exists('b:html_indent_line_limit') 26402 + if exists('g:html_indent_line_limit') 26403 + let b:html_indent_line_limit = g:html_indent_line_limit 26404 + else 26405 + let b:html_indent_line_limit = 200 26406 endif 26407 + endif 26408 endfunc "}}} 26409 26410 -" Init Script Vars "{{{ 26411 -let s:usestate = 1 26412 -let s:css1indent = 0 26413 -let s:js1indent = 0 26414 -" not to be changed: 26415 -let s:endtags = [0,0,0,0,0,0,0,0] " some places unused 26416 -let s:newstate = {} 26417 +" Init Script Vars 26418 +"{{{ 26419 +let b:hi_lasttick = 0 26420 +let b:hi_newstate = {} 26421 let s:countonly = 0 26422 "}}} 26423 -func! s:AddITags(taglist) "{{{ 26424 - for itag in a:taglist 26425 - let s:indent_tags[itag] = 1 26426 - let s:indent_tags['/'.itag] = -1 26427 - endfor 26428 -endfunc "}}} 26429 -func! s:AddBlockTag(tag, id, ...) "{{{ 26430 - if !(a:id >= 2 && a:id < 2+len(s:endtags)) 26431 - return 26432 - endif 26433 - let s:indent_tags[a:tag] = a:id 26434 - if a:0 == 0 26435 - let s:indent_tags['/'.a:tag] = -a:id 26436 - let s:endtags[a:id-2] = "</".a:tag.">" 26437 - else 26438 - let s:indent_tags[a:1] = -a:id 26439 - let s:endtags[a:id-2] = a:1 26440 - endif 26441 -endfunc "}}} 26442 -func! s:RemoveITags(taglist) "{{{ 26443 - " remove itags (protect blocktags from being removed) 26444 - for itag in a:taglist 26445 - if !has_key(s:indent_tags, itag) || s:indent_tags[itag] != 1 26446 - continue 26447 - endif 26448 - unlet s:indent_tags[itag] 26449 - if itag =~ '^\w\+$' 26450 - unlet s:indent_tags["/".itag] 26451 - endif 26452 - endfor 26453 -endfunc "}}} 26454 -" Add Indent Tags: {{{ 26455 -if !exists("s:indent_tags") 26456 - let s:indent_tags = {} 26457 -endif 26458 26459 -" old tags: 26460 -call s:AddITags(['a', 'abbr', 'acronym', 'address', 'b', 'bdo', 'big', 26461 - \ 'blockquote', 'button', 'caption', 'center', 'cite', 'code', 'colgroup', 26462 - \ 'del', 'dfn', 'dir', 'div', 'dl', 'em', 'fieldset', 'font', 'form', 26463 - \ 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'i', 'iframe', 'ins', 'kbd', 26464 - \ 'label', 'legend', 'map', 'menu', 'noframes', 'noscript', 'object', 'ol', 26465 +" Fill the s:indent_tags dict with known tags. 26466 +" The key is "tagname" or "/tagname". {{{ 26467 +" The value is: 26468 +" 1 opening tag 26469 +" 2 "pre" 26470 +" 3 "script" 26471 +" 4 "style" 26472 +" 5 comment start 26473 +" -1 closing tag 26474 +" -2 "/pre" 26475 +" -3 "/script" 26476 +" -4 "/style" 26477 +" -5 comment end 26478 +let s:indent_tags = {} 26479 +let s:endtags = [0,0,0,0,0,0] " long enough for the highest index 26480 +"}}} 26481 + 26482 +" Add a list of tag names for a pair of <tag> </tag> to "tags". 26483 +func! s:AddITags(tags, taglist) 26484 + "{{{ 26485 + for itag in a:taglist 26486 + let a:tags[itag] = 1 26487 + let a:tags['/' . itag] = -1 26488 + endfor 26489 +endfunc "}}} 26490 + 26491 +" Take a list of tag name pairs that are not to be used as tag pairs. 26492 +func! s:RemoveITags(tags, taglist) 26493 + "{{{ 26494 + for itag in a:taglist 26495 + let a:tags[itag] = 1 26496 + let a:tags['/' . itag] = 1 26497 + endfor 26498 +endfunc "}}} 26499 + 26500 +" Add a block tag, that is a tag with a different kind of indenting. 26501 +func! s:AddBlockTag(tag, id, ...) 26502 + "{{{ 26503 + if !(a:id >= 2 && a:id < len(s:endtags)) 26504 + echoerr 'AddBlockTag ' . a:id 26505 + return 26506 + endif 26507 + let s:indent_tags[a:tag] = a:id 26508 + if a:0 == 0 26509 + let s:indent_tags['/' . a:tag] = -a:id 26510 + let s:endtags[a:id] = "</" . a:tag . ">" 26511 + else 26512 + let s:indent_tags[a:1] = -a:id 26513 + let s:endtags[a:id] = a:1 26514 + endif 26515 +endfunc "}}} 26516 + 26517 +" Add known tag pairs. 26518 +" Self-closing tags and tags that are sometimes {{{ 26519 +" self-closing (e.g., <p>) are not here (when encountering </p> we can find 26520 +" the matching <p>, but not the other way around). 26521 +" Old HTML tags: 26522 +call s:AddITags(s:indent_tags, [ 26523 + \ 'a', 'abbr', 'acronym', 'address', 'b', 'bdo', 'big', 26524 + \ 'blockquote', 'body', 'button', 'caption', 'center', 'cite', 'code', 26525 + \ 'colgroup', 'del', 'dfn', 'dir', 'div', 'dl', 'em', 'fieldset', 'font', 26526 + \ 'form', 'frameset', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'html', 26527 + \ 'i', 'iframe', 'ins', 'kbd', 'label', 'legend', 'li', 26528 + \ 'map', 'menu', 'noframes', 'noscript', 'object', 'ol', 26529 \ 'optgroup', 'q', 's', 'samp', 'select', 'small', 'span', 'strong', 'sub', 26530 \ 'sup', 'table', 'textarea', 'title', 'tt', 'u', 'ul', 'var', 'th', 'td', 26531 - \ 'tr', 'tfoot', 'thead']) 26532 + \ 'tr', 'tbody', 'tfoot', 'thead']) 26533 26534 -" tags added 2011 Sep 09 (especially HTML5 tags): 26535 -call s:AddITags(['area', 'article', 'aside', 'audio', 'bdi', 'canvas', 26536 +" Tags added 2011 Sep 09 (especially HTML5 tags): 26537 +call s:AddITags(s:indent_tags, [ 26538 + \ 'area', 'article', 'aside', 'audio', 'bdi', 'canvas', 26539 \ 'command', 'datalist', 'details', 'embed', 'figure', 'footer', 26540 \ 'header', 'group', 'keygen', 'mark', 'math', 'meter', 'nav', 'output', 26541 \ 'progress', 'ruby', 'section', 'svg', 'texture', 'time', 'video', 26542 \ 'wbr', 'text']) 26543 - 26544 "}}} 26545 -" Add Block Tags: contain alien content "{{{ 26546 + 26547 +" Add Block Tags: these contain alien content 26548 +"{{{ 26549 call s:AddBlockTag('pre', 2) 26550 call s:AddBlockTag('script', 3) 26551 call s:AddBlockTag('style', 4) 26552 call s:AddBlockTag('<!--', 5, '-->') 26553 "}}} 26554 26555 -func! s:CountITags(...) "{{{ 26556 - 26557 - " relative indent steps for current line [unit &sw]: 26558 - let s:curind = 0 26559 - " relative indent steps for next line [unit &sw]: 26560 - let s:nextrel = 0 26561 - 26562 - if a:0==0 26563 - let s:block = s:newstate.block 26564 - let tmpline = substitute(s:curline, '<\zs\/\=\w\+\>\|<!--\|-->', '\=s:CheckTag(submatch(0))', 'g') 26565 - if s:block == 3 26566 - let s:newstate.scripttype = s:GetScriptType(matchstr(tmpline, '\C.*<SCRIPT\>\zs[^>]*')) 26567 - endif 26568 - let s:newstate.block = s:block 26569 - else 26570 - let s:block = 0 " assume starting outside of a block 26571 - let s:countonly = 1 " don't change state 26572 - let tmpline = substitute(s:altline, '<\zs\/\=\w\+\>\|<!--\|-->', '\=s:CheckTag(submatch(0))', 'g') 26573 - let s:countonly = 0 26574 - endif 26575 -endfunc "}}} 26576 -func! s:CheckTag(itag) "{{{ 26577 - " "tag" or "/tag" or "<!--" or "-->" 26578 - let ind = get(s:indent_tags, a:itag) 26579 - if ind == -1 26580 - " closing tag 26581 - if s:block != 0 26582 - " ignore itag within a block 26583 - return "foo" 26584 - endif 26585 - if s:nextrel == 0 26586 - let s:curind -= 1 26587 - else 26588 - let s:nextrel -= 1 26589 - endif 26590 - " if s:curind >= 1 26591 - " let s:curind -= 1 26592 - " else 26593 - " let s:nextrel -= 1 26594 - " endif 26595 - elseif ind == 1 26596 - " opening tag 26597 - if s:block != 0 26598 - return "foo" 26599 - endif 26600 - let s:nextrel += 1 26601 - elseif ind != 0 26602 - " block-tag (opening or closing) 26603 - return s:Blocktag(a:itag, ind) 26604 - endif 26605 - " else ind==0 (other tag found): keep indent 26606 - return "foo" " no matter 26607 -endfunc "}}} 26608 -func! s:Blocktag(blocktag, ind) "{{{ 26609 - if a:ind > 0 26610 - " a block starts here 26611 - if s:block != 0 26612 - " already in a block (nesting) - ignore 26613 - " especially ignore comments after other blocktags 26614 - return "foo" 26615 - endif 26616 - let s:block = a:ind " block type 26617 - if s:countonly 26618 - return "foo" 26619 - endif 26620 - let s:newstate.blocklnr = v:lnum 26621 - " save allover indent for the endtag 26622 - let s:newstate.blocktagind = b:indent.baseindent + (s:nextrel + s:curind) * s:ShiftWidth() 26623 - if a:ind == 3 26624 - return "SCRIPT" " all except this must be lowercase 26625 - " line is to be checked again for the type attribute 26626 - endif 26627 - else 26628 - let s:block = 0 26629 - " we get here if starting and closing block-tag on same line 26630 +" Return non-zero when "tagname" is an opening tag, not being a block tag, for 26631 +" which there should be a closing tag. Can be used by scripts that include 26632 +" HTML indenting. 26633 +func! HtmlIndent_IsOpenTag(tagname) 26634 + "{{{ 26635 + if get(s:indent_tags, a:tagname) == 1 26636 + return 1 26637 + endif 26638 + return get(b:hi_tags, a:tagname) == 1 26639 +endfunc "}}} 26640 + 26641 +" Get the value for "tagname", taking care of buffer-local tags. 26642 +func! s:get_tag(tagname) 26643 + "{{{ 26644 + let i = get(s:indent_tags, a:tagname) 26645 + if (i == 1 || i == -1) && get(b:hi_removed_tags, a:tagname) != 0 26646 + return 0 26647 + endif 26648 + if i == 0 26649 + let i = get(b:hi_tags, a:tagname) 26650 + endif 26651 + return i 26652 +endfunc "}}} 26653 + 26654 +" Count the number of start and end tags in "text". 26655 +func! s:CountITags(text) 26656 + "{{{ 26657 + " Store the result in s:curind and s:nextrel. 26658 + let s:curind = 0 " relative indent steps for current line [unit &sw]: 26659 + let s:nextrel = 0 " relative indent steps for next line [unit &sw]: 26660 + let s:block = 0 " assume starting outside of a block 26661 + let s:countonly = 1 " don't change state 26662 + call substitute(a:text, '<\zs/\=\w\+\>\|<!--\|-->', '\=s:CheckTag(submatch(0))', 'g') 26663 + let s:countonly = 0 26664 +endfunc "}}} 26665 + 26666 +" Count the number of start and end tags in text. 26667 +func! s:CountTagsAndState(text) 26668 + "{{{ 26669 + " Store the result in s:curind and s:nextrel. Update b:hi_newstate.block. 26670 + let s:curind = 0 " relative indent steps for current line [unit &sw]: 26671 + let s:nextrel = 0 " relative indent steps for next line [unit &sw]: 26672 + 26673 + let s:block = b:hi_newstate.block 26674 + let tmp = substitute(a:text, '<\zs/\=\w\+\>\|<!--\|-->', '\=s:CheckTag(submatch(0))', 'g') 26675 + if s:block == 3 26676 + let b:hi_newstate.scripttype = s:GetScriptType(matchstr(tmp, '\C.*<SCRIPT\>\zs[^>]*')) 26677 + endif 26678 + let b:hi_newstate.block = s:block 26679 +endfunc "}}} 26680 + 26681 +" Used by s:CountITags() and s:CountTagsAndState(). 26682 +func! s:CheckTag(itag) 26683 + "{{{ 26684 + " Returns an empty string or "SCRIPT". 26685 + " a:itag can be "tag" or "/tag" or "<!--" or "-->" 26686 + let ind = s:get_tag(a:itag) 26687 + if ind == -1 26688 + " closing tag 26689 + if s:block != 0 26690 + " ignore itag within a block 26691 + return "" 26692 endif 26693 - return "foo" 26694 -endfunc "}}} 26695 -func! s:GetScriptType(str) "{{{ 26696 - if a:str == "" || a:str =~ "java" 26697 - return "javascript" 26698 + if s:nextrel == 0 26699 + let s:curind -= 1 26700 else 26701 - return "" 26702 + let s:nextrel -= 1 26703 endif 26704 -endfunc "}}} 26705 + elseif ind == 1 26706 + " opening tag 26707 + if s:block != 0 26708 + return "" 26709 + endif 26710 + let s:nextrel += 1 26711 + elseif ind != 0 26712 + " block-tag (opening or closing) 26713 + return s:CheckBlockTag(a:itag, ind) 26714 + " else ind==0 (other tag found): keep indent 26715 + endif 26716 + return "" 26717 +endfunc "}}} 26718 + 26719 +" Used by s:CheckTag(). Returns an empty string or "SCRIPT". 26720 +func! s:CheckBlockTag(blocktag, ind) 26721 + "{{{ 26722 + if a:ind > 0 26723 + " a block starts here 26724 + if s:block != 0 26725 + " already in a block (nesting) - ignore 26726 + " especially ignore comments after other blocktags 26727 + return "" 26728 + endif 26729 + let s:block = a:ind " block type 26730 + if s:countonly 26731 + return "" 26732 + endif 26733 + let b:hi_newstate.blocklnr = v:lnum 26734 + " save allover indent for the endtag 26735 + let b:hi_newstate.blocktagind = b:hi_indent.baseindent + (s:nextrel + s:curind) * s:ShiftWidth() 26736 + if a:ind == 3 26737 + return "SCRIPT" " all except this must be lowercase 26738 + " line is to be checked again for the type attribute 26739 + endif 26740 + else 26741 + let s:block = 0 26742 + " we get here if starting and closing a block-tag on the same line 26743 + endif 26744 + return "" 26745 +endfunc "}}} 26746 + 26747 +" Return the <script> type: either "javascript" or "" 26748 +func! s:GetScriptType(str) 26749 + "{{{ 26750 + if a:str == "" || a:str =~ "java" 26751 + return "javascript" 26752 + else 26753 + return "" 26754 + endif 26755 +endfunc "}}} 26756 + 26757 +" Look back in the file, starting at a:lnum - 1, to compute a state for the 26758 +" start of line a:lnum. Return the new state. 26759 +func! s:FreshState(lnum) 26760 + "{{{ 26761 + " A state is to know ALL relevant details about the 26762 + " lines 1..a:lnum-1, initial calculating (here!) can be slow, but updating is 26763 + " fast (incremental). 26764 + " TODO: this should be split up in detecting the block type and computing the 26765 + " indent for the block type, so that when we do not know the indent we do 26766 + " not need to clear the whole state and re-detect the block type again. 26767 + " State: 26768 + " lnum last indented line == prevnonblank(a:lnum - 1) 26769 + " block = 0 a:lnum located within special tag: 0:none, 2:<pre>, 26770 + " 3:<script>, 4:<style>, 5:<!-- 26771 + " baseindent use this indent for line a:lnum as a start - kind of 26772 + " autoindent (if block==0) 26773 + " scripttype = '' type attribute of a script tag (if block==3) 26774 + " blocktagind indent for current opening (get) and closing (set) 26775 + " blocktag (if block!=0) 26776 + " blocklnr lnum of starting blocktag (if block!=0) 26777 + " inattr line {lnum} starts with attributes of a tag 26778 + let state = {} 26779 + let state.lnum = prevnonblank(a:lnum - 1) 26780 + let state.scripttype = "" 26781 + let state.blocktagind = -1 26782 + let state.block = 0 26783 + let state.baseindent = 0 26784 + let state.blocklnr = 0 26785 + let state.inattr = 0 26786 + 26787 + if state.lnum == 0 26788 + return state 26789 + endif 26790 26791 -func! s:FreshState(lnum) "{{{ 26792 - " Look back in the file (lines 1 to a:lnum-1) to calc a state for line 26793 - " a:lnum. A state is to know ALL relevant details about the lines 26794 - " 1..a:lnum-1, initial calculating (here!) can be slow, but updating is 26795 - " fast (incremental). 26796 - " State: 26797 - " lnum last indented line == prevnonblank(a:lnum - 1) 26798 - " block = 0 a:lnum located within special tag: 0:none, 2:<pre>, 26799 - " 3:<script>, 4:<style>, 5:<!-- 26800 - " baseindent use this indent for line a:lnum as a start - kind of 26801 - " autoindent (if block==0) 26802 - " scripttype = '' type attribute of a script tag (if block==3) 26803 - " blocktagind indent for current opening (get) and closing (set) 26804 - " blocktag (if block!=0) 26805 - " blocklnr lnum of starting blocktag (if block!=0) 26806 - " inattr line {lnum} starts with attributes of a tag 26807 - let state = {} 26808 - let state.lnum = prevnonblank(a:lnum - 1) 26809 - let state.scripttype = "" 26810 - let state.blocktagind = -1 26811 - let state.block = 0 26812 - let state.baseindent = 0 26813 - let state.blocklnr = 0 26814 - let state.inattr = 0 26815 - 26816 - if state.lnum == 0 26817 - return state 26818 - endif 26819 - 26820 - " Heuristic: 26821 - " remember startline state.lnum 26822 - " look back for <pre, </pre, <script, </script, <style, </style tags 26823 - " remember stopline 26824 - " if opening tag found, 26825 - " assume a:lnum within block 26826 - " else 26827 - " look back in result range (stopline, startline) for comment 26828 - " \ delimiters (<!--, -->) 26829 - " if comment opener found, 26830 - " assume a:lnum within comment 26831 - " else 26832 - " assume usual html for a:lnum 26833 - " if a:lnum-1 has a closing comment 26834 - " look back to get indent of comment opener 26835 - " FI 26836 - 26837 - " look back for blocktag 26838 - call cursor(a:lnum, 1) 26839 - let [stopline, stopcol] = searchpos('\c<\zs\/\=\%(pre\>\|script\>\|style\>\)', "bW") 26840 + " Heuristic: 26841 + " remember startline state.lnum 26842 + " look back for <pre, </pre, <script, </script, <style, </style tags 26843 + " remember stopline 26844 + " if opening tag found, 26845 + " assume a:lnum within block 26846 + " else 26847 + " look back in result range (stopline, startline) for comment 26848 + " \ delimiters (<!--, -->) 26849 + " if comment opener found, 26850 + " assume a:lnum within comment 26851 + " else 26852 + " assume usual html for a:lnum 26853 + " if a:lnum-1 has a closing comment 26854 + " look back to get indent of comment opener 26855 + " FI 26856 + 26857 + " look back for a blocktag 26858 + call cursor(a:lnum, 1) 26859 + let [stopline, stopcol] = searchpos('\c<\zs\/\=\%(pre\>\|script\>\|style\>\)', "bW") 26860 + if stopline > 0 26861 " fugly ... why isn't there searchstr() 26862 let tagline = tolower(getline(stopline)) 26863 - let blocktag = matchstr(tagline, '\/\=\%(pre\>\|script\>\|style\>\)', stopcol-1) 26864 - if stopline > 0 && blocktag[0] != "/" 26865 - " opening tag found, assume a:lnum within block 26866 - let state.block = s:indent_tags[blocktag] 26867 - if state.block == 3 26868 - let state.scripttype = s:GetScriptType(matchstr(tagline, '\>[^>]*', stopcol)) 26869 - endif 26870 - let state.blocklnr = stopline 26871 - " check preceding tags in the line: 26872 - let s:altline = tagline[: stopcol-2] 26873 - call s:CountITags(1) 26874 - let state.blocktagind = indent(stopline) + (s:curind + s:nextrel) * s:ShiftWidth() 26875 - return state 26876 + let blocktag = matchstr(tagline, '\/\=\%(pre\>\|script\>\|style\>\)', stopcol - 1) 26877 + if blocktag[0] != "/" 26878 + " opening tag found, assume a:lnum within block 26879 + let state.block = s:indent_tags[blocktag] 26880 + if state.block == 3 26881 + let state.scripttype = s:GetScriptType(matchstr(tagline, '\>[^>]*', stopcol)) 26882 + endif 26883 + let state.blocklnr = stopline 26884 + " check preceding tags in the line: 26885 + call s:CountITags(tagline[: stopcol-2]) 26886 + let state.blocktagind = indent(stopline) + (s:curind + s:nextrel) * s:ShiftWidth() 26887 + return state 26888 elseif stopline == state.lnum 26889 - " handle special case: previous line (= state.lnum) contains a 26890 - " closing blocktag which is preceded by line-noise; 26891 - " blocktag == "/..." 26892 - let swendtag = match(tagline, '^\s*</') >= 0 26893 - if !swendtag 26894 - let [bline, bcol] = searchpos('<'.blocktag[1:].'\>', "bW") 26895 - let s:altline = tolower(getline(bline)[: bcol-2]) 26896 - call s:CountITags(1) 26897 - let state.baseindent = indent(bline) + (s:nextrel+s:curline) * s:ShiftWidth() 26898 - return state 26899 - endif 26900 - endif 26901 - 26902 - " else look back for comment 26903 - call cursor(a:lnum, 1) 26904 - let [comline, comcol, found] = searchpos('\(<!--\)\|-->', 'bpW', stopline) 26905 - if found == 2 26906 - " comment opener found, assume a:lnum within comment 26907 - let state.block = 5 26908 - let state.blocklnr = comline 26909 - " check preceding tags in the line: 26910 - let s:altline = tolower(getline(comline)[: comcol-2]) 26911 - call s:CountITags(1) 26912 - let state.blocktagind = indent(comline) + (s:curind + s:nextrel) * s:ShiftWidth() 26913 - return state 26914 - endif 26915 - 26916 - " else within usual html 26917 - let s:altline = tolower(getline(state.lnum)) 26918 - " check a:lnum-1 for closing comment (we need indent from the opening line) 26919 - let comcol = stridx(s:altline, '-->') 26920 - if comcol >= 0 26921 - call cursor(state.lnum, comcol+1) 26922 - let [comline, comcol] = searchpos('<!--', 'bW') 26923 - if comline == state.lnum 26924 - let s:altline = s:altline[: comcol-2] 26925 - else 26926 - let s:altline = tolower(getline(comline)[: comcol-2]) 26927 - endif 26928 - call s:CountITags(1) 26929 - let state.baseindent = indent(comline) + (s:nextrel+s:curline) * s:ShiftWidth() 26930 - return state 26931 - " TODO check tags that follow "-->" 26932 - endif 26933 - 26934 - " else no comments 26935 - call s:CountITags(1) 26936 - let state.baseindent = indent(state.lnum) + s:nextrel * s:ShiftWidth() 26937 - " line starts with end tag 26938 - let swendtag = match(s:altline, '^\s*</') >= 0 26939 - if !swendtag 26940 - let state.baseindent += s:curind * s:ShiftWidth() 26941 + " handle special case: previous line (= state.lnum) contains a 26942 + " closing blocktag which is preceded by line-noise; 26943 + " blocktag == "/..." 26944 + let swendtag = match(tagline, '^\s*</') >= 0 26945 + if !swendtag 26946 + let [bline, bcol] = searchpos('<'.blocktag[1:].'\>', "bW") 26947 + call s:CountITags(tolower(getline(bline)[: bcol-2])) 26948 + let state.baseindent = indent(bline) + (s:curind + s:nextrel) * s:ShiftWidth() 26949 + return state 26950 + endif 26951 + endif 26952 + endif 26953 + 26954 + " else look back for comment 26955 + call cursor(a:lnum, 1) 26956 + let [comlnum, comcol, found] = searchpos('\(<!--\)\|-->', 'bpW', stopline) 26957 + if found == 2 26958 + " comment opener found, assume a:lnum within comment 26959 + let state.block = 5 26960 + let state.blocklnr = comlnum 26961 + " check preceding tags in the line: 26962 + call s:CountITags(tolower(getline(comlnum)[: comcol-2])) 26963 + let state.blocktagind = indent(comlnum) + (s:curind + s:nextrel) * s:ShiftWidth() 26964 + return state 26965 + endif 26966 + 26967 + " else within usual HTML 26968 + let text = tolower(getline(state.lnum)) 26969 + 26970 + " Check a:lnum-1 for closing comment (we need indent from the opening line). 26971 + " Not when other tags follow (might be --> inside a string). 26972 + let comcol = stridx(text, '-->') 26973 + if comcol >= 0 && match(text, '[<>]', comcol) <= 0 26974 + call cursor(state.lnum, comcol + 1) 26975 + let [comlnum, comcol] = searchpos('<!--', 'bW') 26976 + if comlnum == state.lnum 26977 + let text = text[: comcol-2] 26978 + else 26979 + let text = tolower(getline(comlnum)[: comcol-2]) 26980 endif 26981 + call s:CountITags(text) 26982 + let state.baseindent = indent(comlnum) + (s:curind + s:nextrel) * s:ShiftWidth() 26983 + " TODO check tags that follow "-->" 26984 return state 26985 -endfunc "}}} 26986 + endif 26987 + 26988 + " Check if the previous line starts with end tag. 26989 + let swendtag = match(text, '^\s*</') >= 0 26990 26991 -func! s:Alien2() "{{{ 26992 - " <pre> block 26993 + " If previous line ended in a closing tag, line up with the opening tag. 26994 + if !swendtag && text =~ '</\w\+\s*>\s*$' 26995 + call cursor(state.lnum, 99999) 26996 + normal F< 26997 + let start_lnum = HtmlIndent_FindStartTag() 26998 + if start_lnum > 0 26999 + let state.baseindent = indent(start_lnum) 27000 + if col('.') > 2 27001 + " check for tags before the matching opening tag. 27002 + let text = getline(start_lnum) 27003 + let swendtag = match(text, '^\s*</') >= 0 27004 + call s:CountITags(text[: col('.') - 2]) 27005 + let state.baseindent += s:nextrel * s:ShiftWidth() 27006 + if !swendtag 27007 + let state.baseindent += s:curind * s:ShiftWidth() 27008 + endif 27009 + endif 27010 + return state 27011 + endif 27012 + endif 27013 + 27014 + " Else: no comments. Skip backwards to find the tag we're inside. 27015 + let [state.lnum, found] = HtmlIndent_FindTagStart(state.lnum) 27016 + " Check if that line starts with end tag. 27017 + let text = getline(state.lnum) 27018 + let swendtag = match(text, '^\s*</') >= 0 27019 + call s:CountITags(tolower(text)) 27020 + let state.baseindent = indent(state.lnum) + s:nextrel * s:ShiftWidth() 27021 + if !swendtag 27022 + let state.baseindent += s:curind * s:ShiftWidth() 27023 + endif 27024 + return state 27025 +endfunc "}}} 27026 + 27027 +" Indent inside a <pre> block: Keep indent as-is. 27028 +func! s:Alien2() 27029 + "{{{ 27030 + return -1 27031 +endfunc "}}} 27032 + 27033 +" Return the indent inside a <script> block for javascript. 27034 +func! s:Alien3() 27035 + "{{{ 27036 + let lnum = prevnonblank(v:lnum - 1) 27037 + while lnum > 1 && getline(lnum) =~ '^\s*/[/*]' 27038 + " Skip over comments to avoid that cindent() aligns with the <script> tag 27039 + let lnum = prevnonblank(lnum - 1) 27040 + endwhile 27041 + if lnum == b:hi_indent.blocklnr 27042 + " indent for the first line after <script> 27043 + return eval(b:hi_js1indent) 27044 + endif 27045 + if b:hi_indent.scripttype == "javascript" 27046 + return cindent(v:lnum) 27047 + else 27048 return -1 27049 + endif 27050 endfunc "}}} 27051 -func! s:Alien3() "{{{ 27052 - " <script> javascript 27053 - if prevnonblank(v:lnum-1) == b:indent.blocklnr 27054 - " indent for the first line after <script> 27055 - return eval(s:js1indent) 27056 - endif 27057 - if b:indent.scripttype == "javascript" 27058 - return cindent(v:lnum) 27059 + 27060 +" Return the indent inside a <style> block. 27061 +func! s:Alien4() 27062 + "{{{ 27063 + if prevnonblank(v:lnum-1) == b:hi_indent.blocklnr 27064 + " indent for first content line 27065 + return eval(b:hi_css1indent) 27066 + endif 27067 + return s:CSSIndent() 27068 +endfunc "}}} 27069 + 27070 +" Indending inside a <style> block. Returns the indent. 27071 +func! s:CSSIndent() 27072 + "{{{ 27073 + " This handles standard CSS and also Closure stylesheets where special lines 27074 + " start with @. 27075 + " When the line starts with '*' or the previous line starts with "/*" 27076 + " and does not end in "*/", use C indenting to format the comment. 27077 + " Adopted $VIMRUNTIME/indent/css.vim 27078 + let curtext = getline(v:lnum) 27079 + if curtext =~ '^\s*[*]' 27080 + \ || (v:lnum > 1 && getline(v:lnum - 1) =~ '\s*/\*' 27081 + \ && getline(v:lnum - 1) !~ '\*/\s*$') 27082 + return cindent(v:lnum) 27083 + endif 27084 + 27085 + let min_lnum = b:hi_indent.blocklnr 27086 + let prev_lnum = s:CssPrevNonComment(v:lnum - 1, min_lnum) 27087 + let [prev_lnum, found] = HtmlIndent_FindTagStart(prev_lnum) 27088 + if prev_lnum <= min_lnum 27089 + " Just below the <style> tag, indent for first content line after comments. 27090 + return eval(b:hi_css1indent) 27091 + endif 27092 + 27093 + " If the current line starts with "}" align with it's match. 27094 + if curtext =~ '^\s*}' 27095 + call cursor(v:lnum, 1) 27096 + try 27097 + normal! % 27098 + " Found the matching "{", align with it after skipping unfinished lines. 27099 + let align_lnum = s:CssFirstUnfinished(line('.'), min_lnum) 27100 + return indent(align_lnum) 27101 + catch 27102 + " can't find it, try something else, but it's most likely going to be 27103 + " wrong 27104 + endtry 27105 + endif 27106 + 27107 + " add indent after { 27108 + let brace_counts = HtmlIndent_CountBraces(prev_lnum) 27109 + let extra = brace_counts.c_open * s:ShiftWidth() 27110 + 27111 + let prev_text = getline(prev_lnum) 27112 + let below_end_brace = prev_text =~ '}\s*$' 27113 + 27114 + " Search back to align with the first line that's unfinished. 27115 + let align_lnum = s:CssFirstUnfinished(prev_lnum, min_lnum) 27116 + 27117 + " Handle continuation lines if aligning with previous line and not after a 27118 + " "}". 27119 + if extra == 0 && align_lnum == prev_lnum && !below_end_brace 27120 + let prev_hasfield = prev_text =~ '^\s*[a-zA-Z0-9-]\+:' 27121 + let prev_special = prev_text =~ '^\s*\(/\*\|@\)' 27122 + if curtext =~ '^\s*\(/\*\|@\)' 27123 + " if the current line is not a comment or starts with @ (used by template 27124 + " systems) reduce indent if previous line is a continuation line 27125 + if !prev_hasfield && !prev_special 27126 + let extra = -s:ShiftWidth() 27127 + endif 27128 else 27129 - return -1 27130 + let cur_hasfield = curtext =~ '^\s*[a-zA-Z0-9-]\+:' 27131 + let prev_unfinished = s:CssUnfinished(prev_text) 27132 + if !cur_hasfield && (prev_hasfield || prev_unfinished) 27133 + " Continuation line has extra indent if the previous line was not a 27134 + " continuation line. 27135 + let extra = s:ShiftWidth() 27136 + " Align with @if 27137 + if prev_text =~ '^\s*@if ' 27138 + let extra = 4 27139 + endif 27140 + elseif cur_hasfield && !prev_hasfield && !prev_special 27141 + " less indent below a continuation line 27142 + let extra = -s:ShiftWidth() 27143 + endif 27144 + endif 27145 + endif 27146 + 27147 + if below_end_brace 27148 + " find matching {, if that line starts with @ it's not the start of a rule 27149 + " but something else from a template system 27150 + call cursor(prev_lnum, 1) 27151 + call search('}\s*$') 27152 + try 27153 + normal! % 27154 + " Found the matching "{", align with it. 27155 + let align_lnum = s:CssFirstUnfinished(line('.'), min_lnum) 27156 + let special = getline(align_lnum) =~ '^\s*@' 27157 + catch 27158 + let special = 0 27159 + endtry 27160 + if special 27161 + " do not reduce indent below @{ ... } 27162 + if extra < 0 27163 + let extra += s:ShiftWidth() 27164 + endif 27165 + else 27166 + let extra -= (brace_counts.c_close - (prev_text =~ '^\s*}')) * s:ShiftWidth() 27167 endif 27168 -endfunc "}}} 27169 -func! s:Alien4() "{{{ 27170 - " <style> 27171 - if prevnonblank(v:lnum-1) == b:indent.blocklnr 27172 - " indent for first content line 27173 - return eval(s:css1indent) 27174 - endif 27175 - return s:CSSIndent() 27176 -endfunc 27177 - 27178 -func! s:CSSIndent() "{{{ 27179 - " adopted $VIMRUNTIME/indent/css.vim 27180 - if getline(v:lnum) =~ '^\s*[*}]' 27181 - return cindent(v:lnum) 27182 - endif 27183 - let minline = b:indent.blocklnr 27184 - let pnum = s:css_prevnoncomment(v:lnum - 1, minline) 27185 - if pnum <= minline 27186 - " < is to catch errors 27187 - " indent for first content line after comments 27188 - return eval(s:css1indent) 27189 - endif 27190 - let ind = indent(pnum) + s:css_countbraces(pnum, 1) * s:ShiftWidth() 27191 - let pline = getline(pnum) 27192 - if pline =~ '}\s*$' 27193 - let ind -= (s:css_countbraces(pnum, 0) - (pline =~ '^\s*}')) * s:ShiftWidth() 27194 - endif 27195 - return ind 27196 -endfunc "}}} 27197 -func! s:css_prevnoncomment(lnum, stopline) "{{{ 27198 - " caller starts from a line a:lnum-1 that is not a comment 27199 - let lnum = prevnonblank(a:lnum) 27200 + endif 27201 + 27202 + " if no extra indent yet... 27203 + if extra == 0 27204 + if brace_counts.p_open > brace_counts.p_close 27205 + " previous line has more ( than ): add a shiftwidth 27206 + let extra = s:ShiftWidth() 27207 + elseif brace_counts.p_open < brace_counts.p_close 27208 + " previous line has more ) than (: subtract a shiftwidth 27209 + let extra = -s:ShiftWidth() 27210 + endif 27211 + endif 27212 + 27213 + return indent(align_lnum) + extra 27214 +endfunc "}}} 27215 + 27216 +" Inside <style>: Whether a line is unfinished. 27217 +func! s:CssUnfinished(text) 27218 + "{{{ 27219 + return a:text =~ '\s\(||\|&&\|:\)\s*$' 27220 +endfunc "}}} 27221 + 27222 +" Search back for the first unfinished line above "lnum". 27223 +func! s:CssFirstUnfinished(lnum, min_lnum) 27224 + "{{{ 27225 + let align_lnum = a:lnum 27226 + while align_lnum > a:min_lnum && s:CssUnfinished(getline(align_lnum - 1)) 27227 + let align_lnum -= 1 27228 + endwhile 27229 + return align_lnum 27230 +endfunc "}}} 27231 + 27232 +" Find the non-empty line at or before "lnum" that is not a comment. 27233 +func! s:CssPrevNonComment(lnum, stopline) 27234 + "{{{ 27235 + " caller starts from a line a:lnum + 1 that is not a comment 27236 + let lnum = prevnonblank(a:lnum) 27237 + while 1 27238 let ccol = match(getline(lnum), '\*/') 27239 if ccol < 0 27240 - return lnum 27241 + " No comment end thus its something else. 27242 + return lnum 27243 endif 27244 - call cursor(lnum, ccol+1) 27245 + call cursor(lnum, ccol + 1) 27246 + " Search back for the /* that starts the comment 27247 let lnum = search('/\*', 'bW', a:stopline) 27248 - if indent(".") == virtcol(".")-1 27249 - return prevnonblank(lnum-1) 27250 + if indent(".") == virtcol(".") - 1 27251 + " The found /* is at the start of the line. Now go back to the line 27252 + " above it and again check if it is a comment. 27253 + let lnum = prevnonblank(lnum - 1) 27254 else 27255 - return lnum 27256 + " /* is after something else, thus it's not a comment line. 27257 + return lnum 27258 endif 27259 + endwhile 27260 endfunc "}}} 27261 -func! s:css_countbraces(lnum, count_open) "{{{ 27262 - let brs = substitute(getline(a:lnum),'[''"].\{-}[''"]\|/\*.\{-}\*/\|/\*.*$\|[^{}]','','g') 27263 - let n_open = 0 27264 - let n_close = 0 27265 - for brace in split(brs, '\zs') 27266 - if brace == "{" 27267 - let n_open += 1 27268 - elseif brace == "}" 27269 - if n_open > 0 27270 - let n_open -= 1 27271 - else 27272 - let n_close += 1 27273 - endif 27274 - endif 27275 - endfor 27276 - return a:count_open ? n_open : n_close 27277 -endfunc "}}} 27278 - 27279 -"}}} 27280 -func! s:Alien5() "{{{ 27281 - " <!-- --> 27282 - return -1 27283 -endfunc "}}} 27284 - 27285 -func! HtmlIndent() "{{{ 27286 - let s:curline = tolower(getline(v:lnum)) 27287 - let indentunit = s:ShiftWidth() 27288 27289 - let s:newstate = {} 27290 - let s:newstate.lnum = v:lnum 27291 +" Check the number of {} and () in line "lnum". Return a dict with the counts. 27292 +func! HtmlIndent_CountBraces(lnum) 27293 + "{{{ 27294 + let brs = substitute(getline(a:lnum), '[''"].\{-}[''"]\|/\*.\{-}\*/\|/\*.*$\|[^{}()]', '', 'g') 27295 + let c_open = 0 27296 + let c_close = 0 27297 + let p_open = 0 27298 + let p_close = 0 27299 + for brace in split(brs, '\zs') 27300 + if brace == "{" 27301 + let c_open += 1 27302 + elseif brace == "}" 27303 + if c_open > 0 27304 + let c_open -= 1 27305 + else 27306 + let c_close += 1 27307 + endif 27308 + elseif brace == '(' 27309 + let p_open += 1 27310 + elseif brace == ')' 27311 + if p_open > 0 27312 + let p_open -= 1 27313 + else 27314 + let p_close += 1 27315 + endif 27316 + endif 27317 + endfor 27318 + return {'c_open': c_open, 27319 + \ 'c_close': c_close, 27320 + \ 'p_open': p_open, 27321 + \ 'p_close': p_close} 27322 +endfunc "}}} 27323 + 27324 +" Return the indent for a comment: <!-- --> 27325 +func! s:Alien5() 27326 + "{{{ 27327 + let curtext = getline(v:lnum) 27328 + if curtext =~ '^\s*\zs-->' 27329 + " current line starts with end of comment, line up with comment start. 27330 + call cursor(v:lnum, 0) 27331 + let lnum = search('<!--', 'b') 27332 + if lnum > 0 27333 + " TODO: what if <!-- is not at the start of the line? 27334 + return indent(lnum) 27335 + endif 27336 27337 - " does the line start with a closing tag? 27338 - let swendtag = match(s:curline, '^\s*</') >= 0 27339 + " Strange, can't find it. 27340 + return -1 27341 + endif 27342 27343 - if prevnonblank(v:lnum-1) == b:indent.lnum && s:usestate 27344 - " use state (continue from previous line) 27345 + let prevlnum = prevnonblank(v:lnum - 1) 27346 + let prevtext = getline(prevlnum) 27347 + let idx = match(prevtext, '^\s*\zs<!--') 27348 + if idx >= 0 27349 + " just below comment start, add a shiftwidth 27350 + return idx + s:ShiftWidth() 27351 + endif 27352 + 27353 + " Some files add 4 spaces just below a TODO line. It's difficult to detect 27354 + " the end of the TODO, so let's not do that. 27355 + 27356 + " Align with the previous non-blank line. 27357 + return indent(prevlnum) 27358 +endfunc "}}} 27359 + 27360 +" When the "lnum" line ends in ">" find the line containing the matching "<". 27361 +func! HtmlIndent_FindTagStart(lnum) 27362 + "{{{ 27363 + " Avoids using the indent of a continuation line. 27364 + " Moves the cursor. 27365 + " Return two values: 27366 + " - the matching line number or "lnum". 27367 + " - a flag indicating whether we found the end of a tag. 27368 + " This method is global so that HTML-like indenters can use it. 27369 + " To avoid matching " > " or " < " inside a string require that the opening 27370 + " "<" is followed by a word character and the closing ">" comes after a 27371 + " non-white character. 27372 + let idx = match(getline(a:lnum), '\S>\s*$') 27373 + if idx > 0 27374 + call cursor(a:lnum, idx) 27375 + let lnum = searchpair('<\w', '' , '\S>', 'bW', '', max([a:lnum - b:html_indent_line_limit, 0])) 27376 + if lnum > 0 27377 + return [lnum, 1] 27378 + endif 27379 + endif 27380 + return [a:lnum, 0] 27381 +endfunc "}}} 27382 + 27383 +" Find the unclosed start tag from the current cursor position. 27384 +func! HtmlIndent_FindStartTag() 27385 + "{{{ 27386 + " The cursor must be on or before a closing tag. 27387 + " If found, positions the cursor at the match and returns the line number. 27388 + " Otherwise returns 0. 27389 + let tagname = matchstr(getline('.')[col('.') - 1:], '</\zs\w\+\ze') 27390 + let start_lnum = searchpair('<' . tagname . '\>', '', '</' . tagname . '\>', 'bW') 27391 + if start_lnum > 0 27392 + return start_lnum 27393 + endif 27394 + return 0 27395 +endfunc "}}} 27396 + 27397 +" Moves the cursor from a "<" to the matching ">". 27398 +func! HtmlIndent_FindTagEnd() 27399 + "{{{ 27400 + " Call this with the cursor on the "<" of a start tag. 27401 + " This will move the cursor to the ">" of the matching end tag or, when it's 27402 + " a self-closing tag, to the matching ">". 27403 + " Limited to look up to b:html_indent_line_limit lines away. 27404 + let text = getline('.') 27405 + let tagname = matchstr(text, '\w\+\|!--', col('.')) 27406 + if tagname == '!--' 27407 + call search('--\zs>') 27408 + elseif s:get_tag('/' . tagname) != 0 27409 + " tag with a closing tag, find matching "</tag>" 27410 + call searchpair('<' . tagname, '', '</' . tagname . '\zs>', 'W', '', line('.') + b:html_indent_line_limit) 27411 + else 27412 + " self-closing tag, find the ">" 27413 + call search('\S\zs>') 27414 + endif 27415 +endfunc "}}} 27416 + 27417 +" Indenting inside a start tag. Return the correct indent or -1 if unknown. 27418 +func! s:InsideTag(foundHtmlString) 27419 + "{{{ 27420 + if a:foundHtmlString 27421 + " Inside an attribute string. 27422 + " Align with the previous line or use an external function. 27423 + let lnum = v:lnum - 1 27424 + if lnum > 1 27425 + if exists('b:html_indent_tag_string_func') 27426 + return b:html_indent_tag_string_func(lnum) 27427 + endif 27428 + return indent(lnum) 27429 + endif 27430 + endif 27431 + 27432 + " Should be another attribute: " attr="val". Align with the previous 27433 + " attribute start. 27434 + let lnum = v:lnum 27435 + while lnum > 1 27436 + let lnum -= 1 27437 + let text = getline(lnum) 27438 + " Find a match with one of these, align with "attr": 27439 + " attr= 27440 + " <tag attr= 27441 + " text<tag attr= 27442 + " <tag>text</tag>text<tag attr= 27443 + " For long lines search for the first match, finding the last match 27444 + " gets very slow. 27445 + if len(text) < 300 27446 + let idx = match(text, '.*\s\zs[_a-zA-Z0-9-]\+="') 27447 else 27448 - " start over (know nothing) 27449 - let b:indent = s:FreshState(v:lnum) 27450 + let idx = match(text, '\s\zs[_a-zA-Z0-9-]\+="') 27451 endif 27452 + if idx > 0 27453 + " Found the attribute. TODO: assumes spaces, no Tabs. 27454 + return idx 27455 + endif 27456 + endwhile 27457 + return -1 27458 +endfunc "}}} 27459 + 27460 +" THE MAIN INDENT FUNCTION. Return the amount of indent for v:lnum. 27461 +func! HtmlIndent() 27462 + "{{{ 27463 + if prevnonblank(v:lnum - 1) <= 1 27464 + " First non-blank line has no indent. 27465 + return 0 27466 + endif 27467 + 27468 + let curtext = tolower(getline(v:lnum)) 27469 + let indentunit = s:ShiftWidth() 27470 + 27471 + let b:hi_newstate = {} 27472 + let b:hi_newstate.lnum = v:lnum 27473 + 27474 + " When syntax HL is enabled, detect we are inside a tag. Indenting inside 27475 + " a tag works very differently. Do not do this when the line starts with 27476 + " "<", it gets the "htmlTag" ID but we are not inside a tag then. 27477 + if curtext !~ '^\s*<' 27478 + normal ^ 27479 + let stack = synstack(v:lnum, col('.')) " assumes there are no tabs 27480 + let foundHtmlString = 0 27481 + for synid in reverse(stack) 27482 + let name = synIDattr(synid, "name") 27483 + if index(b:hi_insideStringNames, name) >= 0 27484 + let foundHtmlString = 1 27485 + elseif index(b:hi_insideTagNames, name) >= 0 27486 + " Yes, we are inside a tag. 27487 + let indent = s:InsideTag(foundHtmlString) 27488 + if indent >= 0 27489 + " Do not keep the state. TODO: could keep the block type. 27490 + let b:hi_indent.lnum = 0 27491 + return indent 27492 + endif 27493 + endif 27494 + endfor 27495 + endif 27496 + 27497 + " does the line start with a closing tag? 27498 + let swendtag = match(curtext, '^\s*</') >= 0 27499 27500 - if b:indent.block >= 2 27501 - " within block 27502 - let endtag = s:endtags[b:indent.block-2] 27503 - let blockend = stridx(s:curline, endtag) 27504 - if blockend >= 0 27505 - " block ends here 27506 - let s:newstate.block = 0 27507 - " calc indent for REST OF LINE (may start more blocks): 27508 - let s:curline = strpart(s:curline, blockend+strlen(endtag)) 27509 - call s:CountITags() 27510 - if swendtag && b:indent.block != 5 27511 - let indent = b:indent.blocktagind + s:curind * indentunit 27512 - let s:newstate.baseindent = indent + s:nextrel * indentunit 27513 - else 27514 - let indent = s:Alien{b:indent.block}() 27515 - let s:newstate.baseindent = b:indent.blocktagind + s:nextrel * indentunit 27516 - endif 27517 - call extend(b:indent, s:newstate, "force") 27518 - return indent 27519 - else 27520 - " block continues 27521 - " indent this line with alien method 27522 - let indent = s:Alien{b:indent.block}() 27523 - call extend(b:indent, s:newstate, "force") 27524 - return indent 27525 - endif 27526 + if prevnonblank(v:lnum - 1) == b:hi_indent.lnum && b:hi_lasttick == b:changedtick - 1 27527 + " use state (continue from previous line) 27528 + else 27529 + " start over (know nothing) 27530 + let b:hi_indent = s:FreshState(v:lnum) 27531 + endif 27532 + 27533 + if b:hi_indent.block >= 2 27534 + " within block 27535 + let endtag = s:endtags[b:hi_indent.block] 27536 + let blockend = stridx(curtext, endtag) 27537 + if blockend >= 0 27538 + " block ends here 27539 + let b:hi_newstate.block = 0 27540 + " calc indent for REST OF LINE (may start more blocks): 27541 + call s:CountTagsAndState(strpart(curtext, blockend + strlen(endtag))) 27542 + if swendtag && b:hi_indent.block != 5 27543 + let indent = b:hi_indent.blocktagind + s:curind * indentunit 27544 + let b:hi_newstate.baseindent = indent + s:nextrel * indentunit 27545 + else 27546 + let indent = s:Alien{b:hi_indent.block}() 27547 + let b:hi_newstate.baseindent = b:hi_indent.blocktagind + s:nextrel * indentunit 27548 + endif 27549 else 27550 - " not within a block - within usual html 27551 - " if < 2 then always 0 27552 - let s:newstate.block = b:indent.block 27553 - call s:CountITags() 27554 - if swendtag 27555 - let indent = b:indent.baseindent + s:curind * indentunit 27556 - let s:newstate.baseindent = indent + s:nextrel * indentunit 27557 - else 27558 - let indent = b:indent.baseindent 27559 - let s:newstate.baseindent = indent + (s:curind + s:nextrel) * indentunit 27560 - endif 27561 - call extend(b:indent, s:newstate, "force") 27562 - return indent 27563 + " block continues 27564 + " indent this line with alien method 27565 + let indent = s:Alien{b:hi_indent.block}() 27566 + endif 27567 + else 27568 + " not within a block - within usual html 27569 + let b:hi_newstate.block = b:hi_indent.block 27570 + if swendtag 27571 + " The current line starts with an end tag, align with its start tag. 27572 + call cursor(v:lnum, 1) 27573 + let start_lnum = HtmlIndent_FindStartTag() 27574 + if start_lnum > 0 27575 + " check for the line starting with something inside a tag: 27576 + " <sometag <- align here 27577 + " attr=val><open> not here 27578 + let text = getline(start_lnum) 27579 + let angle = matchstr(text, '[<>]') 27580 + if angle == '>' 27581 + call cursor(start_lnum, 1) 27582 + normal! f>% 27583 + let start_lnum = line('.') 27584 + let text = getline(start_lnum) 27585 + endif 27586 + 27587 + let indent = indent(start_lnum) 27588 + if col('.') > 2 27589 + let swendtag = match(text, '^\s*</') >= 0 27590 + call s:CountITags(text[: col('.') - 2]) 27591 + let indent += s:nextrel * s:ShiftWidth() 27592 + if !swendtag 27593 + let indent += s:curind * s:ShiftWidth() 27594 + endif 27595 + endif 27596 + else 27597 + " not sure what to do 27598 + let indent = b:hi_indent.baseindent 27599 + endif 27600 + let b:hi_newstate.baseindent = indent 27601 + else 27602 + call s:CountTagsAndState(curtext) 27603 + let indent = b:hi_indent.baseindent 27604 + let b:hi_newstate.baseindent = indent + (s:curind + s:nextrel) * indentunit 27605 endif 27606 + endif 27607 27608 + let b:hi_lasttick = b:changedtick 27609 + call extend(b:hi_indent, b:hi_newstate, "force") 27610 + return indent 27611 endfunc "}}} 27612 27613 -" check user settings (first time), clear cpo, Modeline: {{{1 27614 - 27615 -" DEBUG: 27616 -com! -nargs=* IndHtmlLocal <args> 27617 - 27618 +" Check user settings when loading this script the first time. 27619 call HtmlIndent_CheckUserSettings() 27620 27621 let &cpo = s:cpo_save 27622 unlet s:cpo_save 27623 27624 -" vim:set fdm=marker ts=8: 27625 +" vim: fdm=marker ts=8 sw=2 tw=78 25127 27626 diff -Naur vim74.orig/runtime/indent/j.vim vim74/runtime/indent/j.vim 25128 27627 --- vim74.orig/runtime/indent/j.vim 1970-01-01 00:00:00.000000000 +0000 25129 +++ vim74/runtime/indent/j.vim 2014-0 6-01 00:42:56.970857356+000027628 +++ vim74/runtime/indent/j.vim 2014-07-21 23:33:19.843518913 +0000 25130 27629 @@ -0,0 +1,50 @@ 25131 27630 +" Vim indent file … … 25179 27678 + return indent 25180 27679 +endfunction 27680 diff -Naur vim74.orig/runtime/indent/json.vim vim74/runtime/indent/json.vim 27681 --- vim74.orig/runtime/indent/json.vim 1970-01-01 00:00:00.000000000 +0000 27682 +++ vim74/runtime/indent/json.vim 2014-07-21 23:33:19.916852055 +0000 27683 @@ -0,0 +1,13 @@ 27684 +" Vim indent file 27685 +" Language: JSON 27686 +" Maintainer: David Barnett <daviebdawg+vim@gmail.com> 27687 +" Last Change: 2014 Jul 16 27688 + 27689 +if exists('b:did_indent') 27690 + finish 27691 +endif 27692 + 27693 +" JSON is a subset of JavaScript. JavaScript indenting should work fine. 27694 +runtime! indent/javascript.vim 27695 + 27696 +let b:did_indent = 1 25181 27697 diff -Naur vim74.orig/runtime/indent/php.vim vim74/runtime/indent/php.vim 25182 27698 --- vim74.orig/runtime/indent/php.vim 2013-08-07 09:36:56.000000000 +0000 25183 +++ vim74/runtime/indent/php.vim 2014-0 6-01 00:42:57.737522071+000027699 +++ vim74/runtime/indent/php.vim 2014-07-21 23:33:20.656850124 +0000 25184 27700 @@ -3,8 +3,8 @@ 25185 27701 " Author: John Wellesz <John.wellesz (AT) teaser (DOT) fr> … … 25479 27995 if openedparent != lnum 25480 27996 let ind = indent(openedparent) 27997 diff -Naur vim74.orig/runtime/indent/rhelp.vim vim74/runtime/indent/rhelp.vim 27998 --- vim74.orig/runtime/indent/rhelp.vim 1970-01-01 00:00:00.000000000 +0000 27999 +++ vim74/runtime/indent/rhelp.vim 2014-07-21 23:33:20.750183214 +0000 28000 @@ -0,0 +1,111 @@ 28001 +" Vim indent file 28002 +" Language: R Documentation (Help), *.Rd 28003 +" Author: Jakson Alves de Aquino <jalvesaq@gmail.com> 28004 +" Last Change: Wed Jul 09, 2014 07:34PM 28005 + 28006 + 28007 +" Only load this indent file when no other was loaded. 28008 +if exists("b:did_indent") 28009 + finish 28010 +endif 28011 +runtime indent/r.vim 28012 +let s:RIndent = function(substitute(&indentexpr, "()", "", "")) 28013 +let b:did_indent = 1 28014 + 28015 +setlocal indentkeys=0{,0},:,!^F,o,O,e 28016 +setlocal indentexpr=GetRHelpIndent() 28017 + 28018 +" Only define the function once. 28019 +if exists("*GetRHelpIndent") 28020 + finish 28021 +endif 28022 + 28023 +setlocal noautoindent 28024 +setlocal nocindent 28025 +setlocal nosmartindent 28026 +setlocal nolisp 28027 + 28028 +setlocal indentkeys=0{,0},:,!^F,o,O,e 28029 +setlocal indentexpr=GetCorrectRHelpIndent() 28030 + 28031 +function s:SanitizeRHelpLine(line) 28032 + let newline = substitute(a:line, '\\\\', "x", "g") 28033 + let newline = substitute(newline, '\\{', "x", "g") 28034 + let newline = substitute(newline, '\\}', "x", "g") 28035 + let newline = substitute(newline, '\\%', "x", "g") 28036 + let newline = substitute(newline, '%.*', "", "") 28037 + let newline = substitute(newline, '\s*$', "", "") 28038 + return newline 28039 +endfunction 28040 + 28041 +function GetRHelpIndent() 28042 + 28043 + let clnum = line(".") " current line 28044 + if clnum == 1 28045 + return 0 28046 + endif 28047 + let cline = getline(clnum) 28048 + 28049 + if cline =~ '^\s*}\s*$' 28050 + let i = clnum 28051 + let bb = -1 28052 + while bb != 0 && i > 1 28053 + let i -= 1 28054 + let line = s:SanitizeRHelpLine(getline(i)) 28055 + let line2 = substitute(line, "{", "", "g") 28056 + let openb = strlen(line) - strlen(line2) 28057 + let line3 = substitute(line2, "}", "", "g") 28058 + let closeb = strlen(line2) - strlen(line3) 28059 + let bb += openb - closeb 28060 + endwhile 28061 + return indent(i) 28062 + endif 28063 + 28064 + if cline =~ '^\s*#ifdef\>' || cline =~ '^\s*#endif\>' 28065 + return 0 28066 + endif 28067 + 28068 + let lnum = clnum - 1 28069 + let line = getline(lnum) 28070 + if line =~ '^\s*#ifdef\>' || line =~ '^\s*#endif\>' 28071 + let lnum -= 1 28072 + let line = getline(lnum) 28073 + endif 28074 + while lnum > 1 && (line =~ '^\s*$' || line =~ '^#ifdef' || line =~ '^#endif') 28075 + let lnum -= 1 28076 + let line = getline(lnum) 28077 + endwhile 28078 + if lnum == 1 28079 + return 0 28080 + endif 28081 + let line = s:SanitizeRHelpLine(line) 28082 + let line2 = substitute(line, "{", "", "g") 28083 + let openb = strlen(line) - strlen(line2) 28084 + let line3 = substitute(line2, "}", "", "g") 28085 + let closeb = strlen(line2) - strlen(line3) 28086 + let bb = openb - closeb 28087 + 28088 + let ind = indent(lnum) + (bb * &sw) 28089 + 28090 + if line =~ '^\s*}\s*$' 28091 + let ind = indent(lnum) 28092 + endif 28093 + 28094 + if ind < 0 28095 + return 0 28096 + endif 28097 + 28098 + return ind 28099 +endfunction 28100 + 28101 +function GetCorrectRHelpIndent() 28102 + let lastsection = search('^\\[a-z]*{', "bncW") 28103 + let secname = getline(lastsection) 28104 + if secname =~ '^\\usage{' || secname =~ '^\\examples{' || secname =~ '^\\dontshow{' || secname =~ '^\\dontrun{' || secname =~ '^\\donttest{' || secname =~ '^\\testonly{' || secname =~ '^\\method{.*}{.*}(' 28105 + return s:RIndent() 28106 + else 28107 + return GetRHelpIndent() 28108 + endif 28109 +endfunction 28110 + 28111 +" vim: sw=2 28112 diff -Naur vim74.orig/runtime/indent/rmd.vim vim74/runtime/indent/rmd.vim 28113 --- vim74.orig/runtime/indent/rmd.vim 1970-01-01 00:00:00.000000000 +0000 28114 +++ vim74/runtime/indent/rmd.vim 2014-07-21 23:33:20.753516538 +0000 28115 @@ -0,0 +1,46 @@ 28116 +" Vim indent file 28117 +" Language: Rmd 28118 +" Author: Jakson Alves de Aquino <jalvesaq@gmail.com> 28119 +" Last Change: Wed Jul 09, 2014 07:33PM 28120 + 28121 + 28122 +" Only load this indent file when no other was loaded. 28123 +if exists("b:did_indent") 28124 + finish 28125 +endif 28126 +runtime indent/r.vim 28127 +let s:RIndent = function(substitute(&indentexpr, "()", "", "")) 28128 +let b:did_indent = 1 28129 + 28130 +setlocal indentkeys=0{,0},:,!^F,o,O,e 28131 +setlocal indentexpr=GetRmdIndent() 28132 + 28133 +if exists("*GetRmdIndent") 28134 + finish 28135 +endif 28136 + 28137 +function GetMdIndent() 28138 + let pline = getline(v:lnum - 1) 28139 + let cline = getline(v:lnum) 28140 + if prevnonblank(v:lnum - 1) < v:lnum - 1 || cline =~ '^\s*[-\+\*]\s' || cline =~ '^\s*\d\+\.\s\+' 28141 + return indent(v:lnum) 28142 + elseif pline =~ '^\s*[-\+\*]\s' 28143 + return indent(v:lnum - 1) + 2 28144 + elseif pline =~ '^\s*\d\+\.\s\+' 28145 + return indent(v:lnum - 1) + 3 28146 + endif 28147 + return indent(prevnonblank(v:lnum - 1)) 28148 +endfunction 28149 + 28150 +function GetRmdIndent() 28151 + if getline(".") =~ '^```{r .*}$' || getline(".") =~ '^```$' 28152 + return 0 28153 + endif 28154 + if search('^```{r', "bncW") > search('^```$', "bncW") 28155 + return s:RIndent() 28156 + else 28157 + return GetMdIndent() 28158 + endif 28159 +endfunction 28160 + 28161 +" vim: sw=2 28162 diff -Naur vim74.orig/runtime/indent/rnoweb.vim vim74/runtime/indent/rnoweb.vim 28163 --- vim74.orig/runtime/indent/rnoweb.vim 1970-01-01 00:00:00.000000000 +0000 28164 +++ vim74/runtime/indent/rnoweb.vim 2014-07-21 23:33:20.756849863 +0000 28165 @@ -0,0 +1,35 @@ 28166 +" Vim indent file 28167 +" Language: Rnoweb 28168 +" Author: Jakson Alves de Aquino <jalvesaq@gmail.com> 28169 +" Last Change: Wed Jul 09, 2014 07:28PM 28170 + 28171 + 28172 +" Only load this indent file when no other was loaded. 28173 +if exists("b:did_indent") 28174 + finish 28175 +endif 28176 +runtime indent/tex.vim 28177 +let s:TeXIndent = function(substitute(&indentexpr, "()", "", "")) 28178 +unlet b:did_indent 28179 +runtime indent/r.vim 28180 +let s:RIndent = function(substitute(&indentexpr, "()", "", "")) 28181 +let b:did_indent = 1 28182 + 28183 +setlocal indentkeys=0{,0},!^F,o,O,e,},=\bibitem,=\item 28184 +setlocal indentexpr=GetRnowebIndent() 28185 + 28186 +if exists("*GetRnowebIndent") 28187