mirror of
https://github.com/neovim/neovim.git
synced 2025-09-07 03:48:18 +00:00

Problem: Recursive call to substitute gets stuck in sandbox. (Nikolai
Pavlov)
Solution: Handle the recursive call. (Christian Brabandt, closes vim/vim#950)
Add a test.
f5a39447a8
Closes #5118
2603 lines
31 KiB
C
2603 lines
31 KiB
C
/// @file version.c
|
|
///
|
|
/// Nvim was forked from Vim 7.4.160.
|
|
/// Vim originated from Stevie version 3.6 (Fish disk 217) by GRWalter (Fred).
|
|
|
|
#include <inttypes.h>
|
|
#include <assert.h>
|
|
#include <limits.h>
|
|
|
|
#include "nvim/vim.h"
|
|
#include "nvim/ascii.h"
|
|
#include "nvim/iconv.h"
|
|
#include "nvim/version.h"
|
|
#include "nvim/charset.h"
|
|
#include "nvim/memline.h"
|
|
#include "nvim/memory.h"
|
|
#include "nvim/message.h"
|
|
#include "nvim/misc2.h"
|
|
#include "nvim/screen.h"
|
|
#include "nvim/strings.h"
|
|
|
|
// version info generated by the build system
|
|
#include "auto/versiondef.h"
|
|
|
|
#define STR_(x) #x
|
|
#define STR(x) STR_(x)
|
|
|
|
// for ":version", ":intro", and "nvim --version"
|
|
#ifndef NVIM_VERSION_MEDIUM
|
|
#define NVIM_VERSION_MEDIUM STR(NVIM_VERSION_MAJOR) "." STR(NVIM_VERSION_MINOR)\
|
|
"." STR(NVIM_VERSION_PATCH) NVIM_VERSION_PRERELEASE
|
|
#endif
|
|
#define NVIM_VERSION_LONG "NVIM " NVIM_VERSION_MEDIUM
|
|
|
|
|
|
char *Version = VIM_VERSION_SHORT;
|
|
char *longVersion = NVIM_VERSION_LONG;
|
|
char *version_buildtype = "Build type: " NVIM_VERSION_BUILD_TYPE;
|
|
char *version_cflags = "Compilation: " NVIM_VERSION_CFLAGS;
|
|
|
|
#ifdef INCLUDE_GENERATED_DECLARATIONS
|
|
# include "version.c.generated.h"
|
|
#endif
|
|
|
|
static char *features[] = {
|
|
#ifdef HAVE_ACL
|
|
"+acl",
|
|
#else
|
|
"-acl",
|
|
#endif
|
|
|
|
#if (defined(HAVE_ICONV_H) && defined(USE_ICONV)) || defined(DYNAMIC_ICONV)
|
|
# ifdef DYNAMIC_ICONV
|
|
"+iconv/dyn",
|
|
# else
|
|
"+iconv",
|
|
# endif
|
|
#else
|
|
"-iconv",
|
|
#endif
|
|
|
|
#ifdef HAVE_JEMALLOC
|
|
"+jemalloc",
|
|
#else
|
|
"-jemalloc",
|
|
#endif
|
|
|
|
#ifdef FEAT_TUI
|
|
"+tui",
|
|
#else
|
|
"-tui",
|
|
#endif
|
|
NULL
|
|
};
|
|
|
|
// clang-format off
|
|
static int included_patches[] = {
|
|
2219,
|
|
// 2200,
|
|
// 2199,
|
|
// 2198,
|
|
// 2197,
|
|
// 2196,
|
|
// 2195,
|
|
// 2194,
|
|
// 2193,
|
|
// 2192,
|
|
// 2191,
|
|
// 2190,
|
|
// 2189,
|
|
// 2188,
|
|
// 2187,
|
|
// 2186,
|
|
// 2185,
|
|
// 2184,
|
|
// 2183,
|
|
// 2182,
|
|
// 2181,
|
|
// 2180,
|
|
// 2179,
|
|
// 2178,
|
|
// 2177,
|
|
// 2176,
|
|
// 2175,
|
|
// 2174,
|
|
// 2173,
|
|
// 2172,
|
|
// 2171,
|
|
// 2170,
|
|
// 2169,
|
|
// 2168,
|
|
// 2167,
|
|
// 2166,
|
|
// 2165,
|
|
// 2164,
|
|
// 2163,
|
|
// 2162,
|
|
// 2161,
|
|
// 2160,
|
|
// 2159,
|
|
// 2158,
|
|
// 2157,
|
|
// 2156,
|
|
// 2155,
|
|
// 2154,
|
|
// 2153,
|
|
// 2152,
|
|
// 2151,
|
|
// 2150,
|
|
// 2149,
|
|
// 2148,
|
|
// 2147,
|
|
// 2146,
|
|
// 2145,
|
|
// 2144,
|
|
// 2143,
|
|
// 2142,
|
|
// 2141,
|
|
// 2140,
|
|
// 2139,
|
|
// 2138,
|
|
// 2137,
|
|
// 2136,
|
|
// 2135,
|
|
// 2134,
|
|
// 2133,
|
|
// 2132,
|
|
// 2131,
|
|
// 2130,
|
|
// 2129,
|
|
// 2128,
|
|
// 2127,
|
|
// 2126,
|
|
// 2125,
|
|
// 2124,
|
|
// 2123,
|
|
// 2122,
|
|
// 2121,
|
|
// 2120,
|
|
// 2119,
|
|
// 2118,
|
|
// 2117,
|
|
// 2116,
|
|
// 2115,
|
|
// 2114,
|
|
// 2113,
|
|
2112,
|
|
// 2111,
|
|
// 2110,
|
|
// 2109,
|
|
// 2108,
|
|
// 2107,
|
|
// 2106,
|
|
// 2105 NA
|
|
// 2104,
|
|
// 2103,
|
|
// 2102 NA
|
|
// 2101,
|
|
// 2100,
|
|
// 2099,
|
|
// 2098,
|
|
// 2097,
|
|
// 2096,
|
|
// 2095,
|
|
// 2094,
|
|
// 2093,
|
|
// 2092 NA
|
|
// 2091 NA
|
|
// 2090,
|
|
// 2089 NA
|
|
// 2088,
|
|
// 2087,
|
|
// 2086,
|
|
// 2085,
|
|
// 2084,
|
|
// 2083,
|
|
// 2082,
|
|
// 2081,
|
|
// 2080,
|
|
// 2079 NA
|
|
// 2078 NA
|
|
// 2077,
|
|
// 2076,
|
|
// 2075,
|
|
// 2074,
|
|
// 2073,
|
|
// 2072,
|
|
// 2071,
|
|
// 2070 NA
|
|
// 2069,
|
|
// 2068,
|
|
// 2067,
|
|
2066,
|
|
// 2065,
|
|
// 2064,
|
|
// 2063 NA
|
|
// 2062,
|
|
// 2061,
|
|
// 2060 NA
|
|
// 2059 NA
|
|
// 2058,
|
|
// 2057 NA
|
|
// 2056 NA
|
|
// 2055 NA
|
|
// 2054 NA
|
|
// 2053 NA
|
|
// 2052 NA
|
|
// 2051,
|
|
// 2050,
|
|
// 2049,
|
|
// 2048 NA
|
|
// 2047,
|
|
// 2046,
|
|
// 2045 NA
|
|
// 2044,
|
|
// 2043,
|
|
// 2042 NA
|
|
// 2041 NA
|
|
// 2040 NA
|
|
// 2039 NA
|
|
// 2038 NA
|
|
// 2037 NA
|
|
// 2036,
|
|
// 2035 NA
|
|
// 2034 NA
|
|
// 2033,
|
|
// 2032 NA
|
|
// 2031,
|
|
// 2030 NA
|
|
// 2029,
|
|
// 2028,
|
|
// 2027 NA
|
|
// 2026 NA
|
|
// 2025 NA
|
|
// 2024,
|
|
// 2023,
|
|
// 2022,
|
|
// 2021,
|
|
// 2020 NA
|
|
// 2019,
|
|
// 2018,
|
|
// 2017,
|
|
// 2016 NA
|
|
// 2015,
|
|
2014,
|
|
2013,
|
|
2012,
|
|
2011,
|
|
// 2010,
|
|
// 2009,
|
|
// 2008,
|
|
// 2007,
|
|
// 2006,
|
|
// 2005,
|
|
// 2004 NA
|
|
// 2003 NA
|
|
// 2002,
|
|
// 2001 NA
|
|
// 2000,
|
|
// 1999,
|
|
// 1998 NA
|
|
// 1997,
|
|
// 1996,
|
|
// 1995 NA
|
|
// 1994,
|
|
// 1993,
|
|
// 1992,
|
|
// 1991,
|
|
// 1990,
|
|
// 1989,
|
|
// 1988 NA
|
|
// 1987 NA
|
|
// 1986,
|
|
// 1985 NA
|
|
// 1984,
|
|
// 1983 NA
|
|
// 1982 NA
|
|
// 1981,
|
|
// 1980,
|
|
// 1979,
|
|
// 1978,
|
|
// 1977,
|
|
// 1976,
|
|
// 1975,
|
|
// 1974 NA
|
|
1973,
|
|
// 1972,
|
|
// 1971,
|
|
// 1970,
|
|
// 1969 NA
|
|
// 1968,
|
|
// 1967,
|
|
// 1966,
|
|
// 1965 NA
|
|
// 1964,
|
|
// 1963 NA
|
|
// 1962,
|
|
// 1961,
|
|
1960,
|
|
// 1959 NA
|
|
// 1958 NA
|
|
// 1957 NA
|
|
// 1956,
|
|
// 1955,
|
|
// 1954,
|
|
// 1953,
|
|
// 1952,
|
|
// 1951 NA
|
|
// 1950,
|
|
// 1949,
|
|
// 1948,
|
|
// 1947 NA
|
|
// 1946 NA
|
|
// 1945,
|
|
// 1944 NA
|
|
// 1943 NA
|
|
// 1942 NA
|
|
// 1941,
|
|
// 1940,
|
|
// 1939 NA
|
|
// 1938 NA
|
|
// 1937,
|
|
// 1936,
|
|
// 1935 NA
|
|
// 1934 NA
|
|
// 1933 NA
|
|
// 1932 NA
|
|
// 1931 NA
|
|
// 1930 NA
|
|
// 1929 NA
|
|
// 1928,
|
|
// 1927 NA
|
|
// 1926 NA
|
|
// 1925 NA
|
|
// 1924 NA
|
|
// 1923,
|
|
// 1922 NA
|
|
// 1921 NA
|
|
// 1920 NA
|
|
// 1919 NA
|
|
// 1918 NA
|
|
// 1917 NA
|
|
// 1916 NA
|
|
// 1915 NA
|
|
// 1914,
|
|
// 1913,
|
|
// 1912,
|
|
// 1911,
|
|
// 1910,
|
|
// 1909,
|
|
// 1908 NA
|
|
// 1907,
|
|
// 1906 NA
|
|
// 1905,
|
|
// 1904,
|
|
// 1903,
|
|
// 1902 NA
|
|
// 1901 NA
|
|
// 1900,
|
|
// 1899 NA
|
|
// 1898,
|
|
// 1897,
|
|
// 1896,
|
|
// 1895,
|
|
// 1894 NA
|
|
// 1893,
|
|
// 1892 NA
|
|
// 1891 NA
|
|
// 1890 NA
|
|
// 1889,
|
|
// 1888,
|
|
// 1887 NA
|
|
// 1886 NA
|
|
// 1885 NA
|
|
// 1884,
|
|
// 1883 NA
|
|
// 1882,
|
|
// 1881,
|
|
// 1880 NA
|
|
// 1879 NA
|
|
// 1878 NA
|
|
// 1877 NA
|
|
// 1876,
|
|
// 1875,
|
|
// 1874 NA
|
|
// 1873 NA
|
|
// 1872 NA
|
|
// 1871,
|
|
// 1870 NA
|
|
// 1869 NA
|
|
// 1868,
|
|
// 1867,
|
|
// 1866,
|
|
// 1865 NA
|
|
// 1864 NA
|
|
// 1863 NA
|
|
// 1862,
|
|
// 1861,
|
|
// 1860 NA
|
|
// 1859 NA
|
|
// 1858 NA
|
|
// 1857 NA
|
|
// 1856 NA
|
|
// 1855 NA
|
|
// 1854 NA
|
|
// 1853 NA
|
|
// 1852 NA
|
|
// 1851,
|
|
// 1850 NA
|
|
// 1849 NA
|
|
// 1848 NA
|
|
// 1847,
|
|
// 1846 NA
|
|
// 1845 NA
|
|
// 1844,
|
|
// 1843 NA
|
|
// 1842,
|
|
// 1841,
|
|
1840,
|
|
// 1839,
|
|
// 1838,
|
|
// 1837,
|
|
// 1836,
|
|
// 1835,
|
|
// 1834,
|
|
// 1833,
|
|
1832,
|
|
1831,
|
|
// 1830 NA
|
|
// 1829 NA
|
|
// 1828 NA
|
|
// 1827 NA
|
|
// 1826 NA
|
|
// 1825 NA
|
|
// 1824 NA
|
|
// 1823,
|
|
// 1822 NA
|
|
// 1821,
|
|
// 1820,
|
|
// 1819 NA
|
|
// 1818,
|
|
// 1817 NA
|
|
// 1816,
|
|
// 1815,
|
|
// 1814 NA
|
|
// 1813,
|
|
// 1812,
|
|
// 1811,
|
|
// 1810 NA
|
|
1809,
|
|
1808,
|
|
// 1807 NA
|
|
1806,
|
|
// 1805,
|
|
// 1804,
|
|
// 1803 NA
|
|
// 1802,
|
|
// 1801 NA
|
|
// 1800 NA
|
|
1799,
|
|
// 1798 NA
|
|
// 1797 NA
|
|
// 1796 NA
|
|
// 1795 NA
|
|
// 1794,
|
|
// 1793,
|
|
// 1792 NA
|
|
// 1791 NA
|
|
// 1790 NA
|
|
// 1789 NA
|
|
// 1789 NA
|
|
// 1788 NA
|
|
// 1787 NA
|
|
// 1786 NA
|
|
// 1785,
|
|
// 1784 NA
|
|
// 1783,
|
|
// 1782,
|
|
// 1781,
|
|
// 1780,
|
|
// 1779,
|
|
// 1778 NA
|
|
// 1777 NA
|
|
// 1776 NA
|
|
// 1775 NA
|
|
// 1774 NA
|
|
// 1773 NA
|
|
// 1772 NA
|
|
// 1771 NA
|
|
// 1770,
|
|
// 1769,
|
|
// 1768,
|
|
// 1767 NA
|
|
// 1766 NA
|
|
// 1765,
|
|
// 1764 NA
|
|
// 1763,
|
|
// 1762,
|
|
// 1761,
|
|
// 1760 NA
|
|
// 1759,
|
|
// 1758,
|
|
1757,
|
|
// 1756 NA
|
|
1755,
|
|
// 1754,
|
|
1753,
|
|
// 1753,
|
|
// 1752,
|
|
// 1751,
|
|
// 1750,
|
|
// 1749 NA
|
|
// 1748,
|
|
// 1747 NA
|
|
// 1746 NA
|
|
// 1745 NA
|
|
// 1744 NA
|
|
// 1743 NA
|
|
// 1742,
|
|
// 1741,
|
|
// 1740,
|
|
// 1739,
|
|
// 1738,
|
|
// 1737 NA
|
|
// 1736 NA
|
|
// 1735,
|
|
// 1734,
|
|
// 1733 NA
|
|
1732,
|
|
// 1731,
|
|
// 1730,
|
|
// 1729 NA
|
|
1728,
|
|
// 1727,
|
|
// 1726 NA
|
|
// 1725 NA
|
|
// 1724 NA
|
|
// 1723,
|
|
// 1722 NA
|
|
// 1721 NA
|
|
// 1720,
|
|
// 1719,
|
|
// 1718,
|
|
// 1717 NA
|
|
1716,
|
|
// 1715,
|
|
// 1714,
|
|
// 1713 NA
|
|
1712,
|
|
// 1711,
|
|
// 1710,
|
|
// 1709 NA
|
|
// 1708,
|
|
// 1707,
|
|
// 1706 NA
|
|
// 1705 NA
|
|
// 1704,
|
|
1703,
|
|
// 1702,
|
|
// 1701,
|
|
1700,
|
|
// 1699,
|
|
// 1698 NA
|
|
// 1697,
|
|
// 1696,
|
|
1695,
|
|
// 1694 NA
|
|
// 1693 NA
|
|
// 1692,
|
|
// 1691,
|
|
// 1690 NA
|
|
// 1689 NA
|
|
// 1688 NA
|
|
// 1687 NA
|
|
// 1686,
|
|
// 1685,
|
|
// 1684 NA
|
|
// 1683 NA
|
|
1682,
|
|
// 1681,
|
|
// 1680 NA
|
|
// 1679,
|
|
// 1678 NA
|
|
// 1677 NA
|
|
1676,
|
|
1675,
|
|
// 1674 NA
|
|
1673,
|
|
// 1672 NA
|
|
// 1671,
|
|
// 1670,
|
|
// 1669 NA
|
|
// 1668 NA
|
|
// 1667 NA
|
|
// 1666 NA
|
|
// 1665 NA
|
|
// 1664,
|
|
1663,
|
|
// 1662 NA
|
|
// 1661 NA
|
|
// 1660,
|
|
// 1659 NA
|
|
// 1658,
|
|
// 1657 NA
|
|
// 1656,
|
|
// 1655 NA
|
|
1654,
|
|
// 1653,
|
|
1652,
|
|
// 1651 NA
|
|
// 1650,
|
|
1649,
|
|
// 1648,
|
|
// 1647,
|
|
// 1646 NA
|
|
// 1645,
|
|
// 1644,
|
|
1643,
|
|
// 1642,
|
|
1641,
|
|
// 1640,
|
|
// 1639,
|
|
// 1638,
|
|
// 1637 NA
|
|
// 1636 NA
|
|
// 1635 NA
|
|
// 1634,
|
|
// 1633 NA
|
|
// 1632 NA
|
|
// 1631 NA
|
|
// 1630,
|
|
// 1629,
|
|
// 1628 NA
|
|
// 1627 NA
|
|
// 1626 NA
|
|
// 1625 NA
|
|
// 1624 NA
|
|
// 1623 NA
|
|
// 1622 NA
|
|
// 1621 NA
|
|
// 1620,
|
|
// 1619,
|
|
// 1618 NA
|
|
// 1617 NA
|
|
// 1616 NA
|
|
// 1615 NA
|
|
// 1614,
|
|
// 1613 NA
|
|
// 1612 NA
|
|
// 1611 NA
|
|
// 1610 NA
|
|
// 1609 NA
|
|
// 1608,
|
|
// 1607,
|
|
// 1606,
|
|
// 1605,
|
|
// 1604,
|
|
1603,
|
|
// 1602 NA
|
|
// 1601 NA
|
|
// 1600 NA
|
|
// 1599 NA
|
|
// 1598 NA
|
|
// 1597 NA
|
|
1596,
|
|
// 1595 NA
|
|
// 1594 NA
|
|
// 1593 NA
|
|
1592,
|
|
// 1591,
|
|
// 1590,
|
|
// 1589,
|
|
// 1588,
|
|
// 1587 NA
|
|
// 1586,
|
|
// 1585,
|
|
// 1584 NA
|
|
// 1583 NA
|
|
// 1582,
|
|
// 1581,
|
|
// 1580,
|
|
// 1579 NA
|
|
1578,
|
|
// 1577,
|
|
1576,
|
|
// 1575 NA
|
|
1574,
|
|
// 1573 NA
|
|
// 1572 NA
|
|
1571,
|
|
1570,
|
|
1569,
|
|
1568,
|
|
1567,
|
|
// 1566 NA
|
|
// 1565,
|
|
// 1564,
|
|
// 1563,
|
|
// 1562 NA
|
|
// 1561 NA
|
|
// 1560 NA
|
|
// 1559,
|
|
// 1558,
|
|
1557,
|
|
// 1556 NA
|
|
// 1555 NA
|
|
1554,
|
|
1553,
|
|
1552,
|
|
1551,
|
|
1550,
|
|
// 1549,
|
|
1548,
|
|
// 1547,
|
|
1546,
|
|
// 1545 NA
|
|
// 1544 NA
|
|
// 1543 NA
|
|
// 1542 NA
|
|
// 1541 NA
|
|
// 1540 NA
|
|
// 1539 NA
|
|
// 1538 NA
|
|
// 1537 NA
|
|
// 1536 NA
|
|
// 1535,
|
|
// 1534 NA
|
|
// 1533,
|
|
// 1532 NA
|
|
// 1531 NA
|
|
// 1530 NA
|
|
// 1529 NA
|
|
1528,
|
|
// 1527 NA
|
|
// 1526 NA
|
|
// 1525 NA
|
|
// 1524 NA
|
|
// 1523 NA
|
|
// 1522 NA
|
|
1521,
|
|
// 1520 NA
|
|
// 1519 NA
|
|
// 1518 NA
|
|
// 1517 NA
|
|
1516,
|
|
// 1515 NA
|
|
// 1514 NA
|
|
1513,
|
|
// 1512 NA
|
|
1511,
|
|
// 1510 NA
|
|
// 1509 NA
|
|
// 1508 NA
|
|
// 1507 NA
|
|
// 1506 NA
|
|
// 1505 NA
|
|
// 1504 NA
|
|
// 1503 NA
|
|
// 1502 NA
|
|
// 1501 NA
|
|
1500,
|
|
1499,
|
|
// 1498 NA
|
|
// 1497 NA
|
|
// 1496 NA
|
|
// 1495 NA
|
|
// 1494,
|
|
// 1493 NA
|
|
1492,
|
|
1491,
|
|
// 1490 NA
|
|
// 1489 NA
|
|
// 1488 NA
|
|
// 1487 NA
|
|
1486,
|
|
// 1485 NA
|
|
// 1484 NA
|
|
// 1483 NA
|
|
// 1482 NA
|
|
// 1481 NA
|
|
1480,
|
|
1479,
|
|
1478,
|
|
// 1477,
|
|
// 1476 NA
|
|
// 1475 NA
|
|
// 1474 NA
|
|
// 1473 NA
|
|
// 1472 NA
|
|
// 1471 NA
|
|
// 1470 NA
|
|
// 1469 NA
|
|
1468,
|
|
// 1467 NA
|
|
// 1466 NA
|
|
// 1465 NA
|
|
1464,
|
|
// 1463 NA
|
|
// 1462 NA
|
|
// 1461 NA
|
|
// 1460 NA
|
|
// 1459 NA
|
|
// 1458 NA
|
|
// 1457 NA
|
|
// 1456 NA
|
|
// 1455 NA
|
|
// 1454 NA
|
|
// 1453 NA
|
|
// 1452 NA
|
|
// 1451 NA
|
|
// 1450 NA
|
|
// 1449 NA
|
|
// 1448 NA
|
|
// 1447 NA
|
|
// 1446 NA
|
|
// 1445 NA
|
|
// 1444 NA
|
|
// 1443 NA
|
|
// 1442 NA
|
|
// 1441 NA
|
|
// 1440 NA
|
|
// 1439 NA
|
|
// 1438 NA
|
|
// 1437 NA
|
|
// 1436 NA
|
|
// 1435 NA
|
|
// 1434 NA
|
|
// 1433 NA
|
|
// 1432 NA
|
|
// 1431 NA
|
|
// 1430 NA
|
|
// 1429 NA
|
|
// 1428 NA
|
|
// 1427 NA
|
|
// 1426 NA
|
|
1425,
|
|
// 1424 NA
|
|
// 1423 NA
|
|
// 1422 NA
|
|
// 1421 NA
|
|
// 1420 NA
|
|
// 1419 NA
|
|
// 1418 NA
|
|
// 1417 NA
|
|
// 1416 NA
|
|
// 1415 NA
|
|
// 1414 NA
|
|
// 1413 NA
|
|
// 1412 NA
|
|
// 1411 NA
|
|
1410,
|
|
// 1409 NA
|
|
// 1408 NA
|
|
// 1407 NA
|
|
1406,
|
|
1405,
|
|
// 1404 NA
|
|
// 1403 NA
|
|
// 1402 NA
|
|
1401,
|
|
// 1400 NA
|
|
// 1399 NA
|
|
// 1398 NA
|
|
1397,
|
|
1396,
|
|
// 1395 NA
|
|
1394,
|
|
// 1393 NA
|
|
// 1392 NA
|
|
// 1391 NA
|
|
// 1390 NA
|
|
// 1389 NA
|
|
1388,
|
|
// 1387 NA
|
|
// 1386 NA
|
|
// 1385 NA
|
|
1384,
|
|
// 1383 NA
|
|
// 1382 NA
|
|
// 1381 NA
|
|
// 1380 NA
|
|
// 1379 NA
|
|
// 1378 NA
|
|
// 1377 NA
|
|
// 1376 NA
|
|
// 1375 NA
|
|
// 1374 NA
|
|
// 1373 NA
|
|
// 1372 NA
|
|
// 1371 NA
|
|
// 1370 NA
|
|
// 1369 NA
|
|
// 1368 NA
|
|
// 1367 NA
|
|
1366,
|
|
1365,
|
|
// 1364 NA
|
|
// 1363 NA
|
|
// 1362 NA
|
|
// 1361 NA
|
|
// 1360 NA
|
|
// 1359 NA
|
|
// 1358 NA
|
|
// 1357 NA
|
|
// 1356 NA
|
|
// 1355 NA
|
|
// 1354 NA
|
|
// 1353 NA
|
|
1352,
|
|
// 1351 NA
|
|
// 1350 NA
|
|
// 1349 NA
|
|
// 1348 NA
|
|
1347,
|
|
1346,
|
|
// 1345 NA
|
|
// 1344 NA
|
|
// 1343 NA
|
|
// 1342 NA
|
|
// 1341 NA
|
|
// 1340 NA
|
|
// 1339 NA
|
|
// 1338 NA
|
|
// 1337 NA
|
|
// 1336 NA
|
|
// 1335 NA
|
|
// 1334 NA
|
|
// 1333 NA
|
|
// 1332 NA
|
|
// 1331 NA
|
|
// 1330 NA
|
|
// 1329 NA
|
|
// 1328 NA
|
|
// 1327 NA
|
|
// 1326 NA
|
|
// 1325 NA
|
|
// 1324 NA
|
|
// 1323 NA
|
|
// 1322 NA
|
|
// 1321 NA
|
|
// 1320 NA
|
|
// 1319 NA
|
|
// 1318 NA
|
|
// 1317 NA
|
|
// 1316 NA
|
|
// 1315 NA
|
|
// 1314 NA
|
|
// 1313 NA
|
|
// 1312 NA
|
|
// 1311 NA
|
|
// 1310 NA
|
|
1309,
|
|
// 1308 NA
|
|
// 1307 NA
|
|
// 1306 NA
|
|
1305,
|
|
1304,
|
|
// 1303 NA
|
|
// 1302 NA
|
|
// 1301 NA
|
|
// 1300 NA
|
|
// 1299 NA
|
|
// 1298 NA
|
|
// 1297 NA
|
|
1296,
|
|
// 1295 NA
|
|
// 1294 NA
|
|
// 1293 NA
|
|
1292,
|
|
// 1291 NA
|
|
// 1290 NA
|
|
// 1289 NA
|
|
// 1288 NA
|
|
// 1287 NA
|
|
// 1286 NA
|
|
1285,
|
|
1284,
|
|
// 1283 NA
|
|
1282,
|
|
1281,
|
|
// 1280 NA
|
|
// 1279 NA
|
|
// 1278 NA
|
|
// 1277 NA
|
|
1276,
|
|
// 1275 NA
|
|
// 1274 NA
|
|
// 1273 NA
|
|
// 1272 NA
|
|
1271,
|
|
// 1270 NA
|
|
1269,
|
|
// 1268 NA
|
|
1267,
|
|
// 1266
|
|
// 1265 NA
|
|
// 1264 NA
|
|
// 1263 NA
|
|
// 1262 NA
|
|
// 1261 NA
|
|
// 1260 NA
|
|
1259,
|
|
// 1258 NA
|
|
// 1257 NA
|
|
// 1256 NA
|
|
// 1255 NA
|
|
// 1254 NA
|
|
// 1253 NA
|
|
// 1252 NA
|
|
// 1251 NA
|
|
// 1250 NA
|
|
// 1249 NA
|
|
// 1248 NA
|
|
// 1247 NA
|
|
// 1246 NA
|
|
// 1245 NA
|
|
// 1244 NA
|
|
// 1243 NA
|
|
// 1242 NA
|
|
// 1241 NA
|
|
// 1240 NA
|
|
// 1239 NA
|
|
// 1238 NA
|
|
1237,
|
|
1236,
|
|
// 1235 NA
|
|
// 1234 NA
|
|
// 1233 NA
|
|
// 1232 NA
|
|
// 1231 NA
|
|
// 1230 NA
|
|
// 1229 NA
|
|
1228,
|
|
// 1227 NA
|
|
// 1226 NA
|
|
// 1225 NA
|
|
// 1224 NA
|
|
1223,
|
|
// 1222 NA
|
|
// 1221 NA
|
|
// 1220 NA
|
|
// 1219 NA
|
|
// 1218 NA
|
|
// 1217 NA
|
|
// 1216 NA
|
|
// 1215 NA
|
|
// 1214 NA
|
|
// 1213 NA
|
|
// 1212 NA
|
|
// 1211 NA
|
|
// 1210 NA
|
|
// 1209 NA
|
|
// 1208 NA
|
|
// 1207 NA
|
|
// 1206 NA
|
|
// 1205 NA
|
|
// 1204 NA
|
|
// 1203 NA
|
|
// 1202 NA
|
|
// 1201 NA
|
|
// 1200 NA
|
|
// 1199 NA
|
|
// 1198 NA
|
|
// 1197 NA
|
|
// 1196 NA
|
|
// 1195 NA
|
|
// 1194 NA
|
|
// 1193 NA
|
|
// 1192 NA
|
|
// 1191 NA
|
|
// 1190 NA
|
|
// 1189 NA
|
|
// 1188 NA
|
|
// 1187 NA
|
|
// 1186 NA
|
|
// 1185 NA
|
|
// 1184 NA
|
|
// 1183 NA
|
|
// 1182 NA
|
|
1181,
|
|
1180,
|
|
1179,
|
|
1178,
|
|
// 1177 NA
|
|
// 1176 NA
|
|
// 1175 NA
|
|
// 1174 NA
|
|
1173,
|
|
// 1172 NA
|
|
// 1171 NA
|
|
// 1170 NA
|
|
// 1169 NA
|
|
1168,
|
|
1167,
|
|
1166,
|
|
// 1165 NA
|
|
1164,
|
|
1163,
|
|
// 1162 NA
|
|
1161,
|
|
1160,
|
|
// 1159 NA
|
|
// 1158 NA
|
|
1157,
|
|
// 1156 NA
|
|
// 1155 NA
|
|
// 1154 NA
|
|
1153,
|
|
// 1152 NA
|
|
1151,
|
|
1150,
|
|
1149,
|
|
// 1148 NA
|
|
1147,
|
|
// 1146 NA
|
|
// 1145 NA
|
|
1144,
|
|
1143,
|
|
1142,
|
|
1141,
|
|
1140,
|
|
// 1139 NA
|
|
// 1138 NA
|
|
1137,
|
|
1136,
|
|
// 1135 NA
|
|
// 1134 NA
|
|
// 1133 NA
|
|
1132,
|
|
// 1131 NA
|
|
// 1130 NA
|
|
// 1129 NA
|
|
// 1128 NA
|
|
// 1127 NA
|
|
1126,
|
|
// 1125 NA
|
|
// 1124 NA
|
|
1123,
|
|
// 1122 NA
|
|
1121,
|
|
1120,
|
|
1119,
|
|
1118,
|
|
1117,
|
|
1116,
|
|
// 1115 NA
|
|
1114,
|
|
1113,
|
|
1112,
|
|
1111,
|
|
1110,
|
|
// 1109 NA
|
|
1108,
|
|
1107,
|
|
// 1106 NA
|
|
1105,
|
|
// 1104 NA
|
|
// 1103 NA
|
|
1102,
|
|
1101,
|
|
// 1100 NA
|
|
// 1099 NA
|
|
// 1098 NA
|
|
// 1097 NA
|
|
1096,
|
|
// 1095 NA
|
|
1094,
|
|
1093,
|
|
1092,
|
|
1091,
|
|
1090,
|
|
1089,
|
|
1088,
|
|
1087,
|
|
1086,
|
|
1085,
|
|
1084,
|
|
// 1083 NA
|
|
// 1082 NA
|
|
1081,
|
|
// 1080 NA
|
|
// 1079 NA
|
|
// 1078 NA
|
|
// 1077 NA
|
|
1076,
|
|
1075,
|
|
// 1074 NA
|
|
// 1073 NA
|
|
1072,
|
|
1071,
|
|
// 1070 NA
|
|
// 1069 NA
|
|
1068,
|
|
// 1067 NA
|
|
// 1066 NA
|
|
1065,
|
|
1064,
|
|
// 1063 NA
|
|
// 1062 NA
|
|
1061,
|
|
// 1060 NA
|
|
1059,
|
|
// 1058 NA
|
|
1057,
|
|
1056,
|
|
1055,
|
|
1054,
|
|
1053,
|
|
1052,
|
|
1051,
|
|
1050,
|
|
1049,
|
|
1048,
|
|
1047,
|
|
1046,
|
|
// 1045 NA
|
|
// 1044 NA
|
|
// 1043 NA
|
|
1042,
|
|
1041,
|
|
// 1040 NA
|
|
// 1039 NA
|
|
// 1038 NA
|
|
1037,
|
|
1036,
|
|
1035,
|
|
1034,
|
|
// 1033 NA
|
|
1032,
|
|
// 1031 NA
|
|
1030,
|
|
1029,
|
|
// 1028 NA
|
|
1027,
|
|
// 1026 NA
|
|
// 1025 NA
|
|
// 1024 NA
|
|
// 1023 NA
|
|
// 1022 NA
|
|
// 1021 NA
|
|
// 1020 NA
|
|
// 1019 NA
|
|
1018,
|
|
1017,
|
|
// 1016 NA
|
|
1015,
|
|
// 1014 NA
|
|
1013,
|
|
// 1012 NA
|
|
// 1011 NA
|
|
// 1010 NA
|
|
// 1009 NA
|
|
// 1008 NA
|
|
1007,
|
|
1006,
|
|
// 1005 NA
|
|
// 1004 NA
|
|
// 1003 NA
|
|
// 1002 NA
|
|
1001,
|
|
1000,
|
|
// 999 NA
|
|
998,
|
|
// 997 NA
|
|
// 996 NA
|
|
// 995 NA
|
|
// 994 NA
|
|
// 993 NA
|
|
// 992 NA
|
|
991,
|
|
// 990 NA
|
|
989,
|
|
// 988 NA
|
|
// 987 NA
|
|
// 986 NA
|
|
// 985 NA
|
|
984,
|
|
// 983 NA
|
|
// 982 NA
|
|
981,
|
|
980,
|
|
// 979 NA
|
|
978,
|
|
977,
|
|
// 976 NA
|
|
975,
|
|
974,
|
|
973,
|
|
972,
|
|
// 971 NA
|
|
// 970 NA
|
|
// 969 NA
|
|
// 968 NA
|
|
// 967 NA
|
|
// 966 NA
|
|
// 965 NA
|
|
// 964 NA
|
|
963,
|
|
// 962 NA
|
|
961,
|
|
// 960 NA
|
|
// 959 NA
|
|
958,
|
|
957,
|
|
// 956 NA
|
|
955,
|
|
// 954 NA
|
|
953,
|
|
952,
|
|
951,
|
|
950,
|
|
949,
|
|
// 948 NA
|
|
// 947 NA
|
|
946,
|
|
945,
|
|
944,
|
|
// 943 NA
|
|
942,
|
|
941,
|
|
// 940 NA
|
|
939,
|
|
// 938 NA
|
|
937,
|
|
936,
|
|
// 935 NA
|
|
// 934 NA
|
|
933,
|
|
932,
|
|
// 931 NA
|
|
// 930 NA
|
|
929,
|
|
// 928 NA
|
|
// 927 NA
|
|
926,
|
|
925,
|
|
// 924 NA
|
|
// 923 NA
|
|
922,
|
|
// 921 NA
|
|
// 920 NA
|
|
// 919 NA
|
|
// 918 NA
|
|
// 917 NA
|
|
916,
|
|
915,
|
|
// 914 NA
|
|
// 913 NA
|
|
912,
|
|
// 911 NA
|
|
// 910 NA
|
|
// 909 NA
|
|
// 908 NA
|
|
// 907 NA
|
|
// 906 NA
|
|
// 905 NA
|
|
// 904 NA
|
|
903,
|
|
// 902 NA
|
|
901,
|
|
// 900 NA
|
|
// 899 NA
|
|
898,
|
|
// 897 NA
|
|
896,
|
|
895,
|
|
// 894 NA
|
|
893,
|
|
// 892 NA
|
|
891,
|
|
// 890 NA
|
|
889,
|
|
888,
|
|
887,
|
|
// 886 NA
|
|
885,
|
|
// 884 NA
|
|
883,
|
|
882,
|
|
881,
|
|
// 880 NA
|
|
879,
|
|
878,
|
|
877,
|
|
// 876 NA
|
|
// 875 NA
|
|
// 874 NA
|
|
// 873 NA
|
|
// 872 NA
|
|
871,
|
|
870,
|
|
// 869 NA
|
|
868,
|
|
// 867 NA
|
|
// 866 NA
|
|
// 865 NA
|
|
// 864 NA
|
|
// 863 NA
|
|
// 862 NA
|
|
// 861 NA
|
|
// 860 NA
|
|
859,
|
|
858,
|
|
857,
|
|
856,
|
|
// 855 NA
|
|
// 854 NA
|
|
853,
|
|
// 852 NA
|
|
// 851 NA
|
|
// 850 NA
|
|
849,
|
|
848,
|
|
847,
|
|
// 846 NA
|
|
845,
|
|
844,
|
|
843,
|
|
// 842 NA
|
|
// 841 NA
|
|
// 840 NA
|
|
// 839 NA
|
|
// 838 NA
|
|
// 837 NA
|
|
836,
|
|
835,
|
|
834,
|
|
833,
|
|
832,
|
|
831,
|
|
830,
|
|
// 829 NA
|
|
828,
|
|
// 827 NA
|
|
826,
|
|
825,
|
|
// 824 NA
|
|
823,
|
|
822,
|
|
// 821 NA
|
|
820,
|
|
819,
|
|
818,
|
|
817,
|
|
816,
|
|
815,
|
|
814,
|
|
813,
|
|
// 812 NA
|
|
811,
|
|
810,
|
|
809,
|
|
// 808 NA
|
|
807,
|
|
806,
|
|
805,
|
|
// 804 NA
|
|
803,
|
|
802,
|
|
801,
|
|
800,
|
|
799,
|
|
798,
|
|
// 797 NA
|
|
// 796 NA
|
|
795,
|
|
// 794 NA
|
|
793,
|
|
792,
|
|
791,
|
|
790,
|
|
789,
|
|
// 788 NA
|
|
787,
|
|
786,
|
|
785,
|
|
784,
|
|
// 783 NA
|
|
782,
|
|
781,
|
|
780,
|
|
779,
|
|
778,
|
|
// 777 NA
|
|
776,
|
|
775,
|
|
774,
|
|
773,
|
|
// 772 NA
|
|
771,
|
|
// 770 NA
|
|
769,
|
|
768,
|
|
// 767 NA
|
|
// 766 NA
|
|
765,
|
|
764,
|
|
// 763 NA
|
|
// 762 NA
|
|
// 761 NA
|
|
760,
|
|
// 759 NA
|
|
758,
|
|
// 757 NA
|
|
// 756 NA
|
|
755,
|
|
754,
|
|
753,
|
|
// 752 NA
|
|
// 751 NA
|
|
// 750 NA
|
|
749,
|
|
748,
|
|
747,
|
|
746,
|
|
745,
|
|
// 744 NA
|
|
743,
|
|
742,
|
|
741,
|
|
740,
|
|
739,
|
|
// 738 NA
|
|
737,
|
|
736,
|
|
// 735 NA
|
|
734,
|
|
// 733 NA
|
|
732,
|
|
// 731 NA
|
|
// 730 NA
|
|
729,
|
|
// 728 NA
|
|
// 727 NA
|
|
// 726 NA
|
|
// 725 NA
|
|
// 724 NA
|
|
723,
|
|
722,
|
|
721,
|
|
// 720 NA
|
|
719,
|
|
718,
|
|
717,
|
|
716,
|
|
715,
|
|
714,
|
|
713,
|
|
712,
|
|
711,
|
|
710,
|
|
709,
|
|
708,
|
|
707,
|
|
706,
|
|
// 705 NA
|
|
704,
|
|
// 703 NA
|
|
702,
|
|
// 701 NA
|
|
700,
|
|
699,
|
|
698,
|
|
697,
|
|
696,
|
|
695,
|
|
694,
|
|
693,
|
|
// 692 NA
|
|
// 691 NA
|
|
690,
|
|
689,
|
|
688,
|
|
// 687 NA
|
|
686,
|
|
685,
|
|
// 684 NA
|
|
// 683 NA
|
|
682,
|
|
// 681 NA
|
|
680,
|
|
// 679 NA
|
|
// 678 NA
|
|
// 677 NA
|
|
// 676 NA
|
|
675,
|
|
// 674 NA
|
|
673,
|
|
672,
|
|
671,
|
|
670,
|
|
// 669 NA
|
|
668,
|
|
667,
|
|
// 666 NA
|
|
665,
|
|
// 664 NA
|
|
// 663 NA
|
|
662,
|
|
// 661 NA
|
|
660,
|
|
659,
|
|
658,
|
|
// 657 NA
|
|
656,
|
|
655,
|
|
654,
|
|
653,
|
|
// 652 NA
|
|
651,
|
|
// 650 NA
|
|
649,
|
|
// 648 NA
|
|
// 647 NA
|
|
646,
|
|
645,
|
|
// 644 NA
|
|
643,
|
|
642,
|
|
// 641 NA
|
|
640,
|
|
639,
|
|
// 638 NA
|
|
637,
|
|
636,
|
|
635,
|
|
634,
|
|
633,
|
|
// 632 NA
|
|
631,
|
|
630,
|
|
629,
|
|
// 628 NA
|
|
// 627 NA
|
|
// 626 NA
|
|
// 625 NA
|
|
// 624 NA
|
|
623,
|
|
// 622 NA
|
|
// 621 NA
|
|
// 620 NA
|
|
// 619 NA
|
|
// 618 NA
|
|
617,
|
|
616,
|
|
615,
|
|
614,
|
|
613,
|
|
612,
|
|
// 611 NA
|
|
// 610 NA
|
|
609,
|
|
608,
|
|
// 607 NA
|
|
606,
|
|
605,
|
|
604,
|
|
603,
|
|
602,
|
|
601,
|
|
600,
|
|
599,
|
|
598,
|
|
597,
|
|
// 596 NA
|
|
595,
|
|
594,
|
|
593,
|
|
// 592 NA
|
|
// 591 NA
|
|
590,
|
|
// 589 NA
|
|
588,
|
|
587,
|
|
// 586 NA
|
|
585,
|
|
// 584 NA
|
|
// 583 NA
|
|
582,
|
|
// 581 NA
|
|
580,
|
|
579,
|
|
578,
|
|
577,
|
|
576,
|
|
575,
|
|
574,
|
|
573,
|
|
572,
|
|
// 571 NA
|
|
// 570 NA
|
|
569,
|
|
568,
|
|
567,
|
|
566,
|
|
565,
|
|
// 564 NA
|
|
563,
|
|
562,
|
|
561,
|
|
// 560 NA
|
|
559,
|
|
// 558 NA
|
|
// 557 NA
|
|
// 556 NA
|
|
// 555 NA
|
|
554,
|
|
553,
|
|
552,
|
|
551,
|
|
550,
|
|
549,
|
|
// 548 NA
|
|
547,
|
|
546,
|
|
545,
|
|
// 544 NA
|
|
543,
|
|
542,
|
|
541,
|
|
// 540 NA
|
|
539,
|
|
538,
|
|
537,
|
|
536,
|
|
535,
|
|
// 534 NA
|
|
533,
|
|
532,
|
|
531,
|
|
530,
|
|
529,
|
|
528,
|
|
527,
|
|
526,
|
|
525,
|
|
524,
|
|
// 523 NA
|
|
// 522 NA
|
|
521,
|
|
520,
|
|
519,
|
|
518,
|
|
517,
|
|
516,
|
|
515,
|
|
514,
|
|
513,
|
|
// 512 NA
|
|
// 511 NA
|
|
// 510 NA
|
|
// 509 NA
|
|
508,
|
|
// 507 NA
|
|
// 506 NA
|
|
// 505 NA
|
|
// 504 NA
|
|
503,
|
|
502,
|
|
// 501 NA
|
|
500,
|
|
499,
|
|
// 498 NA
|
|
497,
|
|
// 496 NA
|
|
// 495 NA
|
|
494,
|
|
493,
|
|
492,
|
|
491,
|
|
490,
|
|
489,
|
|
488,
|
|
487,
|
|
486,
|
|
485,
|
|
// 484 NA
|
|
483,
|
|
// 482 NA
|
|
// 481 NA
|
|
// 480 NA
|
|
// 479 NA
|
|
478,
|
|
477,
|
|
// 476 NA
|
|
// 475 NA
|
|
474,
|
|
473,
|
|
472,
|
|
// 471 NA
|
|
470,
|
|
// 469 NA
|
|
468,
|
|
467,
|
|
466,
|
|
// 465 NA
|
|
// 464 NA
|
|
463,
|
|
462,
|
|
// 461 NA
|
|
// 460 NA
|
|
// 459 NA
|
|
458,
|
|
457,
|
|
456,
|
|
455,
|
|
454,
|
|
// 453 NA
|
|
452,
|
|
// 451 NA
|
|
450,
|
|
449,
|
|
// 448 NA
|
|
447,
|
|
446,
|
|
445,
|
|
444,
|
|
// 443 NA
|
|
442,
|
|
441,
|
|
440,
|
|
439,
|
|
438,
|
|
437,
|
|
436,
|
|
435,
|
|
434,
|
|
433,
|
|
// 432 NA
|
|
// 431 NA
|
|
// 430 NA
|
|
// 429 NA
|
|
// 428 NA
|
|
427,
|
|
// 426 NA
|
|
425,
|
|
// 424 NA
|
|
423,
|
|
422,
|
|
421,
|
|
// 420 NA
|
|
419,
|
|
418,
|
|
417,
|
|
416,
|
|
415,
|
|
414,
|
|
// 413 NA
|
|
// 412 NA
|
|
411,
|
|
410,
|
|
// 409 NA
|
|
408,
|
|
407,
|
|
406,
|
|
405,
|
|
// 404 NA
|
|
// 403 NA
|
|
// 402 NA
|
|
// 401 NA
|
|
// 400 NA
|
|
// 399 NA
|
|
// 398 NA
|
|
397,
|
|
396,
|
|
395,
|
|
// 394 NA
|
|
// 393 NA
|
|
392,
|
|
391,
|
|
390,
|
|
389,
|
|
388,
|
|
387,
|
|
386,
|
|
// 385 NA
|
|
// 384 NA
|
|
383,
|
|
382,
|
|
381,
|
|
// 380 NA
|
|
379,
|
|
378,
|
|
377,
|
|
376,
|
|
375,
|
|
374,
|
|
373,
|
|
372,
|
|
371,
|
|
370,
|
|
369,
|
|
368,
|
|
367,
|
|
// 366 NA
|
|
365,
|
|
364,
|
|
// 363 NA
|
|
362,
|
|
361,
|
|
360,
|
|
359,
|
|
358,
|
|
357,
|
|
// 356 NA
|
|
355,
|
|
// 354 NA
|
|
353,
|
|
352,
|
|
351,
|
|
350,
|
|
349,
|
|
348,
|
|
347,
|
|
346,
|
|
345,
|
|
344,
|
|
343,
|
|
// 342 NA
|
|
341,
|
|
// 340 NA
|
|
339,
|
|
338,
|
|
337,
|
|
336,
|
|
335,
|
|
334,
|
|
// 333 NA
|
|
// 332 NA
|
|
331,
|
|
330,
|
|
329,
|
|
328,
|
|
327,
|
|
// 326 NA
|
|
325,
|
|
324,
|
|
323,
|
|
// 322 NA
|
|
// 321 NA
|
|
320,
|
|
// 319 NA
|
|
318,
|
|
317,
|
|
// 316 NA
|
|
315,
|
|
314,
|
|
313,
|
|
312,
|
|
311,
|
|
310,
|
|
309,
|
|
308,
|
|
// 307 NA
|
|
306,
|
|
305,
|
|
// 304 NA
|
|
303,
|
|
302,
|
|
301,
|
|
// 300 NA
|
|
// 299 NA
|
|
298,
|
|
297,
|
|
296,
|
|
295,
|
|
294,
|
|
293,
|
|
292,
|
|
291,
|
|
290,
|
|
289,
|
|
288,
|
|
// 287 NA
|
|
286,
|
|
285,
|
|
284,
|
|
// 283 NA
|
|
282,
|
|
281,
|
|
280,
|
|
279,
|
|
278,
|
|
277,
|
|
276,
|
|
275,
|
|
274,
|
|
// 273 NA
|
|
272,
|
|
// 271 NA
|
|
// 270 NA
|
|
269,
|
|
268,
|
|
267,
|
|
266,
|
|
265,
|
|
264,
|
|
// 263 NA
|
|
262,
|
|
261,
|
|
260,
|
|
// 259 NA
|
|
// 258 NA
|
|
// 257 NA
|
|
256,
|
|
// 255 NA
|
|
// 254 NA
|
|
253,
|
|
// 252 NA
|
|
251,
|
|
// 250 NA
|
|
249,
|
|
248,
|
|
247,
|
|
// 246 NA
|
|
245,
|
|
// 244 NA
|
|
243,
|
|
242,
|
|
241,
|
|
240,
|
|
239,
|
|
// 238 NA
|
|
237,
|
|
236,
|
|
235,
|
|
234,
|
|
233,
|
|
232,
|
|
231,
|
|
230,
|
|
229,
|
|
// 228 NA
|
|
// 227 NA
|
|
226,
|
|
// 225 NA
|
|
// 224 NA
|
|
// 223 NA
|
|
// 222 NA
|
|
221,
|
|
220,
|
|
219,
|
|
218,
|
|
// 217 NA
|
|
// 216 NA
|
|
215,
|
|
// 214 NA
|
|
213,
|
|
// 212 NA
|
|
211,
|
|
210,
|
|
209,
|
|
// 208 NA
|
|
207,
|
|
// 206 NA
|
|
205,
|
|
204,
|
|
203,
|
|
// 202 NA
|
|
201,
|
|
// 200 NA
|
|
199,
|
|
// 198 NA
|
|
// 197 NA
|
|
// 196 NA
|
|
// 195 NA
|
|
// 194 NA
|
|
193,
|
|
192,
|
|
191,
|
|
// 190 NA
|
|
// 189 NA
|
|
// 188 NA
|
|
187,
|
|
186,
|
|
// 185 NA
|
|
184,
|
|
// 183 NA
|
|
// 182 NA
|
|
181,
|
|
// 180 NA
|
|
// 179 NA
|
|
178,
|
|
// 177 NA
|
|
// 176 NA
|
|
// 175 NA
|
|
// 174 NA
|
|
173,
|
|
172,
|
|
171,
|
|
170,
|
|
169,
|
|
// 168 NA
|
|
167,
|
|
166,
|
|
165,
|
|
// 164 NA
|
|
// 163 NA
|
|
// 162 NA
|
|
// 161 NA
|
|
160,
|
|
159,
|
|
158,
|
|
157,
|
|
156,
|
|
155,
|
|
154,
|
|
153,
|
|
152,
|
|
151,
|
|
150,
|
|
149,
|
|
148,
|
|
147,
|
|
146,
|
|
145,
|
|
144,
|
|
143,
|
|
142,
|
|
141,
|
|
140,
|
|
139,
|
|
138,
|
|
137,
|
|
136,
|
|
135,
|
|
134,
|
|
133,
|
|
132,
|
|
131,
|
|
130,
|
|
129,
|
|
128,
|
|
127,
|
|
126,
|
|
125,
|
|
124,
|
|
123,
|
|
122,
|
|
121,
|
|
120,
|
|
119,
|
|
118,
|
|
117,
|
|
116,
|
|
115,
|
|
114,
|
|
113,
|
|
112,
|
|
111,
|
|
110,
|
|
109,
|
|
108,
|
|
107,
|
|
106,
|
|
105,
|
|
104,
|
|
103,
|
|
102,
|
|
101,
|
|
100,
|
|
99,
|
|
98,
|
|
97,
|
|
96,
|
|
95,
|
|
94,
|
|
93,
|
|
92,
|
|
91,
|
|
90,
|
|
89,
|
|
88,
|
|
87,
|
|
86,
|
|
85,
|
|
84,
|
|
83,
|
|
82,
|
|
81,
|
|
80,
|
|
79,
|
|
78,
|
|
77,
|
|
76,
|
|
75,
|
|
74,
|
|
73,
|
|
72,
|
|
71,
|
|
70,
|
|
69,
|
|
68,
|
|
67,
|
|
66,
|
|
65,
|
|
64,
|
|
63,
|
|
62,
|
|
61,
|
|
60,
|
|
59,
|
|
58,
|
|
57,
|
|
56,
|
|
55,
|
|
54,
|
|
53,
|
|
52,
|
|
51,
|
|
50,
|
|
49,
|
|
48,
|
|
47,
|
|
46,
|
|
45,
|
|
44,
|
|
43,
|
|
42,
|
|
41,
|
|
40,
|
|
39,
|
|
38,
|
|
37,
|
|
36,
|
|
35,
|
|
34,
|
|
33,
|
|
32,
|
|
31,
|
|
30,
|
|
29,
|
|
28,
|
|
27,
|
|
26,
|
|
25,
|
|
24,
|
|
23,
|
|
22,
|
|
21,
|
|
20,
|
|
19,
|
|
18,
|
|
17,
|
|
16,
|
|
15,
|
|
14,
|
|
13,
|
|
12,
|
|
11,
|
|
10,
|
|
9,
|
|
8,
|
|
7,
|
|
6,
|
|
5,
|
|
4,
|
|
3,
|
|
2,
|
|
1,
|
|
0
|
|
};
|
|
// clang-format on
|
|
|
|
/// Place to put a short description when adding a feature with a patch.
|
|
/// Keep it short, e.g.,: "relative numbers", "persistent undo".
|
|
/// Also add a comment marker to separate the lines.
|
|
/// See the official Vim patches for the diff format: It must use a context of
|
|
/// one line only. Create it by hand or use "diff -C2" and edit the patch.
|
|
static char *(extra_patches[]) = {
|
|
// Add your patch description below this line
|
|
NULL
|
|
};
|
|
|
|
/// Checks whether patch `n` has been included.
|
|
///
|
|
/// @param n The patch number.
|
|
///
|
|
/// @return TRUE if patch "n" has been included.
|
|
int has_patch(int n)
|
|
{
|
|
int i;
|
|
for (i = 0; included_patches[i] != 0; ++i) {
|
|
if (included_patches[i] == n) {
|
|
return TRUE;
|
|
}
|
|
}
|
|
return FALSE;
|
|
}
|
|
|
|
void ex_version(exarg_T *eap)
|
|
{
|
|
// Ignore a ":version 9.99" command.
|
|
if (*eap->arg == NUL) {
|
|
msg_putchar('\n');
|
|
list_version();
|
|
}
|
|
}
|
|
|
|
/// List all features aligned in columns, dictionary style.
|
|
static void list_features(void)
|
|
{
|
|
int nfeat = 0;
|
|
int width = 0;
|
|
|
|
// Find the length of the longest feature name, use that + 1 as the column
|
|
// width
|
|
int i;
|
|
for (i = 0; features[i] != NULL; ++i) {
|
|
int l = (int)STRLEN(features[i]);
|
|
|
|
if (l > width) {
|
|
width = l;
|
|
}
|
|
nfeat++;
|
|
}
|
|
width += 1;
|
|
|
|
if (Columns < width) {
|
|
// Not enough screen columns - show one per line
|
|
for (i = 0; features[i] != NULL; ++i) {
|
|
version_msg(features[i]);
|
|
if (msg_col > 0) {
|
|
msg_putchar('\n');
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
|
|
// The rightmost column doesn't need a separator.
|
|
// Sacrifice it to fit in one more column if possible.
|
|
int ncol = (int)(Columns + 1) / width;
|
|
int nrow = nfeat / ncol + (nfeat % ncol ? 1 : 0);
|
|
|
|
// i counts columns then rows. idx counts rows then columns.
|
|
for (i = 0; !got_int && i < nrow * ncol; ++i) {
|
|
int idx = (i / ncol) + (i % ncol) * nrow;
|
|
if (idx < nfeat) {
|
|
int last_col = (i + 1) % ncol == 0;
|
|
msg_puts((char_u *)features[idx]);
|
|
if (last_col) {
|
|
if (msg_col > 0) {
|
|
msg_putchar('\n');
|
|
}
|
|
} else {
|
|
while (msg_col % width) {
|
|
msg_putchar(' ');
|
|
}
|
|
}
|
|
} else {
|
|
if (msg_col > 0) {
|
|
msg_putchar('\n');
|
|
}
|
|
}
|
|
}
|
|
MSG_PUTS("For differences from Vim, see :help vim-differences\n\n");
|
|
}
|
|
|
|
void list_version(void)
|
|
{
|
|
// When adding features here, don't forget to update the list of
|
|
// internal variables in eval.c!
|
|
MSG(longVersion);
|
|
MSG(version_buildtype);
|
|
MSG(version_cflags);
|
|
|
|
// Print the list of extra patch descriptions if there is at least one.
|
|
char *s = "";
|
|
if (extra_patches[0] != NULL) {
|
|
MSG_PUTS(_("\nExtra patches: "));
|
|
s = "";
|
|
|
|
for (int i = 0; extra_patches[i] != NULL; ++i) {
|
|
MSG_PUTS(s);
|
|
s = ", ";
|
|
MSG_PUTS(extra_patches[i]);
|
|
}
|
|
}
|
|
|
|
#ifdef HAVE_PATHDEF
|
|
|
|
if ((*compiled_user != NUL) || (*compiled_sys != NUL)) {
|
|
MSG_PUTS(_("\nCompiled "));
|
|
|
|
if (*compiled_user != NUL) {
|
|
MSG_PUTS(_("by "));
|
|
MSG_PUTS(compiled_user);
|
|
}
|
|
|
|
if (*compiled_sys != NUL) {
|
|
MSG_PUTS("@");
|
|
MSG_PUTS(compiled_sys);
|
|
}
|
|
}
|
|
#endif // ifdef HAVE_PATHDEF
|
|
|
|
version_msg(_("\n\nOptional features included (+) or not (-): "));
|
|
|
|
list_features();
|
|
|
|
#ifdef SYS_VIMRC_FILE
|
|
version_msg(_(" system vimrc file: \""));
|
|
version_msg(SYS_VIMRC_FILE);
|
|
version_msg("\"\n");
|
|
#endif // ifdef SYS_VIMRC_FILE
|
|
#ifdef HAVE_PATHDEF
|
|
|
|
if (*default_vim_dir != NUL) {
|
|
version_msg(_(" fall-back for $VIM: \""));
|
|
version_msg(default_vim_dir);
|
|
version_msg("\"\n");
|
|
}
|
|
|
|
if (*default_vimruntime_dir != NUL) {
|
|
version_msg(_(" f-b for $VIMRUNTIME: \""));
|
|
version_msg(default_vimruntime_dir);
|
|
version_msg("\"\n");
|
|
}
|
|
#endif // ifdef HAVE_PATHDEF
|
|
}
|
|
|
|
/// Output a string for the version message. If it's going to wrap, output a
|
|
/// newline, unless the message is too long to fit on the screen anyway.
|
|
///
|
|
/// @param s
|
|
static void version_msg(char *s)
|
|
{
|
|
int len = (int)STRLEN(s);
|
|
|
|
if (!got_int
|
|
&& (len < (int)Columns)
|
|
&& (msg_col + len >= (int)Columns)
|
|
&& (*s != '\n')) {
|
|
msg_putchar('\n');
|
|
}
|
|
|
|
if (!got_int) {
|
|
MSG_PUTS(s);
|
|
}
|
|
}
|
|
|
|
|
|
/// Show the intro message when not editing a file.
|
|
void maybe_intro_message(void)
|
|
{
|
|
if (bufempty()
|
|
&& (curbuf->b_fname == NULL)
|
|
&& (firstwin->w_next == NULL)
|
|
&& (vim_strchr(p_shm, SHM_INTRO) == NULL)) {
|
|
intro_message(FALSE);
|
|
}
|
|
}
|
|
|
|
/// Give an introductory message about Vim.
|
|
/// Only used when starting Vim on an empty file, without a file name.
|
|
/// Or with the ":intro" command (for Sven :-).
|
|
///
|
|
/// @param colon TRUE for ":intro"
|
|
void intro_message(int colon)
|
|
{
|
|
int i;
|
|
long row;
|
|
long blanklines;
|
|
int sponsor;
|
|
char *p;
|
|
static char *(lines[]) = {
|
|
N_(NVIM_VERSION_LONG),
|
|
"",
|
|
N_("by Bram Moolenaar et al."),
|
|
N_("Vim is open source and freely distributable"),
|
|
"",
|
|
N_("Type \":Tutor\" or \":help nvim\" to get started!"),
|
|
"",
|
|
N_("Still have questions? https://neovim.io/community"),
|
|
"",
|
|
N_("type :q<Enter> to exit "),
|
|
N_("type :help<Enter> or <F1> for on-line help"),
|
|
"",
|
|
N_("Help poor children in Uganda!"),
|
|
N_("type :help iccf<Enter> for information "),
|
|
};
|
|
|
|
// blanklines = screen height - # message lines
|
|
size_t lines_size = ARRAY_SIZE(lines);
|
|
assert(lines_size <= LONG_MAX);
|
|
|
|
blanklines = Rows - ((long)lines_size - 1l);
|
|
|
|
// Don't overwrite a statusline. Depends on 'cmdheight'.
|
|
if (p_ls > 1) {
|
|
blanklines -= Rows - topframe->fr_height;
|
|
}
|
|
|
|
if (blanklines < 0) {
|
|
blanklines = 0;
|
|
}
|
|
|
|
// Show the sponsor and register message one out of four times, the Uganda
|
|
// message two out of four times.
|
|
sponsor = (int)time(NULL);
|
|
sponsor = ((sponsor & 2) == 0) - ((sponsor & 4) == 0);
|
|
|
|
// start displaying the message lines after half of the blank lines
|
|
row = blanklines / 2;
|
|
|
|
if (((row >= 2) && (Columns >= 50)) || colon) {
|
|
for (i = 0; i < (int)ARRAY_SIZE(lines); ++i) {
|
|
p = lines[i];
|
|
|
|
if (sponsor != 0) {
|
|
if (strstr(p, "children") != NULL) {
|
|
p = sponsor < 0
|
|
? N_("Sponsor Vim development!")
|
|
: N_("Become a registered Vim user!");
|
|
} else if (strstr(p, "iccf") != NULL) {
|
|
p = sponsor < 0
|
|
? N_("type :help sponsor<Enter> for information ")
|
|
: N_("type :help register<Enter> for information ");
|
|
} else if (strstr(p, "Orphans") != NULL) {
|
|
p = N_("menu Help->Sponsor/Register for information ");
|
|
}
|
|
}
|
|
|
|
if (*p != NUL) {
|
|
do_intro_line(row, (char_u *)_(p), 0);
|
|
}
|
|
row++;
|
|
}
|
|
}
|
|
|
|
// Make the wait-return message appear just below the text.
|
|
if (colon) {
|
|
assert(row <= INT_MAX);
|
|
msg_row = (int)row;
|
|
}
|
|
}
|
|
|
|
static void do_intro_line(long row, char_u *mesg, int attr)
|
|
{
|
|
long col;
|
|
char_u *p;
|
|
int l;
|
|
int clen;
|
|
|
|
// Center the message horizontally.
|
|
col = vim_strsize(mesg);
|
|
|
|
col = (Columns - col) / 2;
|
|
|
|
if (col < 0) {
|
|
col = 0;
|
|
}
|
|
|
|
// Split up in parts to highlight <> items differently.
|
|
for (p = mesg; *p != NUL; p += l) {
|
|
clen = 0;
|
|
|
|
for (l = 0; p[l] != NUL
|
|
&& (l == 0 || (p[l] != '<' && p[l - 1] != '>')); ++l) {
|
|
if (has_mbyte) {
|
|
clen += ptr2cells(p + l);
|
|
l += (*mb_ptr2len)(p + l) - 1;
|
|
} else {
|
|
clen += byte2cells(p[l]);
|
|
}
|
|
}
|
|
assert(row <= INT_MAX && col <= INT_MAX);
|
|
screen_puts_len(p, l, (int)row, (int)col, *p == '<' ? hl_attr(HLF_8) : attr);
|
|
col += clen;
|
|
}
|
|
}
|
|
|
|
/// ":intro": clear screen, display intro screen and wait for return.
|
|
///
|
|
/// @param eap
|
|
void ex_intro(exarg_T *eap)
|
|
{
|
|
screenclear();
|
|
intro_message(TRUE);
|
|
wait_return(TRUE);
|
|
}
|
|
|