1 /* vi:set ts=8 sts=4 sw=4 noet: 2 * 3 * VIM - Vi IMproved by Bram Moolenaar 4 * 5 * Do ":help uganda" in Vim to read copying and usage conditions. 6 * Do ":help credits" in Vim to see a list of people who contributed. 7 * See README.txt for an overview of the Vim source code. 8 */ 9 10 #include "vim.h" 11 12 #ifdef AMIGA 13 # include <time.h> /* for time() */ 14 #endif 15 16 /* 17 * Vim originated from Stevie version 3.6 (Fish disk 217) by GRWalter (Fred) 18 * It has been changed beyond recognition since then. 19 * 20 * Differences between version 7.4 and 8.x can be found with ":help version8". 21 * Differences between version 6.4 and 7.x can be found with ":help version7". 22 * Differences between version 5.8 and 6.x can be found with ":help version6". 23 * Differences between version 4.x and 5.x can be found with ":help version5". 24 * Differences between version 3.0 and 4.x can be found with ":help version4". 25 * All the remarks about older versions have been removed, they are not very 26 * interesting. 27 */ 28 29 #include "version.h" 30 31 char *Version = VIM_VERSION_SHORT; 32 static char *mediumVersion = VIM_VERSION_MEDIUM; 33 34 #if defined(HAVE_DATE_TIME) || defined(PROTO) 35 # if (defined(VMS) && defined(VAXC)) || defined(PROTO) 36 char longVersion[sizeof(VIM_VERSION_LONG_DATE) + sizeof(__DATE__) 37 + sizeof(__TIME__) + 3]; 38 39 void 40 init_longVersion(void) 41 { 42 /* 43 * Construct the long version string. Necessary because 44 * VAX C can't concatenate strings in the preprocessor. 45 */ 46 strcpy(longVersion, VIM_VERSION_LONG_DATE); 47 strcat(longVersion, __DATE__); 48 strcat(longVersion, " "); 49 strcat(longVersion, __TIME__); 50 strcat(longVersion, ")"); 51 } 52 53 # else 54 void 55 init_longVersion(void) 56 { 57 char *date_time = __DATE__ " " __TIME__; 58 char *msg = _("%s (%s, compiled %s)"); 59 size_t len = strlen(msg) 60 + strlen(VIM_VERSION_LONG_ONLY) 61 + strlen(VIM_VERSION_DATE_ONLY) 62 + strlen(date_time); 63 64 longVersion = alloc(len); 65 if (longVersion == NULL) 66 longVersion = VIM_VERSION_LONG; 67 else 68 vim_snprintf(longVersion, len, msg, 69 VIM_VERSION_LONG_ONLY, VIM_VERSION_DATE_ONLY, date_time); 70 } 71 # endif 72 #else 73 char *longVersion = VIM_VERSION_LONG; 74 75 void 76 init_longVersion(void) 77 { 78 // nothing to do 79 } 80 #endif 81 82 static char *(features[]) = 83 { 84 #ifdef HAVE_ACL 85 "+acl", 86 #else 87 "-acl", 88 #endif 89 #ifdef AMIGA /* only for Amiga systems */ 90 # ifdef FEAT_ARP 91 "+ARP", 92 # else 93 "-ARP", 94 # endif 95 #endif 96 #ifdef FEAT_ARABIC 97 "+arabic", 98 #else 99 "-arabic", 100 #endif 101 "+autocmd", 102 #ifdef FEAT_AUTOCHDIR 103 "+autochdir", 104 #else 105 "-autochdir", 106 #endif 107 #ifdef FEAT_AUTOSERVERNAME 108 "+autoservername", 109 #else 110 "-autoservername", 111 #endif 112 #ifdef FEAT_BEVAL_GUI 113 "+balloon_eval", 114 #else 115 "-balloon_eval", 116 #endif 117 #ifdef FEAT_BEVAL_TERM 118 "+balloon_eval_term", 119 #else 120 "-balloon_eval_term", 121 #endif 122 #ifdef FEAT_BROWSE 123 "+browse", 124 #else 125 "-browse", 126 #endif 127 #ifdef NO_BUILTIN_TCAPS 128 "-builtin_terms", 129 #endif 130 #ifdef SOME_BUILTIN_TCAPS 131 "+builtin_terms", 132 #endif 133 #ifdef ALL_BUILTIN_TCAPS 134 "++builtin_terms", 135 #endif 136 #ifdef FEAT_BYTEOFF 137 "+byte_offset", 138 #else 139 "-byte_offset", 140 #endif 141 #ifdef FEAT_JOB_CHANNEL 142 "+channel", 143 #else 144 "-channel", 145 #endif 146 #ifdef FEAT_CINDENT 147 "+cindent", 148 #else 149 "-cindent", 150 #endif 151 #ifdef FEAT_CLIENTSERVER 152 "+clientserver", 153 #else 154 "-clientserver", 155 #endif 156 #ifdef FEAT_CLIPBOARD 157 "+clipboard", 158 #else 159 "-clipboard", 160 #endif 161 #ifdef FEAT_CMDL_COMPL 162 "+cmdline_compl", 163 #else 164 "-cmdline_compl", 165 #endif 166 #ifdef FEAT_CMDHIST 167 "+cmdline_hist", 168 #else 169 "-cmdline_hist", 170 #endif 171 #ifdef FEAT_CMDL_INFO 172 "+cmdline_info", 173 #else 174 "-cmdline_info", 175 #endif 176 #ifdef FEAT_COMMENTS 177 "+comments", 178 #else 179 "-comments", 180 #endif 181 #ifdef FEAT_CONCEAL 182 "+conceal", 183 #else 184 "-conceal", 185 #endif 186 #ifdef FEAT_CRYPT 187 "+cryptv", 188 #else 189 "-cryptv", 190 #endif 191 #ifdef FEAT_CSCOPE 192 "+cscope", 193 #else 194 "-cscope", 195 #endif 196 "+cursorbind", 197 #ifdef CURSOR_SHAPE 198 "+cursorshape", 199 #else 200 "-cursorshape", 201 #endif 202 #if defined(FEAT_CON_DIALOG) && defined(FEAT_GUI_DIALOG) 203 "+dialog_con_gui", 204 #else 205 # if defined(FEAT_CON_DIALOG) 206 "+dialog_con", 207 # else 208 # if defined(FEAT_GUI_DIALOG) 209 "+dialog_gui", 210 # else 211 "-dialog", 212 # endif 213 # endif 214 #endif 215 #ifdef FEAT_DIFF 216 "+diff", 217 #else 218 "-diff", 219 #endif 220 #ifdef FEAT_DIGRAPHS 221 "+digraphs", 222 #else 223 "-digraphs", 224 #endif 225 #ifdef FEAT_GUI_MSWIN 226 # ifdef FEAT_DIRECTX 227 "+directx", 228 # else 229 "-directx", 230 # endif 231 #endif 232 #ifdef FEAT_DND 233 "+dnd", 234 #else 235 "-dnd", 236 #endif 237 #ifdef EBCDIC 238 "+ebcdic", 239 #else 240 "-ebcdic", 241 #endif 242 #ifdef FEAT_EMACS_TAGS 243 "+emacs_tags", 244 #else 245 "-emacs_tags", 246 #endif 247 #ifdef FEAT_EVAL 248 "+eval", 249 #else 250 "-eval", 251 #endif 252 "+ex_extra", 253 #ifdef FEAT_SEARCH_EXTRA 254 "+extra_search", 255 #else 256 "-extra_search", 257 #endif 258 "-farsi", 259 #ifdef FEAT_SEARCHPATH 260 "+file_in_path", 261 #else 262 "-file_in_path", 263 #endif 264 #ifdef FEAT_FIND_ID 265 "+find_in_path", 266 #else 267 "-find_in_path", 268 #endif 269 #ifdef FEAT_FLOAT 270 "+float", 271 #else 272 "-float", 273 #endif 274 #ifdef FEAT_FOLDING 275 "+folding", 276 #else 277 "-folding", 278 #endif 279 #ifdef FEAT_FOOTER 280 "+footer", 281 #else 282 "-footer", 283 #endif 284 /* only interesting on Unix systems */ 285 #if !defined(USE_SYSTEM) && defined(UNIX) 286 "+fork()", 287 #endif 288 #ifdef FEAT_GETTEXT 289 # ifdef DYNAMIC_GETTEXT 290 "+gettext/dyn", 291 # else 292 "+gettext", 293 # endif 294 #else 295 "-gettext", 296 #endif 297 #ifdef FEAT_HANGULIN 298 "+hangul_input", 299 #else 300 "-hangul_input", 301 #endif 302 #if (defined(HAVE_ICONV_H) && defined(USE_ICONV)) || defined(DYNAMIC_ICONV) 303 # ifdef DYNAMIC_ICONV 304 "+iconv/dyn", 305 # else 306 "+iconv", 307 # endif 308 #else 309 "-iconv", 310 #endif 311 #ifdef FEAT_INS_EXPAND 312 "+insert_expand", 313 #else 314 "-insert_expand", 315 #endif 316 #ifdef FEAT_JOB_CHANNEL 317 "+job", 318 #else 319 "-job", 320 #endif 321 #ifdef FEAT_JUMPLIST 322 "+jumplist", 323 #else 324 "-jumplist", 325 #endif 326 #ifdef FEAT_KEYMAP 327 "+keymap", 328 #else 329 "-keymap", 330 #endif 331 #ifdef FEAT_EVAL 332 "+lambda", 333 #else 334 "-lambda", 335 #endif 336 #ifdef FEAT_LANGMAP 337 "+langmap", 338 #else 339 "-langmap", 340 #endif 341 #ifdef FEAT_LIBCALL 342 "+libcall", 343 #else 344 "-libcall", 345 #endif 346 #ifdef FEAT_LINEBREAK 347 "+linebreak", 348 #else 349 "-linebreak", 350 #endif 351 #ifdef FEAT_LISP 352 "+lispindent", 353 #else 354 "-lispindent", 355 #endif 356 "+listcmds", 357 #ifdef FEAT_LOCALMAP 358 "+localmap", 359 #else 360 "-localmap", 361 #endif 362 #ifdef FEAT_LUA 363 # ifdef DYNAMIC_LUA 364 "+lua/dyn", 365 # else 366 "+lua", 367 # endif 368 #else 369 "-lua", 370 #endif 371 #ifdef FEAT_MENU 372 "+menu", 373 #else 374 "-menu", 375 #endif 376 #ifdef FEAT_SESSION 377 "+mksession", 378 #else 379 "-mksession", 380 #endif 381 #ifdef FEAT_MODIFY_FNAME 382 "+modify_fname", 383 #else 384 "-modify_fname", 385 #endif 386 #ifdef FEAT_MOUSE 387 "+mouse", 388 # ifdef FEAT_MOUSESHAPE 389 "+mouseshape", 390 # else 391 "-mouseshape", 392 # endif 393 # else 394 "-mouse", 395 #endif 396 397 #if defined(UNIX) || defined(VMS) 398 # ifdef FEAT_MOUSE_DEC 399 "+mouse_dec", 400 # else 401 "-mouse_dec", 402 # endif 403 # ifdef FEAT_MOUSE_GPM 404 "+mouse_gpm", 405 # else 406 "-mouse_gpm", 407 # endif 408 # ifdef FEAT_MOUSE_JSB 409 "+mouse_jsbterm", 410 # else 411 "-mouse_jsbterm", 412 # endif 413 # ifdef FEAT_MOUSE_NET 414 "+mouse_netterm", 415 # else 416 "-mouse_netterm", 417 # endif 418 #endif 419 420 #ifdef __QNX__ 421 # ifdef FEAT_MOUSE_PTERM 422 "+mouse_pterm", 423 # else 424 "-mouse_pterm", 425 # endif 426 #endif 427 428 #if defined(UNIX) || defined(VMS) 429 # ifdef FEAT_MOUSE_XTERM 430 "+mouse_sgr", 431 # else 432 "-mouse_sgr", 433 # endif 434 # ifdef FEAT_SYSMOUSE 435 "+mouse_sysmouse", 436 # else 437 "-mouse_sysmouse", 438 # endif 439 # ifdef FEAT_MOUSE_URXVT 440 "+mouse_urxvt", 441 # else 442 "-mouse_urxvt", 443 # endif 444 # ifdef FEAT_MOUSE_XTERM 445 "+mouse_xterm", 446 # else 447 "-mouse_xterm", 448 # endif 449 #endif 450 451 #ifdef FEAT_MBYTE_IME 452 # ifdef DYNAMIC_IME 453 "+multi_byte_ime/dyn", 454 # else 455 "+multi_byte_ime", 456 # endif 457 #else 458 "+multi_byte", 459 #endif 460 #ifdef FEAT_MULTI_LANG 461 "+multi_lang", 462 #else 463 "-multi_lang", 464 #endif 465 #ifdef FEAT_MZSCHEME 466 # ifdef DYNAMIC_MZSCHEME 467 "+mzscheme/dyn", 468 # else 469 "+mzscheme", 470 # endif 471 #else 472 "-mzscheme", 473 #endif 474 #ifdef FEAT_NETBEANS_INTG 475 "+netbeans_intg", 476 #else 477 "-netbeans_intg", 478 #endif 479 #ifdef FEAT_NUM64 480 "+num64", 481 #else 482 "-num64", 483 #endif 484 #ifdef FEAT_GUI_MSWIN 485 # ifdef FEAT_OLE 486 "+ole", 487 # else 488 "-ole", 489 # endif 490 #endif 491 #ifdef FEAT_EVAL 492 "+packages", 493 #else 494 "-packages", 495 #endif 496 #ifdef FEAT_PATH_EXTRA 497 "+path_extra", 498 #else 499 "-path_extra", 500 #endif 501 #ifdef FEAT_PERL 502 # ifdef DYNAMIC_PERL 503 "+perl/dyn", 504 # else 505 "+perl", 506 # endif 507 #else 508 "-perl", 509 #endif 510 #ifdef FEAT_PERSISTENT_UNDO 511 "+persistent_undo", 512 #else 513 "-persistent_undo", 514 #endif 515 #ifdef FEAT_PRINTER 516 # ifdef FEAT_POSTSCRIPT 517 "+postscript", 518 # else 519 "-postscript", 520 # endif 521 "+printer", 522 #else 523 "-printer", 524 #endif 525 #ifdef FEAT_PROFILE 526 "+profile", 527 #else 528 "-profile", 529 #endif 530 #ifdef FEAT_PYTHON 531 # ifdef DYNAMIC_PYTHON 532 "+python/dyn", 533 # else 534 "+python", 535 # endif 536 #else 537 "-python", 538 #endif 539 #ifdef FEAT_PYTHON3 540 # ifdef DYNAMIC_PYTHON3 541 "+python3/dyn", 542 # else 543 "+python3", 544 # endif 545 #else 546 "-python3", 547 #endif 548 #ifdef FEAT_QUICKFIX 549 "+quickfix", 550 #else 551 "-quickfix", 552 #endif 553 #ifdef FEAT_RELTIME 554 "+reltime", 555 #else 556 "-reltime", 557 #endif 558 #ifdef FEAT_RIGHTLEFT 559 "+rightleft", 560 #else 561 "-rightleft", 562 #endif 563 #ifdef FEAT_RUBY 564 # ifdef DYNAMIC_RUBY 565 "+ruby/dyn", 566 # else 567 "+ruby", 568 # endif 569 #else 570 "-ruby", 571 #endif 572 "+scrollbind", 573 #ifdef FEAT_SIGNS 574 "+signs", 575 #else 576 "-signs", 577 #endif 578 #ifdef FEAT_SMARTINDENT 579 "+smartindent", 580 #else 581 "-smartindent", 582 #endif 583 #ifdef FEAT_SOUND 584 "+sound", 585 #else 586 "-sound", 587 #endif 588 #ifdef FEAT_SPELL 589 "+spell", 590 #else 591 "-spell", 592 #endif 593 #ifdef STARTUPTIME 594 "+startuptime", 595 #else 596 "-startuptime", 597 #endif 598 #ifdef FEAT_STL_OPT 599 "+statusline", 600 #else 601 "-statusline", 602 #endif 603 "-sun_workshop", 604 #ifdef FEAT_SYN_HL 605 "+syntax", 606 #else 607 "-syntax", 608 #endif 609 /* only interesting on Unix systems */ 610 #if defined(USE_SYSTEM) && defined(UNIX) 611 "+system()", 612 #endif 613 #ifdef FEAT_TAG_BINS 614 "+tag_binary", 615 #else 616 "-tag_binary", 617 #endif 618 "-tag_old_static", 619 "-tag_any_white", 620 #ifdef FEAT_TCL 621 # ifdef DYNAMIC_TCL 622 "+tcl/dyn", 623 # else 624 "+tcl", 625 # endif 626 #else 627 "-tcl", 628 #endif 629 #ifdef FEAT_TERMGUICOLORS 630 "+termguicolors", 631 #else 632 "-termguicolors", 633 #endif 634 #ifdef FEAT_TERMINAL 635 "+terminal", 636 #else 637 "-terminal", 638 #endif 639 #if defined(UNIX) 640 /* only Unix can have terminfo instead of termcap */ 641 # ifdef TERMINFO 642 "+terminfo", 643 # else 644 "-terminfo", 645 # endif 646 #endif 647 #ifdef FEAT_TERMRESPONSE 648 "+termresponse", 649 #else 650 "-termresponse", 651 #endif 652 #ifdef FEAT_TEXTOBJ 653 "+textobjects", 654 #else 655 "-textobjects", 656 #endif 657 #ifdef FEAT_TEXT_PROP 658 "+textprop", 659 #else 660 "-textprop", 661 #endif 662 #if !defined(UNIX) 663 /* unix always includes termcap support */ 664 # ifdef HAVE_TGETENT 665 "+tgetent", 666 # else 667 "-tgetent", 668 # endif 669 #endif 670 #ifdef FEAT_TIMERS 671 "+timers", 672 #else 673 "-timers", 674 #endif 675 #ifdef FEAT_TITLE 676 "+title", 677 #else 678 "-title", 679 #endif 680 #ifdef FEAT_TOOLBAR 681 "+toolbar", 682 #else 683 "-toolbar", 684 #endif 685 "+user_commands", 686 #ifdef FEAT_VARTABS 687 "+vartabs", 688 #else 689 "-vartabs", 690 #endif 691 "+vertsplit", 692 "+virtualedit", 693 "+visual", 694 "+visualextra", 695 #ifdef FEAT_VIMINFO 696 "+viminfo", 697 #else 698 "-viminfo", 699 #endif 700 "+vreplace", 701 #ifdef MSWIN 702 # ifdef FEAT_VTP 703 "+vtp", 704 # else 705 "-vtp", 706 # endif 707 #endif 708 #ifdef FEAT_WILDIGN 709 "+wildignore", 710 #else 711 "-wildignore", 712 #endif 713 #ifdef FEAT_WILDMENU 714 "+wildmenu", 715 #else 716 "-wildmenu", 717 #endif 718 "+windows", 719 #ifdef FEAT_WRITEBACKUP 720 "+writebackup", 721 #else 722 "-writebackup", 723 #endif 724 #if defined(UNIX) || defined(VMS) 725 # ifdef FEAT_X11 726 "+X11", 727 # else 728 "-X11", 729 # endif 730 #endif 731 #ifdef FEAT_XFONTSET 732 "+xfontset", 733 #else 734 "-xfontset", 735 #endif 736 #ifdef FEAT_XIM 737 "+xim", 738 #else 739 "-xim", 740 #endif 741 #ifdef MSWIN 742 # ifdef FEAT_XPM_W32 743 "+xpm_w32", 744 # else 745 "-xpm_w32", 746 # endif 747 #else 748 # ifdef HAVE_XPM 749 "+xpm", 750 # else 751 "-xpm", 752 # endif 753 #endif 754 #if defined(UNIX) || defined(VMS) 755 # ifdef USE_XSMP_INTERACT 756 "+xsmp_interact", 757 # else 758 # ifdef USE_XSMP 759 "+xsmp", 760 # else 761 "-xsmp", 762 # endif 763 # endif 764 # ifdef FEAT_XCLIPBOARD 765 "+xterm_clipboard", 766 # else 767 "-xterm_clipboard", 768 # endif 769 #endif 770 #ifdef FEAT_XTERM_SAVE 771 "+xterm_save", 772 #else 773 "-xterm_save", 774 #endif 775 NULL 776 }; 777 778 static int included_patches[] = 779 { /* Add new patch number below this line */ 780 /**/ 781 1517, 782 /**/ 783 1516, 784 /**/ 785 1515, 786 /**/ 787 1514, 788 /**/ 789 1513, 790 /**/ 791 1512, 792 /**/ 793 1511, 794 /**/ 795 1510, 796 /**/ 797 1509, 798 /**/ 799 1508, 800 /**/ 801 1507, 802 /**/ 803 1506, 804 /**/ 805 1505, 806 /**/ 807 1504, 808 /**/ 809 1503, 810 /**/ 811 1502, 812 /**/ 813 1501, 814 /**/ 815 1500, 816 /**/ 817 1499, 818 /**/ 819 1498, 820 /**/ 821 1497, 822 /**/ 823 1496, 824 /**/ 825 1495, 826 /**/ 827 1494, 828 /**/ 829 1493, 830 /**/ 831 1492, 832 /**/ 833 1491, 834 /**/ 835 1490, 836 /**/ 837 1489, 838 /**/ 839 1488, 840 /**/ 841 1487, 842 /**/ 843 1486, 844 /**/ 845 1485, 846 /**/ 847 1484, 848 /**/ 849 1483, 850 /**/ 851 1482, 852 /**/ 853 1481, 854 /**/ 855 1480, 856 /**/ 857 1479, 858 /**/ 859 1478, 860 /**/ 861 1477, 862 /**/ 863 1476, 864 /**/ 865 1475, 866 /**/ 867 1474, 868 /**/ 869 1473, 870 /**/ 871 1472, 872 /**/ 873 1471, 874 /**/ 875 1470, 876 /**/ 877 1469, 878 /**/ 879 1468, 880 /**/ 881 1467, 882 /**/ 883 1466, 884 /**/ 885 1465, 886 /**/ 887 1464, 888 /**/ 889 1463, 890 /**/ 891 1462, 892 /**/ 893 1461, 894 /**/ 895 1460, 896 /**/ 897 1459, 898 /**/ 899 1458, 900 /**/ 901 1457, 902 /**/ 903 1456, 904 /**/ 905 1455, 906 /**/ 907 1454, 908 /**/ 909 1453, 910 /**/ 911 1452, 912 /**/ 913 1451, 914 /**/ 915 1450, 916 /**/ 917 1449, 918 /**/ 919 1448, 920 /**/ 921 1447, 922 /**/ 923 1446, 924 /**/ 925 1445, 926 /**/ 927 1444, 928 /**/ 929 1443, 930 /**/ 931 1442, 932 /**/ 933 1441, 934 /**/ 935 1440, 936 /**/ 937 1439, 938 /**/ 939 1438, 940 /**/ 941 1437, 942 /**/ 943 1436, 944 /**/ 945 1435, 946 /**/ 947 1434, 948 /**/ 949 1433, 950 /**/ 951 1432, 952 /**/ 953 1431, 954 /**/ 955 1430, 956 /**/ 957 1429, 958 /**/ 959 1428, 960 /**/ 961 1427, 962 /**/ 963 1426, 964 /**/ 965 1425, 966 /**/ 967 1424, 968 /**/ 969 1423, 970 /**/ 971 1422, 972 /**/ 973 1421, 974 /**/ 975 1420, 976 /**/ 977 1419, 978 /**/ 979 1418, 980 /**/ 981 1417, 982 /**/ 983 1416, 984 /**/ 985 1415, 986 /**/ 987 1414, 988 /**/ 989 1413, 990 /**/ 991 1412, 992 /**/ 993 1411, 994 /**/ 995 1410, 996 /**/ 997 1409, 998 /**/ 999 1408, 1000 /**/ 1001 1407, 1002 /**/ 1003 1406, 1004 /**/ 1005 1405, 1006 /**/ 1007 1404, 1008 /**/ 1009 1403, 1010 /**/ 1011 1402, 1012 /**/ 1013 1401, 1014 /**/ 1015 1400, 1016 /**/ 1017 1399, 1018 /**/ 1019 1398, 1020 /**/ 1021 1397, 1022 /**/ 1023 1396, 1024 /**/ 1025 1395, 1026 /**/ 1027 1394, 1028 /**/ 1029 1393, 1030 /**/ 1031 1392, 1032 /**/ 1033 1391, 1034 /**/ 1035 1390, 1036 /**/ 1037 1389, 1038 /**/ 1039 1388, 1040 /**/ 1041 1387, 1042 /**/ 1043 1386, 1044 /**/ 1045 1385, 1046 /**/ 1047 1384, 1048 /**/ 1049 1383, 1050 /**/ 1051 1382, 1052 /**/ 1053 1381, 1054 /**/ 1055 1380, 1056 /**/ 1057 1379, 1058 /**/ 1059 1378, 1060 /**/ 1061 1377, 1062 /**/ 1063 1376, 1064 /**/ 1065 1375, 1066 /**/ 1067 1374, 1068 /**/ 1069 1373, 1070 /**/ 1071 1372, 1072 /**/ 1073 1371, 1074 /**/ 1075 1370, 1076 /**/ 1077 1369, 1078 /**/ 1079 1368, 1080 /**/ 1081 1367, 1082 /**/ 1083 1366, 1084 /**/ 1085 1365, 1086 /**/ 1087 1364, 1088 /**/ 1089 1363, 1090 /**/ 1091 1362, 1092 /**/ 1093 1361, 1094 /**/ 1095 1360, 1096 /**/ 1097 1359, 1098 /**/ 1099 1358, 1100 /**/ 1101 1357, 1102 /**/ 1103 1356, 1104 /**/ 1105 1355, 1106 /**/ 1107 1354, 1108 /**/ 1109 1353, 1110 /**/ 1111 1352, 1112 /**/ 1113 1351, 1114 /**/ 1115 1350, 1116 /**/ 1117 1349, 1118 /**/ 1119 1348, 1120 /**/ 1121 1347, 1122 /**/ 1123 1346, 1124 /**/ 1125 1345, 1126 /**/ 1127 1344, 1128 /**/ 1129 1343, 1130 /**/ 1131 1342, 1132 /**/ 1133 1341, 1134 /**/ 1135 1340, 1136 /**/ 1137 1339, 1138 /**/ 1139 1338, 1140 /**/ 1141 1337, 1142 /**/ 1143 1336, 1144 /**/ 1145 1335, 1146 /**/ 1147 1334, 1148 /**/ 1149 1333, 1150 /**/ 1151 1332, 1152 /**/ 1153 1331, 1154 /**/ 1155 1330, 1156 /**/ 1157 1329, 1158 /**/ 1159 1328, 1160 /**/ 1161 1327, 1162 /**/ 1163 1326, 1164 /**/ 1165 1325, 1166 /**/ 1167 1324, 1168 /**/ 1169 1323, 1170 /**/ 1171 1322, 1172 /**/ 1173 1321, 1174 /**/ 1175 1320, 1176 /**/ 1177 1319, 1178 /**/ 1179 1318, 1180 /**/ 1181 1317, 1182 /**/ 1183 1316, 1184 /**/ 1185 1315, 1186 /**/ 1187 1314, 1188 /**/ 1189 1313, 1190 /**/ 1191 1312, 1192 /**/ 1193 1311, 1194 /**/ 1195 1310, 1196 /**/ 1197 1309, 1198 /**/ 1199 1308, 1200 /**/ 1201 1307, 1202 /**/ 1203 1306, 1204 /**/ 1205 1305, 1206 /**/ 1207 1304, 1208 /**/ 1209 1303, 1210 /**/ 1211 1302, 1212 /**/ 1213 1301, 1214 /**/ 1215 1300, 1216 /**/ 1217 1299, 1218 /**/ 1219 1298, 1220 /**/ 1221 1297, 1222 /**/ 1223 1296, 1224 /**/ 1225 1295, 1226 /**/ 1227 1294, 1228 /**/ 1229 1293, 1230 /**/ 1231 1292, 1232 /**/ 1233 1291, 1234 /**/ 1235 1290, 1236 /**/ 1237 1289, 1238 /**/ 1239 1288, 1240 /**/ 1241 1287, 1242 /**/ 1243 1286, 1244 /**/ 1245 1285, 1246 /**/ 1247 1284, 1248 /**/ 1249 1283, 1250 /**/ 1251 1282, 1252 /**/ 1253 1281, 1254 /**/ 1255 1280, 1256 /**/ 1257 1279, 1258 /**/ 1259 1278, 1260 /**/ 1261 1277, 1262 /**/ 1263 1276, 1264 /**/ 1265 1275, 1266 /**/ 1267 1274, 1268 /**/ 1269 1273, 1270 /**/ 1271 1272, 1272 /**/ 1273 1271, 1274 /**/ 1275 1270, 1276 /**/ 1277 1269, 1278 /**/ 1279 1268, 1280 /**/ 1281 1267, 1282 /**/ 1283 1266, 1284 /**/ 1285 1265, 1286 /**/ 1287 1264, 1288 /**/ 1289 1263, 1290 /**/ 1291 1262, 1292 /**/ 1293 1261, 1294 /**/ 1295 1260, 1296 /**/ 1297 1259, 1298 /**/ 1299 1258, 1300 /**/ 1301 1257, 1302 /**/ 1303 1256, 1304 /**/ 1305 1255, 1306 /**/ 1307 1254, 1308 /**/ 1309 1253, 1310 /**/ 1311 1252, 1312 /**/ 1313 1251, 1314 /**/ 1315 1250, 1316 /**/ 1317 1249, 1318 /**/ 1319 1248, 1320 /**/ 1321 1247, 1322 /**/ 1323 1246, 1324 /**/ 1325 1245, 1326 /**/ 1327 1244, 1328 /**/ 1329 1243, 1330 /**/ 1331 1242, 1332 /**/ 1333 1241, 1334 /**/ 1335 1240, 1336 /**/ 1337 1239, 1338 /**/ 1339 1238, 1340 /**/ 1341 1237, 1342 /**/ 1343 1236, 1344 /**/ 1345 1235, 1346 /**/ 1347 1234, 1348 /**/ 1349 1233, 1350 /**/ 1351 1232, 1352 /**/ 1353 1231, 1354 /**/ 1355 1230, 1356 /**/ 1357 1229, 1358 /**/ 1359 1228, 1360 /**/ 1361 1227, 1362 /**/ 1363 1226, 1364 /**/ 1365 1225, 1366 /**/ 1367 1224, 1368 /**/ 1369 1223, 1370 /**/ 1371 1222, 1372 /**/ 1373 1221, 1374 /**/ 1375 1220, 1376 /**/ 1377 1219, 1378 /**/ 1379 1218, 1380 /**/ 1381 1217, 1382 /**/ 1383 1216, 1384 /**/ 1385 1215, 1386 /**/ 1387 1214, 1388 /**/ 1389 1213, 1390 /**/ 1391 1212, 1392 /**/ 1393 1211, 1394 /**/ 1395 1210, 1396 /**/ 1397 1209, 1398 /**/ 1399 1208, 1400 /**/ 1401 1207, 1402 /**/ 1403 1206, 1404 /**/ 1405 1205, 1406 /**/ 1407 1204, 1408 /**/ 1409 1203, 1410 /**/ 1411 1202, 1412 /**/ 1413 1201, 1414 /**/ 1415 1200, 1416 /**/ 1417 1199, 1418 /**/ 1419 1198, 1420 /**/ 1421 1197, 1422 /**/ 1423 1196, 1424 /**/ 1425 1195, 1426 /**/ 1427 1194, 1428 /**/ 1429 1193, 1430 /**/ 1431 1192, 1432 /**/ 1433 1191, 1434 /**/ 1435 1190, 1436 /**/ 1437 1189, 1438 /**/ 1439 1188, 1440 /**/ 1441 1187, 1442 /**/ 1443 1186, 1444 /**/ 1445 1185, 1446 /**/ 1447 1184, 1448 /**/ 1449 1183, 1450 /**/ 1451 1182, 1452 /**/ 1453 1181, 1454 /**/ 1455 1180, 1456 /**/ 1457 1179, 1458 /**/ 1459 1178, 1460 /**/ 1461 1177, 1462 /**/ 1463 1176, 1464 /**/ 1465 1175, 1466 /**/ 1467 1174, 1468 /**/ 1469 1173, 1470 /**/ 1471 1172, 1472 /**/ 1473 1171, 1474 /**/ 1475 1170, 1476 /**/ 1477 1169, 1478 /**/ 1479 1168, 1480 /**/ 1481 1167, 1482 /**/ 1483 1166, 1484 /**/ 1485 1165, 1486 /**/ 1487 1164, 1488 /**/ 1489 1163, 1490 /**/ 1491 1162, 1492 /**/ 1493 1161, 1494 /**/ 1495 1160, 1496 /**/ 1497 1159, 1498 /**/ 1499 1158, 1500 /**/ 1501 1157, 1502 /**/ 1503 1156, 1504 /**/ 1505 1155, 1506 /**/ 1507 1154, 1508 /**/ 1509 1153, 1510 /**/ 1511 1152, 1512 /**/ 1513 1151, 1514 /**/ 1515 1150, 1516 /**/ 1517 1149, 1518 /**/ 1519 1148, 1520 /**/ 1521 1147, 1522 /**/ 1523 1146, 1524 /**/ 1525 1145, 1526 /**/ 1527 1144, 1528 /**/ 1529 1143, 1530 /**/ 1531 1142, 1532 /**/ 1533 1141, 1534 /**/ 1535 1140, 1536 /**/ 1537 1139, 1538 /**/ 1539 1138, 1540 /**/ 1541 1137, 1542 /**/ 1543 1136, 1544 /**/ 1545 1135, 1546 /**/ 1547 1134, 1548 /**/ 1549 1133, 1550 /**/ 1551 1132, 1552 /**/ 1553 1131, 1554 /**/ 1555 1130, 1556 /**/ 1557 1129, 1558 /**/ 1559 1128, 1560 /**/ 1561 1127, 1562 /**/ 1563 1126, 1564 /**/ 1565 1125, 1566 /**/ 1567 1124, 1568 /**/ 1569 1123, 1570 /**/ 1571 1122, 1572 /**/ 1573 1121, 1574 /**/ 1575 1120, 1576 /**/ 1577 1119, 1578 /**/ 1579 1118, 1580 /**/ 1581 1117, 1582 /**/ 1583 1116, 1584 /**/ 1585 1115, 1586 /**/ 1587 1114, 1588 /**/ 1589 1113, 1590 /**/ 1591 1112, 1592 /**/ 1593 1111, 1594 /**/ 1595 1110, 1596 /**/ 1597 1109, 1598 /**/ 1599 1108, 1600 /**/ 1601 1107, 1602 /**/ 1603 1106, 1604 /**/ 1605 1105, 1606 /**/ 1607 1104, 1608 /**/ 1609 1103, 1610 /**/ 1611 1102, 1612 /**/ 1613 1101, 1614 /**/ 1615 1100, 1616 /**/ 1617 1099, 1618 /**/ 1619 1098, 1620 /**/ 1621 1097, 1622 /**/ 1623 1096, 1624 /**/ 1625 1095, 1626 /**/ 1627 1094, 1628 /**/ 1629 1093, 1630 /**/ 1631 1092, 1632 /**/ 1633 1091, 1634 /**/ 1635 1090, 1636 /**/ 1637 1089, 1638 /**/ 1639 1088, 1640 /**/ 1641 1087, 1642 /**/ 1643 1086, 1644 /**/ 1645 1085, 1646 /**/ 1647 1084, 1648 /**/ 1649 1083, 1650 /**/ 1651 1082, 1652 /**/ 1653 1081, 1654 /**/ 1655 1080, 1656 /**/ 1657 1079, 1658 /**/ 1659 1078, 1660 /**/ 1661 1077, 1662 /**/ 1663 1076, 1664 /**/ 1665 1075, 1666 /**/ 1667 1074, 1668 /**/ 1669 1073, 1670 /**/ 1671 1072, 1672 /**/ 1673 1071, 1674 /**/ 1675 1070, 1676 /**/ 1677 1069, 1678 /**/ 1679 1068, 1680 /**/ 1681 1067, 1682 /**/ 1683 1066, 1684 /**/ 1685 1065, 1686 /**/ 1687 1064, 1688 /**/ 1689 1063, 1690 /**/ 1691 1062, 1692 /**/ 1693 1061, 1694 /**/ 1695 1060, 1696 /**/ 1697 1059, 1698 /**/ 1699 1058, 1700 /**/ 1701 1057, 1702 /**/ 1703 1056, 1704 /**/ 1705 1055, 1706 /**/ 1707 1054, 1708 /**/ 1709 1053, 1710 /**/ 1711 1052, 1712 /**/ 1713 1051, 1714 /**/ 1715 1050, 1716 /**/ 1717 1049, 1718 /**/ 1719 1048, 1720 /**/ 1721 1047, 1722 /**/ 1723 1046, 1724 /**/ 1725 1045, 1726 /**/ 1727 1044, 1728 /**/ 1729 1043, 1730 /**/ 1731 1042, 1732 /**/ 1733 1041, 1734 /**/ 1735 1040, 1736 /**/ 1737 1039, 1738 /**/ 1739 1038, 1740 /**/ 1741 1037, 1742 /**/ 1743 1036, 1744 /**/ 1745 1035, 1746 /**/ 1747 1034, 1748 /**/ 1749 1033, 1750 /**/ 1751 1032, 1752 /**/ 1753 1031, 1754 /**/ 1755 1030, 1756 /**/ 1757 1029, 1758 /**/ 1759 1028, 1760 /**/ 1761 1027, 1762 /**/ 1763 1026, 1764 /**/ 1765 1025, 1766 /**/ 1767 1024, 1768 /**/ 1769 1023, 1770 /**/ 1771 1022, 1772 /**/ 1773 1021, 1774 /**/ 1775 1020, 1776 /**/ 1777 1019, 1778 /**/ 1779 1018, 1780 /**/ 1781 1017, 1782 /**/ 1783 1016, 1784 /**/ 1785 1015, 1786 /**/ 1787 1014, 1788 /**/ 1789 1013, 1790 /**/ 1791 1012, 1792 /**/ 1793 1011, 1794 /**/ 1795 1010, 1796 /**/ 1797 1009, 1798 /**/ 1799 1008, 1800 /**/ 1801 1007, 1802 /**/ 1803 1006, 1804 /**/ 1805 1005, 1806 /**/ 1807 1004, 1808 /**/ 1809 1003, 1810 /**/ 1811 1002, 1812 /**/ 1813 1001, 1814 /**/ 1815 1000, 1816 /**/ 1817 999, 1818 /**/ 1819 998, 1820 /**/ 1821 997, 1822 /**/ 1823 996, 1824 /**/ 1825 995, 1826 /**/ 1827 994, 1828 /**/ 1829 993, 1830 /**/ 1831 992, 1832 /**/ 1833 991, 1834 /**/ 1835 990, 1836 /**/ 1837 989, 1838 /**/ 1839 988, 1840 /**/ 1841 987, 1842 /**/ 1843 986, 1844 /**/ 1845 985, 1846 /**/ 1847 984, 1848 /**/ 1849 983, 1850 /**/ 1851 982, 1852 /**/ 1853 981, 1854 /**/ 1855 980, 1856 /**/ 1857 979, 1858 /**/ 1859 978, 1860 /**/ 1861 977, 1862 /**/ 1863 976, 1864 /**/ 1865 975, 1866 /**/ 1867 974, 1868 /**/ 1869 973, 1870 /**/ 1871 972, 1872 /**/ 1873 971, 1874 /**/ 1875 970, 1876 /**/ 1877 969, 1878 /**/ 1879 968, 1880 /**/ 1881 967, 1882 /**/ 1883 966, 1884 /**/ 1885 965, 1886 /**/ 1887 964, 1888 /**/ 1889 963, 1890 /**/ 1891 962, 1892 /**/ 1893 961, 1894 /**/ 1895 960, 1896 /**/ 1897 959, 1898 /**/ 1899 958, 1900 /**/ 1901 957, 1902 /**/ 1903 956, 1904 /**/ 1905 955, 1906 /**/ 1907 954, 1908 /**/ 1909 953, 1910 /**/ 1911 952, 1912 /**/ 1913 951, 1914 /**/ 1915 950, 1916 /**/ 1917 949, 1918 /**/ 1919 948, 1920 /**/ 1921 947, 1922 /**/ 1923 946, 1924 /**/ 1925 945, 1926 /**/ 1927 944, 1928 /**/ 1929 943, 1930 /**/ 1931 942, 1932 /**/ 1933 941, 1934 /**/ 1935 940, 1936 /**/ 1937 939, 1938 /**/ 1939 938, 1940 /**/ 1941 937, 1942 /**/ 1943 936, 1944 /**/ 1945 935, 1946 /**/ 1947 934, 1948 /**/ 1949 933, 1950 /**/ 1951 932, 1952 /**/ 1953 931, 1954 /**/ 1955 930, 1956 /**/ 1957 929, 1958 /**/ 1959 928, 1960 /**/ 1961 927, 1962 /**/ 1963 926, 1964 /**/ 1965 925, 1966 /**/ 1967 924, 1968 /**/ 1969 923, 1970 /**/ 1971 922, 1972 /**/ 1973 921, 1974 /**/ 1975 920, 1976 /**/ 1977 919, 1978 /**/ 1979 918, 1980 /**/ 1981 917, 1982 /**/ 1983 916, 1984 /**/ 1985 915, 1986 /**/ 1987 914, 1988 /**/ 1989 913, 1990 /**/ 1991 912, 1992 /**/ 1993 911, 1994 /**/ 1995 910, 1996 /**/ 1997 909, 1998 /**/ 1999 908, 2000 /**/ 2001 907, 2002 /**/ 2003 906, 2004 /**/ 2005 905, 2006 /**/ 2007 904, 2008 /**/ 2009 903, 2010 /**/ 2011 902, 2012 /**/ 2013 901, 2014 /**/ 2015 900, 2016 /**/ 2017 899, 2018 /**/ 2019 898, 2020 /**/ 2021 897, 2022 /**/ 2023 896, 2024 /**/ 2025 895, 2026 /**/ 2027 894, 2028 /**/ 2029 893, 2030 /**/ 2031 892, 2032 /**/ 2033 891, 2034 /**/ 2035 890, 2036 /**/ 2037 889, 2038 /**/ 2039 888, 2040 /**/ 2041 887, 2042 /**/ 2043 886, 2044 /**/ 2045 885, 2046 /**/ 2047 884, 2048 /**/ 2049 883, 2050 /**/ 2051 882, 2052 /**/ 2053 881, 2054 /**/ 2055 880, 2056 /**/ 2057 879, 2058 /**/ 2059 878, 2060 /**/ 2061 877, 2062 /**/ 2063 876, 2064 /**/ 2065 875, 2066 /**/ 2067 874, 2068 /**/ 2069 873, 2070 /**/ 2071 872, 2072 /**/ 2073 871, 2074 /**/ 2075 870, 2076 /**/ 2077 869, 2078 /**/ 2079 868, 2080 /**/ 2081 867, 2082 /**/ 2083 866, 2084 /**/ 2085 865, 2086 /**/ 2087 864, 2088 /**/ 2089 863, 2090 /**/ 2091 862, 2092 /**/ 2093 861, 2094 /**/ 2095 860, 2096 /**/ 2097 859, 2098 /**/ 2099 858, 2100 /**/ 2101 857, 2102 /**/ 2103 856, 2104 /**/ 2105 855, 2106 /**/ 2107 854, 2108 /**/ 2109 853, 2110 /**/ 2111 852, 2112 /**/ 2113 851, 2114 /**/ 2115 850, 2116 /**/ 2117 849, 2118 /**/ 2119 848, 2120 /**/ 2121 847, 2122 /**/ 2123 846, 2124 /**/ 2125 845, 2126 /**/ 2127 844, 2128 /**/ 2129 843, 2130 /**/ 2131 842, 2132 /**/ 2133 841, 2134 /**/ 2135 840, 2136 /**/ 2137 839, 2138 /**/ 2139 838, 2140 /**/ 2141 837, 2142 /**/ 2143 836, 2144 /**/ 2145 835, 2146 /**/ 2147 834, 2148 /**/ 2149 833, 2150 /**/ 2151 832, 2152 /**/ 2153 831, 2154 /**/ 2155 830, 2156 /**/ 2157 829, 2158 /**/ 2159 828, 2160 /**/ 2161 827, 2162 /**/ 2163 826, 2164 /**/ 2165 825, 2166 /**/ 2167 824, 2168 /**/ 2169 823, 2170 /**/ 2171 822, 2172 /**/ 2173 821, 2174 /**/ 2175 820, 2176 /**/ 2177 819, 2178 /**/ 2179 818, 2180 /**/ 2181 817, 2182 /**/ 2183 816, 2184 /**/ 2185 815, 2186 /**/ 2187 814, 2188 /**/ 2189 813, 2190 /**/ 2191 812, 2192 /**/ 2193 811, 2194 /**/ 2195 810, 2196 /**/ 2197 809, 2198 /**/ 2199 808, 2200 /**/ 2201 807, 2202 /**/ 2203 806, 2204 /**/ 2205 805, 2206 /**/ 2207 804, 2208 /**/ 2209 803, 2210 /**/ 2211 802, 2212 /**/ 2213 801, 2214 /**/ 2215 800, 2216 /**/ 2217 799, 2218 /**/ 2219 798, 2220 /**/ 2221 797, 2222 /**/ 2223 796, 2224 /**/ 2225 795, 2226 /**/ 2227 794, 2228 /**/ 2229 793, 2230 /**/ 2231 792, 2232 /**/ 2233 791, 2234 /**/ 2235 790, 2236 /**/ 2237 789, 2238 /**/ 2239 788, 2240 /**/ 2241 787, 2242 /**/ 2243 786, 2244 /**/ 2245 785, 2246 /**/ 2247 784, 2248 /**/ 2249 783, 2250 /**/ 2251 782, 2252 /**/ 2253 781, 2254 /**/ 2255 780, 2256 /**/ 2257 779, 2258 /**/ 2259 778, 2260 /**/ 2261 777, 2262 /**/ 2263 776, 2264 /**/ 2265 775, 2266 /**/ 2267 774, 2268 /**/ 2269 773, 2270 /**/ 2271 772, 2272 /**/ 2273 771, 2274 /**/ 2275 770, 2276 /**/ 2277 769, 2278 /**/ 2279 768, 2280 /**/ 2281 767, 2282 /**/ 2283 766, 2284 /**/ 2285 765, 2286 /**/ 2287 764, 2288 /**/ 2289 763, 2290 /**/ 2291 762, 2292 /**/ 2293 761, 2294 /**/ 2295 760, 2296 /**/ 2297 759, 2298 /**/ 2299 758, 2300 /**/ 2301 757, 2302 /**/ 2303 756, 2304 /**/ 2305 755, 2306 /**/ 2307 754, 2308 /**/ 2309 753, 2310 /**/ 2311 752, 2312 /**/ 2313 751, 2314 /**/ 2315 750, 2316 /**/ 2317 749, 2318 /**/ 2319 748, 2320 /**/ 2321 747, 2322 /**/ 2323 746, 2324 /**/ 2325 745, 2326 /**/ 2327 744, 2328 /**/ 2329 743, 2330 /**/ 2331 742, 2332 /**/ 2333 741, 2334 /**/ 2335 740, 2336 /**/ 2337 739, 2338 /**/ 2339 738, 2340 /**/ 2341 737, 2342 /**/ 2343 736, 2344 /**/ 2345 735, 2346 /**/ 2347 734, 2348 /**/ 2349 733, 2350 /**/ 2351 732, 2352 /**/ 2353 731, 2354 /**/ 2355 730, 2356 /**/ 2357 729, 2358 /**/ 2359 728, 2360 /**/ 2361 727, 2362 /**/ 2363 726, 2364 /**/ 2365 725, 2366 /**/ 2367 724, 2368 /**/ 2369 723, 2370 /**/ 2371 722, 2372 /**/ 2373 721, 2374 /**/ 2375 720, 2376 /**/ 2377 719, 2378 /**/ 2379 718, 2380 /**/ 2381 717, 2382 /**/ 2383 716, 2384 /**/ 2385 715, 2386 /**/ 2387 714, 2388 /**/ 2389 713, 2390 /**/ 2391 712, 2392 /**/ 2393 711, 2394 /**/ 2395 710, 2396 /**/ 2397 709, 2398 /**/ 2399 708, 2400 /**/ 2401 707, 2402 /**/ 2403 706, 2404 /**/ 2405 705, 2406 /**/ 2407 704, 2408 /**/ 2409 703, 2410 /**/ 2411 702, 2412 /**/ 2413 701, 2414 /**/ 2415 700, 2416 /**/ 2417 699, 2418 /**/ 2419 698, 2420 /**/ 2421 697, 2422 /**/ 2423 696, 2424 /**/ 2425 695, 2426 /**/ 2427 694, 2428 /**/ 2429 693, 2430 /**/ 2431 692, 2432 /**/ 2433 691, 2434 /**/ 2435 690, 2436 /**/ 2437 689, 2438 /**/ 2439 688, 2440 /**/ 2441 687, 2442 /**/ 2443 686, 2444 /**/ 2445 685, 2446 /**/ 2447 684, 2448 /**/ 2449 683, 2450 /**/ 2451 682, 2452 /**/ 2453 681, 2454 /**/ 2455 680, 2456 /**/ 2457 679, 2458 /**/ 2459 678, 2460 /**/ 2461 677, 2462 /**/ 2463 676, 2464 /**/ 2465 675, 2466 /**/ 2467 674, 2468 /**/ 2469 673, 2470 /**/ 2471 672, 2472 /**/ 2473 671, 2474 /**/ 2475 670, 2476 /**/ 2477 669, 2478 /**/ 2479 668, 2480 /**/ 2481 667, 2482 /**/ 2483 666, 2484 /**/ 2485 665, 2486 /**/ 2487 664, 2488 /**/ 2489 663, 2490 /**/ 2491 662, 2492 /**/ 2493 661, 2494 /**/ 2495 660, 2496 /**/ 2497 659, 2498 /**/ 2499 658, 2500 /**/ 2501 657, 2502 /**/ 2503 656, 2504 /**/ 2505 655, 2506 /**/ 2507 654, 2508 /**/ 2509 653, 2510 /**/ 2511 652, 2512 /**/ 2513 651, 2514 /**/ 2515 650, 2516 /**/ 2517 649, 2518 /**/ 2519 648, 2520 /**/ 2521 647, 2522 /**/ 2523 646, 2524 /**/ 2525 645, 2526 /**/ 2527 644, 2528 /**/ 2529 643, 2530 /**/ 2531 642, 2532 /**/ 2533 641, 2534 /**/ 2535 640, 2536 /**/ 2537 639, 2538 /**/ 2539 638, 2540 /**/ 2541 637, 2542 /**/ 2543 636, 2544 /**/ 2545 635, 2546 /**/ 2547 634, 2548 /**/ 2549 633, 2550 /**/ 2551 632, 2552 /**/ 2553 631, 2554 /**/ 2555 630, 2556 /**/ 2557 629, 2558 /**/ 2559 628, 2560 /**/ 2561 627, 2562 /**/ 2563 626, 2564 /**/ 2565 625, 2566 /**/ 2567 624, 2568 /**/ 2569 623, 2570 /**/ 2571 622, 2572 /**/ 2573 621, 2574 /**/ 2575 620, 2576 /**/ 2577 619, 2578 /**/ 2579 618, 2580 /**/ 2581 617, 2582 /**/ 2583 616, 2584 /**/ 2585 615, 2586 /**/ 2587 614, 2588 /**/ 2589 613, 2590 /**/ 2591 612, 2592 /**/ 2593 611, 2594 /**/ 2595 610, 2596 /**/ 2597 609, 2598 /**/ 2599 608, 2600 /**/ 2601 607, 2602 /**/ 2603 606, 2604 /**/ 2605 605, 2606 /**/ 2607 604, 2608 /**/ 2609 603, 2610 /**/ 2611 602, 2612 /**/ 2613 601, 2614 /**/ 2615 600, 2616 /**/ 2617 599, 2618 /**/ 2619 598, 2620 /**/ 2621 597, 2622 /**/ 2623 596, 2624 /**/ 2625 595, 2626 /**/ 2627 594, 2628 /**/ 2629 593, 2630 /**/ 2631 592, 2632 /**/ 2633 591, 2634 /**/ 2635 590, 2636 /**/ 2637 589, 2638 /**/ 2639 588, 2640 /**/ 2641 587, 2642 /**/ 2643 586, 2644 /**/ 2645 585, 2646 /**/ 2647 584, 2648 /**/ 2649 583, 2650 /**/ 2651 582, 2652 /**/ 2653 581, 2654 /**/ 2655 580, 2656 /**/ 2657 579, 2658 /**/ 2659 578, 2660 /**/ 2661 577, 2662 /**/ 2663 576, 2664 /**/ 2665 575, 2666 /**/ 2667 574, 2668 /**/ 2669 573, 2670 /**/ 2671 572, 2672 /**/ 2673 571, 2674 /**/ 2675 570, 2676 /**/ 2677 569, 2678 /**/ 2679 568, 2680 /**/ 2681 567, 2682 /**/ 2683 566, 2684 /**/ 2685 565, 2686 /**/ 2687 564, 2688 /**/ 2689 563, 2690 /**/ 2691 562, 2692 /**/ 2693 561, 2694 /**/ 2695 560, 2696 /**/ 2697 559, 2698 /**/ 2699 558, 2700 /**/ 2701 557, 2702 /**/ 2703 556, 2704 /**/ 2705 555, 2706 /**/ 2707 554, 2708 /**/ 2709 553, 2710 /**/ 2711 552, 2712 /**/ 2713 551, 2714 /**/ 2715 550, 2716 /**/ 2717 549, 2718 /**/ 2719 548, 2720 /**/ 2721 547, 2722 /**/ 2723 546, 2724 /**/ 2725 545, 2726 /**/ 2727 544, 2728 /**/ 2729 543, 2730 /**/ 2731 542, 2732 /**/ 2733 541, 2734 /**/ 2735 540, 2736 /**/ 2737 539, 2738 /**/ 2739 538, 2740 /**/ 2741 537, 2742 /**/ 2743 536, 2744 /**/ 2745 535, 2746 /**/ 2747 534, 2748 /**/ 2749 533, 2750 /**/ 2751 532, 2752 /**/ 2753 531, 2754 /**/ 2755 530, 2756 /**/ 2757 529, 2758 /**/ 2759 528, 2760 /**/ 2761 527, 2762 /**/ 2763 526, 2764 /**/ 2765 525, 2766 /**/ 2767 524, 2768 /**/ 2769 523, 2770 /**/ 2771 522, 2772 /**/ 2773 521, 2774 /**/ 2775 520, 2776 /**/ 2777 519, 2778 /**/ 2779 518, 2780 /**/ 2781 517, 2782 /**/ 2783 516, 2784 /**/ 2785 515, 2786 /**/ 2787 514, 2788 /**/ 2789 513, 2790 /**/ 2791 512, 2792 /**/ 2793 511, 2794 /**/ 2795 510, 2796 /**/ 2797 509, 2798 /**/ 2799 508, 2800 /**/ 2801 507, 2802 /**/ 2803 506, 2804 /**/ 2805 505, 2806 /**/ 2807 504, 2808 /**/ 2809 503, 2810 /**/ 2811 502, 2812 /**/ 2813 501, 2814 /**/ 2815 500, 2816 /**/ 2817 499, 2818 /**/ 2819 498, 2820 /**/ 2821 497, 2822 /**/ 2823 496, 2824 /**/ 2825 495, 2826 /**/ 2827 494, 2828 /**/ 2829 493, 2830 /**/ 2831 492, 2832 /**/ 2833 491, 2834 /**/ 2835 490, 2836 /**/ 2837 489, 2838 /**/ 2839 488, 2840 /**/ 2841 487, 2842 /**/ 2843 486, 2844 /**/ 2845 485, 2846 /**/ 2847 484, 2848 /**/ 2849 483, 2850 /**/ 2851 482, 2852 /**/ 2853 481, 2854 /**/ 2855 480, 2856 /**/ 2857 479, 2858 /**/ 2859 478, 2860 /**/ 2861 477, 2862 /**/ 2863 476, 2864 /**/ 2865 475, 2866 /**/ 2867 474, 2868 /**/ 2869 473, 2870 /**/ 2871 472, 2872 /**/ 2873 471, 2874 /**/ 2875 470, 2876 /**/ 2877 469, 2878 /**/ 2879 468, 2880 /**/ 2881 467, 2882 /**/ 2883 466, 2884 /**/ 2885 465, 2886 /**/ 2887 464, 2888 /**/ 2889 463, 2890 /**/ 2891 462, 2892 /**/ 2893 461, 2894 /**/ 2895 460, 2896 /**/ 2897 459, 2898 /**/ 2899 458, 2900 /**/ 2901 457, 2902 /**/ 2903 456, 2904 /**/ 2905 455, 2906 /**/ 2907 454, 2908 /**/ 2909 453, 2910 /**/ 2911 452, 2912 /**/ 2913 451, 2914 /**/ 2915 450, 2916 /**/ 2917 449, 2918 /**/ 2919 448, 2920 /**/ 2921 447, 2922 /**/ 2923 446, 2924 /**/ 2925 445, 2926 /**/ 2927 444, 2928 /**/ 2929 443, 2930 /**/ 2931 442, 2932 /**/ 2933 441, 2934 /**/ 2935 440, 2936 /**/ 2937 439, 2938 /**/ 2939 438, 2940 /**/ 2941 437, 2942 /**/ 2943 436, 2944 /**/ 2945 435, 2946 /**/ 2947 434, 2948 /**/ 2949 433, 2950 /**/ 2951 432, 2952 /**/ 2953 431, 2954 /**/ 2955 430, 2956 /**/ 2957 429, 2958 /**/ 2959 428, 2960 /**/ 2961 427, 2962 /**/ 2963 426, 2964 /**/ 2965 425, 2966 /**/ 2967 424, 2968 /**/ 2969 423, 2970 /**/ 2971 422, 2972 /**/ 2973 421, 2974 /**/ 2975 420, 2976 /**/ 2977 419, 2978 /**/ 2979 418, 2980 /**/ 2981 417, 2982 /**/ 2983 416, 2984 /**/ 2985 415, 2986 /**/ 2987 414, 2988 /**/ 2989 413, 2990 /**/ 2991 412, 2992 /**/ 2993 411, 2994 /**/ 2995 410, 2996 /**/ 2997 409, 2998 /**/ 2999 408, 3000 /**/ 3001 407, 3002 /**/ 3003 406, 3004 /**/ 3005 405, 3006 /**/ 3007 404, 3008 /**/ 3009 403, 3010 /**/ 3011 402, 3012 /**/ 3013 401, 3014 /**/ 3015 400, 3016 /**/ 3017 399, 3018 /**/ 3019 398, 3020 /**/ 3021 397, 3022 /**/ 3023 396, 3024 /**/ 3025 395, 3026 /**/ 3027 394, 3028 /**/ 3029 393, 3030 /**/ 3031 392, 3032 /**/ 3033 391, 3034 /**/ 3035 390, 3036 /**/ 3037 389, 3038 /**/ 3039 388, 3040 /**/ 3041 387, 3042 /**/ 3043 386, 3044 /**/ 3045 385, 3046 /**/ 3047 384, 3048 /**/ 3049 383, 3050 /**/ 3051 382, 3052 /**/ 3053 381, 3054 /**/ 3055 380, 3056 /**/ 3057 379, 3058 /**/ 3059 378, 3060 /**/ 3061 377, 3062 /**/ 3063 376, 3064 /**/ 3065 375, 3066 /**/ 3067 374, 3068 /**/ 3069 373, 3070 /**/ 3071 372, 3072 /**/ 3073 371, 3074 /**/ 3075 370, 3076 /**/ 3077 369, 3078 /**/ 3079 368, 3080 /**/ 3081 367, 3082 /**/ 3083 366, 3084 /**/ 3085 365, 3086 /**/ 3087 364, 3088 /**/ 3089 363, 3090 /**/ 3091 362, 3092 /**/ 3093 361, 3094 /**/ 3095 360, 3096 /**/ 3097 359, 3098 /**/ 3099 358, 3100 /**/ 3101 357, 3102 /**/ 3103 356, 3104 /**/ 3105 355, 3106 /**/ 3107 354, 3108 /**/ 3109 353, 3110 /**/ 3111 352, 3112 /**/ 3113 351, 3114 /**/ 3115 350, 3116 /**/ 3117 349, 3118 /**/ 3119 348, 3120 /**/ 3121 347, 3122 /**/ 3123 346, 3124 /**/ 3125 345, 3126 /**/ 3127 344, 3128 /**/ 3129 343, 3130 /**/ 3131 342, 3132 /**/ 3133 341, 3134 /**/ 3135 340, 3136 /**/ 3137 339, 3138 /**/ 3139 338, 3140 /**/ 3141 337, 3142 /**/ 3143 336, 3144 /**/ 3145 335, 3146 /**/ 3147 334, 3148 /**/ 3149 333, 3150 /**/ 3151 332, 3152 /**/ 3153 331, 3154 /**/ 3155 330, 3156 /**/ 3157 329, 3158 /**/ 3159 328, 3160 /**/ 3161 327, 3162 /**/ 3163 326, 3164 /**/ 3165 325, 3166 /**/ 3167 324, 3168 /**/ 3169 323, 3170 /**/ 3171 322, 3172 /**/ 3173 321, 3174 /**/ 3175 320, 3176 /**/ 3177 319, 3178 /**/ 3179 318, 3180 /**/ 3181 317, 3182 /**/ 3183 316, 3184 /**/ 3185 315, 3186 /**/ 3187 314, 3188 /**/ 3189 313, 3190 /**/ 3191 312, 3192 /**/ 3193 311, 3194 /**/ 3195 310, 3196 /**/ 3197 309, 3198 /**/ 3199 308, 3200 /**/ 3201 307, 3202 /**/ 3203 306, 3204 /**/ 3205 305, 3206 /**/ 3207 304, 3208 /**/ 3209 303, 3210 /**/ 3211 302, 3212 /**/ 3213 301, 3214 /**/ 3215 300, 3216 /**/ 3217 299, 3218 /**/ 3219 298, 3220 /**/ 3221 297, 3222 /**/ 3223 296, 3224 /**/ 3225 295, 3226 /**/ 3227 294, 3228 /**/ 3229 293, 3230 /**/ 3231 292, 3232 /**/ 3233 291, 3234 /**/ 3235 290, 3236 /**/ 3237 289, 3238 /**/ 3239 288, 3240 /**/ 3241 287, 3242 /**/ 3243 286, 3244 /**/ 3245 285, 3246 /**/ 3247 284, 3248 /**/ 3249 283, 3250 /**/ 3251 282, 3252 /**/ 3253 281, 3254 /**/ 3255 280, 3256 /**/ 3257 279, 3258 /**/ 3259 278, 3260 /**/ 3261 277, 3262 /**/ 3263 276, 3264 /**/ 3265 275, 3266 /**/ 3267 274, 3268 /**/ 3269 273, 3270 /**/ 3271 272, 3272 /**/ 3273 271, 3274 /**/ 3275 270, 3276 /**/ 3277 269, 3278 /**/ 3279 268, 3280 /**/ 3281 267, 3282 /**/ 3283 266, 3284 /**/ 3285 265, 3286 /**/ 3287 264, 3288 /**/ 3289 263, 3290 /**/ 3291 262, 3292 /**/ 3293 261, 3294 /**/ 3295 260, 3296 /**/ 3297 259, 3298 /**/ 3299 258, 3300 /**/ 3301 257, 3302 /**/ 3303 256, 3304 /**/ 3305 255, 3306 /**/ 3307 254, 3308 /**/ 3309 253, 3310 /**/ 3311 252, 3312 /**/ 3313 251, 3314 /**/ 3315 250, 3316 /**/ 3317 249, 3318 /**/ 3319 248, 3320 /**/ 3321 247, 3322 /**/ 3323 246, 3324 /**/ 3325 245, 3326 /**/ 3327 244, 3328 /**/ 3329 243, 3330 /**/ 3331 242, 3332 /**/ 3333 241, 3334 /**/ 3335 240, 3336 /**/ 3337 239, 3338 /**/ 3339 238, 3340 /**/ 3341 237, 3342 /**/ 3343 236, 3344 /**/ 3345 235, 3346 /**/ 3347 234, 3348 /**/ 3349 233, 3350 /**/ 3351 232, 3352 /**/ 3353 231, 3354 /**/ 3355 230, 3356 /**/ 3357 229, 3358 /**/ 3359 228, 3360 /**/ 3361 227, 3362 /**/ 3363 226, 3364 /**/ 3365 225, 3366 /**/ 3367 224, 3368 /**/ 3369 223, 3370 /**/ 3371 222, 3372 /**/ 3373 221, 3374 /**/ 3375 220, 3376 /**/ 3377 219, 3378 /**/ 3379 218, 3380 /**/ 3381 217, 3382 /**/ 3383 216, 3384 /**/ 3385 215, 3386 /**/ 3387 214, 3388 /**/ 3389 213, 3390 /**/ 3391 212, 3392 /**/ 3393 211, 3394 /**/ 3395 210, 3396 /**/ 3397 209, 3398 /**/ 3399 208, 3400 /**/ 3401 207, 3402 /**/ 3403 206, 3404 /**/ 3405 205, 3406 /**/ 3407 204, 3408 /**/ 3409 203, 3410 /**/ 3411 202, 3412 /**/ 3413 201, 3414 /**/ 3415 200, 3416 /**/ 3417 199, 3418 /**/ 3419 198, 3420 /**/ 3421 197, 3422 /**/ 3423 196, 3424 /**/ 3425 195, 3426 /**/ 3427 194, 3428 /**/ 3429 193, 3430 /**/ 3431 192, 3432 /**/ 3433 191, 3434 /**/ 3435 190, 3436 /**/ 3437 189, 3438 /**/ 3439 188, 3440 /**/ 3441 187, 3442 /**/ 3443 186, 3444 /**/ 3445 185, 3446 /**/ 3447 184, 3448 /**/ 3449 183, 3450 /**/ 3451 182, 3452 /**/ 3453 181, 3454 /**/ 3455 180, 3456 /**/ 3457 179, 3458 /**/ 3459 178, 3460 /**/ 3461 177, 3462 /**/ 3463 176, 3464 /**/ 3465 175, 3466 /**/ 3467 174, 3468 /**/ 3469 173, 3470 /**/ 3471 172, 3472 /**/ 3473 171, 3474 /**/ 3475 170, 3476 /**/ 3477 169, 3478 /**/ 3479 168, 3480 /**/ 3481 167, 3482 /**/ 3483 166, 3484 /**/ 3485 165, 3486 /**/ 3487 164, 3488 /**/ 3489 163, 3490 /**/ 3491 162, 3492 /**/ 3493 161, 3494 /**/ 3495 160, 3496 /**/ 3497 159, 3498 /**/ 3499 158, 3500 /**/ 3501 157, 3502 /**/ 3503 156, 3504 /**/ 3505 155, 3506 /**/ 3507 154, 3508 /**/ 3509 153, 3510 /**/ 3511 152, 3512 /**/ 3513 151, 3514 /**/ 3515 150, 3516 /**/ 3517 149, 3518 /**/ 3519 148, 3520 /**/ 3521 147, 3522 /**/ 3523 146, 3524 /**/ 3525 145, 3526 /**/ 3527 144, 3528 /**/ 3529 143, 3530 /**/ 3531 142, 3532 /**/ 3533 141, 3534 /**/ 3535 140, 3536 /**/ 3537 139, 3538 /**/ 3539 138, 3540 /**/ 3541 137, 3542 /**/ 3543 136, 3544 /**/ 3545 135, 3546 /**/ 3547 134, 3548 /**/ 3549 133, 3550 /**/ 3551 132, 3552 /**/ 3553 131, 3554 /**/ 3555 130, 3556 /**/ 3557 129, 3558 /**/ 3559 128, 3560 /**/ 3561 127, 3562 /**/ 3563 126, 3564 /**/ 3565 125, 3566 /**/ 3567 124, 3568 /**/ 3569 123, 3570 /**/ 3571 122, 3572 /**/ 3573 121, 3574 /**/ 3575 120, 3576 /**/ 3577 119, 3578 /**/ 3579 118, 3580 /**/ 3581 117, 3582 /**/ 3583 116, 3584 /**/ 3585 115, 3586 /**/ 3587 114, 3588 /**/ 3589 113, 3590 /**/ 3591 112, 3592 /**/ 3593 111, 3594 /**/ 3595 110, 3596 /**/ 3597 109, 3598 /**/ 3599 108, 3600 /**/ 3601 107, 3602 /**/ 3603 106, 3604 /**/ 3605 105, 3606 /**/ 3607 104, 3608 /**/ 3609 103, 3610 /**/ 3611 102, 3612 /**/ 3613 101, 3614 /**/ 3615 100, 3616 /**/ 3617 99, 3618 /**/ 3619 98, 3620 /**/ 3621 97, 3622 /**/ 3623 96, 3624 /**/ 3625 95, 3626 /**/ 3627 94, 3628 /**/ 3629 93, 3630 /**/ 3631 92, 3632 /**/ 3633 91, 3634 /**/ 3635 90, 3636 /**/ 3637 89, 3638 /**/ 3639 88, 3640 /**/ 3641 87, 3642 /**/ 3643 86, 3644 /**/ 3645 85, 3646 /**/ 3647 84, 3648 /**/ 3649 83, 3650 /**/ 3651 82, 3652 /**/ 3653 81, 3654 /**/ 3655 80, 3656 /**/ 3657 79, 3658 /**/ 3659 78, 3660 /**/ 3661 77, 3662 /**/ 3663 76, 3664 /**/ 3665 75, 3666 /**/ 3667 74, 3668 /**/ 3669 73, 3670 /**/ 3671 72, 3672 /**/ 3673 71, 3674 /**/ 3675 70, 3676 /**/ 3677 69, 3678 /**/ 3679 68, 3680 /**/ 3681 67, 3682 /**/ 3683 66, 3684 /**/ 3685 65, 3686 /**/ 3687 64, 3688 /**/ 3689 63, 3690 /**/ 3691 62, 3692 /**/ 3693 61, 3694 /**/ 3695 60, 3696 /**/ 3697 59, 3698 /**/ 3699 58, 3700 /**/ 3701 57, 3702 /**/ 3703 56, 3704 /**/ 3705 55, 3706 /**/ 3707 54, 3708 /**/ 3709 53, 3710 /**/ 3711 52, 3712 /**/ 3713 51, 3714 /**/ 3715 50, 3716 /**/ 3717 49, 3718 /**/ 3719 48, 3720 /**/ 3721 47, 3722 /**/ 3723 46, 3724 /**/ 3725 45, 3726 /**/ 3727 44, 3728 /**/ 3729 43, 3730 /**/ 3731 42, 3732 /**/ 3733 41, 3734 /**/ 3735 40, 3736 /**/ 3737 39, 3738 /**/ 3739 38, 3740 /**/ 3741 37, 3742 /**/ 3743 36, 3744 /**/ 3745 35, 3746 /**/ 3747 34, 3748 /**/ 3749 33, 3750 /**/ 3751 32, 3752 /**/ 3753 31, 3754 /**/ 3755 30, 3756 /**/ 3757 29, 3758 /**/ 3759 28, 3760 /**/ 3761 27, 3762 /**/ 3763 26, 3764 /**/ 3765 25, 3766 /**/ 3767 24, 3768 /**/ 3769 23, 3770 /**/ 3771 22, 3772 /**/ 3773 21, 3774 /**/ 3775 20, 3776 /**/ 3777 19, 3778 /**/ 3779 18, 3780 /**/ 3781 17, 3782 /**/ 3783 16, 3784 /**/ 3785 15, 3786 /**/ 3787 14, 3788 /**/ 3789 13, 3790 /**/ 3791 12, 3792 /**/ 3793 11, 3794 /**/ 3795 10, 3796 /**/ 3797 9, 3798 /**/ 3799 8, 3800 /**/ 3801 7, 3802 /**/ 3803 6, 3804 /**/ 3805 5, 3806 /**/ 3807 4, 3808 /**/ 3809 3, 3810 /**/ 3811 2, 3812 /**/ 3813 1, 3814 /**/ 3815 0 3816 }; 3817 3818 /* 3819 * Place to put a short description when adding a feature with a patch. 3820 * Keep it short, e.g.,: "relative numbers", "persistent undo". 3821 * Also add a comment marker to separate the lines. 3822 * See the official Vim patches for the diff format: It must use a context of 3823 * one line only. Create it by hand or use "diff -C2" and edit the patch. 3824 */ 3825 static char *(extra_patches[]) = 3826 { /* Add your patch description below this line */ 3827 /**/ 3828 NULL 3829 }; 3830 3831 int 3832 highest_patch(void) 3833 { 3834 int i; 3835 int h = 0; 3836 3837 for (i = 0; included_patches[i] != 0; ++i) 3838 if (included_patches[i] > h) 3839 h = included_patches[i]; 3840 return h; 3841 } 3842 3843 #if defined(FEAT_EVAL) || defined(PROTO) 3844 /* 3845 * Return TRUE if patch "n" has been included. 3846 */ 3847 int 3848 has_patch(int n) 3849 { 3850 int i; 3851 3852 for (i = 0; included_patches[i] != 0; ++i) 3853 if (included_patches[i] == n) 3854 return TRUE; 3855 return FALSE; 3856 } 3857 #endif 3858 3859 void 3860 ex_version(exarg_T *eap) 3861 { 3862 /* 3863 * Ignore a ":version 9.99" command. 3864 */ 3865 if (*eap->arg == NUL) 3866 { 3867 msg_putchar('\n'); 3868 list_version(); 3869 } 3870 } 3871 3872 /* 3873 * Output a string for the version message. If it's going to wrap, output a 3874 * newline, unless the message is too long to fit on the screen anyway. 3875 * When "wrap" is TRUE wrap the string in []. 3876 */ 3877 static void 3878 version_msg_wrap(char_u *s, int wrap) 3879 { 3880 int len = (int)vim_strsize(s) + (wrap ? 2 : 0); 3881 3882 if (!got_int && len < (int)Columns && msg_col + len >= (int)Columns 3883 && *s != '\n') 3884 msg_putchar('\n'); 3885 if (!got_int) 3886 { 3887 if (wrap) 3888 msg_puts("["); 3889 msg_puts((char *)s); 3890 if (wrap) 3891 msg_puts("]"); 3892 } 3893 } 3894 3895 static void 3896 version_msg(char *s) 3897 { 3898 version_msg_wrap((char_u *)s, FALSE); 3899 } 3900 3901 /* 3902 * List all features aligned in columns, dictionary style. 3903 */ 3904 static void 3905 list_features(void) 3906 { 3907 list_in_columns((char_u **)features, -1, -1); 3908 } 3909 3910 /* 3911 * List string items nicely aligned in columns. 3912 * When "size" is < 0 then the last entry is marked with NULL. 3913 * The entry with index "current" is inclosed in []. 3914 */ 3915 void 3916 list_in_columns(char_u **items, int size, int current) 3917 { 3918 int i; 3919 int ncol; 3920 int nrow; 3921 int item_count = 0; 3922 int width = 0; 3923 #ifdef FEAT_SYN_HL 3924 int use_highlight = (items == (char_u **)features); 3925 #endif 3926 3927 /* Find the length of the longest item, use that + 1 as the column 3928 * width. */ 3929 for (i = 0; size < 0 ? items[i] != NULL : i < size; ++i) 3930 { 3931 int l = (int)vim_strsize(items[i]) + (i == current ? 2 : 0); 3932 3933 if (l > width) 3934 width = l; 3935 ++item_count; 3936 } 3937 width += 1; 3938 3939 if (Columns < width) 3940 { 3941 /* Not enough screen columns - show one per line */ 3942 for (i = 0; i < item_count; ++i) 3943 { 3944 version_msg_wrap(items[i], i == current); 3945 if (msg_col > 0) 3946 msg_putchar('\n'); 3947 } 3948 return; 3949 } 3950 3951 /* The rightmost column doesn't need a separator. 3952 * Sacrifice it to fit in one more column if possible. */ 3953 ncol = (int) (Columns + 1) / width; 3954 nrow = item_count / ncol + (item_count % ncol ? 1 : 0); 3955 3956 /* i counts columns then rows. idx counts rows then columns. */ 3957 for (i = 0; !got_int && i < nrow * ncol; ++i) 3958 { 3959 int idx = (i / ncol) + (i % ncol) * nrow; 3960 3961 if (idx < item_count) 3962 { 3963 int last_col = (i + 1) % ncol == 0; 3964 3965 if (idx == current) 3966 msg_putchar('['); 3967 #ifdef FEAT_SYN_HL 3968 if (use_highlight && items[idx][0] == '-') 3969 msg_puts_attr((char *)items[idx], HL_ATTR(HLF_W)); 3970 else 3971 #endif 3972 msg_puts((char *)items[idx]); 3973 if (idx == current) 3974 msg_putchar(']'); 3975 if (last_col) 3976 { 3977 if (msg_col > 0) 3978 msg_putchar('\n'); 3979 } 3980 else 3981 { 3982 while (msg_col % width) 3983 msg_putchar(' '); 3984 } 3985 } 3986 else 3987 { 3988 if (msg_col > 0) 3989 msg_putchar('\n'); 3990 } 3991 } 3992 } 3993 3994 void 3995 list_version(void) 3996 { 3997 int i; 3998 int first; 3999 char *s = ""; 4000 4001 /* 4002 * When adding features here, don't forget to update the list of 4003 * internal variables in eval.c! 4004 */ 4005 init_longVersion(); 4006 msg(longVersion); 4007 #ifdef MSWIN 4008 # ifdef FEAT_GUI_MSWIN 4009 # ifdef VIMDLL 4010 # ifdef _WIN64 4011 msg_puts(_("\nMS-Windows 64-bit GUI/console version")); 4012 # else 4013 msg_puts(_("\nMS-Windows 32-bit GUI/console version")); 4014 # endif 4015 # else 4016 # ifdef _WIN64 4017 msg_puts(_("\nMS-Windows 64-bit GUI version")); 4018 # else 4019 msg_puts(_("\nMS-Windows 32-bit GUI version")); 4020 # endif 4021 # endif 4022 # ifdef FEAT_OLE 4023 msg_puts(_(" with OLE support")); 4024 # endif 4025 # else 4026 # ifdef _WIN64 4027 msg_puts(_("\nMS-Windows 64-bit console version")); 4028 # else 4029 msg_puts(_("\nMS-Windows 32-bit console version")); 4030 # endif 4031 # endif 4032 #endif 4033 #if defined(MACOS_X) 4034 # if defined(MACOS_X_DARWIN) 4035 msg_puts(_("\nmacOS version")); 4036 # else 4037 msg_puts(_("\nmacOS version w/o darwin feat.")); 4038 # endif 4039 #endif 4040 4041 #ifdef VMS 4042 msg_puts(_("\nOpenVMS version")); 4043 # ifdef HAVE_PATHDEF 4044 if (*compiled_arch != NUL) 4045 { 4046 msg_puts(" - "); 4047 msg_puts((char *)compiled_arch); 4048 } 4049 # endif 4050 4051 #endif 4052 4053 /* Print the list of patch numbers if there is at least one. */ 4054 /* Print a range when patches are consecutive: "1-10, 12, 15-40, 42-45" */ 4055 if (included_patches[0] != 0) 4056 { 4057 msg_puts(_("\nIncluded patches: ")); 4058 first = -1; 4059 /* find last one */ 4060 for (i = 0; included_patches[i] != 0; ++i) 4061 ; 4062 while (--i >= 0) 4063 { 4064 if (first < 0) 4065 first = included_patches[i]; 4066 if (i == 0 || included_patches[i - 1] != included_patches[i] + 1) 4067 { 4068 msg_puts(s); 4069 s = ", "; 4070 msg_outnum((long)first); 4071 if (first != included_patches[i]) 4072 { 4073 msg_puts("-"); 4074 msg_outnum((long)included_patches[i]); 4075 } 4076 first = -1; 4077 } 4078 } 4079 } 4080 4081 /* Print the list of extra patch descriptions if there is at least one. */ 4082 if (extra_patches[0] != NULL) 4083 { 4084 msg_puts(_("\nExtra patches: ")); 4085 s = ""; 4086 for (i = 0; extra_patches[i] != NULL; ++i) 4087 { 4088 msg_puts(s); 4089 s = ", "; 4090 msg_puts(extra_patches[i]); 4091 } 4092 } 4093 4094 #ifdef MODIFIED_BY 4095 msg_puts("\n"); 4096 msg_puts(_("Modified by ")); 4097 msg_puts(MODIFIED_BY); 4098 #endif 4099 4100 #ifdef HAVE_PATHDEF 4101 if (*compiled_user != NUL || *compiled_sys != NUL) 4102 { 4103 msg_puts(_("\nCompiled ")); 4104 if (*compiled_user != NUL) 4105 { 4106 msg_puts(_("by ")); 4107 msg_puts((char *)compiled_user); 4108 } 4109 if (*compiled_sys != NUL) 4110 { 4111 msg_puts("@"); 4112 msg_puts((char *)compiled_sys); 4113 } 4114 } 4115 #endif 4116 4117 #ifdef FEAT_HUGE 4118 msg_puts(_("\nHuge version ")); 4119 #else 4120 # ifdef FEAT_BIG 4121 msg_puts(_("\nBig version ")); 4122 # else 4123 # ifdef FEAT_NORMAL 4124 msg_puts(_("\nNormal version ")); 4125 # else 4126 # ifdef FEAT_SMALL 4127 msg_puts(_("\nSmall version ")); 4128 # else 4129 msg_puts(_("\nTiny version ")); 4130 # endif 4131 # endif 4132 # endif 4133 #endif 4134 #ifndef FEAT_GUI 4135 msg_puts(_("without GUI.")); 4136 #else 4137 # ifdef FEAT_GUI_GTK 4138 # ifdef USE_GTK3 4139 msg_puts(_("with GTK3 GUI.")); 4140 # else 4141 # ifdef FEAT_GUI_GNOME 4142 msg_puts(_("with GTK2-GNOME GUI.")); 4143 # else 4144 msg_puts(_("with GTK2 GUI.")); 4145 # endif 4146 # endif 4147 # else 4148 # ifdef FEAT_GUI_MOTIF 4149 msg_puts(_("with X11-Motif GUI.")); 4150 # else 4151 # ifdef FEAT_GUI_ATHENA 4152 # ifdef FEAT_GUI_NEXTAW 4153 msg_puts(_("with X11-neXtaw GUI.")); 4154 # else 4155 msg_puts(_("with X11-Athena GUI.")); 4156 # endif 4157 # else 4158 # ifdef FEAT_GUI_PHOTON 4159 msg_puts(_("with Photon GUI.")); 4160 # else 4161 # if defined(MSWIN) 4162 msg_puts(_("with GUI.")); 4163 # else 4164 # if defined(TARGET_API_MAC_CARBON) && TARGET_API_MAC_CARBON 4165 msg_puts(_("with Carbon GUI.")); 4166 # else 4167 # if defined(TARGET_API_MAC_OSX) && TARGET_API_MAC_OSX 4168 msg_puts(_("with Cocoa GUI.")); 4169 # else 4170 # endif 4171 # endif 4172 # endif 4173 # endif 4174 # endif 4175 # endif 4176 # endif 4177 #endif 4178 version_msg(_(" Features included (+) or not (-):\n")); 4179 4180 list_features(); 4181 4182 #ifdef SYS_VIMRC_FILE 4183 version_msg(_(" system vimrc file: \"")); 4184 version_msg(SYS_VIMRC_FILE); 4185 version_msg("\"\n"); 4186 #endif 4187 #ifdef USR_VIMRC_FILE 4188 version_msg(_(" user vimrc file: \"")); 4189 version_msg(USR_VIMRC_FILE); 4190 version_msg("\"\n"); 4191 #endif 4192 #ifdef USR_VIMRC_FILE2 4193 version_msg(_(" 2nd user vimrc file: \"")); 4194 version_msg(USR_VIMRC_FILE2); 4195 version_msg("\"\n"); 4196 #endif 4197 #ifdef USR_VIMRC_FILE3 4198 version_msg(_(" 3rd user vimrc file: \"")); 4199 version_msg(USR_VIMRC_FILE3); 4200 version_msg("\"\n"); 4201 #endif 4202 #ifdef USR_EXRC_FILE 4203 version_msg(_(" user exrc file: \"")); 4204 version_msg(USR_EXRC_FILE); 4205 version_msg("\"\n"); 4206 #endif 4207 #ifdef USR_EXRC_FILE2 4208 version_msg(_(" 2nd user exrc file: \"")); 4209 version_msg(USR_EXRC_FILE2); 4210 version_msg("\"\n"); 4211 #endif 4212 #ifdef FEAT_GUI 4213 # ifdef SYS_GVIMRC_FILE 4214 version_msg(_(" system gvimrc file: \"")); 4215 version_msg(SYS_GVIMRC_FILE); 4216 version_msg("\"\n"); 4217 # endif 4218 version_msg(_(" user gvimrc file: \"")); 4219 version_msg(USR_GVIMRC_FILE); 4220 version_msg("\"\n"); 4221 # ifdef USR_GVIMRC_FILE2 4222 version_msg(_("2nd user gvimrc file: \"")); 4223 version_msg(USR_GVIMRC_FILE2); 4224 version_msg("\"\n"); 4225 # endif 4226 # ifdef USR_GVIMRC_FILE3 4227 version_msg(_("3rd user gvimrc file: \"")); 4228 version_msg(USR_GVIMRC_FILE3); 4229 version_msg("\"\n"); 4230 # endif 4231 #endif 4232 version_msg(_(" defaults file: \"")); 4233 version_msg(VIM_DEFAULTS_FILE); 4234 version_msg("\"\n"); 4235 #ifdef FEAT_GUI 4236 # ifdef SYS_MENU_FILE 4237 version_msg(_(" system menu file: \"")); 4238 version_msg(SYS_MENU_FILE); 4239 version_msg("\"\n"); 4240 # endif 4241 #endif 4242 #ifdef HAVE_PATHDEF 4243 if (*default_vim_dir != NUL) 4244 { 4245 version_msg(_(" fall-back for $VIM: \"")); 4246 version_msg((char *)default_vim_dir); 4247 version_msg("\"\n"); 4248 } 4249 if (*default_vimruntime_dir != NUL) 4250 { 4251 version_msg(_(" f-b for $VIMRUNTIME: \"")); 4252 version_msg((char *)default_vimruntime_dir); 4253 version_msg("\"\n"); 4254 } 4255 version_msg(_("Compilation: ")); 4256 version_msg((char *)all_cflags); 4257 version_msg("\n"); 4258 #ifdef VMS 4259 if (*compiler_version != NUL) 4260 { 4261 version_msg(_("Compiler: ")); 4262 version_msg((char *)compiler_version); 4263 version_msg("\n"); 4264 } 4265 #endif 4266 version_msg(_("Linking: ")); 4267 version_msg((char *)all_lflags); 4268 #endif 4269 #ifdef DEBUG 4270 version_msg("\n"); 4271 version_msg(_(" DEBUG BUILD")); 4272 #endif 4273 } 4274 4275 static void do_intro_line(int row, char_u *mesg, int add_version, int attr); 4276 4277 /* 4278 * Show the intro message when not editing a file. 4279 */ 4280 void 4281 maybe_intro_message(void) 4282 { 4283 if (BUFEMPTY() 4284 && curbuf->b_fname == NULL 4285 && firstwin->w_next == NULL 4286 && vim_strchr(p_shm, SHM_INTRO) == NULL) 4287 intro_message(FALSE); 4288 } 4289 4290 /* 4291 * Give an introductory message about Vim. 4292 * Only used when starting Vim on an empty file, without a file name. 4293 * Or with the ":intro" command (for Sven :-). 4294 */ 4295 void 4296 intro_message( 4297 int colon) /* TRUE for ":intro" */ 4298 { 4299 int i; 4300 int row; 4301 int blanklines; 4302 int sponsor; 4303 char *p; 4304 static char *(lines[]) = 4305 { 4306 N_("VIM - Vi IMproved"), 4307 "", 4308 N_("version "), 4309 N_("by Bram Moolenaar et al."), 4310 #ifdef MODIFIED_BY 4311 " ", 4312 #endif 4313 N_("Vim is open source and freely distributable"), 4314 "", 4315 N_("Help poor children in Uganda!"), 4316 N_("type :help iccf<Enter> for information "), 4317 "", 4318 N_("type :q<Enter> to exit "), 4319 N_("type :help<Enter> or <F1> for on-line help"), 4320 N_("type :help version8<Enter> for version info"), 4321 NULL, 4322 "", 4323 N_("Running in Vi compatible mode"), 4324 N_("type :set nocp<Enter> for Vim defaults"), 4325 N_("type :help cp-default<Enter> for info on this"), 4326 }; 4327 #ifdef FEAT_GUI 4328 static char *(gui_lines[]) = 4329 { 4330 NULL, 4331 NULL, 4332 NULL, 4333 NULL, 4334 #ifdef MODIFIED_BY 4335 NULL, 4336 #endif 4337 NULL, 4338 NULL, 4339 NULL, 4340 N_("menu Help->Orphans for information "), 4341 NULL, 4342 N_("Running modeless, typed text is inserted"), 4343 N_("menu Edit->Global Settings->Toggle Insert Mode "), 4344 N_(" for two modes "), 4345 NULL, 4346 NULL, 4347 NULL, 4348 N_("menu Edit->Global Settings->Toggle Vi Compatible"), 4349 N_(" for Vim defaults "), 4350 }; 4351 #endif 4352 4353 /* blanklines = screen height - # message lines */ 4354 blanklines = (int)Rows - ((sizeof(lines) / sizeof(char *)) - 1); 4355 if (!p_cp) 4356 blanklines += 4; /* add 4 for not showing "Vi compatible" message */ 4357 4358 /* Don't overwrite a statusline. Depends on 'cmdheight'. */ 4359 if (p_ls > 1) 4360 blanklines -= Rows - topframe->fr_height; 4361 if (blanklines < 0) 4362 blanklines = 0; 4363 4364 /* Show the sponsor and register message one out of four times, the Uganda 4365 * message two out of four times. */ 4366 sponsor = (int)time(NULL); 4367 sponsor = ((sponsor & 2) == 0) - ((sponsor & 4) == 0); 4368 4369 /* start displaying the message lines after half of the blank lines */ 4370 row = blanklines / 2; 4371 if ((row >= 2 && Columns >= 50) || colon) 4372 { 4373 for (i = 0; i < (int)(sizeof(lines) / sizeof(char *)); ++i) 4374 { 4375 p = lines[i]; 4376 #ifdef FEAT_GUI 4377 if (p_im && gui.in_use && gui_lines[i] != NULL) 4378 p = gui_lines[i]; 4379 #endif 4380 if (p == NULL) 4381 { 4382 if (!p_cp) 4383 break; 4384 continue; 4385 } 4386 if (sponsor != 0) 4387 { 4388 if (strstr(p, "children") != NULL) 4389 p = sponsor < 0 4390 ? N_("Sponsor Vim development!") 4391 : N_("Become a registered Vim user!"); 4392 else if (strstr(p, "iccf") != NULL) 4393 p = sponsor < 0 4394 ? N_("type :help sponsor<Enter> for information ") 4395 : N_("type :help register<Enter> for information "); 4396 else if (strstr(p, "Orphans") != NULL) 4397 p = N_("menu Help->Sponsor/Register for information "); 4398 } 4399 if (*p != NUL) 4400 do_intro_line(row, (char_u *)_(p), i == 2, 0); 4401 ++row; 4402 } 4403 } 4404 4405 /* Make the wait-return message appear just below the text. */ 4406 if (colon) 4407 msg_row = row; 4408 } 4409 4410 static void 4411 do_intro_line( 4412 int row, 4413 char_u *mesg, 4414 int add_version, 4415 int attr) 4416 { 4417 char_u vers[20]; 4418 int col; 4419 char_u *p; 4420 int l; 4421 int clen; 4422 #ifdef MODIFIED_BY 4423 # define MODBY_LEN 150 4424 char_u modby[MODBY_LEN]; 4425 4426 if (*mesg == ' ') 4427 { 4428 vim_strncpy(modby, (char_u *)_("Modified by "), MODBY_LEN - 1); 4429 l = (int)STRLEN(modby); 4430 vim_strncpy(modby + l, (char_u *)MODIFIED_BY, MODBY_LEN - l - 1); 4431 mesg = modby; 4432 } 4433 #endif 4434 4435 /* Center the message horizontally. */ 4436 col = vim_strsize(mesg); 4437 if (add_version) 4438 { 4439 STRCPY(vers, mediumVersion); 4440 if (highest_patch()) 4441 { 4442 /* Check for 9.9x or 9.9xx, alpha/beta version */ 4443 if (isalpha((int)vers[3])) 4444 { 4445 int len = (isalpha((int)vers[4])) ? 5 : 4; 4446 sprintf((char *)vers + len, ".%d%s", highest_patch(), 4447 mediumVersion + len); 4448 } 4449 else 4450 sprintf((char *)vers + 3, ".%d", highest_patch()); 4451 } 4452 col += (int)STRLEN(vers); 4453 } 4454 col = (Columns - col) / 2; 4455 if (col < 0) 4456 col = 0; 4457 4458 /* Split up in parts to highlight <> items differently. */ 4459 for (p = mesg; *p != NUL; p += l) 4460 { 4461 clen = 0; 4462 for (l = 0; p[l] != NUL 4463 && (l == 0 || (p[l] != '<' && p[l - 1] != '>')); ++l) 4464 { 4465 if (has_mbyte) 4466 { 4467 clen += ptr2cells(p + l); 4468 l += (*mb_ptr2len)(p + l) - 1; 4469 } 4470 else 4471 clen += byte2cells(p[l]); 4472 } 4473 screen_puts_len(p, l, row, col, *p == '<' ? HL_ATTR(HLF_8) : attr); 4474 col += clen; 4475 } 4476 4477 /* Add the version number to the version line. */ 4478 if (add_version) 4479 screen_puts(vers, row, col, 0); 4480 } 4481 4482 /* 4483 * ":intro": clear screen, display intro screen and wait for return. 4484 */ 4485 void 4486 ex_intro(exarg_T *eap UNUSED) 4487 { 4488 screenclear(); 4489 intro_message(TRUE); 4490 wait_return(TRUE); 4491 } 4492