1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 5287 5288 5289 5290 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 5307 5308 5309 5310 5311 5312 5313 5314 5315 5316 5317 5318 5319 5320 5321 5322 5323 5324 5325 5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5376 5377 5378 5379 5380 5381 5382 5383 5384 5385 5386 5387 5388 5389 5390 5391 5392 5393 5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404 5405 5406 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417 5418 5419 5420 5421 5422 5423 5424 5425 5426 5427 5428 5429 5430 5431 5432 5433 5434 5435 5436 5437 5438 5439 5440 5441 5442 5443 5444 5445 5446 5447 5448 5449 5450 5451 5452 5453 5454 5455 5456 5457 5458 5459 5460 5461 5462 5463 5464 5465 5466 5467 5468 5469 5470 5471 5472 5473 5474 5475 5476 5477 5478 5479 5480 5481 5482 5483 5484 5485 5486 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508 5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531 5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564 5565 5566 5567 5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 5617 5618 5619 5620 5621 5622 5623 5624 5625 5626 5627 5628 5629 5630 5631 5632 5633 5634 5635 5636 5637 5638 5639 5640 5641 5642 5643 5644 5645 5646 5647 5648 5649 5650 5651 5652 5653 5654 5655 5656 5657 5658 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 5678 5679 5680 5681 5682 5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5707 5708 5709 5710 5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757 5758 5759 5760 5761 5762 5763 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782 5783 5784 5785 5786 5787 5788 5789 5790 5791 5792 5793 5794 5795 5796 5797 5798 5799 5800 5801 5802 5803 5804 5805 5806 5807 5808 5809 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 5839 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 5888 5889 5890 5891 5892 5893 5894 5895 5896 5897 5898 5899 5900 5901 5902 5903 5904 5905 5906 5907 5908 5909 5910 5911 5912 5913 5914 5915 5916 5917 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5929 5930 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5947 5948 5949 5950 5951 5952 5953 5954 5955 5956 5957 5958 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 6019 6020 6021 6022 6023 6024 6025 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6055 6056 6057 6058 6059 6060 6061 6062 6063 6064 6065 6066 6067 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 6079 6080 6081 6082 6083 6084 6085 6086 6087 6088 6089 6090 6091 6092 6093 6094 6095 6096 6097 6098 6099 6100 6101 6102 6103 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 6128 6129 6130 6131 6132 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6145 6146 6147 6148 6149 6150 6151 6152 6153 6154 6155 6156 6157 6158 6159 6160 6161 6162 6163 6164 6165 6166 6167 6168 6169 6170 6171 6172 6173 6174 6175 6176 6177 6178 6179 6180 6181 6182 6183 6184 6185 6186 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 6205 6206 6207 6208 6209 6210 6211 6212 6213 6214 6215 6216 6217 6218 6219 6220 6221 6222 6223 6224 6225 6226 6227 6228 6229 6230 6231 6232 6233 6234 6235 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 6248 6249 6250 6251 6252 6253 6254 6255 6256 6257 6258 6259 6260 6261 6262 6263 6264 6265 6266 6267 6268 6269 6270 6271 6272 6273 6274 6275 6276 6277 6278 6279 6280 6281 6282 6283 6284 6285 6286 6287 6288 6289 6290 6291 6292 6293 6294 6295 6296 6297 6298 6299 6300 6301 6302 6303 6304 6305 6306 6307 6308 6309 6310 6311 6312 6313 6314 6315 6316 6317 6318 6319 6320 6321 6322 6323 6324 6325 6326 6327 6328 6329 6330 6331 6332 6333 6334 6335 6336 6337 6338 6339 6340 6341 6342 6343 6344 6345 6346 6347 6348 6349 6350 6351 6352 6353 6354 6355 6356 6357 6358 6359 6360 6361 6362 6363 6364 6365 6366 6367 6368 6369 6370 6371 6372 6373 6374 6375 6376 6377 6378 6379 6380 6381 6382 6383 6384 6385 6386 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396 6397 6398 6399 6400 6401 6402 6403 6404 6405 6406 6407 6408 6409 6410 6411 6412 6413 6414 6415 6416 6417 6418 6419 6420 6421 6422 6423 6424 6425 6426 6427 6428 6429 6430 6431 6432 6433 6434 6435 6436 6437 6438 6439 6440 6441 6442 6443 6444 6445 6446 6447 6448 6449 6450 6451 6452 6453 6454 6455 6456 6457 6458 6459 6460 6461 6462 6463 6464 6465 6466 6467 6468 6469 6470 6471 6472 6473 6474 6475 6476 6477 6478 6479 6480 6481 6482 6483 6484 6485 6486 6487 6488 6489 6490 6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518 6519 6520 6521 6522 6523 6524 6525 6526 6527 6528 6529 6530 6531 6532 6533 6534 6535 6536 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 6558 6559 6560 6561 6562 6563 6564 6565 6566 6567 6568 6569 6570 6571 6572 6573 6574 6575 6576 6577 6578 6579 6580 6581 6582 6583 6584 6585 6586 6587 6588 6589 6590 6591 6592 6593 6594 6595 6596 6597 6598 6599 6600 6601 6602 6603 6604 6605 6606 6607 6608 6609 6610 6611 6612 6613 6614 6615 6616 6617 6618 6619 6620 6621 6622 6623 6624 6625 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 6637 6638 6639 6640 6641 6642 6643 6644 6645 6646 6647 6648 6649 6650 6651 6652 6653 6654 6655 6656 6657 6658 6659 6660 6661 6662 6663 6664 6665 6666 6667 6668 6669 6670 6671 6672 6673 6674 6675 6676 6677 6678 6679 6680 6681 6682 6683 6684 6685 6686 6687 6688 6689 6690 6691 6692 6693 6694 6695 6696 6697 6698 6699 6700 6701 6702 6703 6704 6705 6706 6707 6708 6709 6710 6711 6712 6713 6714 6715 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 6727 6728 6729 6730 6731 6732 6733 6734 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 6758 6759 6760 6761 6762 6763 6764 6765 6766 6767 6768 6769 6770 6771 6772 6773 6774 6775 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 6786 6787 6788 6789 6790 6791 6792 6793 6794 6795 6796 6797 6798 6799 6800 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810 6811 6812 6813 6814 6815 6816 6817 6818 6819 6820 6821 6822 6823 6824 6825 6826 6827 6828 6829 6830 6831 6832 6833 6834 6835 6836 6837 6838 6839 6840 6841 6842 6843 6844 6845 6846 6847 6848 6849 6850 6851 6852 6853 6854 6855 6856 6857 6858 6859 6860 6861 6862 6863 6864 6865 6866 6867 6868 6869 6870 6871 6872 6873 6874 6875 6876 6877 6878 6879 6880 6881 6882 6883 6884 6885 6886 6887 6888 6889 6890 6891 6892 6893 6894 6895 6896 6897 6898 6899 6900 6901 6902 6903 6904 6905 6906 6907 6908 6909 6910 6911 6912 6913 6914 6915 6916 6917 6918 6919 6920 6921 6922 6923 6924 6925 6926 6927 6928 6929 6930 6931 6932 6933 6934 6935 6936 6937 6938 6939 6940 6941 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6955 6956 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 6967 6968 6969 6970 6971 6972 6973 6974 6975 6976 6977 6978 6979 6980 6981 6982 6983 6984 6985 6986 6987 6988 6989 6990 6991 6992 6993 6994 6995 6996 6997 6998 6999 7000 7001 7002 7003 7004 7005 7006 7007 7008 7009 7010 7011 7012 7013 7014 7015 7016 7017 7018 7019 7020 7021 7022 7023 7024 7025 7026 7027 7028 7029 7030 7031 7032 7033 7034 7035 7036 7037 7038 7039 7040 7041 7042 7043 7044 7045 7046 7047 7048 7049 7050 7051 7052 7053 7054 7055 7056 7057 7058 7059 7060 7061 7062 7063 7064 7065 7066 7067 7068 7069 7070 7071 7072 7073 7074 7075 7076 7077 7078 7079 7080 7081 7082 7083 7084 7085 7086 7087 7088 7089 7090 7091 7092 7093 7094 7095 7096 7097 7098 7099 7100 7101 7102 7103 7104 7105 7106 7107 7108 7109 7110 7111 7112 7113 7114 7115 7116 7117 7118 7119 7120 7121 7122 7123 7124 7125 7126 7127 7128 7129 7130 7131 7132 7133 7134 7135 7136 7137 7138 7139 7140 7141 7142 7143 7144 7145 7146 7147 7148 7149 7150 7151 7152 7153 7154 7155 7156 7157 7158 7159 7160 7161 7162 7163 7164 7165 7166 7167 7168 7169 7170 7171 7172 7173 7174 7175 7176 7177 7178 7179 7180 7181 7182 7183 7184 7185 7186 7187 7188 7189 7190 7191 7192 7193 7194 7195 7196 7197 7198 7199 7200 7201 7202 7203 7204 7205 7206 7207 7208
|
2019-05-07 James Youngman <jay@gnu.org>
Prepare to release CSSC version 1.4.1.
* configure.ac: Set the version to 1.4.1.
* NEWS: Fill in the release date of CSSC-1.4.1.
Ignore some generated files.
* auxfiles/.gitignore: Ignore CSSC.spec.
Ignore some generated files in git.
* .gitignore: Ignore config.h config.log maint.mk config.cache
Fix some formatting issues (spurious commas for example) in copyright headers. Run "make update-copyright" on the files. Fix a syntax error introduced by that.
Ensure that "make update-copyright" can update copyright years.
* src/*.cc: Reducde indentation of copyright comment. This should ensure
that "make update-copyright" updates these files.
* src/*.h: Likewise.
Update copyright years.
* src/*.cc: Update copyright years.
* src/*.h: Update copyright years.
* README-hacking, auxfiles/check-testfiles.sh, bootstrap,
bootstrap.conf, docs/cssc.texi, docs/gpl-3.0.texi,
gl/Makefile.am, src/sccs.c, src/sccsdiff.sh.in,
testutils/ekko.c: Likewise.
Checked out googletest 3f5b5b8f8493a03fa25f1e4a7eae7678514a431d
2019-05-07 Martin Wilck <mwilck@suse.com>
Checked out googletest release-1.8.1
2019-05-07 James Youngman <jay@gnu.org>
Get googletest from a git submodule.
* unit-tests/get-gtest.sh (usage): Delete (we now use a git
submodule instead).
* README-hacking: Suggest deleting any old svn-based googletest
directory before running bootstrap.
2019-05-07 Martin Wilck <mwilck@suse.com>
get-gtest.sh: googletest moved to git repo
googletest isn't maintained in svn any more.
unit tests: fix non-void functions returning void
This causes compiler warnings which are considered fatal
by rpmlint.
testutils/yes: don't ignore SIGPIPE
In rpm build environments, the inherited signal settings may be
such that SIGPIPE is ignored. That would cause the "yes" tool
to never terminate.
sccs.1: fix undefined macro
".om" is not defined in groff. I haven't found it anywhere in the
docs.I believe this is a typo.
2019-05-07 James Youngman <jay@gnu.org>
Generate ChangeLog dynamically instead of maintaining it by hand.
* ChangeLog: rename to ChangeLog.3, as ChangeLog itself will now
be a dynamically-generated file.
* bootstrap.conf: Create a dummy ChangeLog file if it does not
already exist, to keep Automake happy.
* (maintainer_modules): Add new section for modules mainly
useful to maintainers, notably the gitlog-to-changelog module.
* Makefile.am (gen-ChangeLog): Add rule for dynamically generating
a ChangeLog file from git log entries. Call it from dist-hook.
* (EXTRA_DIST): Distribute ChangeLog.3
* .gitignore: add ChangeLog.
* configure.ac: Set AUXDIR in the Makefile so that ChangeLog
generation knows where to find the script that does the work.
* build-aux/gen-changelog.sh (top_srcdir): Add script for
generating the ChangeLog file; adapted from the GNU findutils
sources.
2019-05-06 James Youngman <jay@gnu.org>
Fix more compiler warnings.
* src/what.cc: Forward-declare usage().
* src/sccsfile.h: Declare print_flag2() functions.
* src/get.cc (main): Format the (unsigned in) line count with %u
instead of %d.
* src/environment.cc (max_sfile_line_len): Simplify a complex
boolean expression to silence a compiler warning suggesting
parentheses.
* src/writesubst.cc (write_subst): Print the output line number
with %u since it is an unsigned int.
* src/sf-write.cc (write_delta): Remove unsed variables "len" and
"i".
(write): Likewise, also "s".
Fix some compiler warnings. Also turn off warning options which themselves just generate warnings.
* src/run.cc (run): Avoid mixing signed/unsigned quantities.
* src/sf-get2.cc (get): Avoid variable 'd' shadowing a variable of
the same name in an outer scope.
* src/sccsfile.h: Declare print_flag().
* src/cap.cc (cap_min): Simplify this function; we only use it for
trivially copyable types anyway.
* configure.ac: Disable some warnings known to the manywarnings
module (thus enabled with --enable-warnings) but which aren't
suitable for C++ compilation. We disable them so that we don't
get a warning message from GCC about the inappropriate warning
option.
Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/cssc
Use block I/O for encoded streams.
* src/encoding.cc (encode_line): return the number of bytes
output.
(encode_stream): Use the count returned by encode_line to perform
block I/O (with fwrite) instead of string I/O (with fprintf).
1997-12-26 James Youngman <jay@gnu.org>
* testutils/realpwd.cc: Minor corrections to a comment.
* testutils/Makefile.am: Added "user.c" which compiles to "user",
a utility somewhat similar to "id".
* tests/admin/users.sh: Added a couple of extra test cases wich
run prs to make sure that the list of authorised users is
correctly understood.
* tests/Makefile.am: Added "large"; another subdirectory
containing test suites.
* split.cc: Commented everything out with #if 0; the split()
function is now a member function of cssc_linebuf.
* sf-write.cc, sccsfile.h: Changed the linebuf member from
"cssc_linebuf" to "cssc_linebuf*".
* sid_list.h: Renamed class _linebuf to cssc_linebuf. Only
affects the test code for this module.
* sf-get.cc, sf-delta.cc: Changed the linebuf member from
"cssc_linebuf" to "cssc_linebuf*".
* sf-admin.cc: Modified the order in which users are added and
deleted from the authorisation list for strict compatibility with
"real" SCCS (fixes bug reported by Richard Polton
<richardp@scopic.com>).
* sccsfile.cc: Changed the linebuf member from "cssc_linebuf" to
"cssc_linebuf*". Also that class has been changed to much reduce
the requirement for casts.
* pfile.cc: Renamed class _linebuf to cssc_linebuf. Also removed
the necessity for some casts.
* sf-rmdel.cc: Renamed class _linebuf to cssc_linebuf.
* list.h: Code reformatting (whitespace changes only).
* linebuf.h: Renamed class _linebuf to cssc_linebuf. Also removed
the necessity for some casts.
* linebuf.cc: Renamed class _linebuf to cssc_linebuf and put the
split() parsing utility function into this class (instead of it
being a global function).
* fileiter.cc: Renamed class _linebuf to cssc_linebuf.
* delta-table.cc: Added some instances of ASSERT(0 != this).
* sf-prs.cc: Changed the linebuf member from "cssc_linebuf" to
"cssc_linebuf*".
* delta-iterator.cc: Added assertions that the dtbl member is not
NULL.
* cssc.h: Removed declaration of split() (it's now a member
function of cssc_linebuf).
* sf-get2.cc, sf-get3.cc: Added assertions that the delta table is
not NULL.
* show-disp.sh: Show disposition of the CVS-controlled files...
1997-12-19 James Youngman <jay@gnu.org>
* sccsdiff.sh.in: Modified version of sccsdiff arrived from
Richard Polton; took the ideas onboard for a rewrite of sccsdiff.
* tests/sccsdiff/rap.sh: Added test code for sccsdiff from Richard
Polton "The Rubber Buccaneer" <richardp@scopic.com>
1997-12-12 James Youngman <jay@gnu.org>
* tests/large/admin.sh: Check that we can create SCCS files for
extremely long G-files.
* tests/admin/users.sh: *** empty log message ***
1997-12-11 James Youngman <jay@gnu.org>
* sf-admin.cc: Fixed bug where "admin -a" adds users in exactly
the opposite order to that required.
1997-11-30 James Youngman <jay@gnu.org>
* dtbl-prepend.cc, sccs-delta.cc:
Code split out of sccsfile.h and sccsfile.cc.
* delta.h, delta-table.cc, delta-table.h, delta-iterator.cc,
delta-iterator.h: Split delta-iterator.cc delta-iterator.h
delta-table.cc delta-table.h delta.h out of sccsfile.h.
* sf-write.cc, sf-rmdel.cc, sf-prt.cc, sf-prs.cc, sf-get3.cc,
sf-get.cc, sf-get2.cc, sf-delta.cc, sf-cdc.cc, sf-add.cc,
sf-admin.cc, sccsfile.h, sccsfile.cc, prt.cc, rmdel.cc, prs.cc,
delta.cc, get.cc, configure.in, cdc.cc, Makefile.am, admin.cc:
Split delta.h, delta-table.h, and delta-iterator.h out of
sccsfile.h to compartmentalise the dependencies.
* what.cc: Added retuen statement after call to fail() so that the
compiler stops warning about missing return statements.
* what.cc, unget.cc, prt.cc, rmdel.cc, my-getopt.h, prs.cc,
my-getopt.cc, getopt.cc, getopt.h, get.cc, cdc.cc, delta.cc,
Makefile.am, admin.cc, ChangeLog: Renamed getopt.* to my-getopt.*
to avoid conflict with systemhader of the same name.
Sun Nov 30 14:10:45 1997 James Youngman <jay@gnu.org>
* my-getopt.h: Renamed getopt.h because it conflicts with the Unix
include file of the same name. On some systems (e.g. IRIX),
<stdio.h> includes <getopt.h>. Since autoconf required that we
use the preprocessor flag -I., this meant that our C++ header was
being included by the C programs in testutils. Hence they did not
compile.
Sun Nov 23 12:05:32 1997 James Youngman <jay@gnu.org>
* getopt.cc: small changes to eliminate unuseful dependence on
quit.h.
* what.cc: no longer needs quit.h (and in fact what no longer
needs quit.o).
* tests/year-2000: added test scripts for Year-2000 compliance.
They also cover the whole life of SCCS (1969 -- 2038).
* sccsdate.cc: We now handle dates without using time_t, so that
everything works with dates right up to 2068. sccs_date::now()
still fails when time_t runs out (Tue Jan 19 03:14:07 2038 on my
system).
* mktime.c: removed this obsolete file.
* configure.in: no longer need mktime() or "timezone".
* sccsname.cc: Fixed bug with 1-character filenames.
* mystring.h: Use the standard string class from <string>, if it
is available.
Thu Nov 20 21:03:24 1997 James Youngman <jay@gnu.org>
* sccsdate.cc: Added changes mandated by X/Open for year
2000 compliance, and fixed year-2019 bug.
* docs/cssc.texi: Added chapter covering Year 2000 issues to the
manual.
Wed Nov 12 00:13:01 1997 James Youngman <jay@gnu.org>
* docs/cssc.texi: added TODO comments for text that still needs to
be written.
* docs/TODO: added list of undocumented/unimplemented/untested
stuff.
Tue Nov 11 22:11:47 1997 James Youngman <jay@gnu.org>
* strerror.c, strstr.c: #include <config.h> not "cssc.h" since the
latter contains C++ class definitions and this is a C module.
* fsync.h, list.h: Don't use double leading underscores in macro
names since this conflicts with the implementation's namespace.
* file.h: Don't munge the names of rename() and remove() since
these now no longer have their definitions #included.
* Makefile.am: Fixed rule for sccsdiff, which did not work on BSD
make (since it didn't grok "$<", apparently).
Sun Nov 9 21:06:59 1997 James Youngman <jay@gnu.org>
* NEWS: Changes for CSSC-devel-0.03-pl0.
* Makefile.am:
Added in some extra garbage to the distribution so that 99.9% of the
contents of Master-Source goes into the distribution, even unuseful
stuff like _chmod.cc. Someone might want it for a port. Might move
it into unused/ soon though.
* configure.in:
Changed the package number to restore the "devel" label but
(apparently) conform to the Gnits standard...
* Makefile.am:
Added noinst_HEADERS macro so that the header files get put in the
distribution too.
* NEWS: Updated for CSSC-0.02-devel-pl7.
* configure.in: Package name is "CSSC", not "cssc".
* README: Removed "xxx does not work" for appropriate values of xxx.
* strstr.c:
Can't use LIDENT any more to "rename" strstr() since this file is now
compiled separately.
* strstr.c:
No need to guard against multiple inclusion since this is now compiled
separately.
* version.cc.in: Initial revision
* sf-get.cc, sf-delta.cc, sf-admin.cc:
Don't include strstrr.cc directly; configure now puts it into
@LIBOBJS@.
* acconfig.h:
Include the macros PACKAGE and VERSION to make autoheader happy.
* configure.in:
Switched to using "automake". Also, the config header file produced
by "configure" is now called "config.h" (what used to be the old
"config.h" is now part of "cssc.h").
* cssc.h:
Got rid of the old config.h file by including its contents directly
into cssc.h. Hence the config header file produced by "configure" is
now called "config.h".
* Makefile.am: Initial revision
* configure.in: Some automake changes. Doesn't really work yet.
* cssc.h: Merged the contenst of config.h.
Sat Nov 8 23:09:25 1997 James Youngman <jay@gnu.org>
* AUTHORS: Initial revision
Sat Nov 8 14:29:45 1997 James Youngman <jay@gnu.org>
* Makefile.in:
Changes to distclean to make sure we don't include generated files in
the archive if we "make dist" when the source and object dirs are the
same.
* Makefile.in:
To make life easier for those without a copy of "makeinfo", we supply
a ready-made info file in the distribution.
Fri Nov 7 23:06:06 1997 James Youngman <jay@gnu.org>
* sf-admin.cc: sl-merge.cc is now sl-merge.h.
* configure.in: Also produce pwd/Makefile.
* sl-merge.h:
This is now a .h not a .c file. It had been #included anyway.
* sid_list.cc:
Added in most of what had been in sid_list.cc into sid_list.h; this
had been #included anyway. The test code is all that's still left in
the now much shorter sid_list.cc.
* sid_list.h:
Added in most of what had been in sid_list.cc; this had been #included
anyway. The test code is still left in the now much shorter
sid_list.cc.
* list.h:
Added in what used to be the contents of list.cc; this had been
#included anyway.
* admin.cc: Include sid_list.h and sl-merge.h.
* Makefile.in:
Use "distclean" target because it is mentioned in INSTALL.
Also, added "realpwd" and updated the dependencies.
Thu Nov 6 22:37:22 1997 James Youngman <jay@gnu.org>
* config.h, cssc.h, defaults.h, file.h, fileiter.h, filelock.h:
Don't use preprocessor identifiers beginning with two underscores;
that conflicts with the implementation's namespace.
* filepos.h: Protect against multiple inclusion.
* getopt.h, linebuf.h, list.h, myconfig.h, mystring.h, pfile.h, pipe.h, quit.h, run.h, sccsdate.h, sccsfile.h, sccsname.h, seqstate.h, sf-chkmr.h, sid.h, sid_list.h, stack.h, sysdep.h, xalloc.h:
Don't use preprocessor identifiers beginning with two underscores;
that conflicts with the implementation's namespace.
Wed Oct 29 23:01:43 1997 James Youngman <jay@gnu.org>
* mkinstalldirs, COPYING: Initial revision
* Makefile.in:
FreeBSD's "make" doesn't define "RM" by default. So provide that
definition.
Tue Oct 28 22:43:40 1997 James Youngman <jay@gnu.org>
* Makefile.in:
By default, only generate the info file and not the DVI file also.
Mon Oct 27 19:28:00 1997 James Youngman <jay@gnu.org>
* sf-get.cc:
write_subst(): take as a parameter the delta which is actually being
gotten, so that keyword substitution is correctly carried out.
* sccsfile.h, sf-admin.cc, sf-delta.cc:
Use the no_id_keywords() member function to indicate that situation
(which might result in either a fatal error or just a warning,
according to the setting of the "i" flag).
* sf-get2.cc:
write_subst(): take as a parameter the delta which is actually being
gotten, so that keyword substitution is correctly carried out. Also,
use the no_id_keywords() member function to indicate that situation
(which might result in either a fatal error or just a warning,
according to the setting of the "i" flag).
* Makefile.in:
Added sf-kw.cc for get, delta and admin. Also added targets for
testing each program separately.
* sf-kw.cc: Take as a parameter the name of the file.
Sun Oct 26 19:48:06 1997 James Youngman <jay@gnu.org>
* sf-kw.cc: Initial revision
* get.cc: The -m and -n options had been the wrong way around.
* what.cc: Made the output format match that of the real thing. Most
importantly, we no longer emit the initial @(#).
Sat Oct 25 16:53:26 1997 James Youngman <jay@gnu.org>
* README:
Modified the example scripts for compiling the package, in such a way
that I get more information if there is some failure. Also, update
the name of the GNU domain; this has changed from gnu.ai.mit.edu to
gnu.org.
* Makefile.in: Added canonify.cc to the sources for making "get".
* sid.h, sid.cc:
Sometimes we _always_ want the SID component to be printed, even if it
is zero. Examples of this include the %R%,%B%,%L% and %S% keywords
expanded by sccs-get. An extra argument (with a default) has been
added to sid::printf(). The default behaviour is the same as the old
behaviour.
* sf-get2.cc:
Corrected the expansions of the %R%, %L%, %B%, %S% and %P% keywords.
(Also have a new test file, get/subst.sh, to test these).
* sccsname.h:
Added prototype for canonify_filename(), which is used in sf-get2.cc,
to expand the %P% keyword.
* mystring.h, mystring.cc:
Added an operator[], which returns a const char&.
* canonify.cc:
canonify_filename() now takes a const char* as its argument.
* canonify.cc: Initial revision
Mon Aug 11 21:35:36 1997 James Youngman <jay@gnu.org>
* mystring.h: Patches from Fila Kolodny <fila@ibi.com> to support
snapshots of GCC after 2.7.2.2.
Thu Jul 17 08:39:42 1997 James Youngman <jay@gnu.org>
* tests/common/test-common: Fixed typo (which had caused echo -e
bug on Solaris).
Tue Jul 15 18:59:52 1997 James Youngman <jay@gnu.org>
* Makefile.in: Bumped patchlevel (Solaris /bin/sh portability).
Tue Jul 15 07:04:02 1997 James Youngman <jay@gnu.org>
* Makefile.in:
Bumped patchlevel (lndir now is happy if source & dest are the same).
Mon Jul 14 21:40:20 1997 James Youngman <jay@gnu.org>
* Makefile.in: Bumped the version number -- another prerelease, 0.02.
* Makefile.in:
Made it possible to run "make dist" from the work dir. That way, an
already-created makefile will be used. No actual files from the work
directory are included in the distribution.
* Makefile.in: Make in "lndir" too.
* configure.in: sub-configure in "lndir" too.
Thu Jul 10 20:31:17 1997 James Youngman <jay@gnu.org>
* README: Provided quick-start info and a reference to docs/TESTING.
Thu Jul 10 20:17:31 1997 James Youngman <jay@gnu.org>
* sf-prt.cc, sccsfile.h, sccsfile.cc:
Horrible hack to support "empty" include/exclude lists for deltas so
that prt can be completely faithful to the SCCS command of the same
name.
Wed Jul 9 21:59:21 1997 James Youngman <jay@gnu.org>
* Makefile.in: Bumped to 0.01-devel-pl13.
Mon Jul 7 21:36:15 1997 James Youngman <jay@gnu.org>
* Makefile.in: Small correction to all-tests target.
* Makefile.in:
Don't hardwire $(prefix). Also rationalised testing targets.
* run.h:
Use USE_PIPE not HAVE_PIPE because HAVE_FORK is also required in order
for USE_PIPE to e sensible.
* acconfig.h: Add explanation of HAVE_FORK.
* pipe.h, sf-delta.cc, pipe.cc:
Use USE_PIPE not HAVE_PIPE because HAVE_FORK is also required in order
for USE_PIPE to e sensible.
* configure.in:
Treak fork() specially since we have to avoid it on AmigaOS.
* quit.cc:
Use USE_PIPE not HAVE_PIPE because HAVE_FORK is also required in order
for USE_PIPE to e sensible.
* run.cc: Try to cope with the almost-completely-useless semantics of
system()...MR validation on systems without fork() or spawn() is
broken.
Wed Jul 2 18:21:52 1997 James Youngman <jay@gnu.org>
* Makefile.in: Bumped patchlevel (attempted IRIX fix)
Wed Jul 2 18:18:44 1997 James Youngman <jay@gnu.org>
* quit.cc, prs.cc, prompt.cc, pipe.cc, pfile.cc, pf-del.cc,
pf-add.cc, mystring.cc, list.cc, linebuf.cc, l-split.cc,
getopt.cc, get.cc, fsync.cc, fileiter.cc, file.cc, delta.cc,
cdc.cc, admin.cc, _chmod.cc:
Oops. Removed line that should not have been in the header.
* xalloc.h, sysdep.h, stack.h, sid_list.h, sid.h, sf-chkmr.h,
seqstate.h, sccsname.h, sccsfile.h, sccsdate.h, run.h, release.h,
rel_list.h, quit.h, pipe.h, pfile.h, mystring.h, myconfig.h:
Updated the copyright header.
* myconfig.h: Initial revision
* list.h, linebuf.h, getopt.h, filelock.h, fileiter.h, file.h,
defaults.h, xalloc.cc, what.cc, unget.cc, strstr.cc, split.cc,
sl-merge.cc, sid_list.cc, sid.cc, sf-write.cc, sf-rmdel.cc,
sf-prs.cc, sf-get3.cc, sf-get2.cc, sf-get.cc, sf-delta.cc,
sf-chkid.cc, sf-cdc.cc, sf-admin.cc, sf-add.cc, sccsname.cc,
sccsfile.cc, sccsdate.cc, sact.cc, run.cc, rmdel.cc, rl-merge.cc,
rel_list.cc, quit.cc, prs.cc, prompt.cc, pipe.cc, pfile.cc,
pf-del.cc, pf-add.cc, mystring.cc, list.cc, linebuf.cc,
l-split.cc:
Updated the copyright header.
* getopt.cc: Updated the copyright header.
Also made the class members non-inline to appease IRIX.
* get.cc, fsync.cc, fileiter.cc, file.cc, delta.cc, cdc.cc,
admin.cc, _chmod.cc:
Updated the copyright header.
* sf-prt.cc:
It seems that -b doesn't turn off the printing of the delta table,
after all.
* sccsfile.cc, sf-prt.cc:
Ue SEEK_SET instead of the manifest constant zero for fseek().
Include <unistd.h> to get it, on SunOS.
* filepos.h:
Ue SEEK_SET instead of the manifest constant zero for fseek().
Wed Jul 2 06:55:16 1997 James Youngman <jay@gnu.org>
* Makefile.in:
Portability fixes for Solaris and SunOS; make sure libsubst.a is never
empty (Solaris ld doesn't like empty libraries), fall back on
fseek()/ftell() in the absence of fsetpos()/fgetpos().
* sf-prt.cc:
Use the helper class FilePosSaver to encapsulate fgetpos() or the lack
of it.
* filepos.h: Initial revision
* configure.in, acconfig.h: Added HAVE_FSETPOS.
* dummy.cc: Initial revision
Tue Jul 1 07:56:48 1997 James Youngman <jay@gnu.org>
* Makefile.in:
Bumped to patchlevel 10 (we were installing cssc.info in the root
directory!)
Mon Jun 30 22:15:07 1997 James Youngman <jay@gnu.org>
* Makefile.in: Bumped to CSSC-0.01-devel-pl9 prior to release.
* INSTALL:
Replace the original (MySC) INSTALL file with the generic one suitable
for Autoconf-generated "configure" files.
* move-if-change: Initial revision
* Makefile.in:
Moved version info into vernum.h, which is an auto-generated file.
We now avoid re-building version.o and relinking everything, if the
actual version information is unchanged. Also support tar'ing the
RCS files into a separate tar file for possible distribution.
* version.h: Initial revision
* version.cc:
Moved version info into vernum.h, which is an auto-generated file.
* Makefile.in: Support "make install".
Sun Jun 29 10:47:08 1997 James Youngman <jay@gnu.org>
* configure.in: Put the *.cs files into the directory "shorter".
* Makefile.in: Added "prt" as a target.
Sun Jun 29 09:38:21 1997 James Youngman <jay@gnu.org>
* docs/Makefile.in:
Make PostScript output (A4 by default) too. Support Letter-sized
paper as well.
* docs/gpl.texinfo: Initial revision
* docs/cssc.texi: Put the copy of the GPL back in.
Sat Jun 28 15:12:58 1997 James Youngman <jay@gnu.org>
* docs/cssc.texi:
MR numbers do not have to be numbers. Added "Known Problems"
section. Added remarks about how to encode files sent with bug
reports.
Sat Jun 28 14:40:04 1997 James Youngman <jay@gnu.org>
* prt.cc: Always print the s.file's name, even of there is only one.
* sf-prt.cc:
Several fixes to do with the arrangement of whitespace. Also, say
"none" if we have no flags.
Fri Jun 27 18:51:22 1997 James Youngman <jay@gnu.org>
* sccsfile.cc: Added next_seqno(), used by delta.
* sf-delta.cc:
Working creation of null deltas; this version doesn't break branching
(in absence of null deltas).
* sccsfile.h: Added next_seqno(), used by delta.
Mon Jun 23 23:02:47 1997 James Youngman <jay@gnu.org>
* Makefile.in: Added rl-merge.cc.
* sid.h: Moved operator release() elsewhere.
* sid.cc: Moved release::release(const sid&) elsewhere.
* release.h: Added release(const sid&).
* sf-delta.cc: Preliminary support for null deltas.
Tue Jun 3 20:23:40 1997 James Youngman <jay@gnu.org>
* sccsfile.h:
Provide sid_in_use(), initially for use by find_next_sid().
* quit.h, quit.cc:
Added the function name to the information given when an assertion
fails, for GCC only.
* get.cc:
sccs_file::find_requested_sid() needs to pass back some information if
the requested sid was either unspecified or specified the release
number only.
* sid.h: Added sid::next_level(), initially for use by
sccs_file::find_next_sid().
* sf-get2.cc:
Better support for branching and a stab at support for the joint-edit
flag.
Mon Jun 2 23:07:11 1997 James Youngman <jay@gnu.org>
* sf-get2.cc:
Reworked find_next_sid(), which decides what SID we'll put in the
p.file.
Sun Jun 1 20:39:03 1997 James Youngman <jay@gnu.org>
* sid.h, sid.cc:
Provide new methods on_trunk(), matches(), and components(), initially
for use by sccs_file::find_requested_sid().
* sf-get2.cc:
Rewrote get_requested_sid() to be shorter, provide behaviour closer to
SCCS, and to allow for later support of get's -t option.
* release.h:
Provide informational enum member LARGEST, denoting the largest valid
release number.
* sccsfile.h:
Find_requested_sid() needs to know wether it should look along
branches, so provide that as a parameter.
* sf-admin.cc:
The "fixes" for id-keyword processing had accidentally ensured that we
only read the first line of the input file :-)
* sccsfile.cc, sccsfile.h: Added sccs_file::delta::removed().
* sf-get2.cc:
Correctly handle "get -r99" when there is only one revision in the
file.
Sun Jun 1 00:36:37 1997 James Youngman <jay@gnu.org>
* Makefile.in: Bumped the patchlevel to CSSC-0.01-devel-pl6
Sun Jun 1 00:32:11 1997 James Youngman <jay@gnu.org>
* Makefile.in: Updated the dependencies.
* sf-prt.cc: Fixed small bug with empty string flags.
* release.h: print() needs to return zero for success.
Sat May 31 23:30:27 1997 James Youngman <jay@gnu.org>
* sccsfile.cc:
Support empty 'i', 'x', and 'g' control lines with no argument. This
serves no purpose, but these do turn up.
* sf-prt.cc:
Support -i (list included/excluded deltas) and the printing of MRs and
comments (i.e. -d as opposed to -s).
* sf-prs.cc, sf-get3.cc, sf-get2.cc, prs.cc, get.cc, sccsfile.h:
Changed variables named "cutoof" to "cutoff_date" to avoid the new
struct cutoff inside sccs_file.
* sccsfile.cc:
Added a version of find_most_recent_sid() that works purely
chronologically rather thann along a branch.
* sccsfile.h:
A version of find_most_recent_sid() that works purely chronologically
rather thann along a branch, plus support sccs_file::cutoff, a reified
object encapsulating cutoff dates and SIDs for programs like sccs-prt
and sccs-prs.
* sccsdate.h: valid() can be a const member of sccs_date.
* sf-prt.cc:
Working support for cutoff dates and SIDs, plus printing the body of
the file.
* prt.cc: Working support for -c, -r, -y and also -b (print body).
Sat May 31 10:27:10 1997 James Youngman <jay@gnu.org>
* Makefile.in:
New source files rel_list.cc, rl-merge.cc, and sysnerr.h. Renamed
$(LFLAGS) to $(LDFLAGS).
* sf-delta.cc, sf-get.cc: Fixes for id-keywords-flag processing.
* quit.cc:
Obtain declarations of sys_nerr and sys_errlist from our own header
sysnerr.h, which used macros generated by "configure".
* admin.cc: Support naked -i, -m, and -y options. Hence remove
the -I, -M, and -Y options.
* prt.cc: Initial revision
* sccsfile.cc, sf-write.cc: Fixes for id-keywords-flag processing.
* release.h: Initial revision
* sid.h: Reimplemented the class release_list.
* sf-admin.cc:
Fixes for id-keywords-flag processing, and support the naked "y"
option, which inhibits the default comment.
* sf-get2.cc: Fixes for id-keywords-flag processing.
* rl-merge.cc, rel_list.h, rel_list.cc: Initial revision
* sf-prs.cc:
Fixes for id-keywords-flag processing. Reimplemented the class
release_list.
* sccsfile.h: Support "prt". Fixed for id-keywords-flag
processing. Use rel_list.h since we have now reimplemented the
class release_list.
* sf-prt.cc: Initial revision
Tue May 27 20:16:39 1997 James Youngman <jay@gnu.org>
* sysnerr.h: Initial revision
* unget.cc: Actually SCCS _doesn't_ print the locked SID twice, I
was mistaken :-(
Sun May 25 15:34:00 1997 James Youngman <jay@gnu.org>
* unget.cc:
Modified the output format to be closer to that of SCCS. We're still
not there, and the current "unget" test script fails for us (it passes
for SCCS).
* fileiter.cc, fileiter.h:
Added unique() which returns nonzero if we're in the situation where
the utilities don't need to print out the name of the SCCS file
they're working on because it's unambiguous -- that is, exactly one
was specified on the command line.
* pfile.h:
Added print_lock_sid, which prints the SID of the lock that "pos"
refers to (the SID of the delta not the SID of the gotten revision).
* pfile.cc:
Added print_lock_sid, which prints the SID of the lock that "pos"
refers to.
Fri May 23 00:11:28 1997 James Youngman <jay@gnu.org>
* Support "admin -t" with no argument.
* Makefile.in (docs/Makefile): Need installdocs target.
Wed May 21 00:06:46 1997 James Youngman <jay@gnu.org>
* linebuf.h, linebuf.cc:
Small changes (not actually to executable code) to allow the sid_list
test code to work.
* sl-merge.cc:
Much fixing with regard to sid_lists. Construction from,
comparison with, and assignment from NULL are sins no longer
committed. Also, the nested class "range" is now a separate template
class.
* sid.cc:
The branch and sequence components of trunk revisions are supposed to
be blank. Also some small changes (not actually to executable code)
to allow the sid_list test code to work.
* getopt.cc:
Invented the '!' modifier, similar to ':', but allowing empty
options. Note that this is to support empty -m and -y options for
admin and delta, that this behaviour is for compatibility with "real"
SCCS, and is unlike traditional or POSIX option processing.
Tue May 20 23:58:56 1997 James Youngman <jay@gnu.org>
* delta.cc: Support for empty -m and -y options.
* admin.cc:
If admin is given a bare -y option, this means that NO comments are to
be entered into the SCCS file for the initial delta. This is distinct
from the situation when no -y option is given, when a "date and
time created..." entry is added. Hence the suppress_comments flag
needs to be passed down into sccs_file::create(), which is where that
message is normally added.
* sf-prs.cc:
Many, many fixes involving the output format for flags that are not
set, plus backslash escape processing has been implemented, as in
"real" SCCS.
* sf-admin.cc:
If admin is given a bare -y option, this means that NO comments are to
be entered into the SCCS file for the initial delta. This is distinct
from the situation when no -y option is given, when a "date and
time created..." entry is added. Hence the suppress_comments flag
needs to be passed down into sccs_file::create(), which is where that
message is normally added.
* sf-write.cc, sccsfile.h:
Construction from, comparison with, and assignment from NULL are sins
no longer committed with sid_lists.
* pfile.h:
Use range_list<>'s empty() method, not comparison with NULL, to find
out if it empty.
* sid_list.cc, sid_list.h:
Much fixing with regard to validity checks. Construction from,
comparison with, and assignment from NULL are sins no longer
committed.
Mon May 19 18:57:22 1997 James Youngman <jay@gnu.org>
* sid_list.h: Eliminate range_list<>::operator=(void*), since it
is a carbuncle -- see comments in sid_list.h.
Sat May 17 12:19:02 1997 James Youngman <jay@gnu.org>
* run.cc:
If run_mr_checker() is called (because the v flag is set) but the PRG
argument is empty (i.e. the flag is set to the empty string), the
validation silently succeeds.
* delta.cc:
Fixed bugs involving MRs. We now output the delta's SID to stdout even
though the delta fails, because that's what SCCS does. More
importantly, if the MR validation flag is set, but has no value, MRs
are prompted for and allowed (with the -m option) but no actual
changing is done -- they are always assumed valid.
Fri May 16 08:04:08 1997 James Youngman <jay@gnu.org>
* Support tests for MR number processing and interactive comments
for delta (but the latter is only done if stdin is a tty...)
Thu May 15 21:51:57 1997 James Youngman <jay@gnu.org>
* l-split.cc:
Fixed split_mrs(). It now calls strtok correctly and frees the right
thing. I don't see how it could ever have previously worked...but I
don't know that it did.
Tue May 13 17:40:15 1997 James Youngman <jay@gnu.org>
* get.cc:
Sense of the variable "keywords" was inverted. We now suppress
keyword expansion for -e and -k, and do expansion otherwise, not vice
versa.
Sat May 10 14:50:00 1997 James Youngman <jay@gnu.org>
* almost all files: changed the package name
* version.cc: Modified the version strings so that they show up with
RCS ident and SCCS/CSSC's what, and also are human-readable.
* cssc.h: Moved the version() function into version.h.
* sccsfile.cc: Fixed problem with updating our notion of hogh_release.
* sf-delta.cc:
Output the inserted/deleted/unchanged lines, just like "real" SCCS.
* get.cc:
Go for output compatibility when reporting Included/Excluded deltas,
and actually make the output the same.
* Tested the test scripts themselves against the real thing, and
hence fixed them, and hence made some changes to CSSC, mostly in
the exact format of the output (sccsfile.cc, sf-delta.cc, get.cc).
Wed May 7 23:39:49 1997 James Youngman <jay@gnu.org>
* sf-get2.cc: find_requested_sid: Fix a bug in the case where
there is only one SID (1.1) in the file and no -r is specified on
the command line (i.e requested.is_null() is true).
Sun May 4 17:01:36 1997 James Youngman <jay@gnu.org>
* sf-get2.cc: Fixed the behaviour when no -r is given or the -r
that is given is of the form -rX or -rX.Y.Z (see docs/get-spec.txt
and tests/get/sid-select.sh)
* Makefile.in: Added sccsdiff to $(CMDS).
* Makefile.in:
Added a rule for creating sccsdiff.sh from sccsdiff.sh.in.
* configure.in:
Find the pr(1) program and substitute for it in sccsdiff.sh.in.
* file.cc: Corrected usage of freopen(), which returns NULL on failure.
* sccsdiff.sh.in:
Have to enclose the version string in single rather than double
quotes, to protect the dollar signs from shell expansion.
* sccsdiff.sh.in: Initial revision
Sun May 4 12:11:02 1997 James Youngman <jay@gnu.org>
* sf-get2.cc: Bugfix for behaviour with "-e -r2" when latest trunk
revision was 1.x. This used to get a delta from 1.x, now it
creates the new delta 2.1, as does "real" SCCS.
Sat May 3 22:42:55 1997 James Youngman <jay@gnu.org>
* get.cc:
Added support for the -G option (standard and used by, for example,
GNU make).
* sf-get2.cc:
If no SID is specified with -r, and no SID id specified in the file as
the default, use the one furthest down the trunk from 1.1. Don't
return one on a branch.
Sat May 3 17:17:38 1997 James Youngman <jay@gnu.org>
* sf-get.cc:
Support SCCS files whose first referred-to delta is not numbered 1.
SunOS can produce these.
* sf-write.cc, sf-prs.cc, sf-admin.cc, sccsfile.h, sccsfile.cc:
Added support for the 'e' (encoded) flag.
Sat May 3 11:51:53 1997 James Youngman <jay@gnu.org>
* sf-get2.cc:
In sccs_file::find_requested_sid(), if the requested sid is 0.0.0.0
(i.e. is_null()), accept the first sid we find as the first guess at
the best match (but continue to look). [oops, bad idea, see above!]
* sid.h:
Fixed bug in the conditionals for sid::valid() and release::valid().
* Makefile.in: Added dependencies.
Tue Apr 29 01:42:14 1997 James Youngman <jay@gnu.org>
*: Decided to consider supporting setuid execution via BSD's
sccs(1) command.
Sun Apr 20 22:38:13 1997 James Youngman <jay@gnu.org>
* file.cxx: What about support for set-Group-ID execution?
2001-11-23 james_youngman <james_youngman@periwinkle.no.where>
* /cvsroot/cssc/gnu/CSSC/tests/prs/format.sh:
Initial version - qworks on Solaris SCCS, not on CSSC.
2001-09-29 james_youngman <james_youngman@periwinkle.no.where>
* /cvsroot/cssc/gnu/CSSC/testutils/last-time.c, /cvsroot/cssc/gnu/CSSC/testutils/realpwd.cc, /cvsroot/cssc/gnu/CSSC/testutils/seeker.c, /cvsroot/cssc/gnu/CSSC/testutils/user.c, /cvsroot/cssc/gnu/CSSC/testutils/uu_decode.c, /cvsroot/cssc/gnu/CSSC/testutils/yammer.c, /cvsroot/cssc/gnu/CSSC/testutils/yes.c, /cvsroot/cssc/gnu/CSSC/unused/_chmod.cc, /cvsroot/cssc/gnu/CSSC/unused/dosfile.cc, /cvsroot/cssc/gnu/CSSC/unused/dummy.cc, /cvsroot/cssc/gnu/CSSC/unused/ffsync.cc, /cvsroot/cssc/gnu/CSSC/unused/fsync.cc, /cvsroot/cssc/gnu/CSSC/unused/pipe.cc, /cvsroot/cssc/gnu/CSSC/unused/pipe.h, /cvsroot/cssc/gnu/CSSC/unused/sid_list.cc, /cvsroot/cssc/gnu/CSSC/admin.cc, /cvsroot/cssc/gnu/CSSC/autogen.sh, /cvsroot/cssc/gnu/CSSC/bodyio.cc, /cvsroot/cssc/gnu/CSSC/bodyio.h, /cvsroot/cssc/gnu/CSSC/bsd/sccs.c, /cvsroot/cssc/gnu/CSSC/canonify.cc, /cvsroot/cssc/gnu/CSSC/cap.cc, /cvsroot/cssc/gnu/CSSC/cdc.cc, /cvsroot/cssc/gnu/CSSC/configure.in, /cvsroot/cssc/gnu/CSSC/cssc.h, /cvsroot/cssc/gnu/CSSC/defaults.h, /cvsroot/cssc/gnu/CSSC/delta.cc, /cvsroot/cssc/gnu/CSSC/delta.h, /cvsroot/cssc/gnu/CSSC/delta-iterator.cc, /cvsroot/cssc/gnu/CSSC/delta-iterator.h, /cvsroot/cssc/gnu/CSSC/delta-table.cc, /cvsroot/cssc/gnu/CSSC/delta-table.h, /cvsroot/cssc/gnu/CSSC/docs/gpl.texi, /cvsroot/cssc/gnu/CSSC/dtbl-prepend.cc, /cvsroot/cssc/gnu/CSSC/encoding.cc, /cvsroot/cssc/gnu/CSSC/environment.cc, /cvsroot/cssc/gnu/CSSC/err_no.h, /cvsroot/cssc/gnu/CSSC/except.h, /cvsroot/cssc/gnu/CSSC/fatalsig.cc, /cvsroot/cssc/gnu/CSSC/fdclosed.cc, /cvsroot/cssc/gnu/CSSC/file.cc, /cvsroot/cssc/gnu/CSSC/filediff.cc, /cvsroot/cssc/gnu/CSSC/filediff.h, /cvsroot/cssc/gnu/CSSC/file.h, /cvsroot/cssc/gnu/CSSC/fileiter.cc, /cvsroot/cssc/gnu/CSSC/fileiter.h, /cvsroot/cssc/gnu/CSSC/filelock.h, /cvsroot/cssc/gnu/CSSC/filepos.h, /cvsroot/cssc/gnu/CSSC/fnsplit.cc, /cvsroot/cssc/gnu/CSSC/get.cc, /cvsroot/cssc/gnu/CSSC/ioerr.h, /cvsroot/cssc/gnu/CSSC/linebuf.cc, /cvsroot/cssc/gnu/CSSC/linebuf.h, /cvsroot/cssc/gnu/CSSC/list.cc, /cvsroot/cssc/gnu/CSSC/l-split.cc, /cvsroot/cssc/gnu/CSSC/my-getopt.cc, /cvsroot/cssc/gnu/CSSC/my-getopt.h, /cvsroot/cssc/gnu/CSSC/mylist.h, /cvsroot/cssc/gnu/CSSC/mystring.cc, /cvsroot/cssc/gnu/CSSC/mystring.h, /cvsroot/cssc/gnu/CSSC/pf-add.cc, /cvsroot/cssc/gnu/CSSC/pf-del.cc, /cvsroot/cssc/gnu/CSSC/pfile.cc, /cvsroot/cssc/gnu/CSSC/pfile.h, /cvsroot/cssc/gnu/CSSC/prompt.cc, /cvsroot/cssc/gnu/CSSC/prs.cc, /cvsroot/cssc/gnu/CSSC/prt.cc, /cvsroot/cssc/gnu/CSSC/quit.cc, /cvsroot/cssc/gnu/CSSC/quit.h, /cvsroot/cssc/gnu/CSSC/release.h, /cvsroot/cssc/gnu/CSSC/rel_list.cc, /cvsroot/cssc/gnu/CSSC/rel_list.h, /cvsroot/cssc/gnu/CSSC/relvbr.h, /cvsroot/cssc/gnu/CSSC/rl-merge.cc, /cvsroot/cssc/gnu/CSSC/rmdel.cc, /cvsroot/cssc/gnu/CSSC/run.cc, /cvsroot/cssc/gnu/CSSC/run.h, /cvsroot/cssc/gnu/CSSC/sact.cc, /cvsroot/cssc/gnu/CSSC/sccsdate.cc, /cvsroot/cssc/gnu/CSSC/sccsdate.h, /cvsroot/cssc/gnu/CSSC/sccs-delta.cc, /cvsroot/cssc/gnu/CSSC/sccsfile.cc, /cvsroot/cssc/gnu/CSSC/sccsfile.h, /cvsroot/cssc/gnu/CSSC/sccsname.cc, /cvsroot/cssc/gnu/CSSC/sccsname.h, /cvsroot/cssc/gnu/CSSC/seqstate.cc, /cvsroot/cssc/gnu/CSSC/seqstate.h, /cvsroot/cssc/gnu/CSSC/sf-add.cc, /cvsroot/cssc/gnu/CSSC/sf-admin.cc, /cvsroot/cssc/gnu/CSSC/sf-cdc.cc, /cvsroot/cssc/gnu/CSSC/sf-chkid.cc, /cvsroot/cssc/gnu/CSSC/sf-chkmr.h, /cvsroot/cssc/gnu/CSSC/sf-delta.cc, /cvsroot/cssc/gnu/CSSC/sf-get2.cc, /cvsroot/cssc/gnu/CSSC/sf-get3.cc, /cvsroot/cssc/gnu/CSSC/sf-get.cc, /cvsroot/cssc/gnu/CSSC/sf-kw.cc, /cvsroot/cssc/gnu/CSSC/sf-prs.cc, /cvsroot/cssc/gnu/CSSC/sf-prt.cc, /cvsroot/cssc/gnu/CSSC/sf-rmdel.cc, /cvsroot/cssc/gnu/CSSC/sf-val.cc, /cvsroot/cssc/gnu/CSSC/sf-write.cc, /cvsroot/cssc/gnu/CSSC/showconfig.cc, /cvsroot/cssc/gnu/CSSC/show-disp.sh, /cvsroot/cssc/gnu/CSSC/sid.cc, /cvsroot/cssc/gnu/CSSC/sid.h, /cvsroot/cssc/gnu/CSSC/sid_list.h, /cvsroot/cssc/gnu/CSSC/sl-merge.h, /cvsroot/cssc/gnu/CSSC/split.cc, /cvsroot/cssc/gnu/CSSC/stack.h, /cvsroot/cssc/gnu/CSSC/strstr.c, /cvsroot/cssc/gnu/CSSC/sysdep.h, /cvsroot/cssc/gnu/CSSC/unget.cc, /cvsroot/cssc/gnu/CSSC/val.cc, /cvsroot/cssc/gnu/CSSC/valcodes.h, /cvsroot/cssc/gnu/CSSC/version.h, /cvsroot/cssc/gnu/CSSC/what.cc, /cvsroot/cssc/gnu/CSSC/writesubst.cc:
Updated copyright year and FSF address
2001-09-23 james_youngman <james_youngman@periwinkle.no.where>
* /cvsroot/cssc/gnu/CSSC/configure.in:
Updated version number (to identify versions checked out from the CVS
repository).
* /cvsroot/cssc/gnu/CSSC/configure.in:
removed CVSDEVEL tag prior to release
* /cvsroot/cssc/gnu/CSSC/ChangeLog: updated from checkin messages
* /cvsroot/cssc/gnu/CSSC/NEWS: Brought up to date with recent changes.
* /cvsroot/cssc/gnu/CSSC/get.cc:
Give up privileges while manipulating the g-file, because the g-file
is owned by the euid of the process which invoked "get", not by the
set-user-id ownfer of the "get" file. This is related to Sourceforge
bug ID 458485.
* /cvsroot/cssc/gnu/CSSC/file.cc:
Minor correction to error message in set_file_mode() (don't have a
newline in the middle of it).
2001-09-23 james_youngman <james_youngman@periwinkle>
* /cvsroot/cssc/gnu/CSSC/get.cc:
Give up privileges while manipulating the g-file, because the g-file
is owned by the euid of the process which invoked "get", not by the
set-user-id ownfer of the "get" file. This is related to Sourceforge
bug ID 458485.
* /cvsroot/cssc/gnu/CSSC/file.cc:
Minor correction to error message in set_file_mode() (don't have a
newline in the middle of it).
2001-09-16 james_youngman <james_youngman@periwinkle>
* /cvsroot/cssc/gnu/CSSC/Makefile.am, /cvsroot/cssc/gnu/CSSC/pf-add.cc, /cvsroot/cssc/gnu/CSSC/pf-del.cc, /cvsroot/cssc/gnu/CSSC/pfile.h, /cvsroot/cssc/gnu/CSSC/sf-delta.cc, /cvsroot/cssc/gnu/CSSC/tests/rmdel/basic.sh, /cvsroot/cssc/gnu/CSSC/unget.cc:
Cope correctly in sccs_pfile::update() if there was no previously existing p-file
* /cvsroot/cssc/gnu/CSSC/pf-add.cc:
SF bug #444221: Create the p-file with mode 0644 (not 0666) but still allow concurrent edits
* /cvsroot/cssc/gnu/CSSC/docs/CREDITS, /cvsroot/cssc/gnu/CSSC/docs/CREDITS.short.txt:
(Credits for) patch to fix malloc()ed buffer size from Jeff Sheinberg
* /cvsroot/cssc/gnu/CSSC/bsd/sccs.c:
Patch to fix malloc()ed buffer size from Jeff Sheinberg
2001-08-30 james_youngman <james_youngman@periwinkle>
* /cvsroot/cssc/gnu/CSSC/tests/binary/binbasic.sh:
Executables have different names under Windows.
2001-08-29 james_youngman <james_youngman@periwinkle>
* /cvsroot/cssc/gnu/CSSC/testutils/decompress_stdin.sh.in:
Shell script which decompresses its input.
* /cvsroot/cssc/gnu/CSSC/tests/binary/eightbit.sh, /cvsroot/cssc/gnu/CSSC/tests/get/sf111140.sh, /cvsroot/cssc/gnu/CSSC/tests/get/sid-select.sh, /cvsroot/cssc/gnu/CSSC/tests/get/subst.sh, /cvsroot/cssc/gnu/CSSC/tests/prt/all-512.sh, /cvsroot/cssc/gnu/CSSC/tests/prt/default.sh, /cvsroot/cssc/gnu/CSSC/tests/prt/nodel.sh, /cvsroot/cssc/gnu/CSSC/autogen.sh, /cvsroot/cssc/gnu/CSSC/configure.in, /cvsroot/cssc/gnu/CSSC/cssc.h, /cvsroot/cssc/gnu/CSSC/docs/Platforms, /cvsroot/cssc/gnu/CSSC/docs/texinfo.tex, /cvsroot/cssc/gnu/CSSC/file.cc, /cvsroot/cssc/gnu/CSSC/file.h, /cvsroot/cssc/gnu/CSSC/get.cc, /cvsroot/cssc/gnu/CSSC/Makefile.am, /cvsroot/cssc/gnu/CSSC/README, /cvsroot/cssc/gnu/CSSC/sccsfile.cc, /cvsroot/cssc/gnu/CSSC/sccsfile.h, /cvsroot/cssc/gnu/CSSC/sf-add.cc, /cvsroot/cssc/gnu/CSSC/sf-admin.cc, /cvsroot/cssc/gnu/CSSC/sf-delta.cc, /cvsroot/cssc/gnu/CSSC/sf-rmdel.cc, /cvsroot/cssc/gnu/CSSC/sf-write.cc:
Changes to support CYGWIN (compiles and builds with B20.1).
* /cvsroot/cssc/gnu/CSSC/tests/bsd-sccs/driver-basic.sh:
Altered test case h1 to account for buffering differences on CYGWIN.
* /cvsroot/cssc/gnu/CSSC/testutils/uu_decode.c:
Changes for file format compatibility with uuencode.
* /cvsroot/cssc/gnu/CSSC/INSTALL:
Updated INSTALL file from automake distribution.
* /cvsroot/cssc/gnu/CSSC/missing, /cvsroot/cssc/gnu/CSSC/mkinstalldirs:
Updated the utilities which are distributed but come from the automake
distribytion (automake -a -c copies them in).
* /cvsroot/cssc/gnu/CSSC/COPYING:
Updated address of FSF from COPYING file in automake distribution.
2001-08-28 james_youngman <james_youngman@periwinkle>
* /cvsroot/cssc/gnu/CSSC/testutils/Makefile.am, /cvsroot/cssc/gnu/CSSC/testutils/uu_decode.c:
Added uu_decode.c, replacing the system uudecode utility, since not all
systems have the latter.
2001-08-25 james_youngman <james_youngman@periwinkle>
* /cvsroot/cssc/gnu/CSSC/docs/Platforms:
Added remarks about "printf" macro bug in glibc 2.2.3.
* /cvsroot/cssc/gnu/CSSC/unused/.cvsignore, /cvsroot/cssc/gnu/CSSC/bsd/.cvsignore, /cvsroot/cssc/gnu/CSSC/auxfiles/.cvsignore:
ignore Makefile.in
* /cvsroot/cssc/gnu/CSSC/.cvsignore, /cvsroot/cssc/gnu/CSSC/tests/.cvsignore, /cvsroot/cssc/gnu/CSSC/testutils/.cvsignore:
Added some .cvsignore files to reduce the noise in the output of the update command
* /cvsroot/cssc/gnu/CSSC/docs/.cvsignore, /cvsroot/cssc/gnu/CSSC/docs/Platforms, /cvsroot/cssc/gnu/CSSC/docs/URLs:
Added info about how to patch cssc.texi to format it with old versions of Makefinfo, for example on NetBSD
* /cvsroot/cssc/gnu/CSSC/acconfig.h, /cvsroot/cssc/gnu/CSSC/configure.in, /cvsroot/cssc/gnu/CSSC/Makefile.am, /cvsroot/cssc/gnu/CSSC/mystring.h:
Changes to permit compilation with GCC v3 and GLIBC 2.2.3
2001-08-18 james_youngman <james_youngman@periwinkle>
* /cvsroot/cssc/gnu/CSSC/docs/mailing-list.txt:
Updated the installation instructions to bring them into line with the
actual method for subscribing to a Mailman mailng list.
2001-07-31 james_youngman <james_youngman@periwinkle>
* /cvsroot/cssc/gnu/CSSC/docs/Platforms:
Added updated info about which versions of Red Hat Linux this has been
tested on.
* /cvsroot/cssc/gnu/CSSC/docs/cssc.texi, /cvsroot/cssc/gnu/CSSC/testutils/ekko.c, /cvsroot/cssc/gnu/CSSC/testutils/seeker.c, /cvsroot/cssc/gnu/CSSC/testutils/yammer.c, /cvsroot/cssc/gnu/CSSC/bsd/sccs.c, /cvsroot/cssc/gnu/CSSC/docs/Makefile.am, /cvsroot/cssc/gnu/CSSC/fatalsig.cc, /cvsroot/cssc/gnu/CSSC/file.cc, /cvsroot/cssc/gnu/CSSC/get.cc, /cvsroot/cssc/gnu/CSSC/Makefile.am, /cvsroot/cssc/gnu/CSSC/pfile.cc, /cvsroot/cssc/gnu/CSSC/quit.cc, /cvsroot/cssc/gnu/CSSC/quit.h, /cvsroot/cssc/gnu/CSSC/run.cc, /cvsroot/cssc/gnu/CSSC/sccsfile.h, /cvsroot/cssc/gnu/CSSC/sf-delta.cc, /cvsroot/cssc/gnu/CSSC/sf-get2.cc, /cvsroot/cssc/gnu/CSSC/sf-get.cc, /cvsroot/cssc/gnu/CSSC/sf-prs.cc, /cvsroot/cssc/gnu/CSSC/sf-write.cc, /cvsroot/cssc/gnu/CSSC/writesubst.cc:
Eliminated some compiler warnings (gcc version 2.96 2000073).
2001-07-15 james_youngman <james_youngman@periwinkle>
* /cvsroot/cssc/gnu/CSSC/admin.cc, /cvsroot/cssc/gnu/CSSC/bodyio.cc, /cvsroot/cssc/gnu/CSSC/bsd/sccs.c, /cvsroot/cssc/gnu/CSSC/configure.in, /cvsroot/cssc/gnu/CSSC/cssc.h, /cvsroot/cssc/gnu/CSSC/defaults.h, /cvsroot/cssc/gnu/CSSC/docs/cssc.texi, /cvsroot/cssc/gnu/CSSC/environment.cc, /cvsroot/cssc/gnu/CSSC/file.cc, /cvsroot/cssc/gnu/CSSC/Makefile.am, /cvsroot/cssc/gnu/CSSC/NEWS, /cvsroot/cssc/gnu/CSSC/README, /cvsroot/cssc/gnu/CSSC/sf-delta.cc, /cvsroot/cssc/gnu/CSSC/showconfig.cc, /cvsroot/cssc/gnu/CSSC/tests/common/config-data, /cvsroot/cssc/gnu/CSSC/what.cc:
As well as allowing binary file support to be turned off and a maximum
line length setting to be used, allow these to be overridden with
environment vvariables.
* /cvsroot/cssc/gnu/CSSC/tests/get/included.sh:
SourceForge bug number 441423: on NetBSD-1.5W, the sed "a" command
appears to eat the newline. Hence we replace the old single-step sed
command above with a three-step approach which doesn't use "a".
* /cvsroot/cssc/gnu/CSSC/docs/cssc.texi:
Added sensible header to HTML output; indicate the version number in
the top node of the Info file.
2001-07-14 james_youngman <james_youngman@periwinkle>
* /cvsroot/cssc/gnu/CSSC/docs/TODO:
Added all the tasks to the SourceForge task tracker (each task in the
TODO file is now annotated with its SourceForge task ID).
* /cvsroot/cssc/gnu/CSSC/NEWS:
Added SourceForge bug id for the concurrent-edit problem.
* /cvsroot/cssc/gnu/CSSC/ChangeLog:
Updated wrt newest checking comments.
* /cvsroot/cssc/gnu/CSSC/README: Add remark about "--disable-binary".
* /cvsroot/cssc/gnu/CSSC/acconfig.h, /cvsroot/cssc/gnu/CSSC/admin.cc, /cvsroot/cssc/gnu/CSSC/auxfiles/CSSC.spec.in, /cvsroot/cssc/gnu/CSSC/bodyio.cc, /cvsroot/cssc/gnu/CSSC/docs/config-info.texi.in, /cvsroot/cssc/gnu/CSSC/docs/cssc.texi, /cvsroot/cssc/gnu/CSSC/docs/Makefile.am, /cvsroot/cssc/gnu/CSSC/Makefile.am, /cvsroot/cssc/gnu/CSSC/NEWS, /cvsroot/cssc/gnu/CSSC/README, /cvsroot/cssc/gnu/CSSC/sf-delta.cc, /cvsroot/cssc/gnu/CSSC/sf-get2.cc, /cvsroot/cssc/gnu/CSSC/showconfig.cc, /cvsroot/cssc/gnu/CSSC/tests/binary/auto.sh, /cvsroot/cssc/gnu/CSSC/tests/binary/binbasic.sh, /cvsroot/cssc/gnu/CSSC/tests/binary/diff.sh, /cvsroot/cssc/gnu/CSSC/tests/binary/eightbit.sh, /cvsroot/cssc/gnu/CSSC/tests/binary/seeking.sh, /cvsroot/cssc/gnu/CSSC/tests/common/config-data, /cvsroot/cssc/gnu/CSSC/val.cc, /cvsroot/cssc/gnu/CSSC/version.h:
Provide new configure option, --disable-binary, which removes support
for creating binary SCCS files. If we find an existing binary SCCS file,
we can still work with it. Also allow the setting of a maximum line length
in order to provide better interoperability with other SCCS implementations.
* /cvsroot/cssc/gnu/CSSC/configure.in:
Allow the disabling of binary file support and the setting of a maximum
SCCS file line length (for interoperability).
2001-07-10 james_youngman <jay@gnu.org>
* /cvsroot/cssc/gnu/CSSC/get.cc, /cvsroot/cssc/gnu/CSSC/sccsfile.h, /cvsroot/cssc/gnu/CSSC/sf-get2.cc:
SourceForge bug 439146: concurrent edits cause assert failure
First cut at solving the problem.
* /cvsroot/cssc/gnu/CSSC/cdc.cc, /cvsroot/cssc/gnu/CSSC/delta.cc, /cvsroot/cssc/gnu/CSSC/get.cc, /cvsroot/cssc/gnu/CSSC/pf-del.cc, /cvsroot/cssc/gnu/CSSC/prs.cc, /cvsroot/cssc/gnu/CSSC/rmdel.cc, /cvsroot/cssc/gnu/CSSC/sccsfile.cc, /cvsroot/cssc/gnu/CSSC/sccsname.h, /cvsroot/cssc/gnu/CSSC/sf-admin.cc, /cvsroot/cssc/gnu/CSSC/sf-delta.cc, /cvsroot/cssc/gnu/CSSC/unget.cc, /cvsroot/cssc/gnu/CSSC/val.cc:
Various changes relating to correct NULL pointer 'spelling', in the
interests of greater portability.
2001-07-08 james_youngman <jay@gnu.org>
* /cvsroot/cssc/gnu/CSSC/ChangeLog, /cvsroot/cssc/gnu/CSSC/NEWS:
Updated ChangeLog and NEWS files prior to release.
* /cvsroot/cssc/gnu/CSSC/configure.in: Bumped version to 0.12alpha.pl0.
2001-07-06 james_youngman <jay@gnu.org>
* sid_list.h:
Source forge bug #438857; coredump if a range list has an empty element (e.g.
a comma at the end or two commas in a row).
2001-06-26 james_youngman <jay@gnu.org>
* docs/cssc.texi: Minor formatting changes
2001-06-03 james_youngman <jay@gnu.org>
* tests/get/s.incl_excl_1.input:
SourceForge BUG 417990: s.incl_excl_1.input missing from CVS.
2000-12-03 james_youngman <jay@gnu.org>
* README:
We now provide "val". Also include note about unsetting ${sccs}
before running the test suite.
* NEWS: Added further info about more additions & bugfixes
* tests/get/excl_ig_1.sh:
Added extra test script; one of the tests fails on CSSC but is currently commented out
* docs/borrowed-files.txt: Added list of files sourced from elsewhere
* docs/TODO: Reconsidered some decisions.
* sf-get.cc:
Removed redundant "0 ||" expression in if statement (leftover from debugging)
* install-sh, missing, mkinstalldirs:
Updated various scripts used bu the automake/autoconf stuff with the
latest versions of those files as obtained from the Automake
distribution.
* tests/get/s.incl_excl_1: New file.
2000-12-02 james_youngman <jay@gnu.org>
* ChangeLog:
Updated ChangeLog from CVS repository, including the latest checkin
comments.
2000-11-26 James Youngman <james_youngman@users.sourceforge.net>
* /cvsroot/cssc/gnu/CSSC/sccsname.cc, /cvsroot/cssc/gnu/CSSC/cap.cc, /cvsroot/cssc/gnu/CSSC/delta-iterator.cc, /cvsroot/cssc/gnu/CSSC/fdclosed.cc, /cvsroot/cssc/gnu/CSSC/my-getopt.cc, /cvsroot/cssc/gnu/CSSC/sid_list.h, /cvsroot/cssc/gnu/CSSC/stack.h:
Partial fix for SF bug #123246 (GCC-specific assumptions + typos)
2000-11-19 James Youngman <james_youngman@users.sourceforge.net>
* /cvsroot/cssc/gnu/CSSC/seqstate.cc, /cvsroot/cssc/gnu/CSSC/seqstate.h, /cvsroot/cssc/gnu/CSSC/sf-get.cc, /cvsroot/cssc/gnu/CSSC/tests/get/sf111140.sh, /cvsroot/cssc/gnu/CSSC/tests/get/sf111140.wtd, /cvsroot/cssc/gnu/CSSC/tests/get/sf111140_testcase.uue, /cvsroot/cssc/gnu/CSSC/testutils/compare_gets.sh, /cvsroot/cssc/gnu/CSSC/testutils/mogrify.awk, /cvsroot/cssc/gnu/CSSC/NEWS:
Fix for long-standing bug: we now can correctly extract
files containing deltas which include other deltas with
the ^Ai construct (e.g. branch merges). We may still not
handle "get -i" correctly yet though. Also, no similar
fix for the excluded delta situation (I have no example
file demonstrating that problem). This is recorded as
SourceForge bug 111140. A test for this bug is also now
included.
* /cvsroot/cssc/gnu/CSSC/docs/cssc.texi, /cvsroot/cssc/gnu/CSSC/bsd/COPYING.bsd:
Updated BSD license & documentation to remove advertising clause
* /cvsroot/cssc/gnu/CSSC/unused/configs/README:
Include README file to explain the contents of the directory
* /cvsroot/cssc/gnu/CSSC/docs/patches.txt:
Indicate that patches can be submitted via the SourceForge Patch Manager.
* /cvsroot/cssc/gnu/CSSC/configure.in:
A test commit, changing the suffix on the version number (to emphasise
the fact that it's the CVS code). Real purpose is to test the CVS checkin
notification facility.
2000-11-12 James Youngman <james_youngman@users.sourceforge.net>
* /cvsroot/cssc/gnu/CSSC/fatalsig.cc:
Added new file to resolve Sourceforge bug 110909.
* /cvsroot/cssc/gnu/CSSC/Makefile.am, /cvsroot/cssc/gnu/CSSC/configure.in, /cvsroot/cssc/gnu/CSSC/quit.cc, /cvsroot/cssc/gnu/CSSC/quit.h:
Delete the z-file when we get a fatal signal (fix for Sourceforge
bug number 110909).
* /cvsroot/cssc/gnu/CSSC/sf-get2.cc: Fixed bug 110537.
2000-11-05 James Youngman <james_youngman@users.sourceforge.net>
* /cvsroot/cssc/gnu/CSSC/fileiter.cc:
Fixed SourceForge bug 121605 (coredump when fileiter is passed a directory
name ending in a slash).
* /cvsroot/cssc/gnu/CSSC/tests/admin/locks.sh:
Test case covering SourceForge bug 111140 (admin -dla coredumps).
* /cvsroot/cssc/gnu/CSSC/rel_list.cc, /cvsroot/cssc/gnu/CSSC/sf-admin.cc, /cvsroot/cssc/gnu/CSSC/sf-write.cc:
Fixed SourceForge bug #121599: "admin -dla" crashes
2000-09-17 James Youngman <james_youngman@users.sourceforge.net>
* /cvsroot/cssc/gnu/CSSC/show-disp.sh:
Removed spurious extra newlines (I wonder when they started appearing?)
2000-08-05 James Youngman <james_youngman@users.sourceforge.net>
* /cvsroot/cssc/gnu/CSSC/show-disp.sh:
Updated copyright year and added ID header comment.
* /cvsroot/cssc/gnu/CSSC/show-disp.sh:
Use the -z3 option to compress data for "cvs status" because we have a
long link with low bandwidth, often. However, we don't use -z9
because that would be worse for faster links.
* /cvsroot/cssc/gnu/CSSC/NEWS, /cvsroot/cssc/gnu/CSSC/configure.in:
Added in information about recent changes.
* /cvsroot/cssc/gnu/CSSC/docs/cssc.texi:
Resolved conflict on line containing the URL of the CSSC bug reporting page.
* /cvsroot/cssc/gnu/CSSC/tests/get/sid-select2.sh:
Added test case for [ Bug #110537 ] Invalid SID got in branch where Rtrunk
greater than Rbranch
2000-08-04 James Youngman <james_youngman@users.sourceforge.net>
* /cvsroot/cssc/gnu/CSSC/show-disp.sh:
Cope with CVS servers as well as local filesystem CVSROOTs.
2000-08-03 James Youngman <james_youngman@users.sourceforge.net>
* /cvsroot/cssc/gnu/CSSC/docs/cssc.texi, /cvsroot/cssc/gnu/CSSC/README, /cvsroot/cssc/gnu/CSSC/docs/BUGS:
Fixed some incorrect SourceForge URLs.
* /cvsroot/cssc/gnu/CSSC/docs/CREDITS: Corrected some spelling errors.
2000-07-18 James Youngman <jay@gnu.org>
* /cvsroot/cssc/gnu/CSSC/Makefile.am: Added relvbr.h to noinst_HEADERS.
* /cvsroot/cssc/gnu/CSSC/docs/cssc.texi:
Updated with details of the web site and changed the bug-reporting
procedure.
* /cvsroot/cssc/gnu/CSSC/ChangeLog:
Brought into line with recent changes.
* /cvsroot/cssc/gnu/CSSC/auxfiles/CSSC.spec.in: Updated the URL.
* /cvsroot/cssc/gnu/CSSC/docs/BUGS:
Refer to the bug tracking system at SourceForge.
* /cvsroot/cssc/gnu/CSSC/AUTHORS:
Inserted reference to file docs/CREDITS in the "AUTHORS" file.
* /cvsroot/cssc/gnu/CSSC/README:
Added information about SourceForge to the README.
* /cvsroot/cssc/gnu/CSSC/configure.in: Bumped the patchlevel.
* /cvsroot/cssc/gnu/CSSC/NEWS, /cvsroot/cssc/gnu/CSSC/docs/CREDITS.short.txt, /cvsroot/cssc/gnu/CSSC/docs/CREDITS:
Brought into line with recent changes.
* /cvsroot/cssc/gnu/CSSC/bsd/sccs.c:
Patch from Albert John FitzPatrick III <ajf_nylorac@acm.org>;
Added support for "unget".
* /cvsroot/cssc/gnu/CSSC/delta.cc:
Accept list of MRs on input even if the input is not a TTY since
allegedly other implementations do this.
2000-03-19 James Youngman <jay@gnu.org>
* tests/get/subst.sh, sf-get2.cc, sid.cc, sid.h:
Patches from Mark Fortescue relating to SID selection and cutoff dates.
* relvbr.h:
Removed remarks about MySC, since this file has never been part of MySC.
* relvbr.h: Fix by Mark Fortescue <mfortescue@transoft.com>.
* rmdel.cc, cdc.cc: Fix from Frank van Maarseveen <fvm@tasking.nl>:
A setuid cdc/rmdel will not unlock (i.e. remove the z-file) in
case of an error. Most obvious error is when the invoker is not
the creator of the delta.
Both cdc and rmdel revoke setuid permission when the real user
is not the creator of the delta. However, this should be restored
_before_ reaching the end of the 'try' scope because on leaving
it the z-file is removed indirectly by the sccs_file destructor.
Attached you will find a patch which solves this problem.
A more correct solution would be not to swap uid/euid but
to print something like:
ERROR [/usr/src/xxx/SCCS/s.main.c]:
Must be owner of file or <user> to use this command.(rc4)
* docs/cssc.texi:
Support for SCCS files in which timestamps have been corrupted by
non-Y2K-compliant versions of SCCS. These files are correctly
understood on reading, and are fixed if the file is ever re-written by
CSSC. (The Sun version of SCCS also performs the same fix). Patches
to do this were provided by Peter Kjellerstedt
* delta-table.cc, delta-table.h, sf-get2.cc:
Sergey Ostashenko provided patches to allow the processing of SCCS
files with gaps in the chain of used sequence numbers, and to allow
two deltas to have the same sequence number, on the condition that one
of them is a removed delta.
* sccsdate.cc:
Patch by Peter Kjellerstedt for cleaning up after broken versions of
SCCS.
Some non y2k-compliant versions of SCCS will use a ":" in the decade
field of the date in the year 2000 (since the ASCII code for ':' is
one greater than that for '0'). Changed the relevant sccs_date
constructor to figure out the right value in this case. A warning
message is issued when this happens.
* tests/bsd-sccs/driver-basic.sh, tests/cdc/2comment.sh, tests/cdc/4order.sh, tests/delta/basic2.sh, tests/delta/ignored.sh, tests/delta/iterbasic.sh, tests/get/annotate.sh, tests/get/create.sh, tests/get/doubleinc.sh, testutils/lndir.c, testutils/seeker.c, docs/BUGS, docs/CREDITS, docs/CREDITS.short.txt, docs/FIXED, docs/Platforms, docs/cssc.texi, bsd/sccs.c, run.cc, sccsfile.cc, sccsfile.h, sccsname.h, seqstate.cc, seqstate.h, sf-delta.cc, sf-get.cc, sf-get2.cc, sf-get3.cc, sf-prs.cc, val.cc, visibility.cc, ChangeLog, Makefile.am, NEWS, configure.in, file.cc, linebuf.cc, quit.cc:
Reverted trunk files to same contents as 0.11 patchlevel 3.
1999-12-09 Mark Fortescue <mark@mtfhpc.demon.co.uk>
* relvbr.h, sf-get2.cc, sid.cc, sid.h
Fixed a problem with branching
* sf-get2.cc, tests/get/subst.sh
Fixed a problem with Cutoff Dates
1999-06-27 James Youngman <jay@gnu.org>
* quit.cc, sccsfile.cc, file.cc:
Improved the error message which is issued when you try to open a
nonexistent SCCS file.
* docs/CREDITS, docs/CREDITS.short.txt, docs/Platforms:
Bugfixes from Hyman Rosen and Mark Reynolds
* sf-get.cc:
Mark Reynolds <mark@aoainc.com>: GCC 2.8.1 on VAX Ultrix 4.2 doesn't
seem to get this call right. Since subst_fn is always write_subst
anyway, we work around it by using the function pointer just as a
boolean variable. Yeuch.
* bsd/sccs.c:
Mark Reynolds <mark@aoainc.com>: If $LANG is not set, setlocale()
fails on VAX Ultrix 4.2.
1999-06-26 James Youngman <jay@gnu.org>
* tests/admin/lockfail.sh:
Fail correctly, but don't coredump, when we fail to create a lock file.
Bug report by Michael Ubell <ubell@mindspring.com>.
* tests/admin/lockfail.sh: New file.
* file.cc, sccsname.h:
Fail correctly, but don't coredump, when we fail to create a lock file.
Bug report by Michael Ubell <ubell@mindspring.com>.
* run.cc: Fixed typos.
* tests/cdc/2comment.sh, tests/cdc/4order.sh:
Use egrep, not grep, because on SunOS 4.1.3, grep(1) doesn't like the
long regexps...
* run.cc: SunOS 4.1.3 doesn't like fflush(NULL). (Mark Reynolds)
* testutils/seeker.c, testutils/lndir.c:
Vax Ultrix 4.2 requires <sys/types.h>. (Mark Reynolds)
* sccsfile.cc: Compatibility fixes provided by Hyman Rosen.
* val.cc: Fixed the name of the executable passed to set_prg_name().
1999-04-21 James Youngman <jay@gnu.org>
* ChangeLog: Added changes to date.
* docs/Makefile.am: Added texinfo.tex to the distribution.
* configure.in, sccsfile.cc, sf-delta.cc, sf-get.cc, sf-get2.cc, sf-get3.cc, sf-prs.cc, sf-prt.cc, sf-rmdel.cc, NEWS:
Removed some dead code.
* seqstate.h, seqstate.cc: Removed dependency on the STL <list> header.
1999-04-18 James Youngman <jay@gnu.org>
* docs/texinfo.tex: Automake likes texinfo.tex to be present.
* delta.h, dtbl-prepend.cc, fileiter.h, prs.cc, prt.cc,
rel_list.cc, rel_list.h, rl-merge.cc, rmdel.cc, run.h, sact.cc,
seqstate.cc, seqstate.h, sf-cdc.cc, sf-chkmr.h, sf-get.cc,
sf-get3.cc, sf-prs.cc, sf-prt.cc, sf-rmdel.cc, sf-write.cc,
unget.cc, ChangeLog, delta-table.cc, delta-table.h: Updated
copyright statements for those files modified this weekend.
* configure.in:
Commented out AM_PROG_INSTALL, since automake seems not to like it
any more.
* tests/bsd-sccs/driver-basic.sh:
Disable test h2, since currently we don't pass it. FIXME!
* tests/rmdel/basic.sh: *** empty log message ***
* tests/bsd-sccs/driver-basic.sh:
Added test for "sccs unedit" ensuring we delete the gotten file.
* docs/Platforms, docs/TODO, auxfiles/CSSC.spec.in:
*** empty log message ***
* pfile.cc, pfile.h, prs.cc, prt.cc, quit.cc, rel_list.cc,
rel_list.h, rl-merge.cc, rmdel.cc, run.cc, run.h, sact.cc,
sccsfile.cc, sccsfile.h, seqstate.cc, seqstate.h, sf-admin.cc,
sf-cdc.cc, sf-chkmr.h, sf-delta.cc, sf-get.cc, sf-get2.cc,
sf-get3.cc, sf-prs.cc, sf-prt.cc, sf-rmdel.cc, sf-write.cc,
unget.cc, admin.cc, cdc.cc, delta-table.cc, delta-table.h,
delta.cc, delta.h, dtbl-prepend.cc, fileiter.h, get.cc,
l-split.cc, list.cc, mylist.h, mystring.h: Changes for correct
support of included deltas in branches (a rewrite of seqstate.cc
and seqstate.h).
* tests/get/included.sh:
Enable the test, now that we support included non-ancestor branches.
* NEWS, README, configure.in: Updates for 0.11alpha.pl0
* docs/cssc.texi: Updated version for next release.
* docs/BUGS: Added bug report for "unget" deleting the wrong g-file.
* bsd/sccs.c: Use tmpfile() rather than mktemp() in unget(), because
glibc-2.1-0.990311 has a broken mktemp() (it returns an empty string).
1999-03-29 James Youngman <jay@gnu.org>
* tests/get/included.sh: Tests for included deltas.
1999-03-21 James Youngman <jay@gnu.org>
* Released 0.10beta.pl1.
* docs/cssc.texi: Updated version for release.
* docs/CREDITS.short.txt:
File containing brief list of people who have contributed to CSSC.
* docs/CREDITS: Added relevant people.
* configure.in: Bumped version to 0.10beta.pl1
* auxfiles/CSSC.spec.in:
Folded in change from Michael Sterrett <msterret@coat.com> and Aron
Griffis <agriffis@coat.com> which puts symlinks in /usr/bin (or
whatever directory), pointing at the stuff in /usr/libexec/cssc.
The effect is to have /usr/bin/get and so on.
* bsd/sccs.c:
Applied patch from Greg A. Woods which eliminates compiler warnings
from sccs.c, without changing how the program works (I hope!).
* docs/Platforms: Updated with respect to C++ compiler compatibility.
* configure.in: Moved version.cc to the front of the AC_OUTPUT() list.
* run.cc: Modification from Greg A. Woods; eliminates compiler warning.
* docs/cssc.texi: Minor corrections (typos, etc).
* testutils/README:
Minor tweak suggested by Greg A. Woods (specify UTC in time)
1999-03-20 James Youngman <jay@gnu.org>
* Released 0.10beta.pl0.
* docs/cssc.texi: Updated version number.
* bsd/sccs.c, docs/cssc.texi, delta.cc, configure.in:
Updated copyright messages of those files edited so far in 1999.
* tests/prs/keywords.sh: Use "echo_nonl" instead of "echo -n".
* configure.in, ChangeLog, NEWS: Go to 0.10beta-pl0 from 0.09alpha-pl4.
* docs/cssc.texi:
Cosmetic changes to make texinfo-3.12f happy about my use of @xref.
(in this case, by adding punctuation after each use).
1999-03-19 James Youngman <jay@gnu.org>
* testutils/realpwd.cc, sf-delta.cc, sf-get2.cc, sid.cc, what.cc, bodyio.cc, cdc.cc, delta-iterator.cc, my-getopt.cc, mystring.cc, mystring.h, pfile.h, quit.cc, quit.h, run.cc:
Fixes to make CSSC compiler under the EPC C++ compiler (and probably
other C++ compilers, too).
1999-03-15 James Youngman <jay@gnu.org>
* Released 0.09alpha.pl4.
* ChangeLog, NEWS, configure.in: Comments etc. for 0.09alpha.pl4.
* docs/cssc.texi: Marginally improved documentation for "delta -p"
* bsd/sccs.c: Fixed "sccs sccsdiff". Bug reported by Achim Hoffmann.
1999-03-14 James Youngman <jay@gnu.org>
* docs/cssc.texi, ChangeLog, delta.cc, sccsfile.h, sf-delta.cc:
Implemented the -p option of delta.
* docs/TODO:
Added tests to make sure we correctly count the number of lines initially inserted by admin -i.
* bsd/sccs.c: Tweaks to execv() usage in try_to_exec().
Also, ensure that PREFIX is absolute, and refuse to run otherwise.
* configure.in: Eliminate duplicate checks for abort() and wait().
* auxfiles/CSSC.spec.in: Corrected the URL.
* tests/delta/n-option.sh: Added tests for the -n option of delta.
* tests/admin/i-option.sh:
Check that the "initial number of lines" is correct for admin -i.
1999-03-13 James Youngman <jay@gnu.org>
* configure.in: Bumped to 0.09alpha.pl3.
* NEWS: Added NEWS remark regarding the removal of AC_C_CONST.
* tests/admin/r-option.sh: val has now been implemented.
* docs/TODO, docs/cssc.texi, docs/missing.txt, sccsfile.cc, sccsfile.h, sf-admin.cc, sf-delta.cc, what.cc, NEWS, admin.cc, configure.in, file.cc, get.cc, pfile.cc, quit.cc, run.cc:
Allow "admin -ifoo -r1.2.2.1 s.foo", and make it work correctly.
Also added tests for the -r option.
* tests/admin/init-mr.sh: Corrected an error message.
1998-12-12 James Youngman <jay@gnu.org>
* docs/cssc.texi:
Warn that "admin -z" may silently fix errors and get it wrong.
* val.cc, sf-val.cc, sf-write.cc, quit.cc, quit.h, sccsfile.cc, except.h, file.cc, get.cc, bodyio.cc, delta-table.cc:
Enhancements to "val".
1998-12-10 James Youngman <jay@gnu.org>
* configure.in: Went to 0.09alpha.pl2.
1998-12-09 James Youngman <jay@gnu.org>
* NEWS: Added news for CSSC-0.09alpha-pl2.
* sccsfile.h:
Added declarations of functions implemented in sf-val.cc and also a
forward declaration of class delta_iterator.
* what.cc: Duh. getchar() returns int, remember?
* sf-prt.cc:
If a (mystring*) flag in the SCCS file is not NULL, then the flag must
be set even if the length of the string is zero; consider lines like
"^Af v" rather than "^A f v ".
* sid.h, sid.cc: Implemented sid::as_string().
* sccsfile.cc:
We have to be careful to not crash on input lines like "^Af v". That
is, bufchar(4) may well be zero for a flag line! Thanks to William
W. Austin <bill@baustin.alph.att.com> for this diagnosis.
* sf-val.cc:
Traverse the delta table checking some things. Not finished yet.
1998-11-29 James Youngman <jay@gnu.org>
* docs/cssc.texi, docs/TODO, val.cc, sf-val.cc, sccsfile.h, Makefile.am, NEWS:
Initial implementation of "val".
* sf-admin.cc: Make it possible to delete the "m" flag.
* valcodes.h: Return codes for "val".
* docs/CREDITS: Fixed typo.
1998-11-21 James Youngman <jay@gnu.org>
* admin.cc: Ensure that if we specified -h, we do *nothing* else.
* tests/admin/admin-hz.sh:
Make sure that if we specify -h and -z, we do not update the checksum.
* tests/admin/admin-hz.sh:
Added tests for the -h and the -z options of admin.
* docs/cssc.texi: Elaborated on comments about "admin -z".
* sf-get.cc:
For get(), ensure that the file was not opened with the mode
FIX_CHECKSUM, because that doesn't make sense.
* sccsfile.cc:
Emit helpful message if we fail to open the s-file. If we are doing
"admin -z", don't complain if the checsum was previously wrong.
* sccsfile.h: Added new open mode FIX_CHECKSUM.
* admin.cc: Better operation of the -z (reset checksum) option.
* sf-write.cc:
Rethought update_checksum(). It now works even though the s-file is
mode 444 (which is what it should be).
* file.cc: Eliminated compiler warning.
1998-11-13 James Youngman <jay@gnu.org>
* NEWS: Added changes for 0.09alpha.pl1.
* configure.in: Bumped up the patchlevel.
* docs/cssc.texi: Documented sccsdiff.
* run.cc: Call errormsg_with_errno() correctly.
1998-11-12 James Youngman <jay@gnu.org>
* cdc.cc: Reformatted the error message that you get when trying to get
arguments from stdin without also using the -y option.
1998-11-01 James Youngman <jay@gnu.org>
* docs/FIXED: Added fixes from Dick Streefland.
* testutils/Makefile.am: Added the "yammer" program.
* docs/Platforms: Also tested on Red Hat 5.1.
* docs/CREDITS: Added credit to Greg Woods.
* tests/binary/seeking.sh: Avoid requiring the "nl" utility.
* testutils/yammer.c:
This program is not installed as part of CSSC. It's just used by
the test suite. It takes two arguments, the first being a repeat
count, and the second being a string that should be repeated that
many times. For example, "yammer 2 blah" should emit
1 blah
2 blah
The program was designed to eliminate the requirement to do
yes blah | nl | head -2
because some systems, for example NetBSD/SPARC 1.3.2, lack the "nl"
utility.
* run.cc:
When calling errormsg_with_errno(), actually pass errno as the first argument.
1998-10-29 James Youngman <jay@gnu.org>
* sccsfile.cc:
Added toleration for some features that Larry is putting into
BitKeeper.
* auxfiles/Makefile.am: Added newline at the end of the file.
* show-disp.sh:
Don't use the --lint --posix for awk, because only GNU awk likes them.
1998-10-21 James Youngman <jay@gnu.org>
* file.cc:
Use stat(2) rather than fstat(2), so that the file locking does indeed
work over NFS.
1998-10-20 James Youngman <jay@gnu.org>
* auxfiles/Makefile.am:
Ensure that CSSC.spec and CSSC.spec.in both get distributed.
* tests/get/no-sfile.sh:
Added no-sfile.sh, which tests for the existence of a bug pointed out
by Dick Streefland <dick_streefland@tasking.com> (we core dump when we
should exit with status 1, if no SCCS file is specified for some
tools)
* unget.cc, sf-prs.cc, sf-get2.cc, sact.cc, rmdel.cc, run.cc, prt.cc, prs.cc, get.cc, fileiter.cc, fileiter.h, delta.cc, cdc.cc, admin.cc:
Patches from Dick Streefland <dick_streefland@tasking.com>:-
> I'm sending you three patches for CSSC-0.09alpha.pl0. Patch #1 fixes
> two prototype mismatches. Patch #2 makes sure that "get" and "prs"
> return a proper exit status in the case of an output file error
> (e.g. disk full). Patch #3 fixes the problem that when you invoke
> one of the tools without an SCCS file, it will abort with a core
> dump. Abort() is called because an exception is raised that is not
> handled. I removed the exception, and added explicit tests in each
> tool.
1998-09-07 James Youngman <jay@gnu.org>
* file.h: Added fcreate() flag enum for atomic locking over NFS.
* file.cc:
Made the lockfile create more robustly atomic over NFS by using the
lock-then-stat approach. Fall back on using the regular open() with
O_EXCL if it look slike the underlying filesystem does not support
hard links.
1998-09-06 James Youngman <jay@gnu.org>
* sf-delta.cc, pf-del.cc, bodyio.cc:
Use fcreate() to create files for writing, rather than fopen().
This allows us to use open(.., O_CREAT|O_EXCL).
* get.cc:
If we fail to add the lock to the p-file, delete the gotten editable file.
* docs/cssc.texi:
Documented the various prefixes used for files, temporary and otherwise.
* tests/get/writable.sh:
Make sure "get -k" produces a writable g-file and "get" without -k
does not.
* tests/admin/i-option.sh, sf-write.cc, sf-delta.cc, sccsfile.h, sccsfile.cc, pf-del.cc, get.cc, pf-add.cc, file.cc, bodyio.cc, bodyio.h:
Take special care to close and delete temporary files if an exception
is thrown.
* README: Typo.
1998-09-05 James Youngman <jay@gnu.org>
* configure.in:
Generate auxfiles/CSSC.spec from auxfiles/CSSC.spec.in, to get the
version number substituted.
* auxfiles/CSSC.spec.in, auxfiles/CSSC.spec:
Generate CSSC.spec from CSSC.spec.in, using substitution of @VERSION@.
1998-09-04 James Youngman <jay@gnu.org>
* NEWS: UPdated for 0.09alpha.pl0.
* ChangeLog: Added in the changes for 0.09alpha.pl0.
* README: Fixed typo.
1998-09-03 James Youngman <jay@gnu.org>
* except.h: Declarations of exceptions.
* Makefile.am: Added except.h.
* tests/prt/exists.sh:
Added tests that check for correct behabiour when the s-file is
absent.
* sact.cc: Catch exceptions in main().
* shorter/rmdel.cs, shorter/sact.cs, shorter/unget.cs, shorter/what.cs, shorter/README, shorter/admin.cs, shorter/cdc.cs, shorter/delta.cs, shorter/get.cs, shorter/prs.cs, shorter/Makefile.in:
We have not been keeping these files up to date and haven't used
them at all, and we planned not to have to use them. So they're
obsolete.
* tests/get/create.sh:
Make the test suite miscarry if the test files can not be created.
* tests/initial/root.sh, tests/Makefile.am:
Make sure we start the test suite by making sure that we're not
running as root.
1998-09-02 James Youngman <jay@gnu.org>
* tests/common/not-root:
If the code inside the subshell exits with a nonzero exit status, make
sure that the "outer" shell does too -- so that the miscarry() takes
effect.
* tests/bsd-sccs/driver-basic.sh:
Remove the SCCS directory too, when the test is finished.
* sid_list.h, unget.cc, sf-write.cc, sf-prs.cc, sf-get2.cc, sf-kw.cc, sf-get.cc, sf-delta.cc, sf-admin.cc, sccsfile.h, sccsfile.cc, run.cc, quit.h, rel_list.cc, rmdel.cc, prt.cc, quit.cc, pf-add.cc, pfile.cc, prs.cc, filepos.h, get.cc, file.cc, fileiter.cc, delta.cc, configure.in, delta-table.cc, bodyio.cc, cdc.cc, acconfig.h, admin.cc:
On systems that support exceptions, handle errors by throwing
exceptions. On systems that don't support exceptions, handle some
errors by returning back up the calling sequence, and some by calling
exit() in quit(). This means that only systems with exceptions will
allow the second file to be processed if the first fails.
* docs/cssc.texi:
"admin -h" is actually unimplemented, rather than just untested.
* tests/rmdel/exists.sh, tests/unget/exists.sh, tests/prs/exists.sh, tests/prs/keywords.sh:
Added tests that check for correct behaviour when the s-file does
not exist.
1998-08-22 James Youngman <jay@gnu.org>
* sf-write.cc: Eliminate unused-parameter warning.
1998-08-15 James Youngman <jay@gnu.org>
* docs/TODO: We now use getpwuid() instead of getlogin().
1998-08-14 James Youngman <jay@gnu.org>
* unget.cc, sf-write.cc, sid_list.h, sf-prs.cc, sf-get3.cc, sf-kw.cc, sf-get2.cc, sf-get.cc, sf-delta.cc, sccsfile.h, rel_list.cc, fileiter.cc, filepos.h, get.cc, file.cc, file.h, delta.cc, admin.cc:
Use errormsg() or errormsg_with_errno() more, instead of quit().
1998-08-13 James Youngman <jay@gnu.org>
* auxfiles/CSSC.spec, configure.in: Bumped to 0.09alpha.pl0.
* README: Indicate how to generate all the neccesary files after a "cvs
checkout".
* bodyio.h, bodyio.cc, sf-delta.cc, sf-admin.cc:
Handle I/O errors without calling quit().
* sf-get2.cc:
Added reminder to check if we handle the %W% keyword correctly.
* sf-get.cc, l-split.cc, delta.cc:
Cosmetic changes to the code formatting.
* sf-prt.cc:
Use errormsg_with_errno(), not quit(), and return a failure status
intead of exiting on the spot when there is a problem (so that we can
continue to process the next file).
* sf-prs.cc: Cosmetic changes to the code formatting.
* pfile.cc:
Added ctor_quit(), a synonym for quit(), which indicates that it is
being called from a constructor. These are the failure points that
can't be replaced with a "return false", but only with an exception.
* fileiter.cc: Cosmetic changes to the code formatting.
* cssc.h: Don't need to worry about getlogin() any more.
* unget.cc: Return a failure status if pfile.update() had failed.
* sid.cc:
Use assert(), not quit(), to detect logic errors in the program.
* sf-write.cc, sf-delta.cc:
Use errormsg_with_errno(), not quit(), and return a failure status
intead of exiting on the spot when there is a problem (so that we can
continue to process the next file).
* sccsfile.cc:
Use errormsg_with_errno(), not quit(), and return a failure status
intead of exiting on the spot when there is a problem (so that we can
continue to process the next file).
Added ctor_quit(), a synonym for quit(), which indicates that it is
being called from a constructor. These are the failure points that
can't be replaced with a "return false", but only with an exception.
* quit.h, quit.cc:
Added ctor_quit(), a synonym for quit(), which indicates that it is
being called from a constructor. These are the failure points that
can't be replaced with a "return false", but only with an exception.
* pf-del.cc:
Use errormsg_with_errno(), not quit(), and return a failure status
intead of exiting on the spot when there is a problem (so that we can
continue to process the next file).
* file.cc: Use getpwuid(), not getlogin(), for get_user_name().
1998-08-12 James Youngman <jay@gnu.org>
* pfile.h: Make update() return a boolean indication of success.
1998-06-19 James Youngman <jay@gnu.org>
* NEWS, ChangeLog:
Normal prerelease modifications to ChangeLog, NEWS, etc.
* configure.in, auxfiles/CSSC.spec: Bumped the patchlevel.
* mystring.cc:
re-fixed bug in find_last_of(). First bugfix had a bug.
* bsd/sccs.c:
Use our own error code definitions taken from the glibc <sysexits.h>.
This is to avoid a compiler error due to the redifinition on Solaris
(with GCC installed).
* bsd/sccs.1: Documented the various possible error codes.
1998-06-16 James Youngman <jay@gnu.org>
* configure.in: Bumped version to 0.08alpha-pl0.
* ChangeLog: *** empty log message ***
* auxfiles/CSSC.spec: Changed version to 0.08alpha-pl0.
* docs/FIXED: Added a report of the mystring::find_last_of() bug.
* docs/CREDITS: Added apology to Achim Hoffmann.
* docs/style.txt:
"f()" vs. "f ()": added plea for any reason to prefer one over the
other.
* docs/cssc.texi:
Indicate that the fatal-exit-on-error problem is being worked on.
* NEWS: *** empty log message ***
* docs/cssc.texi:
Added a short remark about Emacs's VC-mode in the section on delta; if
an SCCS file has the V flag set, you need to put an -m option in
vc-checkin-flags in order to be able to check in revisions within
Emacs.
* sccsfile.cc:
Oops. Include <ctype.h> if STDC_HEADERS is defined, because
HAVE_CTYPE_H is not defined by our configure.in.
* mystring.cc:
Fixed find_last_of(). We were finding the FIRST occurrence of the
target rather than the last. Argh! How stupid is that?
* tests/prs/keywords.sh: Make sure prs accepts an empty "-r" option.
1998-06-15 James Youngman <jay@gnu.org>
* fileiter.cc:
When reading a list of filenames from stdin, trim off the newline that
separates the filenames.
* sf-write.cc, sf-prs.cc, sf-prt.cc, sf-rmdel.cc, sf-get.cc,
sf-get2.cc, sf-cdc.cc, sf-delta.cc, sccsfile.h, sf-add.cc,
sf-admin.cc, quit.cc, quit.h, rmdel.cc, file.cc, get.cc, prt.cc,
cdc.cc, delta.cc, admin.cc:
Don't use quit(); rather, use errormsg() and make a fatal exit
from the function which we are now executing. When this
propagates up to the top level, remember the error so we cal later
exit with a return value of 1, but nevertheless continue to
process command-line arguments.
* prs.cc:
Allow the -r option to have no argument, without producing an error.
When processing SCCS files, allow any of them to fail without this
causing the whole operation to abort, but remember the fact and exit
with a return value of 1 (hence use errormsg() rather than quit() for
producing error messages).
1998-06-14 James Youngman <jay@gnu.org>
* unused/Makefile.am, unused/README, quit.cc, configure.in,
Makefile.am:
Moved some files into the "unused" directory, which we now add into
the distribution. They may be useful for ports or something.
* unused/sid_list.cc, unused/pipe.cc, unused/pipe.h,
unused/ffsync.cc, unused/fsync.cc, unused/move-if-change,
unused/dosfile.cc, unused/dummy.cc, unused/_chmod.cc, dosfile.cc,
ffsync.cc, move-if-change, pipe.cc, pipe.h, sid_list.cc,
_chmod.cc, dummy.cc, fsync.cc:
Moved some files into the "unused" directory; we don't use them
any more and keeping them aroung means that they have to be
considered during global search and replace operations. That's
just making more work for myself. These files are the contents of
the $(rainyday_src) macro in the makefile.
* unget.cc, sccsfile.cc, sact.cc, rmdel.cc, run.cc, quit.cc,
quit.h, prt.cc, pipe.cc, prs.cc, pf-add.cc, pfile.h, get.cc,
file.cc, delta.cc, admin.cc, cdc.cc:
Changes to avoid using quit(); rather, we want to emit an error
message and return an error status to the caller. This allows an
SCCS program to process a list of files without quitting
prematurely because there was somethign wrong with some file early
in the list. More changes remain to be done for this to be
complete.
* Makefile.am: Added dosfile.cc and ffsync.cc.
* dosfile.cc, ffsync.cc:
Moved some system-dependent code out of file.cc.
* delta.cc:
Use errormsg() rather than quit() so that if the first file fails, the
second may still be processed.
1998-06-13 James Youngman <jay@gnu.org>
* README:
Added some basic remarks about configuuring the destination directory
to the "QuickStart" section of the file. Also, change the sample test
script to send the version information too.
* fdclosed.cc:
Fixed copyright date and removed extraneous #include of err_no.h.
* fdclosed.cc: Fixed the comments.
* Makefile.am, fdclosed.cc:
Provide a static object constructor that ensures that file descriptors
0, 1 and 2 are not closed at the start. Otherwise we might printf()
to stdout and accidentally modify a file we fopened() for writing.
* bsd/Makefile.am: Define PREFIX to be $(csscutildir) by default.
1998-06-11 James Youngman <jay@gnu.org>
* ChangeLog, NEWS: Final additions for 0.07alpha.pl3.
* bsd/Makefile.am:
Even though sccs.1 is in man_MANS, we still need to get it added to
EXTRA_DIST in order to get it in the distribution. Argh.
1998-06-10 James Youngman <jay@gnu.org>
* configure.in: Bumped the patchlevel.
* auxfiles/CSSC.spec:
Fixe dchangelog, added sccs manpage, included all the info files.
* NEWS, ChangeLog: Added changes for CSSC-0.07alpha-pl3.
* bsd/Makefile.am:
Added COPYNG.bsd to the distribution. Also .ispell_english.
Added the manual page sccs.1 too.
* tests/common/test-common, tests/common/not-root,
tests/bsd-sccs/driver-basic.sh: Ensure the test suite is not run
by root (because that makes "test -w" return misleading results).
1998-06-09 James Youngman <jay@gnu.org>
* auxfiles/CSSC.spec, docs/CREDITS, NEWS, configure.in:
Bumped to CSSC-0.07alpha-pl2
* sccsfile.cc:
Fixes to tolerate spurious arguments on ^AU and ^At lines.
This problem reported by Marko Rauhamaa <marko@tekelec.com>.
1998-06-08 James Youngman <jay@gnu.org>
* NEWS, ChangeLog: Summarised changes for 0.07alpha-pl1.
* auxfiles/CSSC.spec, configure.in: Bumped to 0.07 patchlevel 1.
* prompt.cc: Allow newlines to be escaped with a backslash.
* sf-get.cc:
Don't warn about keyword substitution not being done for binary files;
I don't think it should be done in any case.
* tests/admin/abspath.sh:
Use a less complicated way of building the command. We seem to have
a small problem with this:- anthonyc@nag.co.uk sees
"/zome/anthonyc/.../s.bar: no such file or directory".
^ Note that the z for the lockfile name appears here!
* tests/prt/reportmr.sh:
Some shells don't like two assignments on one line, for example
"g=reportmr.1 s=inputs/s.$g". With these shells, the $g in the second
assignment expands to nothing. "ash" version 0.2 is like this. Bash
version 1.14.7 is not.
* bsd/sccs.c: Support "sccs cdc".
If we use "sccs create -b foo", pass the "-b" flag to "admin", but not
to "get". Passing it to "get" would mean "create a branch" rather
than "binary" and we're not checking the file out for editing anyway.
This at the request of <peter.kjellerstedt@axis.com>.
1998-06-06 James Youngman <jay@gnu.org>
* bsd/sccs.c:
Be as careful about running setgid as we are about running setuid.
* bsd/sccs.c:
Insist on the compile-time macro SCCSDIR having been set if the program
is installed set-user-id (what about set-group-id?).
* tests/bsd-sccs/driver-basic.sh:
Unset $LANG so that the tests for sccs(1) don't fail on systems
which are mosconfigured, just because they are misconfigured.
* docs/TODO: *** empty log message ***
* NEWS: Added update for version 0.07alpha-pl0.
* ChangeLog: Updated for version 0.07alpha-pl0.
* configure.in: Bumped to version 0.07.
* auxfiles/CSSC.spec: *** empty log message ***
* tests/common/command-names:
Set ${sccs} here in tests/bsd-driver/*, and not this file. We keep it
out of command-names since we currently need to run sccs in order to
decide if we need to pass it the --prefix option. That would slow all
the other tests down.
* tests/bsd-sccs/driver-basic.sh:
Set ${sccs} here in this file. We keep it out of common/command-names
since we currently need to run sccs in order to decide if we need to
pass it the --prefix option. That would slow all the other tests
down.
* tests/prt/nodel.sh, tests/prt/default.sh:
Remove s.testfile when the test is complete.
* bsd/sccs.c, bsd/sccs.1:
Modified to work with portability hints provided by Automake
(e.g. sys_siglist[], struct dirent vs. struct direct, and so on); also
other portability enhancements.
Modifued some of the string handling for greater protection against
buffer-overflow.
Added extra options to sccs (--cssc, --prefix) to allow the
program to be tested before the sub-programs (edmin, get, etc.)
are installed in their final positions. Added --version and -V
options (which do the same thing).
Documented this in the manpage; also added a COPYING section and
added some more entries in the SEE ALSO section.
Folded pathnames.h into sccs.c.
* bsd/Makefile.am: Rolled pathnames.h into sccs.c.
* bsd/.ispell_english: Removed entries containing punctuation or
digits; ispell doesn't like them.
* bsd/pathnames.h: Rolled the few remaining definitions into sccs.c
* bsd/pathnames.h:
Don't use absolute paths for the locations of the subcommands.
1998-05-30 James Youngman <jay@gnu.org>
* tests/bsd-sccs/driver-basic.sh: Added tests for "sccs check".
* tests/bsd-sccs/driver-basic.sh:
Added tests for deledit, delget, fix, tell, rmdel, what, enter, edit,
clean, unedit and info.
* configure.in, acconfig.h:
Detect sys_suglist, for bsd/sccs. Also detect <locale.h>. Bump
patchlevel to 9 (though we may end up making a new release instead).
* sccsfile.cc:
find_any_delta(sid id): will find even removed deltas. This is part
of the "sccs fix" bugfix.
* tests/common/command-names:
Oops. Set sccs=sccs as a last resort if we can't find it.
* delta-table.cc, sf-get2.cc, sccsfile.h, delta-table.h:
When getting a delta for editing, and the trunk successor has been
rmdel'ed, reuse it (this is required for "sccs fix" to work properly,
and it's the way real-sccs works).
* tests/rmdel/edit.sh:
Tests that do "delta" after an "rmdel" to make sure the right things
happen.
1998-05-28 James Youngman <jay@gnu.org>
* bsd/sccs.c:
Cope in a more portable way with the status return from a child.
* bsd/sccs.c: Allow "sccs -V -V -V" without generating a coredump.
* bsd/sccs.c:
Some portability improvements; don't need sig_t; cope without
sys_siglist if we don't have it. This mostly affects Linux with libc
version 5 and below, I think.
1998-05-27 James Youngman <jay@gnu.org>
* bsd/sccs.c, bsd/.ispell_english, bsd/pathnames.h:
Some range chacking corrections, correctiosn to the PREFIX macro, etc.
* bsd/COPYING.bsd:
Explained why part of CSSC is published under the BSD license
* docs/TODO:
Added note about considering the use of getpwuid() in preference to getlogin().
Removed TODO entries from some stuff that's been done.
* README:
We now support binary files; remove the statement that we do not...
* what.cc, sccsfile.cc, bodyio.cc, cssc.h:
Removed some unused configuration macros.
Renamed CONFIG_BINARY_FILE to CONFIG_OPEN_SCCS_FILES_IN_BINARY_MODE.
* scripts/change-suffix, unused/change-suffix:
change-suffix should be in scripts, not unused :-)
* unused/change-suffix: Moved change-suffix into "unused".
* change-suffix: Moved change-suffix unti "unused".
* tests/bsd-sccs/driver-basic.sh, tests/Makefile.am:
Added tests for the driver program "sccs".
* tests/common/test-common: Use ../../testutils/ekko as a fallback.
* tests/common/command-names: Added entry for the "sccs" command.
1998-05-25 James Youngman <jay@gnu.org>
* defaults.h: Removed some unused features.
* docs/CREDITS:
Added info about the BSD-derived code (sccs.c and friends).
* AUTHORS: Added info about the BSD-derived code (sccs.c and firends).
* docs/cssc.texi:
Added documentation about sccs.c, the BSD copyright notice, and added
some more concept index entries.
1998-05-23 James Youngman <jay@gnu.org>
* bsd/sccs.c:
Some attempts at increased security and portability. No tests for
this program yet though, so no certainty that this works.
1998-05-12 James Youngman <jay@gnu.org>
* tests/prt/inputs/s.reportmr.1:
Oops. I'd been working with a different file in the compilation
directory.
* ChangeLog: *** empty log message ***
* configure.in: Moved to 0.06alpha.pl8
* NEWS: Additions for 0.06pl8.
1998-05-11 James Youngman <jay@gnu.org>
* testutils/README: Fixed typo.
* tests/prt/inputs/s.reportmr.1, tests/prt/reportmr.sh:
New tests for those cases where there are MRs to be reported.
* sf-prt.cc, prt.cc:
Make sure the MR list (etc.) is formatted correctly when we are
printing one delta per line.
1998-05-10 James Youngman <jay@gnu.org>
* bodyio.cc:
Don't store the result of getc() in a char, use an int -- that way, we
can detect EOF.
* sf-write.cc:
Remove comment discussing broken behaviour with "admin -i" and
nonseekable binary standard input that has now been fixed.
* testutils/lndir.c: Ignore CVS directories too.
1998-05-09 James Youngman <jay@gnu.org>
* sf-rmdel.cc, sid.cc, sccs-delta.cc, sccsname.cc, prs.cc,
quit.cc, pipe.cc, fsync.cc, pf-add.cc, file.cc, fileiter.cc,
delta.cc, cdc.cc, delta-table.cc:
Get the name of the file right, in each file's comment header.
* sf-write.cc, sccsfile.h:
Fixed some compilation errors; warnings about passing "unsigned *pSum" when "int *pSum" is required.
* docs/Platforms, docs/CREDITS, docs/FIXED, docs/BUGS:
Updated lists of outstanding anb fixed bugs, added people to CREDITS,
and did some housekeeping in Platforms.
* docs/cssc.texi:
Added clarification that the file that must be specified on the
"delta" command line is that of the s-file, not the working file.
1998-05-08 James Youngman <jay@gnu.org>
* CSSC-0.06alpha.pl7 released.
* NEWS, configure.in, ChangeLog: Released 0.06alpha.pl7.
* docs/cssc.texi: Added header for install-info.
* auxfiles/CSSC.spec:
Included mods from John Interrante <interran@crd.ge.com>,
except his patch to pathname.h; must apply that RSN.
* sf-delta.cc, seqstate.cc, seqstate.h, sccsfile.cc,
delta-iterator.h, Makefile.am: Fixed bug in seqstate.h that
manifested with Codemgr SCCS files. This required the
introduction of seqstate.cc and a modification to sf-delta.cc as
well.
1998-05-06 James Youngman <jay@gnu.org>
* seqstate.h:
Reindented to prepare for new code which maintaind the state of the
"deleting" flag differently.
1998-05-05 James Youngman <jay@gnu.org>
* CSSC-0.06alpha.pl6 released.
* NEWS: Added entry about "sccs.c".
1998-05-04 James Youngman <jay@gnu.org>
* bsd/sccs.c, bsd/pathnames.h, Makefile.am:
Attempted to make the location of "sccs" configurable. Also attempted to add const modifiers where useful.
* NEWS: Added "-t" option.
* sccsfile.cc:
Use signed arithmetic for checksums. I *think* that matches the
"real" SCCS. Also produce what I hope are more useful messages when
the checksum is incorrect (or even the checksum header is missing).
* sccsfile.h:
Use signed arithmetic for checksums. I *think* that matches the
"real" SCCS.
* configure.in: Added the "bsd" directory.
* tests/get/branch.sh:
Added note about the SCO version of "unget" being silent.
* docs/cssc.texi:
texi2html doesn't expand homegrown macros, so we have to write the
maintainer's email address out by hand in each place.
* docs/Platforms: Added note for IRIX.
* sid.h: Removed a #pragma -- they're not portable anyway.
* pipe.h: Use "class foo : public bar {}" not "class foo : bar { }".
* pfile.h: Removed a #pragma -- they're not portable anyway.
* mystring.h:
Added comment about functions disalbigiated only by the constness of
*this. Some versions of the IRIX C++ compiler don't like that (error
3392).
* linebuf.h: Actually remove a #pragma that had been commented out.
* filelock.h: Explicitly use "private" in inheritance spec
(e.g. 'class foo : private bar {}') ,
we can't just leave it out.
* fileiter.cc:
If an argument is a directory which is named so as to end in a slash,
don't coredump.
1998-03-18 James Youngman <jay@gnu.org>
* bsd/sccs.c: Reindented with GNU Indent.
* bsd/sccs.c: Many const-correctness changes.
1998-03-17 James Youngman <jay@gnu.org>
* bsd/Makefile.am, bsd/Makefile.bsd, bsd/COPYING.bsd, bsd/Makefile:
Updated the copyright info. There is a different copyright situation
locally in this dir.
* bsd/sccs.c:
Eliminated many compiler warnings. Partial Autoconf conversion.
* bsd/sccs.c: Use stdarg.h instead of old-style /*VARARGS1*/ etc.
1998-03-16 James Youngman <jay@gnu.org>
* bsd/sccs.me, bsd/sccs.c, bsd/pathnames.h, bsd/sccs.1, bsd/Makefile:
Added files from the Berkeley sccs.c implementation.
1998-03-15 James Youngman <jay@gnu.org>
* tests/get/t-option.sh, docs/style.txt, docs/get-spec.txt, docs/cssc.texi, docs/Makefile.am, docs/TODO, sf-get2.cc, get.cc, Makefile.am:
Implemented the "-t" option of get.
* tests/get/t-option.sh: Tests for the -t option of get.
1998-03-14 James Youngman <jay@gnu.org>
* sccsdate.cc, sccsfile.cc, sf-get.cc, configure.in, file.cc, filediff.cc, admin.cc, bodyio.cc:
Fixed some compiler warnings, no change in functionality.
* docs/Makefile.am: Added mailing-list.txt.
* docs/mailing-list.txt:
Information about the mailing list for GNU CSSC.
* docs/patches.txt:
Requested that people specify the purpose of the submitted patch, and
delete all editor backup files before generating it.
* testutils/lndir.c, testutils/ekko.c:
Eliminate some compiler warnings; falling off the end of int-returning
functions and that sort of thing.
* testutils/seeker.c:
setlinebuf() is not a standard ISO-C library function and SCO Unix
(for example) does not provide it. It has an exact setvbuf()
equivalent, so use that instead.
1998-03-11 James Youngman <jay@gnu.org>
* auxfiles/Makefile.am, Makefile.am, configure.in:
Added the "auxfiles" directory so that CSSC.spec is distributed.
* ChangeLog, NEWS: Detailed the updates for CSSC-0.06alpha-pl5.
* auxfiles/CSSC.spec, configure.in: Bumped patchlevel to 5.
* docs/FIXED, docs/BUGS: Oops. Left a fixed bug in eocs/BUGS --
and the patchlevel number for the first fixed version was wrong.
All better now.
* tests/rmdel/basic.sh:
Make sure that the revision we tried to remove is actually now absent.
* tests/common/command-names, tests/rmdel/basic.sh, docs/BUGS,
docs/CREDITS, docs/Platforms, tests/Makefile.am, sf-rmdel.cc:
Fixed bug in "rmdel" reported by Peter Kjellerstedt. "rmdel" had
been deleting all the control lines.
1998-03-10 James Youngman <jay@gnu.org>
* docs/FIXED, auxfiles/CSSC.spec, NEWS, configure.in, ChangeLog:
Miscellaneous updates for 0.06-pl4.
* tests/Makefile.am:
Don't export CVS directories into the distribution.
* admin.cc:
Absolute pathnames now work; bug reported by Wolfhard Straehle.
* tests/admin/abspath.sh:
Test for bug reported by Wolfhard Str\"ahle; admin -n /abs/path/s.foo
fails because the "admin" code checks for an "s." after the first
slash when in fact it should check for an "s." after the LAST one.
1998-03-10 James Youngman <jay@gnu.org>
* get.cc:
Fixes from Peter Kjellerstedt. First, correct output when a direcory
is specified on the command line (get should always print the name of
the current s-file). Second, when multiple files are specified on the
command line, don't corrupt the requested SID value by updating it
with an actual SID value from some particular s-file.
* sccsdiff.sh.in: Support for filenames containing spaces.
* filediff.cc, filediff.h, sf-delta.cc:
Better support for files whose names have spaces in them.
1998-03-09 James Youngman <jay@gnu.org>
* filediff.h, filediff.cc:
finish() returns a bool; false if the child process returned nonzero.
* sf-delta.cc, fileiter.cc:
Make FileDiff::finish() return a bool; it returns false if pclose()
indicates that the spawned process returned a nonzero exit status.
[ REVERSED -- this was a BAD idea, diff returns 1 if the
files differ! ]
* sccsdiff.sh.in:
Bug report from Richard Polton: IRIX's pr(1) requires a space between
the "-h" and its argument.
1998-03-04 James Youngman <jay@gnu.org>
* tests/common/real-thing: Define TESTING_CSSC if $dir points at
CSSC programs rather than SCCS programs.
* tests/binary/auto.sh: Use $TESTING_CSSC to determine of we
should run those tests that CSSC should pass but (some verisions
of) SCCS cannot, instead of abusing $expect_fail.
* docs/BUGS, docs/FIXED: Some entries moved from BUGS to FIXED.
1998-03-01 James Youngman <jay@gnu.org>
* Version 0.06alpha-pl3
* auxfiles/CSSC.spec: 0.06alpha-pl3
* configure.in, ChangeLog, NEWS:
Updated the NEWS and ChangeLog files (0.06alpha-pl3)
* tests/binary/auto.sh, tests/binary/seeking.sh:
Tests for binary files and the "-i" option of admin.
* docs/cssc.texi:
Genuine SCCS doesn't always properly recover from finding out that
the "-i" file for admin needs encoding, after having read some of it.
* bodyio.cc, admin.cc:
When generating a new SCCS file using the "-i" option of admin,
we no longer need to be able to seek on that file if the input
turns out to need encoding after we have read some of it.
* tests/admin/i-option.sh: We no longer do fgetpos() on stdin.
1998-02-28 James Youngman <jay@gnu.org>
* xalloc.cc, xalloc.h, Makefile.am:
Removed xalloc.cc and xalloc.h completely.
* show-disp.sh:
Cope correctly with locally removed files when the actual working file
has been deleted.
* docs/CREDITS, xalloc.cc, sl-merge.h, stack.h, sid_list.cc,
sid_list.h, sid.cc, run.cc, seqstate.h, pipe.cc, linebuf.cc,
linebuf.h, delta-table.cc, l-split.cc, cssc.h: Patches from
Richard Polton to eliminate our xalloc.h wrapper for operator new,
as various versions of GCC differ on the exception throwing
specification -- if we don't have to override the operator new, we
don't have to get the declaration right :-)
* admin.cc:
Turn off buffering on stdin, as a workaround for a bug in glibc 2.0.6.
* tests/common/test-common: success(): Delete temporary files.
* tests/admin/i-option.sh, tests/admin/t-option.sh:
Temporarily mark the "admin -i" tests "expect-fail".
1998-02-24 James Youngman <jay@gnu.org>
* auxfiles/CSSC.spec: Updated the version.
* tests/binary/char255.uue:
This file contains one character (uuencoded), the ASCII code 255.
1998-02-23 James Youngman <jay@gnu.org>
* configure.in: Bumped version to 0.06alpha.pl2
* ChangeLog.1, ChangeLog: *** empty log message ***
* tests/binary/eightbit.sh, tests/binary/diff.sh, tests/Makefile.am:
Run the binary-file tests as part of "make check". Small fixes to
those tests.
* tests/binary/eightbit.sh, bodyio.cc, NEWS:
Fixes to allow the character whose code is 255 to be properly handled.
* tests/binary/eightbit.sh: Tests involving 8-bit bodies.
* tests/binary/s.umsp.uue: SCCS file containing 8-bit characters.
* docs/BUGS, docs/FIXED, sf-write.cc, sccsfile.cc: Checksum is now
8-bit-clean, due to richardp@scopic.com and
Peter.Kjellerstedt@axis.com.
* testutils/Makefile.am:
Added seeker.c, which tests for a particular bug in GNU libc 2.0.6.
* unget.cc, what.cc, rmdel.cc, sact.cc, prt.cc, my-getopt.h,
prs.cc, get.cc, my-getopt.cc, fileiter.h, delta.cc, fileiter.cc,
admin.cc, cdc.cc: Renamed class getopt to class CSSC_Options, to
avoid conflict with getopt(3) on systems such as netbsd-1.2 (as
installed on melange.gnu.org)
* testutils/seeker.c:
Test program which determines if fgetpos() works correctly on stdin.
1998-02-21 James Youngman <jay@gnu.org>
* auxfiles/CSSC.spec: Corrected source file name.
* auxfiles/CSSC.spec: Strip the installed binaries.
* NEWS: Updated for CSSC-0.06devel-pl1.
* ChangeLog: *** empty log message ***
* what.cc, sid_list.cc, unget.cc, sf-prt.cc, sf-prs.cc,
sf-get2.cc, sf-kw.cc, sf-get.cc, sf-chkid.cc, sf-delta.cc,
sf-cdc.cc, sccsfile.h, sact.cc, sccsfile.cc, run.cc, run.h,
rel_list.h, rmdel.cc, prt.cc, prompt.cc, prs.cc, pipe.h, pfile.h,
pipe.cc, mystring.h, pfile.cc, mystring.cc, my-getopt.h, mylist.h,
linebuf.h, my-getopt.cc, l-split.cc, linebuf.cc, get.cc, ioerr.h,
fileiter.h, filepos.h, file.cc, delta.cc, encoding.cc, cssc.h,
defaults.h, bodyio.h, cdc.cc, bodyio.cc: Updated the year in the
copyright message for all those files modified so far in 1998.
* docs/FIXED, docs/TODO, docs/BUGS: Added some bug reports.
* unget.cc, sact.cc, sf-get.cc, rmdel.cc, prs.cc, prt.cc, my-getopt.cc, my-getopt.h, fileiter.h, get.cc, fileiter.cc, cdc.cc, delta.cc, admin.cc:
Modified option processing so that "get s.foo -Gbaz" is equivalent
to "get -Gbaz s.foo".
* configure.in: Bumped version to 0.06-pl1.
* docs/cssc.texi: Minor punctuation corrections.
* tests/prs/keywords.sh: Added test for :PN:.
* Makefile.am, sf-prs.cc:
The prs keyword :PN: needs to produce the full pathname of the SCCS
file, not just the name as specified on the command line.
* tests/get/optorder.sh: Initial version.
1998-02-20 James Youngman <jay@gnu.org>
* sf-write.cc:
Cope in a more user-friendly way with the prior existence of "x.foo".
* docs/BUGS:
Some bug reports from Peter Kjellerstedt <peter.Kjellerstedt@axis.com>
and Dave Bodenstab <imdave@mcs.net>.
* tests/get/sep_subst.sh:
Make sure the substitution happens for the actual gotten delta, not
the delta to which the current line belongs.
* tests/get/sep_subst.sh: *** empty log message ***
* tests/get/sep_subst.sh:
Make sure that the delta information substituted for each line is the
information for the delta that we are actually getting, not the delta
information for the delta which last touched that line.
1998-02-12 James Youngman <jay@gnu.org>
* ChangeLog: *** empty log message ***
* auxfiles/CSSC.spec: Updated RPM spec-file for version 0.06alpha.pl0.
* ChangeLog: *** empty log message ***
* docs/cssc.texi, docs/Platforms, docs/TODO, auxfiles/CSSC.spec, sf-write.cc, configure.in, sccsfile.cc, NEWS:
Binary file support.
* docs/missing.txt: Binary file support is now present.
* tests/binary/binbasic.sh, filediff.h, sf-delta.cc, filediff.cc, Makefile.am, configure.in:
First working binary file support.
1998-02-11 James Youngman <jay@gnu.org>
* tests/binary/auto.sh:
Tests that ensure that admin correctly guesses if the original file is
binary or not.
* configure.in: Updated the patchlevel.
* ChangeLog: *** empty log message ***
* NEWS: Added the latest news.
* docs/TODO, docs/BUGS, docs/FIXED:
Updated the lists of bugs fixed, bugs discovered, and things to investigate.
* pipe.h, pipe.cc:
Some tidying. This code seems problematic for binary files. Some of
the commented-out tests in tests/binary/binbasic.sh break it.
* tests/get/create.sh: Corrected a comment.
* tests/Makefile.am: Added testing fr binary files.
* testutils/Makefile.am:
Added "ekko", a substitute echo(1) for systems where the normal
echo(1) does not support newline suppression and escape codes.
* encoding.cc, bodyio.cc: Added support for deltaing encoded files.
* auxfiles/CSSC.spec: Added the spec-file for RPM.
* tests/delta/basic.sh:
Make sure diff returns 0 for identical files and 1 for different ones.
* bodyio.h, sf-kw.cc, linebuf.cc, sf-delta.cc:
Support for deltaing encoded files. We have a problem with the Pipe
class and large input files (broken pipe) though.
* file.cc, configure.in:
Use stat() to detect if the g-file is writable, because if we are
root, access() tells us yes even if the file is read-only. This makes
"get" fail, saying that a wrtable gfile exists. Using stat() fixes
this.
1998-02-10 James Youngman <jay@gnu.org>
* tests/common/test-common:
Use testutils/ekko if no suitable echo(1) command exitst on the system
(we need newline suppression and escape codes).
* testutils/ekko.c:
An echo(1) replacement for systems whose echo does not support escape
codes and newline supression.
* tests/binary/diff.sh, tests/binary/binbasic.sh:
New tests for binary file support (get/delta etc).
* docs/cssc.texi:
Removed remarks about option processing, since we now do this the SCCS
way. Also, added remarks about the non-security of CSSC and advice not to install it setuid-root or use it as root.
1998-02-09 James Youngman <jay@gnu.org>
* sccsdiff.sh.in:
Patch from Maurice O'Donnell <mod@tfn.com>: pass "-e" to sed before
the sed commands.
* tests/large/admin.sh, testutils/yes.c, testutils/Makefile.am:
Solaris has no yes(1) utility so we roll our own.
1998-02-01 James Youngman <jay@gnu.org>
* bodyio.h: Prototypes for functions in bodyio.cc.
* bodyio.cc:
New file; functions for handling the I/O for the body of files
(i.e. the bits that might be uuencoded).
* ChangeLog, docs/TODO: *** empty log message ***
* scripts/rev-freq.sh:
Added rev-freq.sh, which generates a histogram of the distributon of
CVS revision numbers.
* config.h.in:
This file is automatically generated by "autoheader". We should not therefore keep it under CVS control, I think.
* sccsfile.cc, pfile.cc:
Added TODO comment for the places where we modify the contents of a
cssc_linebuf nefariously.
* Makefile.am:
Added bodyio.cc and encoding.cc to those modules that now need it.
* sf-get.cc:
Added a no_decide flag to sccs_file::get() for the use of delta. We
need to be able to obtain the body in encoded form so that we can feed
it to diff(1).
* sf-delta.cc:
cssc_linefuf now has its own check_id_keywords() member, as a
preparatory step to 8-bit-cleanness.
* sf-admin.cc:
If body_insert() informs us that the body turned out to be binary, set
flags.encoded so that sccs_file::end_update() can call
rehack_encoded_flag() (in sf-write.cc).
* sccsfile.h:
Allow sccs_file::get() to be told not to uudecode an encoded file. We
do this in order to obtain the still-encoded text in otder for delta
to feed it to diff.
* linebuf.h, linebuf.cc:
Changes for the beginnings of 8-bit-clean support. We're not
8-bit-clean yet though. The class interface currently precludes it.
* ioerr.h: Added fwrite_failed().
* cssc.h, defaults.h:
CONFIG_LINEBUF_CHUNK_SIZE is only used by linebuf.cc and only really
needs ever to be changed as a tuning issue, so we #define it in
linebuf.cc. For the moment, we keep it low as this ensures that we
debug the reallocation code.
* configure.in:
sf-chkid.cc can use memchr() if available, so detect it.
* sf-chkid.cc: Rewrote check_id_keywords() for 8-bit-cleanness.
1998-01-25 James Youngman <jay@gnu.org>
* testutils/README, testutils/last-time.c, testutils/Makefile.am:
Added last-time.c to the distribution.
* tests/get/defsid.sh, tests/get/subst.sh: *** empty log message ***
* tests/admin/flags.sh: Added checks for the default delta flag.
* docs/TODO, docs/missing.txt, docs/FIXED: *** empty log message ***
* sf-write.cc, sf-prs.cc, sf-prt.cc, sf-get2.cc, sf-admin.cc,
sf-get.cc, sccsfile.h, sccsfile.cc, filepos.h, get.cc,
encoding.cc, cssc.h, defaults.h, README, admin.cc, Makefile.am,
NEWS, ChangeLog: Preliminary support for binary files; creation
(initialisation) only.
1998-01-24 James Youngman <jay@gnu.org>
* docs/BUGS:
Removed a bug report (by jay@gnu.org, me) that actually wasn't a bug.
* tests/get/defsid.sh: Wrote tests for the default-SID flag.
* tests/admin/flags.sh:
Since we now emit a couple of error messages relating to the "-b"
flag, we need to IGNORE some of the stderr output in the tests,
otherwise we procude unwarranted test failures.
* tests/sccsdiff/rap.sh:
We can't count on the precise form of the output, but we can count on
the exit status of the command. Tests amended for compatibility with
SCCS. SCCS now passes :-)
* tests/get/branch.sh:
Since we now emit a couple of error messages relating to the "-b"
flag, we need to IGNORE some of the stderr output in the tests,
otherwise we procude unwarranted test failures.
* sccsdiff.sh.in:
SCCS compatibility fix -- When "get" fails, exit with value 1, not 2.
* get.cc: Added warnings for when -b flag is ignored because the b
(branch-enable) flag is not set, and for when -b is udes without -e
(which does not make sense and is otherwise ignored).
* _chmod.cc:
Removed double leading underscore for #define used to prevent multiple
inclusion.
* sf-get2.cc:
Fixed assertion failure for "get -e -r1.1.1 s.foo.c" when there is a
revision 1.1.1.1. Probably needs tidying (or at least
re-generalising).
* sf-chkid.cc:
Export the function is_keyword_letter() so that our later support for
binary as well as text files can be simplified.
* sccsfile.h, sccsfile.cc: Added sccs_file::branches_allowed().
1998-01-20 James Youngman <jay@gnu.org>
* docs/cssc.texi:
Added documentation on when and how branches are made.
1998-01-19 James Youngman <jay@gnu.org>
* tests/get/branch.sh:
Added tests for the correct handling of the "-b" flag.
1998-01-18 James Youngman <jay@gnu.org>
* encoding.cc:
First show at the uuencode/uudecode methods for the support of binary files.
1998-01-17 James Youngman <jay@gnu.org>
* unget.cc, what.cc, rmdel.cc, prs.cc, get.cc, my-getopt.cc,
delta.cc, ChangeLog, admin.cc: Removed all colons from getopt()
option descriptors. Instead we replace them with "!", which tells
our custom version of getopt() to parse the options in the SCCS
style (arguments must follow keyletters and may not be in the next
argv[] element).
* cssc.h: Only include <config.h> if HAVE_CONFIG_H is defined.
* configure.in: Updated the version number.
* testutils/user.c:
Added this file (which is broadly the equivalent of the standard Unix
command "id").
* NEWS: Changes for version 0.05 (changes in Dec 19997 and Jan 1998).
* ChangeLog:
Updated for version 0.05 (changes in Dec 19997 and Jan 1998).
* docs/CREDITS:
Added paragraph for Richard Polton, and de-emphasised the role of
MySC.
* docs/FIXED:
Moved a bug report (99999 cap on nu,bers of lines in SCCS files) from
BUGS to FIXED after fixing it.
* docs/BUGS: Moved a bug report to the FIXED file after fixing it.
* docs/missing.txt:
Indicate that sccs-val and sccs-comb have not been implemented.
* docs/TODO: *** empty log message ***
* docs/TESTING:
Indicated that Richard Polton wrote the first contributed test suite.
* docs/Platforms:
Added indication that CSSC has been tested under Red Hat version 5.0.
1998-01-16 James Youngman <jay@gnu.org>
* docs/get-spec.txt:
Updated to reflect the fact that the makefile no longer has a "make
gtest" target.
1998-01-15 James Youngman <jay@gnu.org>
* docs/cssc.texi: Documented sact, cdc, rmdel, prt.
* tests/Makefile.am: Added the test-cdc target.
* tests/common/test-common:
The expected stdout/stderr arguments are quoted when they are output
to temporary files, to prevent any wildcard characters iin them being
expanded!
* mystring.h: typo in comment
* fileiter.h:
Provide using_stdin(), which indicates if stdin is already in use for
reading a list of files to operate on.
* prompt.cc:
The prompt should not be issued if stdin is not a terminal.
* sf-cdc.cc, cdc.cc: Using the new test cases, fixed many bugs!
* tests/cdc/4order.sh, tests/cdc/2comment.sh, tests/cdc/3MRs.sh,
tests/cdc/1general.sh: Wrote a fairly comlete set of test cases
for 'cdc'.
1998-01-10 James Youngman <jay@gnu.org>
* tests/Makefile.am: Added tests for "sccsdiff".
* tests/sccsdiff/rap.sh:
Export $get so that "sccsdiff" can call the correct "get" program.
* Makefile.am: Renamed list.h to mylist.h.
* sccsfile.h, sid_list.cc, run.cc, run.h, pipe.cc, rel_list.h,
l-split.cc, pfile.h, fileiter.h, mylist.h, list.h: Renamed
"list.h" to "mylist.h".
2019-05-06 James Youngman <jay@gnu.org>
Fix more compiler warnings.
* src/what.cc: Forward-declare usage().
* src/sccsfile.h: Declare print_flag2() functions.
* src/get.cc (main): Format the (unsigned in) line count with %u
instead of %d.
* src/environment.cc (max_sfile_line_len): Simplify a complex
boolean expression to silence a compiler warning suggesting
parentheses.
* src/writesubst.cc (write_subst): Print the output line number
with %u since it is an unsigned int.
* src/sf-write.cc (write_delta): Remove unsed variables "len" and
"i".
(write): Likewise, also "s".
Fix some compiler warnings. Also turn off warning options which
themselves just generate warnings.
* src/run.cc (run): Avoid mixing signed/unsigned quantities.
* src/sf-get2.cc (get): Avoid variable 'd' shadowing a variable of
the same name in an outer scope.
* src/sccsfile.h: Declare print_flag().
* src/cap.cc (cap_min): Simplify this function; we only use it for
trivially copyable types anyway.
* configure.ac: Disable some warnings known to the manywarnings
module (thus enabled with --enable-warnings) but which aren't
suitable for C++ compilation. We disable them so that we don't
get a warning message from GCC about the inappropriate warning
option.
Use block I/O for encoded streams.
* src/encoding.cc (encode_line): return the number of bytes
output.
(encode_stream): Use the count returned by encode_line to perform
block I/O (with fwrite) instead of string I/O (with fprintf).
Move the implementation details of uuencoding/decoding into a
separate namespace.
* src/encoding.cc (encode): Put into an encoding_impl namespace to
emphasize that it is not intended as a public API for the rest of
the program to use. It's not in an unnamed namespace since the
unit test still needs to use it.
* src/bodyio.h (encoding_impl): Put declarations of encode and
decode into this namespace.
* unit-tests/test_encoding.cc: Use the namespace-qualified names
for encode and decode.
Delete mylist.h.
* src/mylist.h: Delete mylist.h
* src/Makefile.am (noinst_HEADERS): Delete mylist.h
* src/sccsfile.cc: Don't include mylist.h.
* src/l-split.cc: Don't include mylist.h.
(split_comments): use std::vector<T> instead of mylist<T>.
* unit-tests/test_bigfile.cc: use std::vector<T> instead of
mylist<T>. Don't include mylist.h.
* unit-tests/test_delta.cc: Likewise.
* unit-tests/test_mylist.cc: Delete.
* unit-tests/Makefile.am (unit_tests): Remove test_mylist.
Switch class sccs_file from mylist<T> to vector<T>.
* src/sccsfile.h: use std::vector<T> instead of mylist<T>.
* src/sf-val.cc: Likewise.
* src/cdc.cc (main): Likewise.
* src/sf-prt.cc: Likewise.
* src/admin.cc (main): Likewise.
* src/sf-cdc.cc: Likewise.
* src/sf-admin.cc: Likewise.
* src/sf-write.cc: Likewise.
* src/get.cc (print_id_list): Likewise.
* src/sf-get.cc (prepare_seqstate_1): Likewise.
* src/sf-prs.cc (print_seq_list): Likewise.
* src/sf-rmdel.cc (is_seqlist_member): Likewise.
Switch test_delta-table.cc from mylist to vector.
* unit-tests/test_delta-table.cc: Switch data structures from
mylist<T> to std:vector<T> (for which mylist is an alias anyway).
2019-05-05 James Youngman <jay@gnu.org>
Switch class release_list from using mylist<T> to vector<T>.
* src/rel_list.h: Switch data structures from mylist<T> to
std:vector<T> (for which mylist is an alias anyway).
* src/rl-merge.cc (remove): Likewise.
Switch class sccs_file_iterator from using mylist<T> to
vector<T>.
* src/fileiter.h: Switch data structures from mylist<T> to
std:vector<T> (for which mylist is an alias anyway).
Switch class delta from using mylist<T> to vector<T>.
* src/delta.h: Switch data structures from mylist<T> to
std:vector<T> (for which mylist is an alias anyway).
* src/delta.cc (delta_main): Likewise.
* src/sf-delta.cc (add_delta): Likewise.
2019-05-05 Martin Wilck <mwilck@suse.com> (tiny change)
sccs: comply with POSIX POS36-C rule.
POS36-C compliance requires that setgid() is called before
setuid(), and both called after relinquishing extra groups with
setgroups(). See
https://wiki.sei.cmu.edu/confluence/display/c/POS36-C.+Observe+correct+revocation+order+while+relinquishing+privileges
* configure.ac: check for setgroups()
* src/sccs.c (drop_privs): correct call order: setgroups, setgid,
setuid.
2019-05-05 James Youngman <jay@gnu.org>
Suggest setting CSSC_DISABLE_VALGRIND=1 if system binaries cause
tests to fail.
* README (--disable-valgrind): point out that occasionally, a
system binary will cause Valgrind checking to make tests
fail. Explain how to work around this problem.
Include config.h before other files.
* build-aux/find-out-of-order-includes.sh: Script for identifying
source files which include other headers before "config.h", which
gnulib doesn't like.
* src/version.cc: Include "config.h" before <stdio.h> to avoid
complaints from gnulib.
2016-03-01 James Youngman <jay@gnu.org>
Don't distrubite unit-tests/googletest/Makefile.in.
* unit-tests/Makefile.am (EXTRA_DIST): Don't include
googletest/Makefile.in, since we don't create that file, as
googletest is not in SUBDIRS.
2016-02-28 James Youngman <jay@gnu.org>
Add tests covering p-file validity checks in sact.
* src/pfile.cc (sccs_pfile): Validate the delta SID (instead of
only the gotten SID). When rejecting an invalid date, say
"date/time", since it may in fact be the time field which is
incorrect.
* tests/common/test-common: New options to docommand,
--stderr_regex and stdout_regex, allowing regex (egrep) matching
of tool output. Each has a --no* counterpart which turns the
option off again (this is useful for deteating the defaults
provided by functions which wrap docommand).
* tests/sact/pfile_corruption.sh: New test, covering the p-file
validity checks in sact.
2016-02-24 James Youngman <jay@gnu.org>
Don't use unique_ptr on the result of strdup, and other cleanup.
* src/sccsdate.cc (y2k_window): move all year windowing
calculations into this new function.
(is_leapyear): fix typo in comment.
(get_two_digits): Add specialization which takes a constr
string&.
(sccs_date::sccs_date): Use y2k_window. Also, instead of using
unique_ptr on a pointer returned by strdup, just use a std::string
instance.
* src/sccsdate.h (class sccs_date): Remove the daysecond field.
Fix a number of problems identified by "make syntax-check".
* src/get.cc: Remove trailing blanks.
* src/Makefile.am: Likewise.
* src/l-split.cc: Likewise.
* src/get.cc: Likewise.
* src/prs.cc: Likewise.
* src/run.cc: Likewise.
* src/sccsfile.cc: Likewise.
* src/sccsfile.h: Likewise.
* Makefile.am (distcheck-hook): Remove trailing blank.
* src/sccs.c (gstrncat): Avoid spurious warning about reference to
strncpy() in a comment.
* tests/val/historical.sh: Remove empty lines at EOF.
* unit-tests/test_linebuf.cc: Likewise.
* build-aux/check-googletest-files.sh: Remove empty lines at EOF.
(deleteprefix): Remove trailing blanks.
* NEWS: Change "the the" to "the" in item for CSSC-1.3.2. Remove
trailing blanks.
* src/sccsdate.cc (sccs_date::sccs_date): Avoid the use of strncpy.
* docs/cssc.texi (Admin Options): Don't say "see also @xref".
(Executable File Support): Remove trailing blanks.
* src/sf-prs.cc (prs): Don't use the space-tab combination.
* src/file.cc (get_mode_bits): Remove trailing blanks.
(is_writable): Likewise.
Make mylist a simple synonym for std::vector.
* src/mylist.h: Make mylist a simple synonym for std::vector.
Don't require mylist<T>::operator[] to assert on index errors.
* unit-tests/test_mylist.cc: Remove tests which verify that
mylist<T>::operator[] assert-fails when an index is out of range
(since std::vector does not do this).
Stop depending on mylist not actually being a synonym for std::vector.
* src/sf-prs.cc (print_string_list): Remove the two versions of
this function for std::vector<string> and mylist<string>.
Instead, implement a single template function which takes a range
of iterators. This allows us not to care wither mylist is simply
compatible with std::vector, or actually is std::vector.
(print_delta): Update callers of print_string_list.
Include <algorithm> where it is needed, and not where it is not.
* src/sf-rmdel.cc: include the <algorithm> header since we use
std::find.
* src/mylist.h: Don't include <algorithm>, the transitive
inclusion of which sf-rmsel.cc was previously takign advantage
of.
Replace constructor from const set& with a range of iterators.
* src/mylist.h (mylist::mylist): Add constructor from a range of
input iterators, allowing initialization from any container.
Remove the special-purpose constructor from const set&. This
change provides closer compatibility with std::vector<T>,
* src/delta.h (delta::delat): Initialize included_ and excluded
using the iterator range instead of plain const set&.
2016-02-23 James Youngman <jay@gnu.org>
Remove mylist<T>::operator+=(), implementing insert() instead.
* src/mylist.h (mylist::insert): add insert() method, forwarding
to std::vector<T>::insert(), as a replacement for
mylist::operator+=() (and that method is removed).
(mylist::cbegin): add, forwarding to items_.cbegin().
(mylist::cend): add, forwarding to items_.cend().
* src/delta.h (delta::prepend_comments): Implement.
* src/sf-cdc.cc (sccs_file::cdc): Call mylist::insert() instead of
the removed mylist<T>::operator+=(). Also use
delta::prepend_comments() to prepend comments instead of copying
the old comments, modifying the list and callign set_comments().
* unit-tests/test_mylist.cc (MylistTest::Catenate::TestBody): use
the new insert method to perform the concatenation, instead of the
removed method operator+=.
2016-02-21 James Youngman <jay@gnu.org>
Avoid unnecessary for loop in mylist::operator+=(const mylist&).
* src/mylist.h (mylist): Implement operator+= with a range insert
on the underlying vector.
Remove mylist<T>::operator-=(const mylist<T>&).
* src/mylist.h (mylist): remove mylist<T>::operator-=(const
mylist<T>&).
* unit-tests/test_mylist.cc: Remove tests of
mylist<T>::operator-=(const mylist<T>&).
* src/sccsfile.h (sccs_file::admin): change the type of
erase_users from mylist<string> to
std::unordered_set<std::string>. This allows the implementation
to be more efficient without affecting the ordering of the
resulting user list.
* src/admin.cc (main): Update the type of erase_users
accordingly.
* src/sf-admin.cc (admin): take advantage of the efficiency of
std::unordered_set<T>::find() when computing the updated
authorized user list. Hence we no longer need to call
mylist<T>::operator-=(const mylist<T>&).
Delete mylist<T>::add(), preferring push_back() instead.
* src/mylist.h (mylist): Delete mylist<T>::add() since we prefer
push_back().
* unit-tests/test_mylist.cc: Don't use or test .add(), but use or
test .push_back() there was previously .add().
* unit-tests/test_delta.cc: Don't use mylist<T>::add(), use
mylist<T>::push_back() instead.
* src/rl-merge.cc (merge): Use mylist<T>::push_back() instead of
mylist<T>::add().
* src/delta.h (delta::add_include): Likewise.
(delta::add_exclude): Likewise.
(delta::add_ignore): Likewise.
(delta::add_comment): Likewise.
* src/l-split.cc (split_comments): Likewise.
* src/rel_list.cc (release_list): Likewise.
* src/fileiter.cc (sccs_file_iterator): Likewise.
* src/sccsfile.cc (sccs_file::sccs_file): Likewise.
* src/sf-get2.cc (sccs_file::get): Likewise.
* src/sf-delta.cc (sccs_file::add_delta): Likewise.
* src/sf-admin.cc (sccs_file::admin): Likewise.
(sccs_file::create): Likewise.
* src/sf-cdc.cc (process_mrs): Likewise.
(sccs_file::cdc): Likewise.
* src/admin.cc (main): Likewise.
Remove mylist<T>::select(size_type).
* src/mylist.h (mylist): remove mylist<T>::select().
* unit-tests/test_mylist.cc: remove tests for mylist<T>::select().
Remove mylist<T>::operator=(void*).
* src/mylist.h (mylist): remove mylist<T>::operator=(void*). The
effect of this method was to clear the list, so add a clear()
method instead, for closer matching to std::vector.n
* unit-tests/test_mylist.cc: remove tests for
mylist<T>::operator=(void*).
* src/sf-admin.cc (sccs_file::admin): use clear() to clear an
instance of mylist<T>, not assignment to NULL.
Remove mylist<T>::length().
* src/mylist.h (mylist::length): delete this method (size() should
be used instead).
Avoid using mylist<T>::length().
* src/sf-get2.cc (get): Use a range-based for loop instead of
indexing up to mylist<T>::length().
* src/sf-cdc.cc (cdc): Use mylist<T>::empty() rather than
comparing the result of length() against 0.
* src/sf-get3.cc (authorised): Use a range-based for loop instead
of indexing up to mylist<T>::length().
* src/sf-prs.cc (print_seq_list): Prefer mylist::size() to
mylist::length().
(print_delta): Use mylist<T>::empty() rather than comparing the
result of length() against 0.
* src/fileiter.cc (next): Prefer mylist::size() to
mylist::length().
* src/sf-admin.cc (sccs_file): Likewise.
* src/sf-val.cc (validate_seq_lists): Likewise, factoring repeated
code out into a new function, validate_seq_numbers.
* src/sf-rmdel.cc (is_seqlist_member): use std::find instead of
iterating over list members ourselves.
* src/sf-prt.cc (print_seq_list): use a range-based for loop
rather than iterating over the indexes in a mylist<seq_no>.
(sccs_file): Instead of checking mylist<T>::length() against 0,
use the empty() method.
2016-02-20 James Youngman <jay@gnu.org>
Prefer mylist::size() to mylist::length().
* unit-tests/test_delta.cc: Don't use mylist::length().
* unit-tests/test_bigfile.cc (emit_comments_or_mrs): Don't use
mylist::length().
Prefer mylist::size() to mylist::length().
* unit-tests/test_mylist.cc: Use the size() method instead of the
length() method, for better compatibility with (and so simpler
transition to) std::vector.
Avoid bash-specific [[...]].
* build-aux/check-googletest-files.sh (findproblems): Avoid
[[...]] since that is a Bash feature, and this is a /bin/sh
script.
Add a menu for "admin", correcting a Texinfo build failure.
* docs/cssc.texi: Updated copyright years.
(admin): Added a menu for the sections relating to "admin".
2016-02-09 James Youngman <jay@gnu.org>
* src/sf-prs.cc (print_seq_list): Use a range-based for loop for
iterating over sequence numbers.
* src/sf-val.cc (validate_seq_lists): Factor out the repeated
logic into a local function, validate_seq_numbers.
* src/sf-get2.cc (get): Use a range-based for loop for iterating
over the comments.
2016-02-08 James Youngman <jay@gnu.org>
Don't gratuitously count elements of mylist<T>.
* src/sf-admin.cc (create): Prefer !mylist<T>::empty() over
mylist<T>::length() != 0.
Use range-based for in get.cc.
* src/get.cc (print_id_list): Use a range-based for loop to print
a sid list.
Use range-based for loops in the release_list implementation.
* src/rel_list.cc (member): Search with std::find, rather
than coding it manually.
(print): Use a range-based for loop.
Use mylist<T>::size() in preference to .length().
* src/sf-get.cc (prepare_seqstate_1): Use the size() method of
mylist, instead of length(), for better std::vector
compatibility.
Use range-based for loops in print_seqs and sccs_file::write.
* src/sf-write.cc (print_seqs): Iterate over sequence numbers with
a range-based for loop.
(sccs_file::write): Iterate over users with a range-based for loop.
(sccs_file::write): Iterate over comments with a range-based for
loop.
Support and used range-based for for release_list instances.
* src/rl-merge.cc (merge): Use a range-based for loop to iterate
over release_list instances.
(remove): Likewise.
* src/rel_list.h (release_list): Implement begin() and end() and
empty().
Use a range-based for loop for iterating over deltas.
* src/sf-get.cc (prepare_seqstate_1): Use a range-based for loop
for iterating over included/excluded/ignored deltas.
sccs_delta: Use empty() to find out if a mylist is empty.
* src/delta.h: use mylist<T>.empty() instead of .length() == 0.
Implement mylist<T>::push_back.
* src/mylist.h (mylist): Implement a push_back method and add TODO
comments for methods which aren't shared by std::vector.
State that a C++11 compiler is needed.
* README: Mention the need for a C++11 capable compiler.
* NEWS: Likewise.
Store MRs as std::vector<std::string> (not mylist<std::string>).
* unit-tests/test_bigfile.cc: (emit_comments_or_mrs): Convert to a
template so that we can use it to print a std::vector<std::string>
or a mylist<std::string>.
(emit_delta): Pass MRs as a vector not a mylist.
(make_delta): Likewise.
* unit-tests/test_delta-table.cc: Update to take account of the
change in representation of MR lists from mylist<std::string> to
std::vector<std::string>.
* unit-tests/test_delta.cc: Likewise.
* src/sf-write.cc (write_delta): Change the way we loop over the
MRs and the comments to use a range-based for loop (hence
accomodating the change in type of the MR list.
* src/sf-prt.cc (print_string_list): Convert this function to a
template so that it can be used to print a
std::vector<std::string> or a mylist<std::string>.
* src/sf-prs.cc (print_string_list): Add an override of
print_string_list for printing an instance of const
std::vector<std::string>&.
* src/sf-delta.cc (sccs_file::add_delta): Update the type of the
mrs parameter to std::vector<std::string>.
* src/sf-cdc.cc (process_mrs): Update the parameter list to use
std::vector<std::string> instead of mylist<std::string>. Change
the type of the to_delete parameter to const
std::unordered_set<std::string>& for greater efficiency.
* src/sf-admin.cc (sccs_file::create): Update type of mrs
parameter.
* src/sccsfile.h (sccs_file::check_mrs): Update the type of the
mrs parameter to std::vector<std::string>&.
(sccs_file::admin): update type of the mrs parameter.
(sccs_file::create): Likewise.
(::split_mrs): Likewise.
* src/sf-chkmr.h (check_mrs): Update the type of the mrs
parameter.
* src/run.cc (run): Update to take a vector<const char*> instead
of a mylist<const char*>.
(run_mr_checker): Change the type of the mrs parameter from
mylist<std::string> to std::vector<std::string>.
* src/run.h: Update declarations accordingly.
* src/mylist.h (mylist): Add method size() and empty() for
consistency with std::vector<T> so that we can define template
functions which will act on a mylist or a std::vector.
* src/l-split.cc (split_mrs): represent MRs as
std::vector<std::string>.
* src/delta.h (class delta): Change type of mrs_ member from
mylist<std::string> to std::vector<std::string>.
(delta::delta): change constructor parameters similarly.
(delta::mrs()): now returns std::vector<std::string>.
* src/admin.cc (main): Change type of mr_list from
mylist<std::string> to std::vector<std::string>.
* src/cdc.cc (main): Likewise.
* src/delta.cc (delta_main): Likewise.
(main): Simplify.
2016-02-07 James Youngman <jay@gnu.org>
Use std::string rather than mystring.
We also use range-based for loops to iterate over instances of
mylist<std::string>.
* src/mystring.h: Delete this file.
* src/Makefile.am (noinst_HEADERS): Remove mystring.h.
* src/admin.cc (main): Update to use string rather than mystring.
* src/cdc.cc: Likewise.
* src/canonify.cc (get_current_directory): Update to return string
* src/cssc.h: Likewise.
* src/delta.cc: Likewise.
* src/delta.h: Likewise.
* src/file.cc: Likewise.
* src/file.h: Likewise.
* src/file.h: Update function parameters and return types to be string rather than mystring.
* src/filediff.cc: Likewise.
* src/filediff.h: Likewise.
* src/fileiter.cc: Likewise.
* src/fileiter.h: Likewise.
* src/filelock.h: Likewise.
* src/fnsplit.cc: Likewise.
* src/get.cc: Likewise.
* src/l-split.cc: Likewise.
* src/pfile.h: Likewise.
* src/pf-del.cc: Likewise.
* src/prompt.cc: Likewise.
* src/prs.cc: Likewise.
* src/run.cc: Likewise.
* src/run.h: Likewise.
* src/sccsdate.h (sccs_date::as_string()): Likewise.
* src/sccsfile.cc: Likewise.
* src/sccsfile.h: Likewise.
* src/sccsname.cc: Likewise.
* src/sccsname.h (sccs_name): Likewise (and attributes).
* src/sf-admin.h: Likewise.
* src/sf-cdc.cc: Likewise.
* src/sf-chkmr.h (check_mrs): Likewise.
* src/sf-delta.cc: Likewise.
* src/sf-get.cc (get): Likewise.
* src/sf-get2.cc: Likewise.
* src/sf-get3.cc (authorised): Use string instead of mystring.
* src/sf-prs.cc: Likewise.
* src/sf-prt.cc: Likewise.
* src/sf-val.cc: Likewise.
* src/sf-write.cc: Likewise.
* src/sid.h (class sid): the as_string method now returns a string instead of a mystring.
* src/sid.cc: Use string instead of mystring.
* src/unget.cc: Likewise.
* src/writesubst.cc: Likewise.
* unit-tests/test_delta-table.cc: Likewise.
* unit-tests/test_delta.cc: Likewise.
* unit-tests/test_bigfile.cc: Use std::string instead of
mystring.
* src/mylist.h (mylist): Provide begin() and end() methods.
Delete myset.h, and switch to using std::set instead. Use C++11.
* src/sccsfile.h (substitued_flag_letters): change from
myset<char> to std::set<char>.
* src/sccsfile.cc (set_expanded_keyword_flag): update
implementation now that substitued_flag_letters is std::set<char>.
(print_subsituted_flags_list): Likewise.
* src/sf-write.cc (write): Likewise.
* src/writesubst.cc (expand_keyletter): Likewise.
* src/sf-admin.cc (admin): Likewise.
* src/sf-prt.cc (prt): Likewise.
* src/sf-val.cc (validate): Likewise, using a range-based for
loop.
* bootstrap.conf (gnulib_modules): Add std-gnu11 (to compile
C++11).
* src/mylist.h (mylist): Add constructor from const std::set<TYPE>&.
* unit-tests/Makefile.am (unit_tests): Remove test_myset.
(test_myset_SOURCES): Remove.
* src/Makefile.am (noinst_HEADERS): Remove myset.h.
* myset.h: delete this file.
* unit-tests/test_myselt.cc: delete this file.
* src/delta.h (delta): included and excluded deltas are now
std::set<seq_no> rather than myset<seq_no>.
* unit-tests/test_delta.cc (DeltaTest::Constructor): Update the
call to the constructor of delta, to pass in std::set<seqno> for
the included and excluded deltas.
* src/sf-delta.cc (add_delta): Switch from using myset<seq_no> to
using std::set<seq_no> for the included and excluded deltas.
Remove obsolete code from mylist.h.
* src/mylist.h (mylist): Remove the obsolete implementation of
mylist (which was disabled via the preprocessor anyway).
Mention that gnulib has been updated.
* NEWS: mention this.
2014-09-08 James Youngman <jay@gnu.org>
Always include config.h first; eliminate some compiler warnings.
* auxfiles/firstinclude.sed: New. Script which determines what
the first file #included in a C/C++ source file is.
* auxfiles/Makefile.am (EXTRA_DIST): Distribute firstinclude.sed.
* src/Makefile.am (check-include-order): Check that each source
file includes <config.h> before any other include file.
* src/admin.cc: Inlude <config.h> first. Include system headers
before our own headers.
* src/bodyio.cc: Likewise.
* src/cap.cc: Likewise.
* src/cdc.cc: Likewise.
* src/delta-iterator.cc: Likewise.
* src/delta-table.cc: Likewise.
* src/delta.cc: Likewise.
* src/dtbl-prepend.cc: Likewise.
* src/encoding.cc: Likewise.
* src/environment.cc: Likewise.
* src/fatalsig.cc: Likewise.
* src/fdclosed.cc: Likewise.
* src/fnsplit.cc: Likewise.
* src/l-split.cc: Likewise.
* src/linebuf.cc: Likewise.
* src/get.cc: Likewise.
* src/pf-add.cc: Likewise.
* src/pfile.cc: Likewise.
* src/prompt.cc: Likewise.
* src/prs.cc: Likewise.
* src/prt.cc: Likewise.
* src/quit.cc: Likewise.
* src/rel_list.cc: Likewise.
* src/rmdel.cc: Likewise.
* src/run.cc: Likewise.
* src/sact.cc: Likewise.
* src/sccs-delta.cc: Likewise.
* src/rl-merge.cc: Likewise.
* src/sccsdate.cc: Likewise.
* src/sccsfile.cc: Likewise.
* src/sccsname.cc: Likewise.
* src/seqstate.cc: Likewise.
* src/sf-add.cc: Likewise.
* src/sf-admin.cc: Likewise.
* src/sf-cdc.cc: Likewise.
* src/sf-chkid.cc: Likewise.
* src/sf-delta.cc: Likewise.
* src/sf-get.cc: Likewise.
* src/sf-get2.cc: Likewise.
* src/sf-get3.cc: Likewise.
* src/sf-kw.cc: Likewise.
* src/sf-prs.cc: Likewise.
* src/sf-prt.cc: Likewise.
* src/sf-rmdel.cc: Likewise.
* src/sf-write.cc: Likewise.
* src/sid.cc: Likewise.
* src/sf-val.cc: Likewise.
* src/unget.cc: Likewise.
* src/val.cc: Likewise.
* src/writesubst.cc: Likewise.
* src/file.cc: Likewise. Also move the definition of unprivileged
out of the #if in order to avoid a compiler warning.
* src/file.h: #include "mystring.h" since we use that class in
this header.
* src/filelock.h: Likewise.
2014-07-28 James Youngman <jay@gnu.org>
Support executable history files (=> g-files executable on get).
* src/sf-admin.cc (create): Open any file specified with the -i
command-line option before calling start_update, and using the
open file pointer, call set_sfile_executable if the history file
should be created with execute bits set.
* src/sf-write.cc (start_update): Use sfile_should_be_executable
rather than flags.executable in order to decide whether the
updated history file should be executable.
* NEWS: Mention that the 'x' flag no longer determines the mode of
the updated history file.
* src/sccsfile.h (sfile_executable): new boolean member variable.
If true, the history file, when we create it, should be
executable.
(set_sfile_executable): setter for sfile_executable.
(sfile_should_be_executable): getter for sfile_executable.
(gfile_should_be_executable): new method; when true, the gotten
file should be executable.
* src/sccsfile.cc (sccs_file): Point out that setting the 'x' flag
is not the most portable way to make gotten files executable.
(set_sfile_executable): Implement (sets the sfile_executable
member variable).
(gfile_should_be_executable): Implement (when this method returns
true, the gotten file should be executable).
(sfile_should_be_executable): Implement (when this method returns
true, the (updated) history file should be executable).
(sccs_file): If the history file is executable, remember this so
that the gotten file is created with the relevant execute bits
set.
* src/get.cc (main): The gotten file should be executable if
sccs_file::gfile_should_be_executable() returns true (that is, if
either the 'x' flag is set or the history file is executable).
* src/sf-delta.cc (add_delta): When greating gotten files (for
diffing) use gfile_should_be_executable rather than
flags.executable.
* docs/cssc.texi (Executable File Support): Document the fact that
the execute bits of the history file's mode are now copied to the
gotten file's mode (subject to umask) and in the reverse direction
in the case of admin -i.
(admin): Document the same behaviour.
(Flags): Mention the mode of the history file as an alternative to
setting the 'x' flag.
(SCCS Version Differences): Mention this behaviour (which follows
Solaris) for admin and get.
(Data Keywords): Add missing comma after @xref.
* tests/admin/executable.sh: New test file; verifies that the
execute bits of the file offered via admin -i are copied to the
history file. Verify that setting the 'x' flag cuases the g-file
to be created executable, and that not setting it does not (when
the history file is not executable). Verify that the history file
can still be set as executable when the initial body is presented
on stdin.
* tests/common/test-common (docommand): pass through the exit
status of the child command. Log the return value, stdout and
stderr in command.log.
* src/file.cc (get_mode_bits): New function; Factors stat call out
of is_writable.
(get_open_file_xbits): New function; populate an output flag as
true IFF the FILE* argument is open on a file which has an execute
bit set.
* src/file.h: Declare get_open_file_xbits.
* tests/get/executable.sh: New test file; verify that the
executable bit is copied from the history file to the gotten
file.
Process test files in a consistent order for a case where this matters.
* tests/get/middle-fail.sh (e3): List the history files explicitly
so that we know that SCCS/s.b is definitely the second file of
three processed.
Show the label of the test command in the command.log file.
* tests/common/test-common (docommand): Show the label for the
current command in command.log.
(do_output): Likewise
Update version number.
* configure.ac: Move on from version 1.4.0.
* NEWS: Add a new section for changes in CSSC-1.4.1-rc1.
2014-07-11 James Youngman <jay@gnu.org>
Release CSSC-1.4.0.
* configure.ac (AC_INIT): Update the version number.
* NEWS: Describe the new release.
2014-06-30 James Youngman <jay@gnu.org>
Release CSSC-1.3.2.
* configure.ac: Change version number to 1.3.2.
* NEWS: Update the version number of the first section.
Update googletest unit test framework from r424 to r690.
* gl/lib/.gitignore: Add the files generated by the pthread module
(since we now depend on that).
* bootstrap.conf (bootstrap_epilogue): Upgrade from r424 to r690
of the googletest test framework.
(buildreq): Update tool versions to the ones I'm actually using
now, since these are really the only tools I test with routinely.
(gnulib_modules): Depend on the pthread module. Download
googletest before we run gnulib-tool (instead of in the epilogue),
so that the googletest/m4 directory is available to autoconf.
* configure.ac: Include the googletest m4 library,
unit-tests/googletest/m4. Turn on the Automake option 'tar-ustar'
which switches the dist file format from v7 Unix to the selects
the ustar format defined by POSIX 1003.1-1988. We need to do this
since the distribution now contains path names longer than 99
characters and the v7 format (or its consumers) cannot reliably
deal with this. Also make explicit some of the options which in
any case are implied by the "gnits" option, since we would want to
keep them even if turning off gnits. Add configure tests required
by the googletest framework.
* NEWS: Point out the change of tar file format used for the
distribution file. Also mention the recent updates to googletest
and gnulib.
* unit-tests/Makefile.am: Update the build rules used to build the
googletest unit test framework. Don't build the samples. Build
libgtest by compiling individual source files, instead of only
libgtest-all.cc (this fixes a problem in which "make distcheck"
would otherwise fail due to dependency rule files being left
around. Also, don't compile the sample programs. Remove the
rules for fusing the sources. We don't use them, and the rules
themselves are still available in googletest/Makefile.am.
* Makefile.am (ACLOCAL_AMFLAGS): Include the googletest m4
library.
(distcheck-hook): Call build-aux/check-googletest-files.sh
(this is described below).
* build-aux/check-googletest-files.sh: New script; verifies that
all the files for the "googletest" C++ Unit test framework are
included in the distribution. This script is called from
distcheck-hook.
* .gitignore: Don't ignore build-aux.
2014-06-22 James Youngman <jay@gnu.org>
Update gnulib.
* bootstrap: Update from current gnulib.
* bootstrap.conf: Remove second (and wrong) --tests-base
argument. Don't munge include paths in gl/tests/Makefile.am
(since now, doing that breaks the build and whatever made it
necessary before no longer does).
* src/canonify.cc: Include <config.h> before (gnulib's replacement
of) <unistd.h>.
* src/file.h: Include <sys/types.h> for gid_t.
2013-04-20 James Youngman <jay@gnu.org>
Typo fix.
* COPYING.bsd: Fix typo 'modifiactions'.
2011-11-19 James Youngman <jay@gnu.org>
Fix Savannah bug #33633 (coredump in prs -d:GB:)
* src/sf-prs.cc (sccs_file::get): pass in the correct delta
information for keyword expansion instead of a blank (that is,
invalid) delta. This fixes Savannah bug #33633.
* tests/prs/sv33633.sh: New file, test for this bug.
* tests/prs/s.sv33633.txt: Test input for the new test.
* NEWS: Mention this bug fix.
2011-05-22 James Youngman <jay@gnu.org>
Add unit test for cssc_linebuf.
* unit-tests/Makefile.am (unit_tests): Add test_linebuf.
(test_linebuf_SOURCES): Build test_linebuf.
* unit-tests/test_linebuf.cc: New unit test file.
2011-05-21 James Youngman <jay@gnu.org>
Print clearer test labels.
* tests/common/test-common (docommand): Print the test directory
and the test script as part of the label of each test, for
additional clarity and because many of them are actually not
unique.
* tests/get/sf111140.sh (label_prefix): Print qualified labels (as
for docommand).
Source the command-names script only once per test script.
* tests/common/real-thing: Instead of sourcing the command-names
script unconditionally, just complain if it was not already
sourced.
* tests/common/command-names: Error out if the command-names
script is sourced twice.
* tests/common/config-data: Don't source the command-names script
more than once.
* tests/common/need-prt: Likewise.
* tests/Makefile.am (test-*): Indicate the full path of each test
script.
Set TZ=GMT in the y2k tests.
* tests/year-2000/ext.sh: Set $TZ to GMT in order to make it
possible for implementations which convert SCCS file dates to
time_t values (but which otherwise have no bugs) to pass the
tests.
* tests/year-2000/prs-y2k.sh: Likewise.
Remove spurious space in definition of admin.
* tests/common/command-names (admin): remove spurious space.
Move on from release 1.3.1.
* configure.ac: Update version number to 1.3.2-git, to indicate
that compiled versions of this code are no longer identical to the
1.3.1 release.
* NEWS: Likewise.
2011-05-10 James Youngman <jay@gnu.org>
Release version 1.3.1.
* NEWS: Update version number to 1.3.1.
* configure.ac: Likewise.
Check we distributed all the tests. Remove redundant Makefile.am files.
* auxfiles/check-testfiles.sh: New script (copied from GNU
findutils e66802375963941b3b54a0e038d18eccde449e14 with some
adaptations for CSSC) for checking that we installed all the test
scripts in "make dist".
* tests/Makefile.am (dist-hook): Invoke the
auxfiles/check-testfiles.sh script.
* tests/common/Makefile.am: remove unreferenced file;
tests/Makefile.am does not recurse.
* tests/delta/Makefile.am, tests/prs/Makefile.am: Likewise.
* tests/prt/Makefile.am, tests/sact/Makefile.am: Likewise.
* tests/admin/Makefile.am, tests/unget/Makefile.am: Likewise.
* tests/val/Makefile.am, tests/what/Makefile.am: Likewise.
2011-05-03 James Youngman <jay@gnu.org>
Modify "prs -d :DI:" to print ignored deltas.
* tests/prs/delta_ixg.sh: New test script for "prs -d :DI:".
* tests/prs/s.delta_ixg: New test input file for delta_ixg.sh.
* src/sf-prs.cc (print_delta): For :DI:, also print ignored
deltas. Follow the conventions of OpenSolaris 2009.06 on the
question of how many slashes to produce.
* docs/cssc.texi (Data Keywords): Describe in more detail just how
the keyword :DI: is expanded.
(SCCS Version Differences): Explain how the expansion of :DI:
varies across implementations.
* NEWS: Mention this change.
2011-04-30 James Youngman <jay@gnu.org>
Accept entirely empty comment lines (lacking the initial space).
* src/sccsfile.cc (read_delta): Accept comment lines containing
nothing at all (not even a space after the 'c'). Some historis
versions of SCCS seem to have produced these, and later versions
tolerate it.
Fix Savannah bug bug #33153: "prs" includes "AUTO NULL DELTA"s.
* src/prs.cc (main): Change type of all_deltas from int to bool.
(main): Move detection of errors writing to stdout to here,
instead of sccs_file::prs(). Likewise diagnosis of the fact that
no deltas were matched.
* src/sf-prs.cc (prs): Add an output parameter, "matched", which
is set if any delta was matched (and printed).
(prs): Rewrite this method to evaluate the earlier/later cutoff in
terms of SIDs where this is necessary. That is, avoid the
assumption that different SIDs have different timestamps.
* src/sccsfile.h (sccs_file::prs): Modify the declaration
of sccs_file::prs() to add the output parameter, "matched".
* tests/prs/sv33153.sh: New test.
* tests/prs/s.sv33153: New test input file.
* NEWS: Mention this bugfix.
2011-04-29 James Youngman <jay@gnu.org>
* testutils/mogrify.awk: Preserve comment lines which have no
space (that is, \001Ac\n).
2011-04-26 James Youngman <jay@gnu.org>
Fix some minor issues identified by 'make syntax-check'.
* testutils/uu_decode.c: avoid including unnecessary header
<stddef.h>.
* src/sf-delta.cc (add_delta): Remove doubled word in a comment.
* docs/cssc.texi (Other Variables): Remove doubled word.
(Year 2000 Summary): Likewise.
* cfg.mk: Modify spelling of a comment in order not to have a
false positive from the sc_makefile_at_at_check syntax check.
* tests/year-2000/ext.sh: Remove blank line at the end of the
file.
* tests/year-2000/prs-y2k.sh: Likewise.
* .x-sc_unmarked_diagnostics: Likewise.
* unit-tests/testwrapper.sh.in: Add final newline.
* README-hacking: Remove space-tab combinations.
Update hacking instructions to explain the git submodule.
* README-hacking: Update instructions detailing how to collect
gnulib (since we now use it as a submodule).
Update gnulib.
* gnulib: update to current HEAD.
Various minor fixes suggested by 'make syntax-check'.
* docs/.ispell_english: Remove blank line from end of document.
* src/Makefile.am: Remove blank space from end of line.
* src/file.cc (atomic_nfs_create): Likewise.
* src/sf-prs.cc (prs): Likewise.
* testutils/lndir.c: Likewise.
Change output order in "sccs unedit" to match OpenSolaris.
* tests/bsd-sccs/driver-basic.sh (h1): Modify the ordering of the
expected ouput to match OpenSolaris 2009.06.
* src/sccs.c (command): For the UNEDIT case, flush stdout before
invoking 'get' in order to pass the changed test.
* NEWS: Mention this change.
2011-04-25 James Youngman <jay@gnu.org>
Allow non-CSSC implementations to XFAIL for tricky dates.
* tests/year-2000/prs-y2k.sh: Divide tests into "easy" (which any
y2k-compliant version of SCCS must pass) and "harder" (which
require correct implementation of the windowing scheme and correct
conversion of dates at the limits of a 32-bit time_t). Require
CSSC to pass all tests, but allow other implementations to XFAIL
on the hader tests.
* tests/year-2000/ext.sh: Correct the mechanism by which we figure
out if we are testing CSSC itself.
* tests/common/test-common (fail): return false on XFAIL.
Move source and documentation out of bsd/ into src/ and docs/.
* COPYING.bsd: Move from bsd/COPYING.bsd.
* bsd/sccs.1: move to docs/sccs.1
* bsd/sccs.c: move to src/sccs.c
* tests/common/command-names: Locate the sccs binary in its new
location.
* src/Makefile.am (generic_CPPFLAGS): Put preprocessor flags here
so that AM_CPPFLAGS and AM_CFLAGS can both refer to it, now that
we have both C and C++ sources in this directory.
(LDADD): Link against gnulib.
(AM_CFLAGS): #define PREFIX for the benefit of sccs.c.
(AM_INSTALLCHECK_STD_OPTIONS_EXEMPT): Exempt the binaries from the
gnits install check which requires them to support --version and
--help.
* AUTHORS: Mention the new location of the COPYING.bsd file.
* THANKS: Point to COPYING.bsd in its new location.
* docs/.ispell_english: Incorporate contents of bsd/.ispell_english.
* docs/Makefile.am: Add sccs.1 and sccs.me.
* bsd/.ispell_english, bad/Makefile.am, bsd/Makefile.bsd: Delete.
* bsd/sccs.me: move to docs/sccs.me
* configure.ac: refer to src/sccs.c instead of bsd/sccs.c
* Makefile.am (SUBDIRS): Remove bsd from SUBDIRS.
* README: sccs no longer lives in bsd/sccs.
Allow an empty MR list to be passed to admin.
* tests/admin/init-mr.sh: Don't expect "admin -m" to interpret
a plain "-m" as meaning an empty MR list. Distinguishing the
absence of an argument to -m requires a traditional SCCS argument
processor, and this behaviour is incompatible with modern
implementations of SCCS (for example OpenSolaris).
* tests/admin/flags.sh: Likewise.
* src/admin.cc (main): Allow an empty list of MRs to be specified
to admin, for example "admin -fv -m' '". OpenSolaris allows
this, and we can no longer use the previous method which was to
omit the optional argument. Elminiate doubled space in error
message.
* docs/cssc.texi (admin): document this clearly.
* NEWS: mention this change.
Fix delta summary; when it goes to stdout, send other to stderr.
* tests/get/delta-summary.sh: OpenSolaris get emits the delta
summary (produced by get -L) to stdout and the SID of the gotten
delta and the number of body lines to stderr. Expect this
behaviour.
* tests/get/delta-summary.sh (L2e): Check that the "new delta"
message also goes to stderr when we are using "get -e -L" (since
the delta summary goes to stdout).
* src/get.cc (print_id_list): New parameter, fp: the file handle
to print the IDs to.
(main): rename use_stdout to send_body_to_stdout (being a more
accurate description).
(main): add variable commentary, the file descriptor on which we
announce which delta we're getting and so forth. This is usually
stdout, but if stdout needs to be used for something else (for
example the delta summary), commentary can be set to stderr.
* src/sf-get2.cc (get): Correct the spacing before the items in
the delta summary. Add a trailing newline.
* NEWS: Mention this change.
Produce better test diagnostics when a command unexpectedly fails.
* tests/common/test-common (docommand): when the return value is
zero, print any error message that had been issued on stderr.
Update sccsdiff to work like sccsdiff on OpenSolaris.
* tests/sccsdiff/rap.sh: Update the tests to match the results we
actually get from sccsdiff on OpenSolaris.
* src/sccsdiff.sh.in: Update to pass the modified tests.
Specifically, use a different header for the case where -p is
specified and when it's not.
* NEWS: Mention this change.
Call ${admin} in test preparations, not "admin".
* tests/admin/y-flag.sh: when trying to deduce the properties of
the admin command we're testing, invoke ${admin} (i.e. the thing
we are testing) as opposed to "admin" (i.e. the system's
already-installed version). Add extra checks to verify that the
right thing happened.
Avoid assuming Unix semantics for st_nlinks in lndir.
* testutils/lndir.c (quit): Accept errno argument; include the
error string in the error message if it is nonzero. Call vmsg
instead of calling vfprintf directly.
(mperror): Accept the errno value as a function argument.
(vmsg): make a static function.
(dodir): Eliminate n_dirs subdirectory counter; this is unreliable
on filesystems which don't have Unix-like semantics for the
directory link count (for example, ISO9660 on Solaris, VirtualBox
shared folders on Solaris). Also word error messages more
explicitly.
Avoid retrying link(2) when errno is set to ENOSYS.
* src/file.cc (atomic_nfs_create): If link(2) fails with ENOSYS,
there is no point in retrying.
Bugfix for lndir on OpenSolaris: ignore . and ..
* testutils/lndir.c (dodir): Ignore . and .. (on systems where
readdir returns them).
2011-04-24 James Youngman <jay@gnu.org>
Tell the user to run "bootstrap" instead of "autogen.sh".
* README: "autogen.sh" has been replaced by "bootstrap".
Adopt Automake's "gnits" rules.
* configure.ac: Use the "gnits" rules.
* docs/CREDITS: Rename to THANKS to comply with the gnits rules.
* docs/CREDITS.short.txt: Add missing final newline.
Modernise configure.ac initialisation.
* configure.ac: Use the new-style Autoconf/Automake initialisation
which passes the version number to AC_INIT rather than to
AM_INIT_AUTOMAKE.
Update the version number.
* configure.ac: Update version number to make a distinction
between the tar file which results form "make dist" and the
released 1.3.0 tar file.
* NEWS: Similarly update the version number.
Fix SF bug #1300722 (prs succeeds even if the SID is not found).
* tests/prs/wrongsid.sh: New file; tests for "prs -r" when the
specified SID does not exist.
* tests/prs/default.sh: New file; tests the default behaviour of
prs, both with -d and with no options at all.
* tests/prs/cutoff.sh: New file; tests for "prs -e" and "prs -l".
* src/prs.cc (main): Add a comment pointing out that specifying -d
changes the default behaviour around which deltas are selected.
* src/sf-prs.cc (prs): return a failure status if a SID was
specified but not matched.
* NEWS: mention this bugfix.
2011-04-22 Yann Dirson <dirson@debian.org> (tiny change)
Fix SourceForge bug #1317916.
* bsd/sccs.1: Avoid a groff warning in sccs.1 by removing some
unnecessary blank lines.
2010-11-07 James Youngman <jay@gnu.org>
Prepare to release 1.3.0.
* configure.ac (AM_INIT_AUTOMAKE): Update the version number.
This release is otherwise identical to 1.3.0rc1.
* NEWS: Mention this.
2010-05-16 James Youngman <jay@gnu.org>
Prepare to release 1.3.0rc1.
* NEWS: Update version to 1.3.0rc1
* configure.ac: Update version to 1.3.0rc1
* docs/cssc.texi: Update VERSION, EDITION and last-update time.
Remove exceptions for now-deleted googletest/ files.
* .x-sc_prohibit_empty_lines_at_EOF: Remove exceptions for
nonexistent files.
* .x-sc_prohibit_magic_number_exit: Likewise.
* .x-sc_useless_cpp_parens: Likewise.
* .x-sc_the_the: Likewise.
* .x-sc_file_system: Likewise.
* .x-sc_m4_quote_check: Delete this file, since the only entry in
it has also been deleted.
Remove some trailing blanks.
* src/file.cc (create): Remove trailing blanks.
Distribute ChangeLog.2.
* Makefile.am (ACLOCAL_AMFLAGS): Set to -I m4 to avoid a warning.
(EXTRA_DIST): Add ChangeLog.2, which previously wasn't
distributed.
Don't use #pragma interface/implementation, they're not useful
with GCC 2.7.2+.
* src/quit.h, src/sccsdate.h, src/sccsname.h, src/sid_list.h,
src/filediff.h, src/fileiter.h, src/filelock.h: Don't use #pragma
interface.
* src/file.cc, src/fileiter.cc, src/linebuf.cc, src/my-getopt.cc,
src/my-getopt.h, src/quit.cc, src/sccsdate.cc, src/sccsname.cc,
src/sf-get.cc, src/sf-kw.cc: Don't use #pragma implementation.
Remove support for CONFIG_MSDOS_FILES and lock methods other than
CONFIG_PID_LOCKING.
* src/fileiter.cc (sccs_file_iterator): Remove support for
CONFIG_MSDOS_FILES.
* src/sysdep.h: Remove support for CONFIG_MSDOS_FILES.
* src/filelock.h (cleanup): Remove support for CONFIG_NO_LOCKING.
* src/file.cc (create): Remove support for CONFIG_MSDOS_FILES.
(create): Remove support for CONFIG_SHARE_LOCKING.
(do_lock): Remove support for CONFIG_SHARE_LOCKING.
* src/defaults.h: Remove support for types of locking other than
CONFIG_PID_LOCKING. Remove support for CONFIG_MSDOS_FILES.
* src/file.h (enum create_mode): Likewise.
Generate config.h.in by running bootstrap.
* configure.ac: Call AC_CONFIG_HEADERS instead of the obsolete
AM_CONFIG_HEADERS. This causes bootstrap to call autoheader,
which needs to happen for config.h.in to be generated.
Eliminate stack.h and the stack<T> template, since it is not used.
* unit-tests/Makefile.am (unit_tests): Remove test_stack. Also
eliminate test_stack_SOURCES.
* src/seqstate.h: Don't include stack.h.
* src/stack.h: Remove.
* unit-tests/test_stack.cc: Remove.
* src/Makefile.am (noinst_HEADERS): Remove stack.h.
2010-05-15 James Youngman <jay@gnu.org>
Remove trailing blanks from most files.
* .x-sc_trailing_blank: Remove trailing-blank exceptions for most
files.
* Makefile.am, NEWS, README, auxfiles/CSSC.spec.in,
bsd/Makefile.bsd, bsd/sccs.1, bsd/sccs.c, configure.ac, docs/BUGS,
docs/CREDITS, docs/Makefile.am, docs/Platforms, docs/TODO,
docs/URLs, docs/cssc.texi, docs/mailing-list.txt, docs/style.txt,
docs/tests-todo.txt, gl/Makefile.am, sccs-cgi/sccs.cgi,
src/Makefile.am, src/admin.cc, src/bodyio.cc, src/bodyio.h,
src/canonify.cc, src/cap.cc, src/cdc.cc, src/cleanup.h,
src/cssc-assert.h, src/cssc.h, src/defaults.h,
src/delta-iterator.cc, src/delta-iterator.h, src/delta-table.cc,
src/delta-table.h, src/delta.cc, src/delta.h, src/dtbl-prepend.cc,
src/encoding.cc, src/environment.cc, src/except.h,
src/fatalsig.cc, src/fdclosed.cc, src/file.cc, src/file.h,
src/filediff.cc, src/filediff.h, src/fileiter.cc, src/fileiter.h,
src/filelock.h, src/filepos.h, src/fnsplit.cc, src/get.cc,
src/ioerr.h, src/l-split.cc, src/linebuf.cc, src/linebuf.h,
src/my-getopt.cc, src/my-getopt.h, src/mylist.h, src/myset.h,
src/mystring.h, src/pf-add.cc, src/pf-del.cc, src/pfile.cc,
src/pfile.h, src/prompt.cc, src/prs.cc, src/prt.cc, src/quit.cc,
src/quit.h, src/rel_list.cc, src/rel_list.h, src/release.h,
src/relvbr.h, src/rl-merge.cc, src/rmdel.cc, src/run.cc,
src/run.h, src/sact.cc, src/sccs-delta.cc, src/sccsdate.cc,
src/sccsdate.h, src/sccsdiff.sh.in, src/sccsfile.cc,
src/sccsfile.h, src/sccsname.cc, src/sccsname.h, src/seqstate.cc,
src/seqstate.h, src/sf-add.cc, src/sf-admin.cc, src/sf-cdc.cc,
src/sf-chkid.cc, src/sf-chkmr.h, src/sf-delta.cc, src/sf-get.cc,
src/sf-get2.cc, src/sf-get3.cc, src/sf-kw.cc, src/sf-prs.cc,
src/sf-prt.cc, src/sf-rmdel.cc, src/sf-val.cc, src/sf-write.cc,
src/showconfig.cc, src/sid.cc, src/sid.h, src/sid_list.h,
src/sl-merge.h, src/stack.h, src/sysdep.h, src/unget.cc,
src/val.cc, src/valcodes.h, src/version.h, src/what.cc,
src/writesubst.cc, testutils/compare_gets.sh,
testutils/condense-valgrind.pl, testutils/decompress_stdin.sh.in,
testutils/ekko.c, testutils/gcov-util.sh, testutils/last-time.c,
testutils/lndir.c, testutils/lndir.man, testutils/mogrify.awk,
testutils/realpwd.cc, testutils/seeker.c, testutils/user.c,
testutils/uu_decode.c, testutils/yammer.c, testutils/yes.c,
unit-tests/Makefile.am, unit-tests/get-gtest.sh,
unit-tests/test_bigfile.cc, unit-tests/test_delta-table.cc,
unit-tests/test_delta.cc, unit-tests/test_encoding.cc,
unit-tests/test_encoding2.cc, unit-tests/test_mylist.cc,
unit-tests/test_myset.cc, unit-tests/test_rel_list.cc,
unit-tests/test_release.cc, unit-tests/test_relvbr.cc,
unit-tests/test_sccsdate.cc, unit-tests/test_sid.cc,
unit-tests/test_sid_list.cc, unit-tests/test_stack.cc: Remove
trailing blanks.
Eliminate some syntax-check warnings.
* testutils/yes.c (main): Don't #define EXIT_FAILURE.
* docs/borrowed-files.txt: Remove trailing blanks.
* bsd/sccs.c: Don't define WEXITSTATUS, sys/wait.h does that.
* tests/common/command-names: Convert TABs to spaces to avoid
syntax-check warnings.
2010-05-14 James Youngman <jay@gnu.org>
Don't configure in unit-tests/googletest, it's gone.
* configure.ac: remove call to
AC_CONFIG_SUBDIRS(unit-tests/googletest).
Disable pthread support (since we don't use pthreads).
* unit-tests/Makefile.am (AM_CPPFLAGS): Pass -DGTEST_HAS_PTHREAD=0.
* configure.ac: Don't include
unit-tests/googletest/m4/acx_pthread.m4. Remove --with-pthreads.
* gl/lib/.gitignore: Remove gnulib.mk, dummy.c.
Update Google C++ Test Framework version at bootstrap time.
* bootstrap.conf (bootstrap_epilogue): call get-gtest.sh at
bootstrap time.
* unit-tests/get-gtest.sh: Use svn's --non-interactive option.
Configure and build googletest in our own configure/Makefile.
* unit-tests/Makefile.am: Build the Google C++ Testing Framework
code in this Makefile rather than forcing it to have its own
configure.
(EXTRA_DIST): Distribute the googletest copyright notice
etc. too.
(gtest_headers): List all the header files.
(libgtest_a_SOURCES): List the source files separately, and the
header files.
(libgtest_main_a_SOURCES): List the header files too.
* bootstrap.conf (bootstrap_epilogue): googletest now has no
separate configure step, so no need to bootstrap in that directory
either.
* unit-tests/get-gtest.sh: Script for checking out the google unit
test code.
Move googletest to unit-tests/googletest.
* unit-tests/Makefile.am (SUBDIRS): Recurse into googletest.
Update paths to liibgtest.la.
* bootstrap.conf (bootstrap_epilogue): bootstrap in uni-tests/googletest.
* configure.ac: Configure in unit-tests/googletest.
* Makefile.am (SUBDIRS): Remove googletest (since we moved it).
* googletest/*: move to unit-tests/googletest/.
Remove some redundant scripts and .cvsignore files.
* scripts/rev-freq.sh: Remove unused file.
* show-disp.sh: Remove unused file.
* scripts/change-suffix: Remove unused file.
* .cvsignore, auxfiles/.cvsignore, bsd/.cvsignore,
docs/.cvsignore, sccs-cgi/.cvsignore, tests/.cvsignore,
testutils/.cvsignore, unused/.cvsignore: Remove unused files.
Move CSSC source code to src/ subdirectory.
* configure.ac: move CSSC source to subdirectory src/.
* Makefile.am: rename to src/Makefile.am. The remaining makefile
just sets SUBDIRS and EXTRA_DIST.
* admin.cc: moved to src/admin.cc
* bodyio.cc: moved to src/bodyio.cc
* bodyio.h: moved to src/bodyio.h
* canonify.cc: moved to src/canonify.cc
* cap.cc: moved to src/cap.cc
* cdc.cc: moved to src/cdc.cc
* cleanup.h: moved to src/cleanup.h
* cssc-assert.h: moved to src/cssc-assert.h
* cssc.h: moved to src/cssc.h
* defaults.h: moved to src/defaults.h
* delta-iterator.cc: moved to src/delta-iterator.cc
* delta-iterator.h: moved to src/delta-iterator.h
* delta-table.cc: moved to src/delta-table.cc
* delta-table.h: moved to src/delta-table.h
* delta.cc: moved to src/delta.cc
* delta.h: moved to src/delta.h
* dtbl-prepend.cc: moved to src/dtbl-prepend.cc
* encoding.cc: moved to src/encoding.cc
* environment.cc: moved to src/environment.cc
* except.h: moved to src/except.h
* fatalsig.cc: moved to src/fatalsig.cc
* fdclosed.cc: moved to src/fdclosed.cc
* file.cc: moved to src/file.cc
* file.h: moved to src/file.h
* filediff.cc: moved to src/filediff.cc
* filediff.h: moved to src/filediff.h
* fileiter.cc: moved to src/fileiter.cc
* fileiter.h: moved to src/fileiter.h
* filelock.h: moved to src/filelock.h
* filepos.h: moved to src/filepos.h
* fnsplit.cc: moved to src/fnsplit.cc
* get.cc: moved to src/get.cc
* ioerr.h: moved to src/ioerr.h
* l-split.cc: moved to src/l-split.cc
* linebuf.cc: moved to src/linebuf.cc
* linebuf.h: moved to src/linebuf.h
* my-getopt.cc: moved to src/my-getopt.cc
* my-getopt.h: moved to src/my-getopt.h
* mylist.h: moved to src/mylist.h
* myset.h: moved to src/myset.h
* mystring.h: moved to src/mystring.h
* pf-add.cc: moved to src/pf-add.cc
* pf-del.cc: moved to src/pf-del.cc
* pfile.cc: moved to src/pfile.cc
* pfile.h: moved to src/pfile.h
* prompt.cc: moved to src/prompt.cc
* prs.cc: moved to src/prs.cc
* prt.cc: moved to src/prt.cc
* quit.cc: moved to src/quit.cc
* quit.h: moved to src/quit.h
* rel_list.cc: moved to src/rel_list.cc
* rel_list.h: moved to src/rel_list.h
* release.h: moved to src/release.h
* relvbr.h: moved to src/relvbr.h
* rl-merge.cc: moved to src/rl-merge.cc
* rmdel.cc: moved to src/rmdel.cc
* run.cc: moved to src/run.cc
* run.h: moved to src/run.h
* sact.cc: moved to src/sact.cc
* sccs-delta.cc: moved to src/sccs-delta.cc
* sccsdate.cc: moved to src/sccsdate.cc
* sccsdate.h: moved to src/sccsdate.h
* sccsdiff.sh.in: moved to src/sccsdiff.sh.in
* sccsfile.cc: moved to src/sccsfile.cc
* sccsfile.h: moved to src/sccsfile.h
* sccsname.cc: moved to src/sccsname.cc
* sccsname.h: moved to src/sccsname.h
* seqstate.cc: moved to src/seqstate.cc
* seqstate.h: moved to src/seqstate.h
* sf-add.cc: moved to src/sf-add.cc
* sf-admin.cc: moved to src/sf-admin.cc
* sf-cdc.cc: moved to src/sf-cdc.cc
* sf-chkid.cc: moved to src/sf-chkid.cc
* sf-chkmr.h: moved to src/sf-chkmr.h
* sf-delta.cc: moved to src/sf-delta.cc
* sf-get.cc: moved to src/sf-get.cc
* sf-get2.cc: moved to src/sf-get2.cc
* sf-get3.cc: moved to src/sf-get3.cc
* sf-kw.cc: moved to src/sf-kw.cc
* sf-prs.cc: moved to src/sf-prs.cc
* sf-prt.cc: moved to src/sf-prt.cc
* sf-rmdel.cc: moved to src/sf-rmdel.cc
* sf-val.cc: moved to src/sf-val.cc
* sf-write.cc: moved to src/sf-write.cc
* showconfig.cc: moved to src/showconfig.cc
* sid.cc: moved to src/sid.cc
* sid.h: moved to src/sid.h
* sid_list.h: moved to src/sid_list.h
* sl-merge.h: moved to src/sl-merge.h
* stack.h: moved to src/stack.h
* sysdep.h: moved to src/sysdep.h
* unget.cc: moved to src/unget.cc
* val.cc: moved to src/val.cc
* valcodes.h: moved to src/valcodes.h
* version.cc.in: moved to src/version.cc.in
* version.h: moved to src/version.h
* what.cc: moved to src/what.cc
* writesubst.cc: moved to src/writesubst.cc
* unit-tests/Makefile.am (LDADD): Fix relative path
of libcssc.a.
(test_bigfile_LDADD): Likewise.
(AM_CPPFLAGS): Fix relative path to the include files.
* tests/common/command-names (dir): Update relative path to the binaries.
(sccsprog): Set a variable for the path to the sccs binary.
(sccs): Correct the sccs command (use ${sccsprog}).
2010-05-13 James Youngman <jay@gnu.org>
Fix some compiler warnigns about shadowing names or integer conversions.
* sf-delta.cc (add_delta): Rename some variables to avoid
shadowing class members or other local variables.n
* sf-prs.cc (get): Likewise.
(print_delta): Likewise.
(prs): Likewise.
* sf-cdc.cc (cdc): Rename parameters to avoid shadowing the names
of class members.
* sf-admin.cc (admin): Remove unused variable which was causing
shadowing warnings.
* sccsdate.cc (sccs_date): Avoid warning about implicit cast from
int to char, by using an explicit cast.
* linebuf.cc (read_line): Avoid a compiler warning: explicitly
cast the length parameter passed to fgets from size_t to int.
* fileiter.h (s): Correct the type of pos (it's in index into
mylist<mystring>, so use mylist<mystring>::size_type).
* cdc.cc (plural): Fix warning about type conversion in call to plural().
* fileiter.cc (sccs_file_iterator): Avoid shadowoing a class member.
* what.cc (xread): return ssize_t rather than int.
(main): store the result of xread in a ssize_t variable, not an int.
Fix more compiler warnings.
* sf-val.cc (validate_seq_lists): Use size_type for indexes into mylist,
not int.
(validate): Likewise.
* sf-prs.cc (print_seq_list): Likewise.
(print_string_list): Likewise.
* sf-cdc.cc (inlist): Likewise.
(process_mrs): Likewise.
(sccs_file::cdc): Likewise.
* sf-rmdel.cc (is_seqlist_member): Likewise.
* sf-prt.cc (print_string_list): Likewise.
(print_seq_list): Likewise.
* delta.cc (delta_main): Make static.
* sf-get2.cc (test_locks): Avoid shadowing a class member.
* get.cc (print_id_list): Use size_type for indexes into mylist,
not int.
* showconfig.cc: Include version.h for the declarations of
functions in this module.
* quit.cc (v_errormsg_with_errno): Make static; nobody else uses it.
* fnsplit.cc: Include file.h for declaration of split_filename,
since we define it in this file.
* sccsdate.cc (count_digits): Avoid casting argument of is_digit
to unsigned char, since is_digit takes a char.
* sid.cc (matches): Be more explicit about avoidingn signed overflow.
Fix warnings in file.cc.
* file.cc (maybe_wait_a_bit): Fix type of first parameter to avoid
a compiler warning. Also type of argument to sleep.
(eaccess): Remove unused function.
(unlink_file_if_present): Remove unused function.
(create): Make this function static.
Fix some more compiler warnings.
* bodyio.cc (body_insert_binary): Explicitly qualify
::check_id_keywords as being in the global namespace.
* run.cc (operator+=): Change type of index variables to size_type
to fix a compiler warning.
(run_mr_checker): Likewise.
* sf-write.cc (print_seqs): Likewise.
(write_delta): Likewise.
(rehack_encoded_flag): Avoid shadowing the name of a class member.
* sccsfile.cc: Remove unused macro 'f'.
(strict_atoul_idu): Remove unused variable 'c'.
(read_line_param): Avoid shadowing the name of a class member.
* rel_list.h (class release_list): Define typedef size_type.
* rel_list.cc (member): Use size_type for index variables to avoid
(justified) compiler warnings.
(print): Likewise.
* fileiter.cc (sccs_file_iterator): Use size_t to represent the
result of strlen, not int.
* file.cc (is_writable): Make static, it's not used elsewhere.
(old_is_writable): Unused; remove.
* sf-chkid.cc (check_id_keywords): Assume we have memchr. Avoid
possible access beyond the end of the string.
* sf-kw.cc (no_id_keywords): Avoid shadowing the name of a class
member.
(check_keywords_in_file): Likewise.
* l-split.cc: #include "sccsfile.h" to get declarations of the
functions in this file.
Fix or minimise some compiler warnings.
* sid_list.h (range_list): Avoid long-to-size_t compiler warning.
* encoding.cc (encode): Move the function definition here from
bodyio.h since it's only used in this file.
(decode): Likewise.
(decode_line): Be more explicit about casts between char and
size_t in order to avoid compiler warnings.
(encode_line): Likewise.
* bodyio.h: Remove bodies of encode() and decode(). Declare
encode and decode so that unit-tests/test_encoding can execute
them.
* sf-get3.cc (authorised): Change the types of 'len' and 'i' from
int to size_type, because they are offsets into a list. Add FIXME
comment for use of atoi.
* bodyio.cc (body_insert_binary): Change the type of 'len' from
int to size_t, because it is a length.
Separate EOF detection from SCCS-line-type detection.
* sccsfile.h (sccs_file::read_line): Change prototype to separate
EOF detection from detection of what type of line we just read.
* sccsfile.cc (read_line): Update the implementation to match.
(read_delta): Update caller.
(sccs_file): Update caller.
* sf-delta.cc (add_delta): Update caller.
* sf-get.cc (get): Update caller.
* sf-prs.cc (print_delta): Update caller.
* sf-rmdel.cc (rmdel): Update caller.
Avoid issuing warnings for things in system headers.
* configure.ac: Disable warnigns for system headers.
Fix some commpiler warnings.
* bodyio.h (decode_line): return size_t, not int, for a length.
(encode_line): take a size_t parameter, not int, for a length.
* encoding.cc (decode_line): Use a size_t value for offsets in the
buffer.
* bodyio.cc (body_insert_text): Add casts where we know
conversions are safe to avoid compiler warnings.
(copy_data): Mark as a static function.
2010-05-12 James Youngman <jay@gnu.org>
Remove unused file list.cc.
* Makefile.am (EXTRA_DIST): Remove list.cc, since it is unused.
* list.cc: Delete.
Prune obsolete items in docs/TODO.
* docs/TODO: Tests for sact and val exist. Remove that TODO item.
Some TODO housekeeping.
* sf-prs.cc (print_delta): Explain more clearly what get do for
:BD: in prs if we fail to seek to the body.
* sccsfile.h (s): Add TODO comment suggesting we use something
more efficient than mylist<string> for authoried users.
(sccs_file::admin): Likewise for set_flags and unset_flags
parameters to this method.
Remove mylist_delta_list; use more appropriate types for
loop/length variables.
* delta-table.h (mylist_delta_list::build_seq_table): Use more
appropriate (i.e. matching) types for loop variables.
Get rid of mylist_delta_list and abstract_delta_list.
* delta-table.cc (delta_at_seq_exists): There is no need for a
const qualifier for a bool return type; remove it.
(next_seqno): Just increment the result rather than adding an
unsigned int, as this simplifies the type combination.
* sf-get.cc (prepare_seqstate_1): Use size_type types for indexes and
length variables.
Use mylist<T>::size_type instead of int.
* mylist.h (mylist): Introduce size_type, and use it in method
parameters.
* rl-merge.cc (merge): Use mylist<release>::size_type.
Avoid a 'local variable shadows class member' warning.
* delta-table.h (abstract_delta_list): Avoid having a local shadow
an instance variable, by renaming the local.
Weed out some warning options that make sense for C but not C++.
* configure.ac (UNWANTED_WARNINGS): remove a bunch of warning
options that don't make sense for C++.
Remove rundundant call to AC_PROG_RANLIB.
* configure.ac: Don't call AC_PROG_RANLIB since we're using libtool.
Make more uses of sccs_pfile const (now that iterating won't
mutate it).
* pfile.h (sccs_pfile::find_locked): Make const.
(sccs_pfile::is_locked): Make const.
(sccs_pfile::find_to_be_created): Make const.
(sccs_pfile::is_to_be_created): Make const.
(sccs_pfile::print_lock_sid): Make const.
(sccs_pfile::update): Make const.
* pfile.cc (sccs_pfile::find_locked): Make const.
(find_to_be_created): Make const.
(print_lock_sid): Make const.
* pf-del.cc (sccs_pfile::update): Make const.
Make some references to sccs_pfile const now that iterating
doesn't mutate.
* sccsfile.h (sccs_file::find_next_sid): take a const reference to
sccs_pfile, since iterating over a sccs_pfile no longer needs to
mutate the container.
(sccs_file::sid_in_use): Likewise.
* sf-get2.cc (sid_in_use): Make the corresponding change in the
implementation.
(find_next_sid): Likewise.
Remove the built-in sccs_pfile iterator. Use an STL iterator.
* pfile.h (sccs_pfile::edit_locks): change type from
mylist<edit_lock> to std::list<edit_lock> and remove the built-in
iterator.
(sccs_pfile::find_sid): Since there is no built-in iterator,
return the position of the lock we found as the second half of a
pair.
* pf-del.cc (find_sid): Make the corresponding change to the
implementation.
(update): Use the STL iterator rather than sccs_pfile::pos.
* delta.cc (delta_main): Update to the new signature of
sccs_pfile::find_sid.
* pfile.cc (sccs_pfile::sccs_pfile): Remove pos.
(sccs_pfile): Use list::push_back() instead of mylist::add().
(find_to_be_created): Rename from is_to_be_created. Use the STL
iterator.
(find_locked): Rename from is_locked. Use the STL iterator.
(print_lock_sid): Since there is no built-in position, take a
const_iterator as an argument.
* pf-add.cc (add_lock): Use list::empty() instead of
checking mylist::length() for zero-ness.
(add_lock): Use list::push_back() instead of mylist::add().
* rmdel.cc (is_locked): Use the STL iterator over sccs_pfile.
* sact.cc (main): Likewise.
* sccsfile.h (s): Now that iterating over the locks is not a
mutating operation on sccs_pfile, sccsfile::test_locks can take a
const reference to the sccs_pfile.
(add_delta): Since there is no built-in iteration position in
sccs_pfile, we also need to pass in an iterator.
Also #include pfile.h for sccs_pfile::iterator.
* sf-delta.cc (add_delta): Make the correspondingn change to the
implementation of sccs_file::add_delta.
* sf-get2.cc (sid_in_use): Use an STL iterator.
* unget.cc (main): Adapt to the new signature of
sccs_pfile::find_sid.
2010-05-11 James Youngman <jay@gnu.org>
Fix some compilation warnings for val.o.
* sccsfile.h (subst_parms::subst_parms): Change the type of the
'l' parameter to avoid type conversion in the constructor.
* configure.ac (UNWANTED_WARNINGS): we don't want -Wnested-externs
since that is only useful for Objective C, which we are not using.
* release.h (release::operator unsigned long): Ass that the data is
non-negative before casting it. Include cssc-assert.h.
2010-05-09 James Youngman <jay@gnu.org>
Update to the current version of the Google C++ Testing Framework.
* bootstrap.conf (bootstrap_epilogue): Run autotools in
./googletest once we're done bootstrapping in the top-level
directory.
* googletest/*: update to version 424 of the Google C++ Testing
Framework.
2010-05-06 James Youngman <jay@gnu.org>
Mention some recent changes.
* NEWS: Mention some recent changes.
Various updates in docs/*
* docs/patches.txt: Modernise the diff-preparation instructions
(to ask people to use git).
* docs/Platforms: Mention the recent versions of Debian we've
tested on. Change configure.in to configure.ac. Indicate that
CSSC is known to work with GCC 4.4.
* docs/FIXED: Remove.
* docs/Makefile.am (EXTRA_DIST): Don't distribute docs/FIXED.
* auxfiles/CSSC.spec.in (%files): Remove docs/FIXED.
* docs/borrowed-files.txt: Mention that bootstrap is taken from
coreutils. Mention that the GPL version is now 3. Don't mention
-unused/move-if-change, since we removed it.
2010-05-05 James Youngman <jay@gnu.org>
Use the correct type in calls to release::release().
* sccsfile.cc (sccs_file): release floor and ceiling should be
initialised from shorts not ints.
* sf-admin.cc (admin): Likewise.
Make "make"'s idea of the m4 macro directory consistent with "bootstrap"
* Makefile.am (ACLOCAL_AMFLAGS): m4 files are in ./m4. This is
now consistent with what "bootstrap" thinks.
* configure.ac: Likewise.
Fix a number of compiler warnings.
* mylist.h (mylist): mylist::operator=() should return a reference
to *this, so change it so that it does.
(mylist): Make mylist::length() return a size_t rather than an int.
* delta.h (delta::delta): List the initalisers in the order they
are actually performed.
* defaults.h (NORETURN): Don't define "NORETURN" to "volatile void".
* configure.ac: Disable warnings about aggregate return types and
missed inlined opportunities.
* release.h (release::release(int)): Change parameter to a short
int instead to avoid an implicit conversion.
* relvbr.h (relvbr::relvbr): initialise from short ints, not
regular ints, to avoid implicit casts.
* sccsname.h (sccsname::valid): Avoid cast from size_t to int by
changing the return type from int to bool.
2010-05-03 James Youngman <jay@gnu.org>
Enable many compiler warnings.
* bootstrap.conf (gnulib_modules): Add warnings and manywarnings.
* Makefile.am: Add WARN_CFLAGS to AM_CXXFLAGS.
* configure.ac: Enable all the warnings available from
gl_MANYWARN_ALL_GCC, except -Wundef -Wpadded -Wredundant-decls.
Assume the availability of strerror.
* configure.ac: Don't check header files for declarations of
sys_nerr or sys_errlist, since we no longer need those.
* quit.cc (print_err): Assume strerror is available.
Don't include sysnerr.h.
* Makefile.am (noinst_HEADERS): Remove sysnerr.h.
* sysnerr.h: Delete.
Don't declare rename, remove. Include <cstdio> where we use it.
* file.h: Avoid declaring rename and remove.
* version.h: Include <cstdio>
* prompt.cc: Likewise.
* environment.cc: Likewise.
* linebuf.cc: Likewise.
* quit.cc: Likewise.
* fileiter.cc: Likewise.
* run.cc: Likewise.
* showconfig.cc: Include <cstdio>. Update copyright year.
Avoid #if defined(FOO), use #if defined FOO instead.
* .x-sc_useless_cpp_parens: Exempt files in the Google C++ Testing
Framework.
Also exempt ekko.c, since it's better to preserve the similarity
with the code it was originally taken from.
* defaults.h: Avoid #if defined(FOO), use #if defined FOO
instead.
* cssc.h: Likewise.
* file.cc: Likewise.
* filelock.h: Likewise.
* quit.cc: Likewise.
* quit.h: Likewise.
* run.cc: Likewise.
* run.h: Likewise.
* sccsfile.cc: Likewise.
* sf-write.cc: Likewise.
* sysdep.h: Likewise.
Exempt programs that don't use error() from using error().
* .x-sc_unmarked_diagnostics: Exempt sccs.cgi and what.cc.
Skip sc_two_space_separator_in_usage for things that aren't code.
* .x-sc_two_space_separator_in_usage: Don't check docs/Platforms,
it's not a program.
Skip trailing-blank check, there are too many violations for now.
* .x-sc_trailing_blank: Skip this test.
Correct "the the" to "the".
* get.cc (main): correct "the the" to "the".
* sf-prs.cc: Likewise.
* docs/cssc.texi (@copying): Likewise.
(Top): Likewise.
(Delta Table): Likewise.
(PROJECTDIR): Likewise.
* .x-sc_the_the: Exempt googletest/src/gtest.cc.
Pacify the sc_makefile_TAB_only_indentation syntax check.
* tests/Makefile.am: Replaced sequences of 8 spaces with a single
TAB.
Remove obsolete replacements for missing library files.
* strerror.c: Remove obsolete file.
* strstr.c: Remove obsolete file.
* configure.ac: Don't refer to strerror or strstr via
AC_REPLACE_FUNCS.
Remove space-tab sequences.
* .x-sc_space_tab: Exempt NEWS, ChangeLog files and
tests/prt/all.expected.Z
* docs/Platforms: Avoid space-tab sequences.
* docs/TODO: Likewise.
* docs/tests-todo.txt: Likewise.
* pfile.h: Likewise.
* sccsfile.cc: Likewise.
* tests/Makefile.am: Likewise.
* tests/common/test-common: Likewise.
* tests/admin/flags.sh: Likewise.
* tests/binary/auto.sh: Likewise.
* tests/binary/binbasic.sh: Likewise.
* unit-tests/test_bigfile.cc: Likewise.
* unit-tests/test_myset.cc: Likewise.
* tests/admin/locks.sh: Likewise.
* tests/delta/nulldelta.sh: Likewise.
* tests/delta/basic.sh: Likewise.
* tests/delta/MRs.sh: Likewise.
Remove unused source files.
* rename.c: Remove unused file.
* remove.c: Remove unused file.
* configure.ac: Don't refer to these files with AC_REPLACE_FUNCS.
Fix lint errors caused by failure to include <config.h>.
* testutils/yes.c: Include <config.h> instead of "config.h".
* testutils/ekko.c: Likewise.
* testutils/lndir.c: Likewise.
* testutils/seeker.c: Likewise.
* testutils/user.c: Likewise.
* testutils/uu_decode.c: Likewise.
* testutils/yammer.c: Likewise.
* testutils/last-time.c: Include <config.h>
* rename.c: Likewise.
* remove.c: Likewise.
Avoid non-portable [ x -a y ] test usage.
* scripts/rev-freq.sh (scale): Change [ x -a y ] to [ x ] && [ y ].
* tests/make-links (common_files): Likewise.
Exempt ourselves from SRTEQ for all C and C++ files.
* .x-sc_prohibit_strcmp: We don't want to use STREQ, so suppress
this warning for C and C++ files.
Ignore existing instances of magic contstants in calls to exit.
* .x-sc_prohibit_magic_number_exit: Ignore existing instances of
magic contstants in calls to exit.
Remove trailing blank lines.
* tests/admin/Makefile.am: Remove trailing blank lines.
* tests/admin/abspath.sh: Likewise.
* tests/admin/flags.sh: Likewise.
* tests/admin/hardlinks.sh: Likewise.
* tests/admin/i-option.sh: Likewise.
* tests/admin/init-mr.sh: Likewise.
* tests/admin/locks.sh: Likewise.
* tests/admin/r-option.sh: Likewise.
* tests/admin/t-option.sh: Likewise.
* tests/admin/users.sh: Likewise.
* tests/admin/y-flag.sh: Likewise.
* tests/binary/auto.sh: Likewise.
* tests/binary/binbasic.sh: Likewise.
* tests/binary/diff.sh: Likewise.
* tests/bsd-sccs/driver-basic.sh: Likewise.
* tests/cdc/1general.sh: Likewise.
* tests/cdc/2comment.sh: Likewise.
* tests/cdc/3MRs.sh: Likewise.
* tests/cdc/4order.sh: Likewise.
* tests/common/not-root: Likewise.
* tests/delta/MRs.sh: Likewise.
* tests/delta/Makefile.am: Likewise.
* tests/delta/basic.sh: Likewise.
* tests/delta/errorcase.sh: Likewise.
* tests/delta/nulldelta.sh: Likewise.
* tests/delta/options.sh: Likewise.
* tests/get/branch.sh: Likewise.
* tests/get/create.sh: Likewise.
* tests/get/defsid.sh: Likewise.
* tests/get/errorcases.sh: Likewise.
* tests/get/gg_get_ix.sh: Likewise.
* tests/get/optorder.sh: Likewise.
* tests/get/writable.sh: Likewise.
* tests/initial/root.sh: Likewise.
* tests/large/admin.sh: Likewise.
* tests/make-links: Likewise.
* tests/prs/Makefile.am: Likewise.
* tests/prs/s_foo_bd_output.txt: Likewise.
* tests/prt/TODO: Likewise.
* tests/prt/all-512.sh: Likewise.
* tests/prt/reportmr.sh: Likewise.
* tests/rmdel/basic.sh: Likewise.
* tests/rmdel/edit.sh: Likewise.
* tests/sccsdiff/rap.sh: Likewise.
* tests/unget/Makefile.am: Likewise.
* tests/unget/exists.sh: Likewise.
* tests/unget/output.sh: Likewise.
* tests/val/Makefile.am: Likewise.
* tests/what/Makefile.am: Likewise.
* testutils/compare_gets.sh: Likewise.
* testutils/last-time.c: Likewise.
* testutils/lndir.c: Likewise.
* testutils/realpwd.cc: Likewise.
* testutils/user.c: Likewise.
* testutils/uu_decode.c: Likewise.
* testutils/yes.c: Likewise.
* unit-tests/test_delta-table.cc: Likewise.
* unit-tests/test_encoding2.cc: Likewise.
* unit-tests/test_mylist.cc: Likewise.
* unit-tests/test_sccsdate.cc: Likewise.
* unit-tests/test_sid_list.cc: Likewise.
* version.cc.in: Likewise.
* version.h: Likewise.
* AUTHORS: Likewise.
* sid_list.h: Likewise.
* tests/README: Likewise.
* sid.h: Likewise.
* seqstate.h: Likewise.
* sccsdiff.sh.in: Likewise.
* remove.c: Likewise.
* bsd/sccs.c: Likewise.
* bsd/Makefile.bsd: Likewise.
* delta.cc: Likewise.
* rel_list.h: Likewise.
* release.h: Likewise.
* docs/style.txt: Likewise.
* docs/config-info.texi.in: Likewise.
* docs/URLs: Likewise.
* docs/Platforms: Likewise.
* .x-sc_prohibit_empty_lines_at_EOF: Ignore trailing blank lines
at EOF for files in the Google C++ Testing Framework.
Add temporary exceptions for atoi checks.
* .x-sc_prohibit_atoi_atof: Temporary exemption for files where we
still use atoi() and so on. Ignore atoi in ChangeLog.
Don't configure separately in testutils.
* testutils/ekko.c: Include "config.h", don't use include guards.
* testutils/lndir.c: Include "config.h", don't use include guards.
(dodir): Don't use NAMLEN (since the replacement dirent.h does not
define it).
* testutils/seeker.c: Remove useless HAVE_FOO_H checks. Assume
fseek is available (gnulib provides it).
* testutils/user.c: Remove useless HAVE_FOO_H checks.
* testutils/uu_decode.c: Remove useless HAVE_FOO_H checks.
* testutils/yammer.c: Likewise.
* testutils/yes.c: Likewise.
* testutils/realpwd.cc: Likewise.
* gl/lib/.gitignore: Ignore fseek.c, fseeko.c, lseek.c, stdio-impl.h.
* testutils/configure.ac: Delete.
* testutils/NEWS: Delete.
* testutils/AUTHORS: Delete.
* testutils/COPYING: Delete.
* testutils/ChangeLog: Delete.
* testutils/INSTALL: Delete.
* configure.ac: Don't run configure in ./testutils.
AC_CONFIG_FILES: generate testutils/Makefile.
* bootstrap.conf (gnulib_modules): Use the fseek module.
* testutils/Makefile.am: Search for headers and libraries in ../gl/lib.
2010-05-02 James Youngman <jay@gnu.org>
Remove redundant inclusion guards for unistd.h and string.h.
* configure.ac: When deciding whether or not _POSIX_SAVED_IDS is
defined, include unistd.h unconditionally, since if the inclusion
fails, the answer will still be no.
* cssc.h: Don't use ifdef HAVE_UNISTD_H. Since we're using
gnulib's unistd.h module, we will be able to include <unistd.h>
unconditionally.
* rename.c: Likewise.
* remove.c: Likewise.
* strstr.c: Likewise for HAVE_STRING_H and <string.h>, since the
latter is provided by gnulib's string module.
Disable some spurious errors about failure to call set_program_name.
* .x-sc_program_name: Don't require the test tools to call
set_program_name, since they don't link with gnulib.
Use the gnulib module progname.
* bsd/sccs.c: Include progname.h.
Remove unused variable MyName.
(show_version): Use program_name not MyName.
(usage): Likewise.
(callprog): Likewise.
(usrerr): Likewise.
(syserr): Likewise.
(main): Call set_program_name.
* bsd/Makefile.am: Link against gnulib.
* bootstrap.conf (gnulib_name): Give the gnulib library a sensible
name (instead of lib.a).
(gnulib_modules): Import the progname module.
* gl/lib/.gitignore: Ignore files from the progname module.
Use $(FOO) in Makefile.am rather than @FOO@.
* tests/Makefile.am: Automake defines $(VALGRIND) from @VALGRIND@
automatically anyway.
* cfg.mk (_makefile_at_at_check_exceptions): Exempt a couple of
usages by the Google C++ Testing Framework.
* Makefile.am: Use $(LIBOBJS) instead of @LIBOBJS@.
* unit-tests/Makefile.am (AM_LIBS): Likewise for $(PTHREAD_LIBS).
(AM_CXXFLAGS): Likewise for $(PTHREAD_CFLAGS).
Silence an error about m4 quoting in the Google C++ Testing Framework.
* .x-sc_m4_quote_check: Silence error message about insufficient
quoting in googletest/m4/acx_pthread.m4. We do this rather than
fixing the quoting in order to avoid subsequent merge problems and
spurious diffs.
Silence a spurious error about changing old NEWS entries.
* cfg.mk (old_NEWS_hash): Set old_NEWS_hash to the md5sum of a
zero-length input in order to silence a spurious error about
changing old NEWS entries.
Standardise on the use of "file system" rather than "filesystem".
* docs/cssc.texi (Filenames): Spell "filesystem" as "file system",
following the example of the POSIX standard.
* docs/Platforms: Likewise.
* file.cc (atomic_nfs_create): Likewise.
* tests/admin/hardlinks.sh: Likewise.
* tests/admin/.x-sc_file_system: Exempt the Google Unit Test code
from this requirement, since that will make later updates hard to
merge.
Also exempt ChangeLog files.
Ignore some maintainer-makefile lint complaints I don't plan to fix.
* .x-sc_error_message_period: Avoid syntax-check errors for error
messages ending in a full stop. Some error messages contain more
than one sentence.
* .x-sc_error_message_uppercase: Avoid syntax-check errors for
error messages starting with a capital letter.
Fix a maintainer-makefile if-before-free lint issue.
* bsd/sccs.c (set_prefix): Remove useless if-before-free.
Adopt the use of the gnulib maintainer-makefile module.
(gnulib_modules): Add maintainer-makefile.
Update to GNU Free Documentation License, Version 1.3 (from 1.2).
* docs/cssc.texi (@copying): Update from FDL 1.2 to FDL 1.3.
* bootstrap.conf (gnulib_modules): Import module fdl.
* docs/fdl.texi: Symlink to ../gl/doc/fdl.texi.
* NEWS: Mention this change.
Don't create a spurious directory.
* bootstrap.conf (local_gl_dir): Don't create {m4_base}. Create
${m4_base} instead.
Remove obsolete file gnulib-tests/.gitignore.
* gnulib-tests/.gitignore: Remove.
Clean up core files in the unit test directory.
* unit-tests/Makefile.am (COREFILES): Clean up "vgcore.*" files
for distclean.
* unit-tests/testwrapper.sh.in: Clean up core files once the test
is complete, unless the core file signals a valgrind failure.
Also inhibit core file generation int he first place (though this
probably won't work for valgrind).
2010-05-01 James Youngman <jay@gnu.org>
Put the gnulib code, etc. into ./gl
* bootstrap.conf (doc_base): Override doc_base, m4_base,
source_base, tests_base, local_gl_dir.
(gnulib_mk): Use Makefile.am, not gnulib.mk.
(gnulib_tool_option_extras): Tests are in gl/tests.
(bootstrap_epilogue): Use gl/tests/Makefile.am, not gnulib-tests/gnulib.mk.
* configure.ac (SUBDIRS): Rename the gnulib source directory from
lib to gl/lib.
(AC_CONFIG_FILES): generate gl/Makefile gl/lib/Makefile
gl/doc/Makefile gl/tests/Makefile.
* Makefile.am (AM_CPPFLAGS): Pass -I gl/lib.
* bsd/Makefile.am (AM_CPPFLAGS): Pass -I ../gl/lib.
Adopt the use of the first gnulib module: dirent.
* gnulib-tests/.gitignore: Ignore gnulib test files (since they're
imported rather than checked into git).
* lib/.gitignore: Ignore gnulib source files (for the same reason).
* configure.ac (AC_CONFIG_FILES): generate lib/Makefile.a
* Makefile.am (SUBDIRS): Add "lib", which is where the gnulib code is.
* bsd/sccs.c: Remove HAVE_XXX_H header guards.
Include dirent-safer.h. Remove the hand-hacked dirent portability
macros (and remove NAMLEN as a side-effect).
(do_clean): Don't assume the NAMLEN macro is defined.
* file.cc: Include dirent-safer.h. Remove the hand-hacked dirent
portability macros (and remove NAMLEN as a side-effect).
(is_directory): Move this function here from fileiter.cc.
* fileiter.cc: Include dirent-safer.h. Remove the hand-hacked
dirent portability macros (and remove NAMLEN as a side-effect).
Show the value of $(VALGRIND) at the start of regression testing.
* tests/Makefile.am (test-initial): echo $(VALGRIND).
Add unit test verifying that we don't read uninitialised data in encode.
* unit-tests/test_encoding2.cc: New unit test file. Verifies that
we don't read uninitialised data when we reach the end of the
encoding input.
* unit-tests/Makefile.am (unit_tests): Add test_encoding2.
Avoid reading uninitialised input.
* encoding.cc (encode_line): Encode the tail of the input without
running over the end of in[].
Handling of directories in get is mandatory in POSIX, so remove CONFIG_NO_DIRECTORY.
* fileiter.cc: don't define CONFIG_NO_DIRECTORY
(sccs_file_iterator::sccs_file_iterator): don't check CONFIG_NO_DIRECTORY
* fileiter.h (class sccs_file_iterator): Likewise.
* file.cc: don't define CONFIG_NO_DIRECTORY
2010-04-29 James Youngman <jay@gnu.org>
Delete unused file split.cc.
* split.cc: Delete unused file.
* Makefile.am (libcssc_a_SOURCES): Remove split.cc.
Removed some unused code.
* delta.cc (delta_main): Removed some unused '#if 0' code.
* sf-write.cc (update_checksum): Likewise.
* my-getopt.cc (reorder): Likewise.
* file.cc (file_lock): Likewise.
* sccsname.cc (valid_filename): Likewise.
(create): Likewise.
(sub_file): Likewise.
(make_valid): Likewise.
* seqstate.cc (decide_disposition): Likewise.
* sf-get3.cc (authorised): Likewise.
* sid.cc (invalid_range): Likewise.
* what.cc (main): Likewise.
2010-04-28 James Youngman <jay@gnu.org>
Use STL to implement mylist<T>.
* mylist.h (mylist): Implement mylist<T> as std::vector<T>.
* delta-table.h (mylist<T>::select(i)): delegate to l[i].
* unit-tests/test_mylist.cc: Drop the requirement that the
mylist<T> implementation does not need there to be a T::T(const
T&) copy constructor.
* mylist.h (mylist): Implement mylist<T>::operator==(const
mylist<T>&) const, which the unit tests need.
Inline delta::removed(), for a small performance boost.
* delta.h (class delta): Inline delta::removed().
* sccs-delta.cc: Remove the non-inline version.
Call strtoul to do the actual conversion, for a small performance boost.
* sccsfile.cc (strict_atoul_idu): Call strtoul to perform the
conversion itself.
Generate a larger test file.
* unit-tests/test_bigfile.cc (main): Increase the number of deltas
in the produced file to about 30,000.
Switch to using an STL data structure to represent the delta list.
* delta-table.h (stl_delta_list): Reimplement delta_list using
STL, reducing the time it takes to validate an SCCS file with
30,000 deltas from 45s to 3s. Separate the cssc_delta_table
class from the data structure (a typedef delta_list) for looser
coupling. Retain the old data structure in the unused class
mylist_delta_list.
* delta-table.cc (delta_at_seq_exists): Delegate to the
delta_list.
(delta_at_seq): Likewise.
(cssc_delta_table::~cssc_delta_table()): Since we no longer have a
pointer member, the destructor no longer needs to do anything.
(cssc_delta_table::build_seq_table): Push down into
mylist_delta_list.
(cssc_delta_table::add(const delta&)): Don't call update_highest
since this work is done in delta_list::add(const delta&).
(cssc_delta_table::update_highest): Remove obsolete function.
* dtbl-prepend.cc (prepend): Don't call obsolete method
update_highest, and use the correct (updated) type for the class
member l (delta_list).
Performance improvement for val.
* sf-val.cc (check_loop_free): Use an O(N) method of
consistency-checking the delta graph, rather than the old O(N^2)
method.
* delta.h (class delta): Make accessor functions id(), date(),
user(), seq() and prev_seq() inline.
2010-04-27 James Youngman <jay@gnu.org>
Avoid touching missing sequence numbers in 'get'.
* sf-get2.cc (get): Don't call delta_table->delta_at_seq() for
sequence numbers for which delta_table->delta_at_seq_exists()
returns false.
When generating the test output file, set the checksum correctly.
* unit-tests/test_bigfile.cc: Set the file's checksum correctly.
2010-04-26 James Youngman <jay@gnu.org>
Add a tool for creating (large) SCCS files.
* unit-tests/Makefile.am: Build test_bigfile.
* unit-tests/test_bigfile.cc: New test program; produces a large
SCCS file.
* sid.h (class sid): Make sid::sid(short,short,short,short)
public, so that we can use it from one of the test programs.
2010-04-25 James Youngman <jay@gnu.org>
Allow the user to disable valgrind after running configure.
* README (--enable-max-line-length): Document this configure
option. Explain how to make the other formats of manual (PDF,
HTML). Explain how to use CSSC_DISABLE_VALGRIND.
* unit-tests/Makefile.am (TESTS_ENVIRONMENT): Invoke the unit
tests via 'testwrapper.sh'.
* unit-tests/testwrapper.sh.in: New file; used to invoke the unit
tests.
Make sure error tests don't pass if there is a valgrind problem;
allow the user to disable valgrind.
* tests/common/command-names: Allow the user to disable Valgrind
by setting the environment variable CSSC_DISABLE_VALGRIND.
* configure.ac: Make valgrind exit with status 10 when there is a
problem, so tests which exercise failure cases in CSSC don't
mistakenly pass when there is a valgrind problem. Create
unit-tests/testwrapper.sh from unit-tests/testwrapper.sh.in.
Enable the y2k tests.
* tests/Makefile.am (test-year-2000): Actually run the y2k tests.
Use valgrind for y2k tests.
* tests/year-2000/ext.sh: Use valgrind.
* tests/year-2000/prs-y2k.sh: Likewise.
Use valgrind for what tests.
* tests/what/whatbasic.sh: Use valgrind.
Use valgrind for val tests.
* tests/val/valbasic.sh: Use valgrind.
* tests/val/y2k.sh: Likewise.
Use valgrind for unget tests.
* tests/unget/exists.sh: Use valgrind.
* tests/unget/output.sh: Likewise.
Use valgrind for sact tests.
* tests/sact/sactbasic.sh: Use valgrind.
* tests/sact/sf513800.sh: Likewise.
Use valgrind for rmdel tests.
* tests/rmdel/basic.sh: Use valgrind.
* tests/rmdel/exists.sh: Likewise.
* tests/rmdel/edit.sh: Likewise.
Use valgrind for prt tests.
* tests/prt/default.sh: Use valgrind.
* tests/prt/nodel.sh: Likewise.
* tests/prt/exists.sh: Likewise.
* tests/prt/reportmr.sh: Likewise.n
Use valgrind for prs tests.
* tests/prs/keywords.sh: Use valgrind.
* tests/prs/format.sh: Likewise.
* tests/prs/exists.sh: Likewise.
* tests/prs/body.sh: Likewise.
Use valgrind for large tests.
* tests/large/admin.sh: Use valgrind.
Use valgrind for get tests.
* tests/get/annotate.sh: Use valgrind.
* tests/get/a-option.sh: Likewise.
* tests/get/branch.sh: Likewise.
* tests/get/create.sh: Likewise.
* tests/get/defsid.sh: Likewise.
* tests/get/delta-summary.sh: Likewise.
* tests/get/errorcases.sh: Likewise.
* tests/get/excl_ig_1.sh: Likewise.
* tests/get/excl_ig_2.sh: Likewise.
* tests/get/gg_get_ix.sh: Likewise.
* tests/get/included.sh: Likewise.
* tests/get/middle-fail.sh: Likewise.
* tests/get/no-sfile.sh: Likewise.
* tests/get/only-one.sh: Likewise.
* tests/get/optorder.sh: Likewise.
* tests/get/removed-delta.sh: Likewise.
* tests/get/sep_subst.sh: Likewise.
* tests/get/sf111140.sh: Likewise.
* tests/get/sf479916.sh: Likewise.
* tests/get/sf664900.sh: Likewise.
* tests/get/sf865422.sh: Likewise.
* tests/get/sid-select.sh: Likewise.
* tests/get/sid-select2.sh: Likewise.
* tests/get/subst.sh: Likewise.
* tests/get/t-option.sh: Likewise.
Use valgrind for delta tests.
* tests/delta/basic.sh: Use valgrind.
* tests/delta/errorcase.sh: Likewise.
* tests/delta/n-option.sh: Likewise.
* tests/delta/options.sh: Likewise.
* tests/delta/nulldelta.sh: Likewise
Use valgrind for binary file tests, sccs tests and cdc tests.
* tests/binary/auto.sh: Use valgrind.
* tests/binary/binbasic.sh: Likewise.
* tests/binary/eightbit.sh: Likewise.
* tests/binary/seeking.sh: Likewise.
* tests/bsd-sccs/sf595594.sh: Likewise.
* tests/bsd-sccs/driver-basic.sh: Likewise.
* tests/bsd-sccs/delsfile.sh: Likewise.
* tests/cdc/1general.sh: Use valgrind.
* tests/cdc/2comment.sh: Likewise.
* tests/cdc/3MRs.sh: Likewise.
* tests/cdc/4order.sh: Likewise.
Support running the regression tests under valgrind.
* configure.ac: Allow the user to specify --without-valgrind.
* tests/admin/admin-hz.sh: Use valgrind.
* tests/admin/abspath.sh: Likewise.
* tests/admin/comment.sh: Likewise.
* tests/admin/flags.sh: Likewise.
* tests/admin/hardlinks.sh: Likewise.
* tests/admin/i-option.sh: Likewise.
* tests/admin/init-mr.sh: Likewise.
* tests/admin/locks.sh: Likewise.
* tests/admin/r-option.sh: Likewise.
* tests/admin/t-option.sh: Likewise.
* tests/admin/users.sh: Likewise.
* tests/admin/y-flag.sh: Likewise.
* tests/common/command-names: Define vg_... versions of $admin,
$get, etc. These invoke the named command under valgrind (it
would be too slow to invoke everything under valgrind).
* tests/Makefile.am (VALGRIND): substitute this variable and
export it to the tests.
Run the unit tests under valgrind.
* configure.ac: Check for the presence of valgrind. If we find
it, use valgrind -q --trace-children=yes.
* unit-tests/Makefile.am (TESTS_ENVIRONMENT): Run the tests under
valgrind.
* tests/README: Explain that these are regression tests and point
to the unit tests.
Remove explicit template instantiations.
* admin.cc: Remove explicit template instantiations.
* cap.cc: Likewise.
* cdc.cc: Likewise.
* delta.cc: Likewise.
* dtbl-prepend.cc: Likewise.
* fileiter.cc: Likewise.
* get.cc: Likewise.
* prs.cc: Likewise.
* prt.cc: Likewise.
* rel_list.cc: Likewise.
* rmdel.cc: Likewise.
* sact.cc: Likewise.
* sccs-delta.cc: Likewise.
* sccsfile.cc: Likewise.
* sf-prs.cc: Likewise.
* unget.cc: Likewise.
* val.cc: Likewise.
* filediff.cc: Trimmed some blank lines.
* sf-kw.cc: Likewise.
Isolate directory-handling logic in fileiter.cc.
* fileiter.cc: Move the complex logic around trying to include
<dirent.h> out of fileiter.h and into fileiter.cc.
* fileiter.h: Make the corresponding deletion and remove the
#error trap which demanded that <cofnig.h> had been included.
* delta.cc: Remove the now-obsolete explanatory comment.
* file.cc: Move is_directory into fileiter.cc, since it also needs
opendir.
Produce a compile failiure when config.h was not included before
fileiter.h. Doing things the other way around produces a
regression test failure.
* fileiter.h: Force a compilation failure if config.h was not included.
* delta.cc: Include config.h before fileiter.h.
Remove some obsolete preprocessor macros.
* cssc.h (CONFIG_WAIT_IS_A_USELESS_MACRO): Remove obsolete macro.
* sysdep.h: Assume wait is declared in sys/wait.h.
* cssc.h (CONFIG_DJGPP): Remove obsolete macro.
Remove some obsolete manual declarations of functions.
* file.cc: Don't manually declare stat. Likewise for getpwuid.
* cssc.h: Don't undefine the TESTING macro; nobody defines it
either. Don't undefine CONFIG_DECLARE_STAT,
CONFIG_DECLARE_GETPWUID, CONFIG_DECLARE_TIMEZONE,
CONFIG_DECLARE_TZSET,
* sysdep.h: Don't manually declare fdopen.
Include cssc headers where they are needed, not in cssc.h.
* my-getopt.cc: Include quit.h but not cssc.h.
* linebuf.cc: Include ioerr.h.
* writesubst.cc: Likewise.
* sccsfile.cc: Likewise.
* sf-add.cc: Likewise.
* sid.cc: Likewise.
* fileiter.cc: Include file.h and quit.h.
* file.cc: Include quit.h and ioerr.h.
* sccsdate.h: Likewise.
* sf-write.cc: Likewise.
* rel_list.cc: Likewise.
* cdc.cc: Include file.h.
* sf-csc.cc: Likewise.
* sccsname.cc: Likewise.
* sf-get3.cc: Likewise.
* sf-delta.cc: Likewise.
* val.cc: Likewise.
* unget.cc: Likewise.
* rmdel.cc: Likewise.
* delta.cc: Likewise.
* filediff.cc: Likewise.
* pf-add.cc: Likewise.
* pf-del.cc: Likewise.
* sf-admin.cc: Likewise.
* prompt.cc: Likewise.
* fdclosed.cc: Include defaults.h.
* run.cc: Include quit.h
2010-04-24 James Youngman <jay@gnu.org>
Include system headers where they are needed, not in cssc.h.
* except.h: Add a multiple-include guard. #include <cstdlib>.
* environment.cc: #include <cstdlib>, <cstring>, <cerrno>
* bodyio.cc: #include <cstring>, ioerr.h, file.h.
* fileiter.cc: Likewise.
* linebuf.cc: Likewise.
* prompt.cc: Likewise.
* sccsdate.cc: Likewise.
* fatalsig.cc: #include <cstdlib>
* filepos.h: #include <cerrno>.
* quit.cc: #include <cerrno> instead of <errno.h>. Include
<cstring> also.
* cssc.h: Don't include standard headers: stdio.h, stdlib.h,
stddef.h, string.h, ctype.h, errno.h.
Unconditionally include <config.h>.
Don't include quit.h or file.h.
Further include-what-you-use fixes.
* delta.cc: Include cleanup.h, and ioerr.h. Include delta.h earlier.
Run the uu(en|de)coding self-test as part of the unit tests.
* bodyio.h: Move a couple of inline functions to here (out of
encoding.cc) so that I can use them in the self-test.
* encoding.cc: Make the corresponding deletion. Move the test
code itself into test_encodingcc.
* unit-tests/test_encoding.cc: Moved the encoding self-test to
here instead of leaving it in encding.c, where it was not used.
* unit-tests/Makefile.am (check_PROGRAMS): Add test_encoding.
Also define test_encoding_SOURCES. Modify the usage semantics of
the test program so that the default is to run the self-test.
Avoid redundant inclusion of cssc.h, sccsfile.h, delta.h.
* dtbl-prepend.cc: Don't include cssc.h or sccsfile.h, since we
don't use them.
* delta-table.cc: Avoid including cssc.h, sccsfile.h, delta.h
since we don't use them.
Various include-what-you-use fixes.
* delta-iterator.cc: Don't include cssc.h, sccsfile.h or delta.h,
since we don't use them. Do include cssc-assert.h, since we do
use that.
* delta-iterator.h: add forward declarations of cssc_delta_table
and delta.
* bodyio.cc: Include what you use; include bodyio.h first.
* bodyio.h: Include <cstdio>.
* canonify.cc: Don't include cssc.h. Include sccsname.h first.
Include file.h.
* cleanup.h: Move class cleanup into this separate file (out of quit.h).
* quit.h: Don't declare class cleanup (we moved it).
* filelock.h: Include cleanup.h.
* sccsname.h: Include mystring.h and filelock.h.
* cssc.h: Move declaration of split_filename into file.h.
* file.h: Declare split_filename.
* pfile.h: Include ioerr.h.
Include what you use; include sid_list.h first.
* unit-tests/test_sid_list.cc: Include only what we use; don't
include cssc.h or sid.h.
Include what you use; make it possible to include quit.h first or
sccsdate.h first.
* sccsdate.h: Include <cstdio> and mystring.h.
* quit.h: Include cssc-assert.h (for ASSERT).
* unit-tests/test_sccsdate.cc: Include sccsdate.h first.
Include what you use; make it possible to use class relvbr by
including only relvbr.h.
* unit-tests/test_relvbr.cc: Include relvbr.h first, don't include
release.h or sid.h.
* relvbr.h: Include <cstdio>.
Include what you use; make it possible to use class release by
including only release.h and release_list by including only
rel_list.h.
* release.h: Include <cstdio>.
* unit-tests/test_release.cc: Don't include cssc.h.
* unit-tests/test_rel_list.cc: Likewise for rel_list.h.
Include what you use; include delta-table.h first in the unit test.
* unit-tests/test_delta-table.cc: Include delta-table.h first.
Include what you use; make it possible to use delta by
including only delta.h.
* delta.h: Include sid.h, sccsdate.h, mystring.h, mylist.h.
Move typedef of seq_no to here from cssc.h
* cssc.h: Move typesef of seq_no from here to delta.h.
* sccsfile.h: Include delta.h.
* seqstate.h: Likewise.
* unit-tests/test_delta.cc: Include delta.h first. Don't include cssc.h.
Include what you use; make it possible to use range_list<T> by
including only sid_list.h.
* unit-tests/test_sid.cc: Include sid.h first. Don't include cssc.h.
* sid_list.h: Include cstdio, cstring, and qui.t.h (for ctor_fail).
* sid.h: Include mystring.h.
Include what you use; make it possible to use stack<T> by
including only stack.h.
* unit-tests/test_stack.cc: Include what you use: include
"stack.h" but not "cssc.h".
Include what you use; make it possible to use myset<T> by
including only myset.h.
* unit-tests/test_myset.cc: Include myset.h first.
* myset.h: Include mylist.h since we use mylist<T>.
Include what you use; make it possible to use mylist<> by
including only mylist.h.
* cssc-assert.h: New file; defines the ASSERT macro.
* quit.h: Delete old definition of ASSERT and declaration of
assert_failed.
* mylist.h: Include cssc-assert.h to define ASSERT, and
<cstdlib> for NULL.
* unit-tests/test_mylist.cc: Don't include "cssc.h" any more.
* quit.cc: Include cssc-assert.h for ASSERT and declaration of assert_failed.
* fatalsig.cc: Include cssc-assert.h since we use ASSERT.
* file.cc: Likewise.
* filediff.cc: Likewise.
* fnsplit.cc: Likewise.
* linebuf.cc: Likewise.
* sccsdate.cc: Likewise.
* sccsname.cc: Likewise.
* sid.h: Likewise.
* stack.h: Likewise.
Move CONFIG_LIST_CHUNK_SIZE from cssc.h to mylist.h.
* cssc.h (CONFIG_LIST_CHUNK_SIZE): Move into mylist.h.
* mylist.h (mylist): Relocate CONFIG_LIST_CHUNK_SIZE here from
cssc.h, but convert it to an enum.
Add/correct some comments.
* delta-table.cc: Correct the comment giving the location of
dtbl-prepend.cc.
* delta-table.h (class cssc_delta_table): Add a comment explaining
why cssc_delta_table::delta_at_seq_exists and
cssc_delta_table::delta_at_seq are not const.
Add unit tests for delta-table.h.
* unit-tests/test_delta-table.cc: New file, contains unit tests
for delta-table.h.
* unit-tests/Makefile.am (test_delta_table_SOURCES): New
variable.
(check_PROGRAMS): Add test_delta-table.
* unit-tests/TODO.txt: Remove delta-table.h; there are tests for
it now.
Cosmetic fixes for stack.h.
* stack.h: Remove obsolete version comment.
(stack::operator=): Correct indentation.
Make the data members of struct delta private.
* delta.h (delta): Make all the data members private and add
accessor and mutator methods. Rename the data members to have a
trailing underscore.
(delta::id): Accessor for id_.
(delta::set_id): Mutator for id_.
(delta::date): Accessor for date_.
(delta::set_date): Mutator for date_.
(delta::user): Accessor for user_.
(delta::set_user): Mutator for user_.
(delta::seq): Accessor for seq_.
(delta::set_seq): Mutator for set_seq.
(delta::prev_seq): Accessor for prev_seq_.
(delta::set_prev_seq): Mutator for prev_seq_.
(delta::inserted): Accessor for inserted_.
(delta::set_inserted): Mutator for inserted_.
(delta::deleted): Accessor for deleted_ (there is no mutator).
(delta::unchanged): Accessor for unchanged (there is no mutator).
(delta::set_idu): Set inserted_, deleted_, unchanged_ all at once.
(delta::increment_inserted): Increments inserted_.
(delta::increment_deleted): Increments deleted_.
(delta::increment_unchanged): Increments unchanged_.
(delta::get_included_seqnos): Accessor for included_.
(delta::get_excluded_seqnos): Accessor for excluded_.
(delta::get_ignored_seqnos): Accessor for ignored_.
(delta::has_includes): Accessor for have_includes_.
(delta::set_has_includes): Mutator for have_includes_.
(delta::add_include): Add an item to included_.
(delta::has_excludes): Accessor for have_excludes_.
(delta::set_has_excludes): Mutator for have_excludes_.
(delta::add_exclude): Add an item to excluded_.
(delta::has_ignores): Accessor for have_ignores_.
(delta::set_has_ignores): Mutator for have_ignores_.
(delta::add_ignore): Add an item to ignored_.
(delta::mrs): Accessor for mrs_.
(delta::set_mrs): Mutator for mrs_.
(delta::add_mr): Add an item to mrs_.
(delta::comments): Accessor for comments_.
(delta::set_comments): Mutator for comments_.
(delta::add_comment): Add an item to comments_.
* unit-tests/test_delta.cc (DeltaTest.Constructor): Modify unit
test to use the new accessor methods.
(DeltaTest.Assignment): Likewise.
(DeltaTest.Mutators): New unit test for the new mutator methods.
* sccs-delta.cc (delta::operator=): Use the new member names.
(removed): Likewise.
* delta-table.cc: Use the new accessor functions.
* sccsfile.cc: Likewise.
* writesubst.cc: Likewise.
* sf-add.cc: Likewise.
* sf-admin.cc: Likewise.
* sf-write.cc: Likewise.
* sf-get.cc: Likewise.
* sf-get2.cc: Likewise.
* sf-get3.cc: Likewise.
* sf-delta.cc: Likewise.
(add_delta): Instead of zeroing inserted/deleted/unchanged counts,
simply verify that the constructor did that.
* sf-cdc.cc : Use the new accessor functions.
(process_mrs): Since delta no longer offers access to a mutable
list of MRs, modify process_mrs to return the updates list of MRs.
The deleted flag which used to be the return value is now an
output parameter.
(cdc): Change the type of mrs_deleted from int to bool.
* sf-prs.cc (print_delta): Use the new accessor functions. Also
fix a typo in a comment.
(prs): Use the new accessor functions.
* sf-prt.cc (cutoff::excludes_delta): Use the new accessor functions.
(cutoff::print): Likewise.
(sccs_file::prt): Likewise.
* sf-rmdel.cc (sccs_file::rmdel): Use the new accessor functions.
* sf-val.cc (sccs_file::validate_seq_lists): Use the new accessor functions.
(sccs_file::validate_isomorphism): Likewise.
(validate): Likewise.
* unit-tests/TODO.txt: delta.h has tests now, remove it from the
TODO list.
2010-04-23 James Youngman <jay@gnu.org>
Rename delta::type to delta_type, make it private, validate it.
* delta.h (struct delta): Rename the 'type' member to 'delta_type'
and make it private, to support better data validation.
(delta::delta()): Initialise delta_type to 'D' rather than leaving
it uninitialised. Also initialise members id, seq and prev_seq.
(delta::delta(...): Set have_includes and have_excludes to true if
the relevant list is starting off non-empty.
(delta::get_type, delta::set_type): New accessor/mutator methods.
* unit-tests/test_delta.cc: Verify that have_includes and
have_excludes are true if the delta was constructed with
(respectively) includes or excludes.
(DeltaDeathTest.Includes): verify that invalid delta types are
diagnosed.
(delta::is_valid_delta_type): new method, validates delta::delta_type.
* sf-rmdel.cc (rmdel): Use the accessor method to access
delta::delta_type.
* sccsfile.cc (read_delta): Delegate delta type validation to
delta::is_valid_delta_type.
* sccs-delta.cc (delta::operator=): delta::type renamed to
delta::delta_type.
(delta::removed): Likewise.
* sf-prs.cc (print_delta): Likewise.
* sf-prt.cc (prt): Likewise.
* sf-write.cc (write_delta): Likewise.
* sf-val.cc (validate): There is no longer a need to validate
delta::type, as this field is validater by the delta(...)
constructors and by delta::set_type().
2010-04-22 James Youngman <jay@gnu.org>
Add a unit test for delta.h.
* unit-tests/test_delta.cc: New file.
* unit-tests/Makefile.am (check_PROGRAMS): Add test_delta.
Implement equality test for mylist<T>.
* mylist.h (operator==): Implement operator==.
* unit-tests/test_mylist.cc (MylistTest): Add unit tests for
operator==.
Remove some obsolete comments.
* mylist.h: Remove a spurious extra "Local Variables" comment.
* sid_list.h: Remove some obsolete (and long commented-out) code.
* relvbr.h (class relvbr): Likewise.
* release.h (class release): Likewise.
Finish test_sccsdate.cc.
* unit-tests/test_sccsdate.cc: Added unit tests for the remaining
public methods of sccs_date.
* unit-tests/TODO.txt: sccsdate.h has unit tests now, remove it
from the TODO list.
Remove core files for "make distclean".
* unit-tests/Makefile.am (DISTCLEANFILES): Remove core files.
* AUTHORS: Mention that googletest/CONTRIBUTORS enumerates the
contributors to the Google C++ Testing Framework.
* googletest/Makefile.am (EXTRA_DIST): Distribute README.cssc.
* unit-tests/Makefile.am (EXTRA_DIST): Distribute TODO.txt.
Add TODO list for unit tests we need to write.
* unit-tests/TODO.txt: New file; a working list of what unit tests
are still needed.
Add unit tests for sccsdate.h.
* unit-tests/test_sccsdate.cc: New file.
* unit-tests/Makefile.am (test_sccsdate_SOURCES): Add
test_sccsdate.cc.
(check_PROGRAMS): Add test_sccsdate.
Explain what the googletest directory is and how to run unit tests.
* README (Testing): Expand to include a description of the unit
tests and how to run them.
* docs/borrowed-files.txt: Mention googletest/*. Also remove tghe
out-of-date information about the last update to the files which
autoconf updates.
* googletest/README.cssc: Add README file explaining the
relationship between the code in this directory and the rest of
CSSC.
2010-04-21 James Youngman <jay@gnu.org>
Add unit test cases for ASSERT failures.
* unit-tests/test_mylist.cc (MylistDeathTest): Various unit test
cases for ASSERT failures.
* unit-tests/test_sid.cc (SidTest.Successor): Verify that the null
SID's successor is 1.1.
Unit test sid_list::merge and sid_list::remove
* unit-tests/test_sid_list.cc: Enable unit tests for
sid_list::merge and sid_list::remove. Include rl-merge.h since
that file defines these methods.
Unit test release_list::merge and release_list::remove
* unit-tests/test_rel_list.cc: Add unit tests for
release_list::merge and release_list::remove.
Move rl-merge.cc into libcssc.a
* Makefile.am (libcssc_a_SOURCES): Move rl-merge.cc into the library.
(get_SOURCES): Remove rl-merge.cc.
(admin_SOURCES): Likewise.
* rel_list.h: Remove some unnecessary blank lines.
Add unit test for rel_list.h
* unit-tests/test_rel_list.cc: New unit test.
* unit-tests/Makefile.am (check_PROGRAMS): Add test_rel_list.
(test_rel_list_SOURCES): Add test_rel_list.cc.
Add unit test for sid_list.h
* unit-tests/test_sid_list.cc: New unit test; tests sid_list.h.
* unit-tests/Makefile.am (check_PROGRAMS): Add test_sid_list.
(test_sid_list_SOURCES): Add test_sid_list.cc.
2010-04-20 James Youngman <jay@gnu.org>
Add unit test for release.h.
* unit-tests/Makefile.am (check_PROGRAMS): Add test_release.
(test_release_SOURCES): Add test_release.cc.
* unit-tests/test_release.cc: New unit test.
Add unit test for relvbr.
* unit-tests/Makefile.am (check_PROGRAMS): Add test_relvbr.
(test_relvbr_SOURCES): Add test_relvbr.cc.
* unit-tests/test_relvbr.cc: New unit test.
Add unit test for sid.h.
* unit-tests/test_sid.cc: New unit test.
* unit-tests/Makefile.am (test_sid_SOURCES): Add this test.
(check_PROGRAMS): Likewise.
* unit-tests/Makefile.am (TESTS): don't duplicate the contents of
$(check_PROGRAMS), just use that variable.
(LDADD): Add ../libcssc.a.
(test_mylist_SOURCES): Don't list object files in libcssc.a.
(test_myset_SOURCES): Don't list object files in libcssc.a.
New unit test for myset<T>.
* unit-tests/Makefile.am (check_PROGRAMS): Add test_myset.
(LDADD): Just use one LDADD variable for all unit tests.
* unit-tests/test_myset.cc: New unit test.
Add a unit test.
* unit-tests/test_mylist.cc: New file; unit test for mylist<T>.
* unit-tests/Makefile.am: New file.
* configure.ac: Call AC_LIBTOOL. Include
googletest/m4/acx_pthread.m4. Add --with-pthreads so that our
main build and googletest libraries are compatible. Add
unit-tests/Makefile to AC_CONFIG_FILES.
* autogen.sh: Run libtoolize in the top level and the googletest
directories.
* Makefile.am (SUBDIRS): Add unit-tests.
Include <errno.h> unconditionally where we need it.
* admin.cc: Include <errno.h> instead of "err_no.h".
* pfile.cc: Likewise.
* cssc.h: Likewise.
* file.cc: Likewise.
* get.cc: Likewise.
* run.cc: Likewise.
* quit.cc: Likewise.
* sccsfile.cc: Likewise.
* sf-delta.cc: Likewise.
* what.cc: Likewise.
* err_no.h: Remove useless file.
* Makefile.am (noinst_HEADERS): Remove err_no.h.
Instead of linking all objects explicitly, use a library.
* Makefile.am (noinst_LIBRARIES): Build new library libcssc.a.
(libcssc_a_SOURCES): list the source files for the library.
(common_sources): Remove unused variable.
(sname_srcs): Likewise.
(sfile_srcs): Likewise.
(mod_srcs): Likewise.
(moddelta_srcs): Likewise.
(newdelta_srcs): Likewise.
(get_LDADD): Add the new library libcssc.a.
(delta_LDADD): Likewise.
(admin_LDADD): Likewise.
(prs_LDADD): Likewise.
(what_LDADD): Likewise.
(unget_LDADD): Likewise.
(sact_LDADD): Likewise.
(cdc_LDADD): Likewise.
(rmdel_LDADD): Likewise.
(prt_LDADD): Likewise.
(val_LDADD): Likewise.
(what_SOURCES): Remove object files which are now in libcssc.a.
(sact_SOURCES): Likewise.
(unget_SOURCES): Likewise.
(prt_SOURCES): Likewise.
(prs_SOURCES): Likewise.
(get_SOURCES): Likewise.
(rmdel_SOURCES): Likewise.
(cdc_SOURCES): Likewise.
(admin_SOURCES): Likewise.
(delta_SOURCES): Likewise.
(val_SOURCES): Likewise.
2010-04-19 James Youngman <jay@gnu.org>
Actually configure in and recurse into the googletest directory.
* configure.ac: Add googletest in the call to AC_CONFIG_SUBDIRS.
* autogen.sh: Run libtoolize in googletest.
* Makefile.am (SUBDIRS): Add googletest.
Implement myset<T> with std::set<T>.
* myset.h (myset): Switch to implementing with std::set. This
should reduce the O(N) operations to O(log(N)).
Use the standard string class.
* mystring.h: Assume the availability of the <string> header, so
that mystring is always a typedef for std::string.
* mystring.cc: Delete.
* Makefile.am (sname_srcs): Delete mystring.cc.
Assume support for the std namespace.
* configure.ac: Don't check for the 'std' namespace. Don't
#define STD_NAMESPACE.
* mystring.h: Don't use STD_NAMESPACE.
2010-04-18 James Youngman <jay@gnu.org>
Assume exception support.
* configure.ac: Don't detect exception support, assume it.
* admin.cc: Require exception support.
* bodyio.cc: Likewise.
* cdc.cc: Likewise.
* cssc.h: Likewise.
* delta.cc: Likewise.
* except.h: Likewise.
* get.cc: Likewise.
* pf-del.cc: Likewise.
* prs.cc: Likewise.
* prt.cc: Likewise.
* quit.cc: Likewise.
* rmdel.cc: Likewise.
* sact.cc: Likewise.
* sf-kw.cc: Likewise.
* unget.cc: Likewise.
* val.cc: Likewise.
Remove RCS keywords.
* admin.cc: Remove RCS keywords (since we're using git now).
* bodyio.h: Likewise.
* cap.cc: Likewise.
* cdc.cc: Likewise.
* cssc.h: Likewise.
* delta-iterator.cc: Likewise.
* delta-iterator.h: Likewise.
* delta-table.h: Likewise.
* delta.cc: Likewise.
* delta.h: Likewise.
* dtbl-prepend.cc: Likewise.
* environment.cc: Likewise.
* fatalsig.cc: Likewise.
* fdclosed.cc: Likewise.
* file.cc: Likewise.
* filediff.cc: Likewise.
* fileiter.cc: Likewise.
* filepos.h: Likewise.
* get.cc: Likewise.
* l-split.cc: Likewise.
* linebuf.cc: Likewise.
* my-getopt.cc: Likewise.
* mystring.cc: Likewise.
* mystring.h: Likewise.
* pf-add.cc: Likewise.
* pf-del.cc: Likewise.
* pfile.cc: Likewise.
* pfile.h: Likewise.
* prompt.cc: Likewise.
* prs.cc: Likewise.
* prt.cc: Likewise.
* quit.cc: Likewise.
* rel_list.cc: Likewise.
* rl-merge.cc: Likewise.
* rmdel.cc: Likewise.
* run.cc: Likewise.
* sact.cc: Likewise.
* sccs-delta.cc: Likewise.
* sccsdate.cc: Likewise.
* sccsfile.cc: Likewise.
* sccsfile.h: Likewise.
* sccsname.cc: Likewise.
* seqstate.h: Likewise.
* sf-add.cc: Likewise.
* sf-admin.cc: Likewise.
* sf-cdc.cc: Likewise.
* sf-chkid.cc: Likewise.
* sf-delta.cc: Likewise.
* sf-get.cc: Likewise.
* sf-get2.cc: Likewise.
* sf-get3.cc: Likewise.
* sf-prs.cc: Likewise.
* sf-prt.cc: Likewise.
* sf-rmdel.cc: Likewise.
* sf-val.cc: Likewise.
* sf-write.cc: Likewise.
* showconfig.cc: Likewise.
* sid.cc: Likewise.
* sid_list.h: Likewise.
* split.cc: Likewise.
* unget.cc: Likewise.
* val.cc: Likewise.
* what.cc: Likewise.
* writesubst.cc: Likewise.
Import gnulib modules for various standard headers.
* bodyio.cc: Remove HAVE_STDIO_H guards for various standard
headers which gnulib will provide/adjust.
* bootstrap.conf: Likewise.
* canonify.cc: Likewise.
* configure.ac: Likewise.
* cssc.h: Likewise.
* environment.cc: Likewise.
* err_no.h: Likewise.
* fdclosed.cc: Likewise.
* file.cc: Likewise.
* filediff.cc: Likewise.
* filepos.h: Likewise.
* get.cc: Likewise.
* my-getopt.cc: Likewise.
* sccsfile.cc: Likewise.
* sf-chkid.cc: Likewise.
* sf-delta.cc: Likewise.
* sf-prt.cc: Likewise.
* showconfig.cc: Likewise.
* sysdep.h: Likewise.
* what.cc: Likewise.
* gnulib-tests/.gitignore: Ignore various files imported by gnulib.
* lib/.gitignore: Likewise.
Adopt the use of the "bootstrap" command.
* bootstrap: New file (copied from coreutils).
* bootstrap.conf: New file (adapted from coreutils; no modules are
imported just now).
* autogen.sh: Remove (obsoleted by bootstrap).
* gnulib-tests/.gitignore: New file.
* configure.ac: Use AC_CONFIG_AUX_DIR to select build-aux as the
aux dir.
* README-hacking: New file (copied from coreutils).
* .gitmodules: New file.
* .gitignore: New file.
* docs/texinfo.tex: Remove.
* docs/Makefile.am (EXTRA_DIST): Remove texinfo.tex, which is not
in this directory any more.
* NEWS: Move on from CSSC-1.2.0 to CSSC-1.2.1-git.
* configure.ac: Likewise.
2009-04-11 James Youngman <jay@gnu.org>
* configure.ac, NEWS: Prepare for release of version 1.2.0.
* INSTALL: Remove from the source repository; allow Automake to
use its own copy.
* missing: Likewise.
* install-sh: Likewise.
* docs/texinfo.tex: Likewise
* configure.ac (AC_CHECK_DECL_IN_HEADER): Quote the definition of
the function.
(AC_CHECK_GLOBAL): Likewise.
2009-01-03 Alain Williams <addw@phcomp.co.uk> (tiny change)
* auxfiles/CSSC.spec.in: Reflect changes in the RPM spec
file format and requrements since 2003.
(License): Changed "Copyright" tag to "License".
(%makeinstall): Do not make the /usr/sccs symbolic link.
(%files): Add various binaries to %files.
2008-01-18 James Youngman <jay@gnu.org>
* configure.ac: Prepare for release of version 1.1.1.
* NEWS: Likewise.
* docs/cssc.texi: Updated copyright year. Bumped the revision
number and updated the VERSION macro. Updated the "UPDATED"
variable to the current time.
* version.h (version): Don't show the RCS ID of the main program
in the version output; just keep the existing CSSC release number.
* showconfig.cc: Updated copyright notice to GPL3.
(show_system_line_max): Removed awkward line break.
2008-01-07 James Youngman <jay@gnu.org>
* sf-val.cc (validate_isomorphism): Warn if a delta has two
derived deltas on the trunk.
* release.h: Fixed typo in the file header comment.
* delta-table.h (class cssc_delta_table): Don't initialise sid
objects from NULL.
* fileiter.cc (sccs_file_iterator): Ignore subdirectories, even if
they do start with "s.".
* file.cc (is_directory): New function.
* file.h: Declare is_directory.
2008-01-06 James Youngman <jay@gnu.org>
* sf-delta.cc (add_delta): Removed obsolete "XXX" comments.
* sf-prs.cc (get): Likewise.
* cdc.cc (main): Avoid initialising a sid object by assignment
from NULL, because it's not quite clear what that is intended to
do. Instead, use an assignment from sid::null_delta().
* sid.cc (null_sid): Implement the function.
* sid.h (class sid): Declare sid::null_sid().
* get.cc (main): Avoid initialising a sid object by assignment
from NULL.
* delta.cc (delta_main): Likewise.
* val.cc (main): Likewise.
* rmdel.cc (main): Likewise.
* unget.cc (main): Likewise.
* sccsfile.cc (sccs_file::sccs_file): Likewise.
* sf-admin.cc (admin): Likewise.
* prs.cc (main): Likewise; also disable the -R option.
* sf-val.cc (validate_isomorphism): Extend the comment setting out
the design for this method. The method is still unimplemented,
though.
Various tidyings-up of TODO items.
* prompt.cc (prompt_user): Now that this code is well tested,
increase the allocation chunk size and remove the TODO item
reminding me to do that. Use a small _initial_ chunk size to
make sure that at least one reallocation takes place, for adequate
code coverage.
* mystring.cc: Removed TODO comments which actually don't need to
be done.
* sf-admin.cc (admin): If all releases are locked ("admin -fla")
and the user tries to unlock just one release, issue an error
message (instead of just ignoring the attempt).
* docs/cssc.texi (admin): Explain the (already existing)
restriction and how to get around it.
Implement "get -l", "get -L" and "get -lp".
* get.cc (main): Added options -l and -L for get.
(main): Print the name of the s-file before the delta summary (for
-l) and the gotten body (for -p).
* tests/get/delta-summary.sh: New tests for the -L, -l and -lp
options of get.
* sccsname.h (class sccs_name): new method lfile(), returning the
name of the l-file.
* sccsname.cc (sccs_name::lfile): Implement it.
* sccsfile.h (sccs_file::get): Take a parameter summary_file,
being a FILE* pointer to which we should emit a delta summary if
it's not NULL.
* sf-get2.cc (sccs_file::get): Add the new summary_file parameter
and, if it's not NULL, emit a delta summary.
* docs/cssc.texi (get options): Document the options -l, -lp and
-L.
(Filenames): Mention the l-file.
(prt usage): Mention that the delta summary file contains much the
same information.
* NEWS: Mention this change.
2008-01-05 James Youngman <jay@gnu.org>
* sf-prt.cc (sccs_file::prt): Fixed typo in comment.
* NEWS: Updated with changes for the early 0.02 releases by
diffing the unpacked tar archives.
2007-12-19 James Youngman <jay@gnu.org>
* what.cc: String constants chould be const.
* sf-val.cc (validate_substituted_flags_list): Added missing
return statement.
* sccsfile.cc (sccs_file): Specify the member initialisers in the
order they will actually be executed.
* linebuf.h (class cssc_linebuf): Make buflen size_t rather than
int.
* linebuf.cc (CONFIG_LINEBUF_CHUNK_SIZE): Avoid signed/unsigned
issues by using an unsigned constant.
(read_line): Ditto for constants in this function.
* file.cc (set_file_mode): Add missing return statement.
* bsd/sccs.c (makefile): Avoid signed/unsigned issues by using
size_t to index into strings, rather than ints.
(form_gname): Ditto.
(gstrcat): Ditto for parameter 'length'.
(gstrncat): Ditto for parameter 'length'.
(gstrcpy): Ditto for parameter 'length'.
(gstrncat): Ditto for parameter 'length'.
2007-12-18 James Youngman <jay@gnu.org>
* bsd/sccs.c (FBUFSIZ): Make unsigned.
(cleanup_environment): Removed unused variable 'pfail'.
(main): Avoid spurious warning about lack of return statement, by
putting in return statements instead of calls to exit.
* uu_decode.c: #include <sys/stat.h>, for a declaration of chmod.
(test_decode): Avoid compiler warnign about unused argument 'arg'.
(test_all): Likewise.
* user.c: #include <stdlib.h> for a declaration of qsort and malloc.
(do_groups): Removed unused variable 'duplicates'.
* realpwd.cc (main): Avoid compiler warning about unuised argc, argv.
* seeker.c (do_unbuffered): Avoid compiler warning about unused
argument NAME.
(do_blockbuffered): Likewise
(do_linebuffered): Likewise
(do_nothing): Likewise
2007-12-17 James Youngman <jay@gnu.org>
* docs/cssc.texi (Missing Features): Updated URLs to point to the
GNU web site instead of SourceForge.
* README: Likewise
* auxfiles/CSSC.spec.in (URL): Likewise
* docs/URLs: Likewise
* docs/patches.txt: Likewise
* docs/BUGS: Likewise
Migrate to GPL version 3.
* COPYING, admin.cc, autogen.sh, bodyio.cc, bodyio.h, canonify.cc,
cap.cc, cdc.cc, configure.ac, cssc.h, defaults.h,
delta-iterator.cc, delta-iterator.h, delta-table.cc,
delta-table.h, delta.cc, delta.h, depcomp, docs/Makefile.am,
docs/cssc.texi, dtbl-prepend.cc, encoding.cc, environment.cc,
err_no.h, except.h, fatalsig.cc, fdclosed.cc, file.cc, file.h,
filediff.cc, filediff.h, fileiter.cc, fileiter.h, filelock.h,
filepos.h, fnsplit.cc, get.cc, ioerr.h, l-split.cc, linebuf.cc,
linebuf.h, list.cc, missing, my-getopt.cc, my-getopt.h, mylist.h,
myset.h, mystring.cc, mystring.h, pf-add.cc, pf-del.cc, pfile.cc,
pfile.h, prompt.cc, prs.cc, prt.cc, quit.cc, quit.h, rel_list.cc,
rel_list.h, release.h, relvbr.h, remove.c, rename.c, rl-merge.cc,
rmdel.cc, run.cc, run.h, sact.cc, sccs-cgi/sccs.cgi,
sccs-cgi/sccs.cgi.text, sccs-delta.cc, sccsdate.cc, sccsdate.h,
sccsdiff.sh.in, sccsfile.cc, sccsfile.h, sccsname.cc, sccsname.h,
seqstate.cc, seqstate.h, sf-add.cc, sf-admin.cc, sf-cdc.cc,
sf-chkid.cc, sf-chkmr.h, sf-delta.cc, sf-get.cc, sf-get2.cc,
sf-get3.cc, sf-kw.cc, sf-prs.cc, sf-prt.cc, sf-rmdel.cc,
sf-val.cc, sf-write.cc, show-disp.sh, showconfig.cc, sid.cc,
sid.h, sid_list.h, sl-merge.h, split.cc, stack.h, strerror.c,
strstr.c, sysdep.h, testutils/ekko.c, testutils/last-time.c,
testutils/realpwd.cc, testutils/seeker.c, testutils/user.c,
testutils/uu_decode.c, testutils/yammer.c, testutils/yes.c,
unget.cc, val.cc, valcodes.h, version.h, what.cc, writesubst.cc,
testutils/ekko.c, testutils/last-time.c, testutils/seeker.c,
testutils/user.c, testutils/yammer.c, testutils/yes.c:
Update license to GPL version 3.
* NEWS: Mention this change.
* docs/cssc.texi (Copying): Put the GPL in a separate, unnumbered,
section.
* docs/cssc.texi: Change license to version 1.2 of the GNU Free
Documentation License.
* docs/Makefile.am (cssc_TEXINFOS): Depend on fdl.texi, so that it
gets distributed.
* NEWS: Mention this change.
* docs/Makefile.am (cssc_TEXINFOS): Don't depend on
config-info.text, since we don't actually use it. This prevents
us trying to rebuild the info file during "make distcheck", when
the source directory is read-only anyway.
* doc/texinfo.tex: Update to the version of texinfo.tex used in
automake-1.8. Yo avoid future compatibility issues, it makes
sense to remove this file from CVS in fact, but we won't do that
just yet.
* tests/bsd-sccs/delsfile.sh (cleanup): Also clean up ./s.foo when
we're finished.
Fix build problems caused by the fact that generating
testutils/Makefile in the top level directory produces
a Makefile that expects to use config.h, while we actually
want to use DEFS in the testutils subdirectory.
* configure.ac: Call AC_OUTPUT only once. Do not emit
testutils/Makefile.
* testutils/configure.ac: Fixed typo.
2007-06-21 James Youngman <jay@gnu.org>
* bsd/sccs.c: Updated the copyright text to be consistent with the
COPYING.bsd file (by removing the advertising clause).
* sccsfile.cc (print_subsituted_flags_list): Return true if
nothing failed (as opposed to falling off the end of the
function). This prevents spurious x-file write errors if the y
flag is unset.
* cssc.h: Require exception support to compile. This is not
strictly necessary for successful operation, but without exception
support "get s.foo s.bar" will not process s.bar if we failed on
s.foo. So exception support is required for full SCCS
compatibility.
2007-06-20 James Youngman <jay@gnu.org>
* bsd/sccs.c (unedit): Fix "sccs unedit /tmp/SCCS/s.foo will
cause ./s.foo to be unlinked" bug, by forming the g-file name
from the p-file name, as opposed to the name of the file on the
command line (because the file named on the command line gould be
either the g-file or the s-file).
* docs/BUGS: Mention the bugfix.
* tests/bsd-sccs/delsfile.sh: New test, for this bug.
* .gitignore: Ignore Emacs editor backups.
* cap.cc, val.cc: Add explicit template instantiation directives to
support compilation with GCC's -fno-implicit-templates option.
* dtbl-prepend.cc, fileiter.cc, sccs-delta.cc: ditto
* sccsfile.cc: Ditto. Also include "mylist.h" to get the method
definitions for the templates.
* .gitignore, docs/.gitignore, testutils/.gitignore: New files.
* tests/common/test-common: Work around an apparent bug in Bash
3.1.17(1) in which "$@$ac_c" expands to DEL${ac_c} when $1 is "".
That broke echo_nonl, causing some tests to fail.
2007-06-19 James Youngman <jay@gnu.org>
* unused/configs/cf-bcc.h, unused/configs/cf-djgpp.h,
unused/configs/cf-redhat.h, unused/configs/cf-sls.h,
unused/configs/cf-xenix.h, unused/configs/mf-msdos.mak,
unused/configs/mf-unix.mak, unused/Makefile.am, unused/README,
unused/_chmod.cc, unused/configs/README, unused/dosfile.cc,
unused/dummy.cc, unused/ffsync.cc, unused/fsync.cc,
unused/linux.diffs, unused/move-if-change, unused/pipe.cc,
unused/pipe.h, unused/sid_list.cc: Removed unused files.
Update or add various copyright notices.
* sccs-cgi/sccs.cgi, testutils/ekko.c, testutils/last-time.c,
testutils/realpwd.cc, testutils/seeker.c, testutils/user.c,
testutils/uu_decode.c, testutils/yammer.c, testutils/yes.c,
docs/gpl.texi, docs/texinfo.tex, sid_list.h, sl-merge.h, split.cc,
stack.h, strstr.c, sysdep.h, unget.cc, val.cc, valcodes.h,
what.cc, writesubst.cc, rel_list.h, release.h, relvbr.h,
rl-merge.cc, rmdel.cc, run.cc, run.h, sact.cc, sccs-delta.cc,
sccsdate.cc, sccsdate.h, sccsfile.cc, sccsfile.h, sccsname.cc,
sccsname.h, seqstate.cc, seqstate.h, sf-add.cc, sf-admin.cc,
sf-cdc.cc, sf-chkid.cc, sf-chkmr.h, sf-delta.cc, sf-get.cc,
sf-get2.cc, sf-get3.cc, sf-kw.cc, sf-prs.cc, sf-prt.cc,
sf-rmdel.cc, sf-val.cc, sf-write.cc, show-disp.sh, showconfig.cc,
sid.cc, sid.h, cap.cc, cdc.cc, configure.ac, cssc.h, defaults.h,
delta-iterator.cc, delta-iterator.h, delta-table.cc,
delta-table.h, delta.cc, delta.h, depcomp, dtbl-prepend.cc,
encoding.cc, environment.cc, err_no.h, except.h, fatalsig.cc,
fdclosed.cc, file.cc, file.h, filediff.cc, filediff.h,
fileiter.cc, fileiter.h, filelock.h, filepos.h, fnsplit.cc,
get.cc, ioerr.h, l-split.cc, linebuf.cc, linebuf.h, list.cc,
missing, my-getopt.cc, my-getopt.h, mylist.h, myset.h,
mystring.cc, mystring.h, pf-add.cc, pf-del.cc, pfile.cc, pfile.h,
prompt.cc, prs.cc, prt.cc, quit.cc, quit.h, rel_list.cc,
Makefile.am, admin.cc, autogen.sh, bodyio.cc, bodyio.h,
canonify.cc: Updated FSF address in source files
* COPYING: Fixed the FSF address.
* Makefile.am, remove.c, rename.c, sccsdiff.sh.in, strerror.c,
version.h: Included copyright notices in some files where these
were missing
2007-03-14 James Youngman <jay@gnu.org>
* NEWS, ChangeLog: Updated with (not very) recent changes.
* AUTHORS: Fixed typo
* get.cc, sf-get.cc: Fixed a typo in a comment
2007-03-14 James Youngman <jay@gnu.org>
* AUTHORS: Fixed typo
* get.cc, sf-get.cc: Fixed a typo in a comment
2006-07-13 James Youngman <jay@gnu.org>
* tests/prt/TODO: Updated email address
2005-12-04 James Youngman <jay@gnu.org>
* docs/cssc.texi: Corrected typo (tirivial change, from Alex Brincko)
2005-11-23 James Youngman <jay@gnu.org>
* configure.ac, sccsfile.cc, sccsfile.h, NEWS:
Tolerate leading spaces in the counts of inserted/deleted/unchanged lines in the delta table; System III seems to produce/tolerate these (see Neil Mayhew's bug report regarding a pre-1985 file)
2005-06-18 James Youngman <jay@gnu.org>
* file.cc, filelock.h, quit.cc, quit.h:
Applied Sourceforge patch 1223116, allowing CSSC to be compiled on Darwin. Darwin's version of GCC doesn't like #pragma implementation.
2005-04-06 James Youngman <jay@gnu.org>
* docs/Platforms:
Indicate that under Cygwin, CSSC must be used on filesystems mounted
in 'binary mode'.
2005-04-04 James Youngman <jay@gnu.org>
* pf-add.cc: Updated copyright year.
* pf-add.cc:
Removed some unused code (which had already been disabled with #if 0).
2005-01-22 James Youngman <jay@gnu.org>
* configure.ac: CSSC release 1.0.1
* NEWS: Better description of the problem for SourceForge bug 865422
* docs/cssc.texi: Added 2005 top copyright years.
* docs/cssc.texi: Updated timestamp.
* ChangeLog: Indicated the release of 1.0.1.
* ChangeLog: Updated change log from CVS comments.
* NEWS: Added latest news.
* docs/cssc.texi:
Ensured that the section names for cross-references which appear in
the printed output actually bear the correct title for the section
they refer to.
2004-10-17 James Youngman <jay@gnu.org>
* docs/Platforms: CSSC now builds under GCC-3.4.
* docs/cssc.texi: Updated edition/version.
* docs/cssc.texi:
Indicate that "admin -h" performs the same checks as "val" as well as
checking the checksum.
* Makefile.am, admin.cc:
Fixed SourceForge bug 1043880: admin -h should invoke val
* sf-get2.cc, tests/get/sf865422.sh:
Fixed SourceForge bug 865422: if a SID is listed in a pfile, that can force a branch
* sccsdiff.sh.in:
Fixed SourceForge bug 966010, sccs sccsdiff -r cannot have space
before revision number. We still will have similar problems
elsewhere in the suite, I suspect.
* sf-prs.cc, sf-delta.cc:
Fixed SourceForge bug 1045768: CSSC does not compile with gcc 3.4
2004-10-16 James Youngman <jay@gnu.org>
* docs/CREDITS, docs/CREDITS.short.txt: Added Yann Dirson.
2004-10-10 James Youngman <jay@gnu.org>
* ChangeLog: Updated from CVS log messages.
* README: Fixed typo
* docs/cssc.texi: Added missing full stop.
* configure.ac:
Indicate that this is once again the CVS development version.
* configure.ac: This is release 1.00.
* docs/URLs:
Added GNU FTP site URL in preparation for official 1.0 release.
* docs/TODO: Added disclaumer about the obsoleteness of the file.
* docs/tests-todo.txt:
Removed a couple of entries for tests that now exist.
* docs/Platforms: Minor updates and corrections to typos.
* README: Updated the status of the release.
* NEWS, configure.ac, myset.h, sccsfile.cc, sccsfile.h, sf-admin.cc, sf-get.cc, sf-prs.cc, sf-prt.cc, sf-val.cc, sf-write.cc, writesubst.cc, ChangeLog:
update copyright years
* docs/cssc.texi:
The file was also changed in 2003 and 2004. Hence update the
copyright years.
* docs/cssc.texi: Updated edition - to be released with CSSC 1.00!
* sf-prs.cc:
SF bug 1040827: Solaris 9's "prs" does not produce any output for the
"y" flag. Hence for compatibility nor should we.
* tests/admin/Makefile.am, tests/admin/hardlinks.sh, tests/admin/y-flag.sh, docs/cssc.texi, myset.h, sccsfile.cc, sccsfile.h, sf-admin.cc, sf-get.cc, sf-prs.cc, sf-prt.cc, sf-val.cc, sf-write.cc, writesubst.cc:
Added support for the SCCS 'y' flag - SF bug 1040827
2004-10-03 James Youngman <jay@gnu.org>
* NEWS: Updated with new news.
* bsd/sccs.c:
Fixed SourceForge bug 806715 (incompatibility of -d flag with the
"sccs print" command).
* docs/cssc.texi:
Be more specific about which version of SCO has the 'x' flag.
* docs/cssc.texi, file.cc, file.h, get.cc, my-getopt.cc, sccsfile.cc, sccsfile.h, sf-admin.cc, sf-delta.cc, sf-prt.cc, sf-write.cc:
Implemented SCO SCCS's x flag; Sourceforge bug ID 969833
2004-04-25 James Youngman <jay@gnu.org>
* tests/common/command-names:
Make sure we locate the "sccs" binary correctly now that $dir will
normally not begin with "..".
* tests/common/command-names:
Oops, make the tests work if you don't set the $dir variable.
* tests/common/command-names:
Figure out the absolute pathname of the directory containing the CSSC tools.
* depcomp: depcomp - new file required by automake
2003-12-13 James Youngman <jay@gnu.org>
* tests/what/whatbasic.sh:
Provide a more helpful error message when 'ekko' fails
* linebuf.cc, linebuf.h, sccsfile.cc:
Resolve the strchr() problem pointed out bin SourceForge patch 857193
2003-12-10 James Youngman <jay@gnu.org>
* NEWS, bsd/sccs.c, my-getopt.cc:
Some changes to eliminate compilation errors/warnings from Sun CC 5.5
* docs/CREDITS.short.txt, docs/CREDITS: Added Tom Duffy.
2003-12-09 James Youngman <jay@gnu.org>
* bsd/sccs.c, configure.ac, NEWS:
pass through more options to diff (be it GNU diff or vanilla diff)
* bsd/sccs.1:
Documented the extra options now passed to diff by "sccs diffs".
* bsd/sccs.c:
Also pass through the w option (which is not GNU diff specific).
* bsd/sccs.c:
Pass through the options aBdHpqsvy to diff (these are GNU diff options).
* bsd/sccs.c: Support "sccs diffs -u".
2003-12-08 James Youngman <jay@gnu.org>
* auxfiles/CSSC.spec.in:
Handed over "Packager" status for Red Hat to Thomas Duffy.
* auxfiles/CSSC.spec.in:
Applied SourceForge patch 856398, submitted by Thomas Duffy
* file.cc, file.h, get.cc:
Various changes as suggested by Dick Streefland, relating to the setting/clearing of the DOS archive bit and to systems which lack CONFIG_UIDs
* tests/delta/errorcase.sh:
Oops, this change should have been in 0.16alpha.pl0
* sact.cc:
Fixed SF bug 768002, mismatch in output of sact between CSSC and SCCS when only one file name is given on the command line
* sf-write.cc: Fixed SF bug 856158, compilation error on CYGWIN
2003-12-07 James Youngman <jay@gnu.org>
* ChangeLog: Brought up to date (again).
* docs/Makefile.am: make mostlyclean should delete cssc.info.
* testutils/Makefile.am:
make distclean should delete decompress_stdin.sh.
* tests/get/sf111140.sh, tests/get/sf479916.sh:
Remove test files at the end of testing.
* tests/get/gg_get_ix.sh:
Remove the working files at the end of the tests.
* ChangeLog: Brought up to date.
* docs/cssc.texi: Indicated the new version.
* configure.ac: Bumped the version number.
* NEWS: Fixed SourceForg bug 581740.
* bsd/Makefile.am, testutils/condense-valgrind.pl, file.cc, file.h, get.cc:
Honour the user's choice of umask - fixes SpurceForge bug 581740
* docs/get-spec.txt: Removed the out of date file get-spec.txt
* docs/Makefile.am: Removed getspec.txt (since it is out of date).
* NEWS:
On Red Hat Linux, info files live in /usr/share/info not /usr/info.
* auxfiles/CSSC.spec.in:
infodir has moved from /usr/info to /usr/share/info.
* quit.cc:
Fix SourceForge bug number 816679, which caused a coredump if
cleanup::~cleanup() was called before there are any entries in the
cleanup list.
* tests/bsd-sccs/driver-basic.sh, tests/bsd-sccs/sf595594.sh:
Fixed SourceForge bug 806699: Make the test work even if the user had
set $PROJECTDIR.
* NEWS, sf-get2.cc, tests/get/defsid.sh:
Make "get -e" take account of the "d" flag.
2003-05-29 James Youngman <jay@gnu.org>
* sccsfile.cc: sccs_file::sccs_file(): Ensure that this->f is NULL when
we return for mode CREATE (previously it was uninitialised).
This fixes SourceForge bug 745608.
* sf-write.cc:
CYGWIN: end_update: Only close the SCCS file if it is open (the FILE*
is not NULL). On platforms other than CYGWIN, we don't close he file
anyway.
2003-05-19 James Youngman <jay@gnu.org>
* docs/Platforms: Corrected email address for Clement T. Cole.
2003-05-18 James Youngman <jay@gnu.org>
* tests/common/test-common:
Cope with the case where "remove" is called with no arguments.
2003-05-16 James Youngman <jay@gnu.org>
* Makefile.am: Also clean "sccsdiff" for "make clean".
2003-05-05 James Youngman <jay@gnu.org>
* sf-get2.cc:
"get -e" now takes notice of the default SID when deciding the SID of the new delta.
2003-03-15 James Youngman <jay@gnu.org>
* README: Added pointer to docs/Platforms.
* docs/Platforms: Added MacOS X porting tip from Brad Crittenden.
2003-03-08 James Youngman <jay@gnu.org>
* tests/get/excl_ig_2.sh: Don't cat the s-file at the end!
* tests/get/t-option.sh:
Added test for Sourceforge bug #699318 ("get -t s.foo" when foo
contains only one SID, created by "admin -iX -r1.1.1.1 s.foo").
* sccsfile.h, sf-get2.cc:
Fixed Sourceforge bug #699318 ("get -t s.foo" when foo contains only
one SID, created by "admin -iX -r1.1.1.1 s.foo").
* sf-get2.cc: Simplified the matching code.
* sf-get2.cc:
find_requested_sid(): separated the does-this-SID-match decision from
the is-this-the-best-yet decision.
2003-03-01 james_youngman <jay@gnu.org>
* sf-write.cc, sccsfile.h:
Recognise BitKeeper files by their different checksum lines, and
accept also the BK-specific comment lines and extra flags (though
don't accept them if the file is not a BK file).
* sccsfile.cc: Updated copyright years.
* sccsfile.h, sccsfile.cc:
Recognise BitKeeper files by their different checksum lines, and
accept also the BK-specific comment lines and extra flags (though
don't accept them if the file is not a BK file).
2003-02-13 james_youngman <jay@gnu.org>
* tests/get/sf664900.sh, sf-get2.cc:
One-line fix for SourceForge bug 664900 by Darren Warner.
* configure.ac, acconfig.h:
Fix CSSC bug 650420 - warnings from autoconf/autoheader about obsolete usage
of acconfig.h file.
2002-12-08 james_youngman <jay@gnu.org>
* testutils/Makefile.am:
Include "decompress_stdin.sh.in" in the distribution.
* ChangeLog: Updated for 0.15pl0.
* configure.ac: Bumped to version 0.15pl0.
* NEWS: Added NEWS items for version 0.15pl0.
2002-11-02 james_youngman <jay@gnu.org>
* seqstate.cc, seqstate.h, sf-get2.cc, sf-get.cc:
support for ignored deltas
* tests/get/excl_ig_2.sh: added new test script
* tests/get/excl_ig_1.sh: enabled test xg6
* docs/cssc.texi:
Added section on included, excluded and ignored deltas.
* tests/get/middle-fail.sh:
Tut - use ${admin} not "admin" as a command name - make sure we are
testing the correct instance!
* tests/bsd-sccs/sf595594.sh:
Tut - use ${sccs} not sccs as a command name - make sure we are
testing the correct instance!
* delta.cc:
Indicate the presence of the -p option in the usage message.
* configure.ac:
Fixed SF bug 623164: you need to include <ctype.h> to use isdigit().
* cssc.h:
SF bug 623164: you need to include <ctype.h> to use isdigit().
* get.cc: Updated copyright year.
* autogen.sh: Recurse into subdirectories where appropriate.
* tests/common/command-names:
Corrected bug where more than one argument is passed to test (which
now justifiably complains when you do this).
2002-10-04 James Youngman <jay@gnu.org>
* auxfiles/CSSC.spec.in:
Change references to sccs.1 to sccs.1* because RPM v4 compresses all manpages.
2002-09-27 James Youngman <jay@gnu.org>
* docs/cssc.texi:
Changed all instances of @url to @uref, except where that would
produce a broken link.
* docs/cssc.texi: Updated the update timestamp.
* docs/cssc.texi:
Applied changes suggested by Timothy Bedding (SourceForge bug ID
589542).
2002-09-20 James Youngman <jay@gnu.org>
* docs/cssc.texi: Updated the "last update" time.
* docs/cssc.texi: Corrected typo.
* docs/cssc.texi: Re-ordered some paragraphs for clarity.
* docs/cssc.texi:
Explain that the line length limits apply only to lines which will end
up in the histry file - and that over-length lines already in the
history file will be correctly coped with by "get".
* docs/cssc.texi: Corrected cross-reference.
* docs/cssc.texi: Explain how to figure out which diff command is used.
* docs/cssc.texi:
Expanded the discussion of the (lack of) line length limits in CSSC.
2002-08-16 James Youngman <jay@gnu.org>
* get.cc:
If we fail to set the mode on the g-file correctly, delete it and propagate the failure information
* tests/bsd-sccs/driver-basic.sh, tests/common/command-names, get.cc:
SourceForge bug 595594 - all g-files processed after a failing file are deleted
* tests/get/middle-fail.sh:
SourceForge bug 595594 fixed - if we failed to get a previous file, all g-files processed later are deleted even if they were successful
* tests/bsd-sccs/sf595594.sh: Initial version of test.
2002-07-26 James Youngman <jay@gnu.org>
* run.cc: Updated copyright year.
* run.cc:
Fixed inappropriate boolean inversion on systems where HAVE_FORK is not defined
* testutils/configure.in, configure.in:
Removed old configure.in files - replaced by configure.ac
* testutils/COPYING, testutils/ChangeLog, testutils/INSTALL, testutils/NEWS, testutils/configure.ac, testutils/ekko.c, testutils/lndir.c, testutils/realpwd.cc, testutils/seeker.c, testutils/user.c, testutils/yammer.c, testutils/yes.c, README, configure.ac, run.cc, testutils/AUTHORS:
Updated configure.in to configure.ac - we can now use autoconf version 2.53
2002-04-07 James Youngman <jay@gnu.org>
* tests/delta/p-option.sh:
Some initial tests for the "-p" option of delta.
* NEWS: New check of link count when opening SCCS file
* docs/cssc.texi, tests/admin/hardlinks.sh, configure.in, sccsfile.cc:
It is not allowed to have hard links to an SCCS file (that is, the link count may not be greater than 1). Violating this rule now results in CSSC refusing to open that SCCS file
* scripts/rev-freq.sh: Corrected a shell syntax error
2002-04-05 James Youngman <jay@gnu.org>
* tests/admin/locks.sh, tests/admin/users.sh, tests/binary/auto.sh, tests/binary/seeking.sh, tests/common/need-prt, tests/prt/all-512.sh, tests/prt/default.sh, tests/prt/exists.sh, tests/prt/nodel.sh, tests/prt/reportmr.sh, NEWS, README, docs/cssc.texi, sf-prs.cc:
Added support for running the test suite against versions of SCCS that lack a prt program
2002-04-04 James Youngman <jay@gnu.org>
* docs/cssc.texi:
get -a now has test cases, so we no longer need to indicate that it is untested.
* get.cc, sccsfile.h, sf-get2.cc: support for the -a option of get
* sccsfile.cc, quit.h, sccsdate.cc, sf-kw.cc, sf-val.cc, sf-write.cc, admin.cc, quit.cc:
Added global function 'warning' so that we don't have to issue warnings by calling 'errormsg'
* tests/get/gg_get_ix.sh:
Removed redundant comment about tests that used to fail with CSSC (but
no longer do so).
* tests/get/optorder.sh: Fixed typo
* tests/common/test-common:
minor changes for the formatting of labels at the start of the lines of output of the tests - to preserve whitespace
* tests/get/a-option.sh: Tests for the "-a" option of "get".
2002-04-03 James Youngman <jay@gnu.org>
* configure.in:
Updated the version number to indicate that any version someone checks
out of CVS is from CVS (we use the suffix CVSDEVEL).
* configure.in:
Up-date version number to 0.14alpha.pl0, prior to making the release
* Makefile.am: Added file myset.h to the distribution
* testutils/Makefile.am:
Added some files missing from the distribution (notably mogrify.awk).
* ChangeLog: updated from log entries on other files
* docs/cssc.texi: enhancements to the sections on interoperability
* configure.in:
Added HAVE_GNU_DIFF, which indicates if the diff command to be used s GNU diff
* showconfig.cc:
Show the likely limit on the length of a line for the diff utility being used
* acconfig.h:
Added HAVE_GNU_DIFF, which indicates if the diff command to be used s GNU diff
* environment.cc:
Show the likely limit on the length of a line for the diff utility being used
* delta.cc, get.cc, tests/get/errorcases.sh:
Invalid options produce a return value of 1 (on Solaris 2.6) not 2
* testutils/compare_gets.sh:
Do not compare removes deltas - so do not pass -a to prs
2002-04-02 James Youngman <jay@gnu.org>
* NEWS: Corrected typos.
* tests/delta/options.sh:
Unknown option error results in return value of 1, not 2.
* tests/delta/errorcase.sh, sf-delta.cc:
A pre-existing d-file is not an error condition
* seqstate.cc, seqstate.h, sf-get.cc, sf-get2.cc, sf-get3.cc, tests/get/gg_get_ix.sh, tests/get/sf111140.sh:
Do includes before excludes (except in the case of command-line includes) - fixes bug reported by gerry.green@cle.philips.com
* tests/get/sf111140_full.txt: test file
* tests/get/create.sh: Extra checks as we go along.
2002-03-28 James Youngman <jay@gnu.org>
* NEWS: Updated with the latest info
* docs/TESTING: added Gerry Green
* tests/get/gg_get_ix.sh, sccsfile.h, sf-delta.cc, sf-get.cc, sf-get2.cc, sf-get3.cc, sf-prs.cc, Makefile.am:
Make sure everybody is using sccs_file::prepare_seqstate() in the same way
* tests/get/gg_get_ix.sh: new test script from Gerry Green
2002-03-26 James Youngman <jay@gnu.org>
* tests/get/errorcases.sh, docs/tests-todo.txt, get.cc:
gcov fixes - invalid SIDs for get -i and get -x
* docs/.cvsignore: Ignore cssc.info-4
* sccs-cgi/.cvsignore: Ignore Makefile.in.
* docs/tests-todo.txt, tests/delta/errorcase.sh:
Added extra 5test cases to increate test coverage
* sf-delta.cc:
If the p-file indicates a SID which is not in the SCCS file, indicate
which SID we have a problem with in the error message we produce.
* docs/tests-todo.txt: Removed todo items for the tests we've addded.
* testutils/user.c: Various enhancements for testing "delta".
* docs/cssc.texi: Comments about authorised user list
2002-03-25 James Youngman <jay@gnu.org>
* tests/delta/errorcase.sh:
Extra test cases for the authorised user list.
* sf-get3.cc: Do not use '!' exclusion for authorised user list
* sccsfile.h, sf-get3.cc, sf-get2.cc, sf-delta.cc:
delta should check that the invoking user is allowed to make deltas
* docs/cssc.texi:
Made the SCCS file flags section headings reflect the contents better
* tests/delta/errorcase.sh: initial checkin
* tests/delta/MRs.sh:
fixes to the tests - after testing against Solaris 2.6
* tests/delta/basic.sh:
Added tests for the no-id-keywords-is-fatal flag
* testutils/user.c:
added feature - 'tell me a group of which I am not a member'
* sccs-cgi/Makefile.am: initial version
* docs/tests-todo.txt: Removed the todo-items we've already done
* NEWS: We removed the -Y and -M options of delta
* Makefile.am: recurse into sccs-cgi also
* configure.in: generate sccs-cgi/Makefile in AC_OUTPUT
* val.cc: Fixed header comment which indicated what the file was for
* sccsfile.cc:
Use v_unknown_feature_warning() instead of v_errormsg() since the latter is no longer exported from quit.cc
* my-getopt.cc:
Produce usage message is the command line exhibits wrong usage of options
* tests/common/test-common: Added function rename()
* tests/delta/MRs.sh:
Extra test - should not be able to check in file without specifying an MR if the v flag is set
* tests/delta/basic.sh:
extra tests (deletion of lines, checking of -r option against p-file)
* tests/delta/n-option.sh:
remove any test files we will need to control at the start
* quit.cc, quit.h: Don't export v_errormsg as a global function
2002-03-24 James Youngman <jay@gnu.org>
* testutils/gcov-util.sh: Put the title in <title>...</title>.
* testutils/gcov-util.sh:
Define $NOW (date at which the summary was prepared).
* testutils/gcov-util.sh:
Tool for slicing and dicing the results of gcov.
* docs/tests-todo.txt:
Added list of tests to be written in tests-todo.txt
* delta.cc: Removed options -M and -Y (not in normal SCCS anyway)
* tests/delta/options.sh:
Added tests for the various command-line options of delta.
* NEWS: Brought the NEWS fie up to date with the ChangeLog file.
2002-03-23 James Youngman <jay@gnu.org>
* docs/cssc.texi: Use @option for options, not @samp.
* configure.in: spell --disable-max-line-length correctly
* sf-prs.cc:
Print sequence numbers in correct (reverse) order; don't include ignored deltas in :DI: (for Solaris 2.6 compatibility)
* docs/cssc.texi:
Documented val. Included information about differences between the various SCCS versions
2002-03-22 James Youngman <jay@gnu.org>
* tests/prs/keywords.sh: Re-enabled all the tests...
* tests/prs/keywords.sh:
Added test cases for having more than one SID in the included or
excluded SID list.
2002-03-21 James Youngman <jay@gnu.org>
* sf-prs.cc:
Backed out of the change made for previous revision - they should be
shown as seq_nos after all...
* tests/prs/keywords.sh: :Dx: and friends should emit seq_no values.
* sf-prs.cc:
For lists of included/excluded deltas, print the SID rather than the seq_no.
* myset.h, sf-delta.cc:
Only list each included/excluded delta once in each include/exclude list.
* tests/prs/keywords.sh: Added tests for more keywords.
2002-03-20 James Youngman <jay@gnu.org>
* ChangeLog: Brought up to date with new log entries.
2002-03-19 James Youngman <jay@gnu.org>
* val.cc:
Various fixes for the value returned in all sorts of validation-faulure cases
* tests/what/Makefile.am:
We have a file whatbasic.sh but no keywords.sh
* tests/common/command-names: added val
* tests/Makefile.am: New test directory, 'val'
* tests/sact/sactbasic.sh, tests/val/Makefile.am, tests/val/valbasic.sh, tests/val/y2k.sh:
reduced lines of untested code to 2083 - tests added for valand sact
* bsd/sccs.c: Fixed typos causing compilation errors
* bsd/sccs.c:
Fixed SourceForge bug 531884, compiler warning on 64-bit systems
* file.cc:
While trying to do atomic NFS file locking, sleep for a bit if we fail
to make the hard link from nfslckNNNN to z.foobar.
* sf-delta.cc, filediff.cc, filediff.h:
Fixed SourceForge bug 530969 - FILE* leak in fildiff.cc
* docs/Platforms:
Updated following testing on the SourceForge compile farm
* README: Inform reader that GNU make is probably required.
Removed the "stop press" which is now old news.
2002-03-18 James Youngman <jay@gnu.org>
* tests/what/whatbasic.sh, what.cc:
Added an extra test (test w22) in whatbasic.sh to cover the whole of the print_what() function in what.cc.
* tests/Makefile.am: Added test-what.
* docs/cssc.texi, tests/Makefile.am, tests/what/Makefile.am, NEWS, my-getopt.cc, my-getopt.h, what.cc:
Added tests for what - and therefore some bugfixes too
* tests/what/whatbasic.sh:
On the other hand, this version passes when run against Solaris 2.6...
* tests/what/whatbasic.sh:
This version passes for CSSC but has not been checked against SCCS.
* docs/Platforms:
Works on Solaris 2.6 and Debian 3.0 as well as GCC version3
* docs/patches.txt: Corrected a typo
2002-03-17 James Youngman <jay@gnu.org>
* tests/common/config-data:
Include binary file support tests on SunOS. Note that some tests are
*still* disabled on SunOS, because they still fail (e.g. the ability
to automatically revert to binary-mode when reading the initial body
from stdin).
* bsd/sccs.c:
Issue more helpful messages about the unimplemented comb and help commands.
* bsd/sccs.c: Corrected spelling error in warning message.
* bsd/sccs.c:
Since we are not includeing <strings.h> and there is not need to
depend on it, roll our own rindex() and index() functions from the
functions provided by <string.h>.
2002-03-16 James Youngman <jay@gnu.org>
* tests/prs/body.sh, tests/prs/s_foo_bd_output.txt, tests/prs/sample_foo:
Test the :BD: keyword of prs
* bodyio.cc:
valgrind-detected bug: do keyword checking on the uuencoded version of the data
* docs/cssc.texi, tests/prs/body.sh: Tests for prs -d:GB:
2002-03-10 James Youngman <jay@gnu.org>
* prompt.cc, sccsdate.cc, sccsfile.cc, sccsfile.h, sf-delta.cc, sf-prs.cc:
valgrind: don't use sccs_date(NULL) - previously we had an uninitialised variable sccs_date.second as a result of using sccs_date::sccs_date(NULL)
2002-03-04 James Youngman <jay@gnu.org>
* docs/cssc.texi:
Added glossary; spelling corrections; updated copyright years
2002-03-03 James Youngman <jay@gnu.org>
* tests/sccsdiff/rap.sh:
Fixed sourceforge bug 489311 (Locale settings cause test failure)
2002-02-25 James Youngman <jay@gnu.org>
* tests/Makefile.am, tests/sact/Makefile.am, tests/sact/sf513800.sh, tests/sact/sf513800_1.uue, tests/sact/sf513800_2.uue, sccsdate.cc:
test for Sourceforge bug sf513800.sh and a fix for the same
2002-02-23 James Youngman <jay@gnu.org>
* ChangeLog, ChangeLog.2:
Moved the changelog entries from ChangeLog into ChangeLog.2. New
changeLog entries to go into ChangeLog, and the ChangeLog.1 and
ChangeLog.2 files contain historical changelogs.
2001-12-04 James Youngman <jay@gnu.org>
* delta.cc: Fixed SourceForge bug 489005
2001-12-02 James Youngman <jay@gnu.org>
* NEWS, except.h, quit.cc, quit.h, sccsfile.cc, sccsfile.h, tests/prt/all-512.sh, tests/prt/default.sh, tests/prt/nodel.sh:
Added warning when we see an excluded delta (since we are not certain
we handle this correctly). The warnig includes a pointer tot he web
page explaining what the user should do about this.
2001-12-01 James Youngman <jay@gnu.org>
* configure.in:
bumped version - to avoid confusion with previous release
* NEWS, bodyio.cc, file.cc, file.h, filediff.cc, get.cc, sf-delta.cc, sf-kw.cc:
Fixed sourceforge bugs 480136, 481519, 481707, 484278 - all related to setuid operation, and in fact all dupliactes of each other
2001-11-29 James Youngman <jay@gnu.org>
* docs/CREDITS, sccs-cgi/sccs.cgi, sccs-cgi/sccs.cgi.text, AUTHORS:
Added Richard Kettlewell's sccs.cgi script. Updated AUTHORS and
CREDITS files appropriately.
* quit.cc:
Fixed compilation error ocurring when HAVE_EXCEPTIONS is not defined
2001-11-25 James Youngman <jay@gnu.org>
* configure.in:
Set the language back to C after doing the check for broken printf
macros in the glibc header files. (Also set up for a release).
* get.cc, sf-get2.cc, tests/common/command-names, tests/get/sf479916.sh:
Fixed sourceforge bug #479916 - get -t problem
* sccsdiff.sh.in: Corrected a syntax error.
* NEWS: Fixed SF bug 450900.
* tests/get/removed-delta.sh: Test case for SourceForge bug 450900
* delta-table.cc:
SF bug #450900 - if you try to check out a version for
editing, and the SID that would ordinary be selected exists
but is removed, we should indeed use it.
* ChangeLog: Updated with recent change log entries.
* Makefile.am, NEWS, configure.in:
Fixed debian bug #120080 (sccsdiff cannot find get iuis /usr/sccs
symlink is missing)
* sccsdiff.sh.in:
fixed Debian Bug#120080: sccs sccsdiff doesn't work (sccsdiff assumes /usr/sccs symlink exists)
* bsd/sccs.c, tests/admin/comment.sh, tests/admin/init-mr.sh, tests/admin/locks.sh, tests/admin/t-option.sh, tests/admin/users.sh, tests/prs/exists.sh, tests/prs/keywords.sh, tests/prt/all-512.sh, tests/prt/all.expected.Z, tests/prt/expected/nodel.-u, tests/prt/expected/nodel.-u-f, tests/prt/expected/nodel.-u-f-t-b, NEWS, configure.in, sf-admin.cc, sf-prs.cc, sf-prt.cc:
Brought test suite - and code - into line with Solaris 2.6 behaviour; largely changes for formatting of prt/prs output, but also a change to the behaviour of admin -fl
|