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
|
2008-07-18 David Lutterkort <dlutter@redhat.com>
* tests/root/etc/dput.cf:
Sample dput.cf for dput lens
[1837cf0f5b1d] [tip]
* AUTHORS, lenses/dput.aug, lenses/tests/test_dput.aug:
Lens for Debian's dput files
Contributed by Raphael Pinson
[3826e018503b]
2008-07-17 David Lutterkort <dlutter@redhat.com>
* src/augtool.c:
augtool: Print '(none)' when getting a path with no value
The output used to be mangled. Now it is 'path = value' if hte path
has a non-NULL value, 'path (none)' if the path exists but has a
NULL value, and 'path (o)' if an error occurred.
[bd7bcdd00ab2]
* .hgtags:
Added tag release-0.2.1 for changeset 13fdcd9bb18a
[8dba2bfc0afa]
* lenses/aliases.aug, lenses/tests/test_aliases.aug:
aliases.aug: Do not require whitespace after commas
It's perfectly fine to have an alias like 'alias: target1,target2'
Bug reported by Greg Swift
[0db7309f6571]
2008-07-16 David Lutterkort <dlutter@redhat.com>
* src/augeas.c, tests/modules/pass_ins_test.aug:
Fix insertion before the first child
Inserting a node as the new first child was completely broken.
Bug reported by Raphael Pinson.
[2846f10d64be]
* src/augeas.c, src/builtin.c, src/internal.h,
tests/modules/pass_ins_test.aug:
Add support for 'insert' in unit tests
Two new primitives 'insa' (insert after) and 'insb' (insert before)
are added so that unit tests can modify the tree through insert, as
in
test lns put str after insa label path = str2
It would be nice to kill insert with one primitive, but that would
have either required special syntax (like 'ins STR before/after
STR') or some addition to the type system to make it syntactically
reasonable.
[a090ab78da11]
2008-07-09 David Lutterkort <dlutter@redhat.com>
* src/builtin.c, tests/modules/pass_empty_put.aug:
Test that putting into an empty string works
[6a27483c0c44]
* src/get.c:
Initialize state->pos in lns_parse and lns_get
Otherwise, get and parse on an empty string will produce a 'short
iteration' error, even if the empty string is acceptable for that
lens.
[fde82628a659]
2008-07-07 David Lutterkort <dlutter@redhat.com>
* Makefile.am, build/aux/move-if-change, configure.ac,
src/Makefile.am, src/internal.h, tests/Makefile.am:
Put the default dir for lenses into DATADIR (the real fix)
Reworks 527:14602e2757dd in a way that actually works and conforms
to the GNU coding standards.
Most of this fix suggested by Jim Meyering, I only touched it up a
little (and no doubt introduced all the bugs).
[f45ac89119cd]
* src/put.c:
Check for NULL values in the put direction of store
This is now flagged as an error instead of causing a segfault.
[ef0102907692]
2008-07-03 David Lutterkort <dlutter@redhat.com>
* lenses/exports.aug, lenses/tests/test_exports.aug:
Lens for /etc/exports
[0dae0cabcd63]
2008-07-01 David Lutterkort <dlutter@redhat.com>
* NEWS, augeas.spec.in, configure.ac:
Release 0.2.1
[13fdcd9bb18a] [release-0.2.1]
* Makefile.am:
distclean-local: Do not clobber build/aux
[6812d889e795]
* .hgignore:
Suppress generated manpages
[7f6a72ec5991]
2008-06-30 David Lutterkort <dlutter@redhat.com>
* configure.ac, src/internal.h:
Put the default dir for lenses into DATADIR
Instead of hardcoding the default dir for lenses to somewhere in
'/usr', look in DATADIR - that's after all where the default lenses
are installed if DATADIR (or PREFIX) is changed.
[14602e2757dd]
* man/augparse.pod:
Man page for augparse
[e54775f752ef]
* man/Makefile.am:
Put Augeas version into footer
[3ad8d1c57130]
2008-06-23 David Lutterkort <dlutter@redhat.com>
* .hgignore, ChangeLog, Makefile.am:
Auto-generate the ChangeLog file from mercurial logs
Signed-off-by: Jeff Schroeder <jeffschroeder@computer.org> Reviewed-
by: David Lutterkort <dlutter@redhat.com>
[cd28767d190d]
2008-06-13 David Lutterkort <dlutter@redhat.com>
* lenses/grub.aug, lenses/tests/test_grub.aug:
Fix two problems in the grub lens
(1) The grub lens did not handle blank lines (2) Ubuntu uses 'quiet'
in its boot stanzas, which we didn't know about
Reported by Jason Dobies
[71fd576d8346]
* src/get.c:
Produce more helpful errors
The previous check whether we could proces the entire input was too
crude and produced the unhelpful error message "Get could not
process entire input", pointing to the start of the string, even if
the problem was much farther down the line.
With this change, error messages contain an indication to where the
error happened that is a little closer to the actual trouble spot.
[47e371f83a0f]
2008-06-12 David Lutterkort <dlutter@redhat.com>
* tests/modules/pass_switch_value_regexp.aug:
Check that we take the right branch in a union
[3831dbdd6ae8]
* lenses/sysconfig.aug:
Process /etc/sysconfig/selinux
Patch by Alan Pevec
[d6b59a3d4938]
* src/lens.c:
Fix segfault when aug_init/close are called multiple times
The way we cached the regexp '[0-9]+/' was totally botched. We now
allocate the pattern statically in memory and pin it to protect it
from being freed, ever.
Reported by Harald Hoyer
[f6f122de1bde]
2008-06-06 David Lutterkort <dlutter@redhat.com>
* src/transform.c:
Initialize out parameters
[c8ae86c46ac1]
* src/augeas.c, src/get.c, src/internal.h, src/lens.c, src/lens.h,
src/lexer.l, src/parser.y, src/put.c, src/regexp.c, src/syntax.c,
src/syntax.h, src/transform.c:
Change struct fields of type (const char *) to (char *)
There were many places where struct fields were declared (const char
*) but then used as (char *) - mostly to free them. Remove the
'const' from those fields.
I would really appreciate if somebody could look over these and make
sure I don't throw away constness in too many places. It seems
strange to declare a field as non-const, even if the string
referenced by it is never modified, and only ever free'd when the
enclosing struct is free'd.
[84ed3d061a2a]
2008-06-05 David Lutterkort <dlutter@redhat.com>
* .hgtags:
Added tag release-0.2.0 for changeset d23f95cd13f3
[51525a865e2f]
* NEWS, augeas.spec.in, configure.ac:
Release 0.2.0
[d23f95cd13f3] [release-0.2.0]
2008-06-03 David Lutterkort <dlutter@redhat.com>
* tests/augtest, tests/test-get.sh, tests/test-interpreter.sh, tests
/test-lenses.sh:
Remove bashisms from test scripts
Make tests scripts work with plain old sh; also, don't hardcode
location of Ruby interpreter to /usr/bin/ruby.
[83e38f117a8b]
* src/parser.y:
Work around a problem with Bison on FreeBSD
Bison looks for _STDLIB_H to see if stdlib.h has been included, but
the system includes use _STDLIB_H_; that makes Bison think
malloc/free have not been declared yet and it goes and does that.
gcc then complains about the duplicate declaration.
[8ce0562f1b52]
* .hgignore, Makefile.am, autogen.sh, bootstrap, configure.ac,
src/Makefile.am, src/augeas.c, tests/Makefile.am:
Infrastructure and import of gnulib modules
We do not keep the gnulib sources in our own repo. Instead,
autogen.sh now calls out to bootstrap to pull in needed files from
gnulib.
The bootstrap script was copied from libvirt.
[1beee894dc9a]
2008-06-02 David Lutterkort <dlutter@redhat.com>
* autogen.sh, configure.ac:
Use a build aux dir (in build/aux)
[f89293eacc13]
* .hgignore, autogen.sh, configure.ac, src/augeas.c, src/augparse.c,
src/augtool.c, src/builtin.c, src/fa.c, src/get.c, src/hash.c,
src/internal.c, src/lens.c, src/lexer.l, src/memory.c, src/parser.y,
src/put.c, src/regexp.c, src/syntax.c, src/transform.c,
tests/cutest.c, tests/fatest.c:
Use autoheader and generate config.h
[de4850156b97]
* configure.ac, src/builtin.c, src/internal.c, src/internal.h:
Work around lack of open_memstream on non-GNU systems
Since open_memstream is only available with glibc, wrap its use and
fall back to writing to a tempfile on other platforms.
[4cdfb3be1923]
* src/Makefile.am, src/augeas.c, src/augparse.c, src/augtool.c,
src/config.h, src/internal.h, src/memory.c, src/syntax.c,
src/transform.c:
Remove src/config.h
It was a bad idea to begin with; fold the contents into internal.h
and make room for a generated config.h
[6f1d7b6f1524]
* lenses/pam.aug, lenses/tests/test_pam.aug, tests/rec-append-
record.rb, tests/rec-ins-record.rb:
Support the @include syntax
Debian uses lines of the form '@include module' to reference other
pam configs. The official PAM docs don't mention it, but obviously
it works.
[5adc42cdd02a]
* lenses/pam.aug, lenses/tests/test_pam.aug, tests/rec-mod-field.rb,
tests/rec-rm-inner-field.rb, tests/rec-rm-tail-field.rb:
Handle trailing whitespace in pam.d; split module-arguments
[83914e8728ec]
* lenses/fstab.aug, lenses/tests/test_fstab.aug:
Allow multiple comma-separated fs types in fstab
On Debian Etch, the CDROM has fs type 'udf,iso9660'
[09d556f8ce94]
* lenses/hosts.aug, lenses/tests/test_hosts.aug:
Handle blank lines in /etc/hosts
[f42a746e85b9]
* src/syntax.c:
Fix missing ref on an info struct in syntax.c(compile_minus)
[0d73db05a2f3]
2008-05-30 Jim Meyering <meyering@redhat.com>
* tests/test-lenses.sh:
* tests/test-lenses.sh: more quotes, protect against space in
abs_srcdir
[b4893beb8a0a]
* tests/Makefile.am, tests/augtest, tests/test-get.sh, tests/test-
interpreter.sh, tests/test-lenses.sh:
don't conflate top_srcdir and abs_top_srcdir
* tests/Makefile.am: Use $(var), rather than obsolete @var@
notation. (TESTS_ENVIRONMENT): Rename LHS to match RHS to help avoid
(my) confusion: s/top_builddir/abs_top_builddir/ and
s/top_srcdir/abs_top_srcdir/.
* tests/augtest: Reflect renamings.
* tests/test-interpreter.sh: Likewise.
* tests/test-get.sh: Likewise, and remove unused top_builddir=
assignment.
* tests/test-lenses.sh: Likewise; remove unnecessary braces, add
quotes to protect against pathological $TMPDIR.
[b18df0d172a6]
2008-05-29 David Lutterkort <dlutter@redhat.com>
* tests/Makefile.am, tests/test-get.sh:
Make distcheck work again
Restore top_builddir and top_srcdir so that augtest passes during
make distcheck.
[01489ef21f1d]
* src/builtin.c:
Fix memory leak in make_exn_lns_error
[e073c9665e6c]
2008-05-29 Jim Meyering <meyering@redhat.com>
* tests/Makefile.am, tests/augtest, tests/rec-initdefault.rb, tests
/test-interpreter.sh, tests/test-lenses.sh:
Remove some absolute paths for binaries.
* tests/Makefile.am [TESTS_ENVIRONMENT]: Add a PATH definition that
lets tests invoke "augtool" and "augparse" without any absolute
prefix. Remove top_builddir and top_srcdir definitions; no longer
needed.
* tests/augtest: Remove definition of AUGTOOL. Update use.
* tests/test-lenses.sh: Likewise for AUGPARSE.
* tests/test-interpreter.sh: Likewise.
* tests/rec-initdefault.rb: Use 'augtool -n' in place of #{AUGTOOL}.
[31480646df8e]
2008-05-23 David Lutterkort <dlutter@redhat.com>
* src/get.c:
Fix use of possibly uninitialized variable
* get.c(lns_parse): initialize skel; gcc complains about possible
uninitialized use
[cc82f4515c31]
2008-05-28 David Lutterkort <dlutter@redhat.com>
* tests/Makefile.am, tests/test-get.sh:
Check that augtool reads all of tests/root/ without error
[21c06bd40579]
2008-05-23 David Lutterkort <dlutter@redhat.com>
* lenses/tests/test_yum.aug:
Add a test to check we take the right branch
This does essentially the same as the test Pass_prefix_union
introduced with cset 489:3f4414038a30, but in a real world lens.
[442c206d49d0]
* src/regexp.c:
Escape | when turning a string into a regexp
[72167ed1aafe]
* lenses/shellvars.aug, lenses/tests/test_shellvars.aug:
Add source statements in shell scripts as '.source' nodes
[46fac1a18638]
* src/lens.c:
Escape label strings when creating the key regexp for them
[2ed20dd0000d]
* lenses/shellvars.aug, lenses/tests/test_shellvars.aug:
Allow lower case characters in shell vars
[e1cb02a1d9ff]
2008-05-23 Jim Meyering <meyering@redhat.com>
* src/augeas.c:
"echo get /|augtool -n" would read one past end of malloc'd buffer
* src/augeas.c (make_path): Avoid buffer overrun.
[102278a67b93]
2008-05-23 David Lutterkort <dlutter@redhat.com>
* lenses/tests/test_hosts.aug, src/augparse.c, src/builtin.c,
src/get.c, src/lens.h, src/transform.c,
tests/modules/pass_prefix_union.aug:
Fix a major bug in the get implementation of lenses
We used to process the input from left to right, matching the
regular expressions of lenses with the input successively. That is
very wrong, in particular, it leads to lens union choosing the wrong
branch: in the union l1|l2, union would always choose l1 if l1
matched a prefix of l2.
We now process the input in a top-down fashion, splitting the string
into parts as we descend in the tree of lenses. As evidenced by the
test pass_prefix_union, that fixes the bad behavior.
Incidentally, it also uncovered another bug in the test_hosts.aug,
where a test passed, even though the string we were using did not
end with the newline that is mandatory for Hosts.record.
This change also does away with pasing flags and a FILE* for logging
details about hte parse process; they don't really make sense
anymore, nor is that behavior very useful in a library.
[3f4414038a30]
2008-05-22 David Lutterkort <dlutter@redhat.com>
* src/transform.c:
Fix use of uninitialized pointer
ERR must be initialized, since it is later passed to free_lns_error
[38c46290bfc5]
* lenses/tests/test_vsftpd.aug, lenses/vsftpd.aug,
tests/root/etc/vsftpd.conf:
Lens for vsftpd.conf
The lens is very tight, in that it only allows actual options, and
knows what kind of value each option accepts.
[60026e5ce5ce]
2008-05-21 James Antill <james@code.and.org>
* src/transform.c:
Fix for the joy that is the glibc asprintf API.
[87a1b7b06968]
2008-05-21 James Antill <james@and.org>
* src/hash.c:
Minor fix to not use bad memory.
[8797b327f295]
* src/put.c:
Remove strcat's for stpcpy's
[70c3627be7b0]
* src/internal.c:
Fix escaping strings that end in \ Fix escaping of unprintable
bytes
[44aa999b61b2]
* src/regexp.c:
Fix buffer overflow on strings ending in \
[793b5096e157]
2008-05-21 David Lutterkort <dlutter@redhat.com>
* autogen.sh:
Use glibtoolize on OSX
Patch provided by Rizwan Kassim
[47dc1f2f9525]
2008-05-21 Jim Meyering <meyering@redhat.com>
* src/augtool.c:
Make a file-scoped static array "const".
[f9ed5d7ac9b2]
2008-05-18 Jim Meyering <meyering@redhat.com>
* src/augtool.c:
* src/augtool.c (cleanpath): Don't access path[-1].
[2183d5688146]
* src/transform.c:
* src/transform.c (transform_save): Detect pre-fclose write failure.
[9f16474ccb43]
* src/internal.c:
* src/internal.c (read_file): Rewrite, plugging a file descriptor
leak.
[3ca7609ecb7b]
2008-05-16 David Lutterkort <dlutter@redhat.com>
* .hgtags:
Added tag release-0.1.1 for changeset fae07193655a
[f6ad39f818de]
* NEWS, augeas.spec.in, configure.ac:
Release 0.1.1
[fae07193655a] [release-0.1.1]
* src/Makefile.am:
Add dependency on ref.h
[8374f8ad2254]
* src/lens.c, src/lens.h, src/regexp.c, src/syntax.h, src/transform.c:
Get rid of compiled regexps earlier
After we're done with a transform, release the memory used by
compiled regexps; storage for compiled regexps accounts for the
lion's share of Augeas' memory needs.
Before this patch, augtool run against the files in tests/root/ used
more than 10MB of memory; with this patch, that is done to 250 kB
after the initial load, with a spike of about 6MB during loading.
[57c5bd2083f6]
2008-05-15 David Lutterkort <dlutter@redhat.com>
* src/syntax.c:
Misc leak fixes in the interpreter
* Do not ref the old binding in bind_type, ownership is transferred
from the caller to the new list head
* Unref the argument of an apply and the func computed in
compile_compose
* Unref the value after it is bound in the context in compile_decl
* Unref various things in define_native_intl
[d55304a4ad71]
* src/get.c:
Don't leak the key when appending dict entries
[e565de2d5b51]
* src/syntax.c, src/syntax.h:
Free the actual struct exn when freeing an exn value
Factor freeing a struct exn into free_exn; previously, the code did
not free the storage for the struct exn itself.
[2f638a27cb58]
* src/get.c:
Don't leak key/value in parse on error
[7ad4443358a7]
* src/put.c:
Do not leak the split on error
put_subtree has to free the split it computes; previously, it leaked
that if an error inside the subtree occurred.
[5281beb9ad8a]
* src/augparse.c:
Free loadpath
Although not strictly necessary, it makes it easier to run augparse
through valgrind and get meaningful results.
[69d8a9d1caf1]
* src/augeas.c:
Free path
[4ecab352c3a7]
* src/parser.y:
Don't leak SNAME
[22c806927294]
* src/builtin.c:
Free the lns_error in lens_put
[d9513f74d957]
* src/regexp.c:
Cleanly free regexp patterns; put empty_pattern into ro storage
[f184d5b6fea0]
* src/builtin.c:
Ref the returned tree
The tree that tree_set_glue and tree_rm_glue return needs to have
its ref increased, as the calling conventions for builtin functions
stipulate that the returned value is owned by the caller
[f9e72fd730eb]
2008-05-14 David Lutterkort <dlutter@redhat.com>
* src/transform.c:
Report errors more clearly in the tree
When an error happens during get/put, store additional info in the
tree: for get errors, store the position in the file where the error
occured, for put errors, the path of the node. In both cases, also
store the human-readable message.
For a file F, all this information is stored underneath
/augeas/F/error, with the value associated with /augeas/F/error
giving some indication about the kind of error encountered.
[594fc71956b9]
2008-05-13 David Lutterkort <dlutter@redhat.com>
* src/transform.c:
Report errors during put
[8a217bbcecad]
* src/put.c, tests/modules/fail_put_bad_value.aug:
Check that values match the regexp for the corresponding store
during put
[23308c7b8a7b]
* lenses/fstab.aug, lenses/tests/test_fstab.aug, tests/root/etc/fstab:
Lens and transform for /etc/fstab
The lens could be further refined by distinguishing between the
legal values in the first field (LABEL=xxx vs special file system vs
device) and by trying to model more of the vfs/option dependencies,
but that's more of a v2 feature.
[692913d849b7]
* src/put.c:
Remove bad assertions
It is perfectly legal for create_* functions to be called with a
non-NULL skeleton; that happens for example when the union
combinator puts a tree that "jumped branches", i.e. whose get used
one branch of the union, and the put uses the other branch because
of changes to the tree.
[7226242d42ab]
* src/fa.c:
Reduce the number of calls to collect
We were calling collect way too often, which was slowing things
down. Also broke collect into separate subfunctions so we can see
better when one of them becomes a bottleneck.
[fb7918bbd1eb]
* src/put.c:
Stricter skeleton instance check for del and store
Besides having the right tag, del and store match a skeleton only if
the text for that skeleton also matches their regexp.
Weaken the check for key, label, seq, and counter a tiny bit.
[723e5c104de0]
2008-05-12 David Lutterkort <dlutter@redhat.com>
* lenses/sshd.aug, lenses/xinetd.aug, src/lens.c,
tests/modules/fail_union_atype.aug:
Proper typecheck for lens unions
Check that lenses have disjoint ctypes and atypes in a union.
Fix up the existing lenses that violate that.
[c315e1618009]
2008-05-09 David Lutterkort <dlutter@redhat.com>
* src/fa.c, tests/fatest.c:
Keep re_cset_as_string from including an explicit '\0'
We use NUL delimited strings; that means we can not use a CSET
representation that mentions '\0' explicitly.
[204998489342]
* lenses/yum.aug:
Use the new '-' operator for key_re
[2d5bb9bd0088]
* src/lexer.l, src/parser.y, src/regexp.c, src/syntax.c, src/syntax.h,
tests/modules/fail_regexp_minus_empty.aug,
tests/modules/pass_regexp_minus.aug:
Add subtraction of regular expressions to the language
It is now possible to say something like
let re = /[a-z]+/ - "baseurl"
The '-' operator is only defined between regexps.
[337384391292]
* src/lens.c, src/regexp.c, src/syntax.h:
Add REGEXP_MINUS; move REGEXP_TO_FA to regexp.c
[0c20885f39f7]
* src/syntax.c:
Refactor typechecking for union/concat
The typechecking for union and concat is incredibly similar, but was
implemented with too much code duplication.
[971739035a8e]
* src/fa.c:
Store character sets as bitsets
Also clean up the definition of the bitset type and make the
bitset_* functions const correct
[d40f9133d7ca]
* src/fa.c, src/fa.h, tests/fatest.c:
Add fa_as_regexp that converts an automaton back to a regexp
During conversion from FA to regexp, our FA mutates into a
'generalized transition graph' where transitions aren't labelled
with character intervals, but with regular expressions.
There are lots of gyrations to keep the generated regexp reasonably
short (and syntactically correct)
[c07c2bc479dc]
2008-05-08 David Lutterkort <dlutter@redhat.com>
* src/fa.c:
Check for (some) allocation failures
[f7c9030bc33f]
* src/fa.c:
Reference count 'struct re' instances
[d25f369e2831]
* src/ref.h, src/syntax.h:
Split ref counting macros into separate header
[79e0026ae1f8]
* src/augeas.c, src/fa.c, src/internal.c, src/internal.h,
src/syntax.c, src/transform.c:
Remove use of bad REALLOC macro.
The old REALLOC macro caused an automatic memory leak when REALLOC
failed. Use of REALLOC_N instead also forces checking of more
allocation failures.
[d7bf796a7418]
* src/Makefile.am, src/internal.h, src/memory.c, src/memory.h:
Safer memory allocation from libvirt
[59d64822b8c4]
* src/internal.h:
Fix a rather embarrassing #ifdef problem
When __GNUC__ was not defined, a big chunk of internal.h was
suppressed that is not compiler dependent.
Also, add ATTRIBUTE_PURE macro.
[baa5bc94eefe]
* src/fa.c:
Switch to using unsigned char internally
Since we use chars as indices into arrays in some cases, it is
simpler to treat characters as unsigned. This also addresses passing
possibly signed chars to is* functions - by using unsigned char, we
avoid possible silent conversion problems when going from char ->
int.
There were also cases where we iterated over chars using a char,
which was prone to silent overflow.
[4700642d0ac0]
* src/get.c:
Fix mistaken assignments in asserts
Reported by Jeff Johnson
[37d94bb5f3f9]
2008-05-06 David Lutterkort <dlutter@redhat.com>
* src/hash.c:
Cleaner way of turning off expensive asserts
Avoid littering everything with #ifdef's, define an
'expensive_assert' instead that expands to nothing unless
HASH_DEBUG_VERIFY is defined.
Patch by Jim Meyering
[33d07a766d22]
* augeas.spec.in:
Small fixes to the specfile
Suggested by Michael Schwendt
[1ff80ded7091]
2008-05-05 David Lutterkort <dlutter@redhat.com>
* lenses/tests/test_xinetd.aug, lenses/xinetd.aug,
tests/root/etc/xinetd.conf, tests/root/etc/xinetd.d/cvs,
tests/root/etc/xinetd.d/rsync:
Lens and transform for xinetd.conf
[1fc53b95ee8d]
* src/lens.c, tests/modules/pass_iter_key_union.aug:
Enclose the regexp for a key in (..) before adding a /
[3aac4ca5d0af]
* src/augeas.c:
Properly determine if segment needs qualifier
For segments with label NULL, we didn't qualify the first sibling
with the NULL label since we were comparing NULL to the result of
seg_label, which was "(none)"
[050726209f9d]
* src/augeas.c:
Be more consistent in how NULL labels are printed
[e68744ad2a0b]
* src/hash.c:
Suppress assert of hash_verify
Doing the assert(hash_verify(hash)) at various places in hash.c is
very expensive and slows things down considerably when assertions
are turned on.
Rather than turning assertions off globally, only do the hash_verify
asserts when they are explicitly requested by defining
HASH_DEBUG_VERIFY
[3a8d71e50948]
* src/fa.c:
Do not minimize freshly created regexps
The minimization imposes a serious performance penalty, and is
generally not needed.
This also exposes a bug in fa_overlap; for acceptToAccept to work
properly, it needs to be passed a deterministic automaton.
[3f3b57d37d78]
* src/lens.c:
Fix containment check
Checking for FA2\FA1 being empty was plain silly; this check is a
little better, but still not the correct disjointness check.
[65fb6042de24]
2008-05-02 David Lutterkort <dlutter@redhat.com>
* augeas.spec.in:
Spec file fixes
[12a89085ff03]
2008-05-01 David Lutterkort <dlutter@redhat.com>
* .hgtags:
Added tag release-0.1.0 for changeset c032a957c316
[7dcf8786f816]
* NEWS, augeas.spec.in, configure.ac:
Version 0.1.0
[c032a957c316] [release-0.1.0]
* src/syntax.h:
Rename parameter 'glob' to 'glb'
gcc on RHEL4 gets confused and thinks that that shadows the global
'glob' function.
[9434719d2686]
2008-04-30 David Lutterkort <dlutter@redhat.com>
* lenses/sysconfig.aug:
Process lots of files in /etc/sysconfig
Load all those shell-script style config files from /etc/sysconfig
using the generic Shellvars lens.
Ultimately, it would be better if we definedfor each of them which
variables are actually going to be looked at (together with some
restrictions on possible values)
[4efab72b474d]
* tests/root/etc/sysconfig/atd, tests/root/etc/sysconfig/authconfig,
tests/root/etc/sysconfig/autofs, tests/root/etc/sysconfig/clock,
tests/root/etc/sysconfig/cpuspeed, tests/root/etc/sysconfig/crond,
tests/root/etc/sysconfig/crontab,
tests/root/etc/sysconfig/firstboot, tests/root/etc/sysconfig/grub,
tests/root/etc/sysconfig/hsqldb, tests/root/etc/sysconfig/httpd,
tests/root/etc/sysconfig/hw-uuid, tests/root/etc/sysconfig/hwconf,
tests/root/etc/sysconfig/i18n, tests/root/etc/sysconfig/init,
tests/root/etc/sysconfig/iptables-config,
tests/root/etc/sysconfig/irda, tests/root/etc/sysconfig/irqbalance,
tests/root/etc/sysconfig/kdump, tests/root/etc/sysconfig/kernel,
tests/root/etc/sysconfig/keyboard, tests/root/etc/sysconfig/kudzu,
tests/root/etc/sysconfig/libvirtd, tests/root/etc/sysconfig/lircd,
tests/root/etc/sysconfig/lm_sensors, tests/root/etc/sysconfig/nasd,
tests/root/etc/sysconfig/netconsole,
tests/root/etc/sysconfig/netdump_id_dsa.pub,
tests/root/etc/sysconfig/network, tests/root/etc/sysconfig/network-
scripts/ifcfg-br0, tests/root/etc/sysconfig/network-scripts/ifcfg-
eth0, tests/root/etc/sysconfig/network-scripts/ifcfg-lo,
tests/root/etc/sysconfig/network-scripts/ifcfg-wlan0,
tests/root/etc/sysconfig/nfs, tests/root/etc/sysconfig/ntpd,
tests/root/etc/sysconfig/prelink, tests/root/etc/sysconfig/puppet,
tests/root/etc/sysconfig/readonly-root,
tests/root/etc/sysconfig/rsyslog, tests/root/etc/sysconfig/samba,
tests/root/etc/sysconfig/saslauthd,
tests/root/etc/sysconfig/smartmontools,
tests/root/etc/sysconfig/spamassassin,
tests/root/etc/sysconfig/sysstat,
tests/root/etc/sysconfig/sysstat.ioconf, tests/root/etc/sysconfig
/system-config-securitylevel, tests/root/etc/sysconfig/system-
config-users, tests/root/etc/sysconfig/vncservers,
tests/root/etc/sysconfig/wpa_supplicant,
tests/root/etc/sysconfig/xend, tests/root/etc/sysconfig/xendomains:
Test files for various /etc/sysconfig files
The next commit will add a lens for handling shell var style files
in /etc/sysconfig. These are simply test/sample files. No
functionality.
[ec009c12e6e0]
* lenses/ifcfg.aug, lenses/shellvars.aug, lenses/tests/test_ifcfg.aug,
lenses/tests/test_shellvars.aug:
Refactor ifcfg.aug
This puts the bits that are generally useful for processing
/etc/sysconfig files into shell.aug
[00e0e76f8ac1]
2008-04-30 Jim Meyering <meyering@redhat.com>
* src/augtool.c:
check for a few failed memory allocations
* src/augtool.c: check for a few failed memory allocations
[50e29b6a0120]
2008-04-30 Harald Hoyer <harald@redhat.com>
* augeas.spec.in:
do ldconfig in post/postun of the libs subpackage
[7c500ac8934a]
2008-04-28 David Lutterkort <dlutter@redhat.com>
* src/augeas.c:
Free the value when freeing a tree node
[484c35e57409]
* src/augtool.c:
Plug another memory leak
[57ab4b8c1b48]
2008-04-25 David Lutterkort <dlutter@redhat.com>
* src/augeas.c, tests/get-root.rb:
Fix segfault when aug_get was passed a "/"
In that case, make_path returns NULL, which must be checked.
The bigger question, why "/" is not a valid path is a little more
subtle: the tree is really edge-labeled, not node-labeled, i.e. a
label applies to the edge going from a parent to its child, but root
has no parent, and therefore "/" does not really make sense.
[336a984454ee]
* TODO, lenses/tests/test_yum.aug, lenses/yum.aug:
Split multiple baseurl's in a yum file into multiple baseurl nodes
With this, the schema for yum config files may now contain nodes
like { "section" ... other key/value pairs ... {
"baseurl" = "url1" } { "baseurl" = "url2" } ... {
"baseurl" = "urlN" } ... other key/value pairs ... }
Note that the baseurl nodes have to be consecutive; otherwise, put
will fail.
[07914400e85c]
2008-04-24 David Lutterkort <dlutter@redhat.com>
* src/put.c, tests/modules/pass_union_select_star.aug:
Fix lens selection in union
The logic in put to select the appropriate branch in unions got it
wrong if the first branch matched the empty word, because applies
only checked that the atype for the sublens matched some of the
tree. It has to check for a complete match of its tree.
This change fixes that and adds a test to demonstrate the problem.
[0f201c77bec5]
* src/lens.c, src/lens.h, tests/modules/pass_lens_plus.aug:
Fix ref counting error in lns_make_plus
We burnt the passed-in ownership of L when constructing STAR; also,
since we unref STAR at the end, we need to take ownership of
STAR->LENS when constructing the concat of L and STAR->LENS
[ffcd7c0fe252]
* src/fa.c:
* src/fa.c (string_extend): Handle realloc failure.
Patch by Jim Meyering
[7e13b29c1a1b]
* AUTHORS, NEWS:
Update AUTHORS/NEWS
[612f78d5362f]
* lenses/aptsources.aug, lenses/tests/test_aptsource.aug,
tests/root/etc/apt/sources.list:
Processing of Apt's sources files
Contributed by Dean Wilson
[b2e689305c33]
* augeas.spec.in:
Make sure install preserves timestamps
Avoids getting into trouble with the .aug files in augeas-libs on
multilib when installing more than one arch.
See http://fedoraproject.org/wiki/PackagingDrafts/MultilibTricks
[6d7e022a6655]
* AUTHORS, NEWS, README, autogen.sh, configure.ac, doc/bcprules.sty,
doc/cutest-license.txt, doc/etc.txt, doc/examples.txt,
doc/lenses.tex, doc/unambig.tex, lenses/grub.aug, lenses/ifcfg.aug,
lenses/sshd.aug, lenses/tests/test_aliases.aug,
lenses/tests/test_grub.aug, lenses/tests/test_hosts.aug,
lenses/tests/test_ifcfg.aug, lenses/tests/test_inittab.aug,
lenses/tests/test_pam.aug, lenses/tests/test_sshd.aug,
lenses/tests/test_yum.aug, lenses/yum.aug, src/augeas.c,
src/augtool.c, src/fa.c, src/get.c, src/hash.c, src/internal.c,
src/lens.c, src/parser.y, src/put.c, src/regexp.c, src/syntax.c,
src/transform.c, tests/aliases-add-value.rb, tests/aliases-change-
value.rb, tests/augtest, tests/cutest.c, tests/cutest.h,
tests/fatest.c, tests/ini-yum-newkey.rb, tests/ini-yum-newsec.rb,
tests/modules/pass_let_exp.aug, tests/rec-initdefault.rb, tests/rec-
ins-record.rb, tests/root/etc/inittab,
tests/root/etc/ssh/sshd_config, tests/sshd-add-acceptenv.rb:
Remove trailing whitespace from the end of lines
No functional change, only formatting.
[bb44f40d86f2]
2008-04-23 David Lutterkort <dlutter@redhat.com>
* src/augeas_sym.version:
Remove aug_exists - it does not exist anymore
[95797707c33c]
* doc/emit.txt, doc/grammar.txt, doc/httpd.aug:
Delete old, outdated notes
[d91453ee1b58]
* tests/root/etc/yum.repos.d/fedora-updates.repo,
tests/root/etc/yum.repos.d/fedora.repo:
Some repo files for yum
[88a120a91f5d]
* TODO:
Add todo file for low-level tasks that don't make sense on the
website
[787df5744b39]
* AUTHORS, augeas.spec.in:
Split libraries into a -libs package
This also includes the files in /usr/share/augeas, since they are
read by the library and control how configuration files are
processed.
Patch provided by Harald Hoyer
[a2f7118fb348]
* augeas.spec.in:
Include the augtool manpage as doc in the RPM
[80d3062bde00]
* src/augtool.c:
Don't die on NULL entries in args
There is no guarantee that parseline will fill all of args with
strings, empty or otherwise; chk_args needs to be prepared that any
entry in args can be NULL.
Also, parseline initializes all args as NULL now to guard against
garbage pointers accumulating from previous uses.
[19b339660b2f]
* src/augtool.c:
Don't complain about missing optional args
For example, both 'print' and 'print PATH' are legal. Make sure we
accept either.
[e431614d7257]
* src/augtool.c:
Properly handle lines with spaces
The lines read in through readline can now have spaces in their
arguments, if those arguments are enclosed in single or double
quotes.
[389e37bd7e9b]
* src/augtool.c:
Revised help texts
[2936c4eecef8]
* Makefile.am, configure.ac, man/Makefile.am, man/augtool.1,
man/augtool.pod:
Man page
Provided by Dean Wilson
[bf7d90c4720c]
2008-04-22 David Lutterkort <dlutter@redhat.com>
* src/syntax.c:
Fix two memory leaks in the interpreter
[9ab8da9efa06]
* src/augeas.c, src/transform.c:
Plug more memory leaks
[874f83b704af]
* src/fa.c:
Fix memory leak from not freeing hash table entries
[5fa762054266]
* src/transform.c:
Clean up the error path in load_file; free the loaded text in
transform_load
[f138c0788c0d]
* src/internal.c, src/internal.h:
Use fread_file_lim to read entire files
The function is taken verbatim from libvirt's util.c, and due to
show up in gnulib soon.
Also, make read_file return a char * instead of the silly const char
*.
[27642bf88837]
* src/fa.c:
Check the return value from hash_create
[c156b215666d]
* src/augeas.c, src/internal.c, src/internal.h:
More const-correctness fixes
Patch provided by Jim Meyering
[3ca240d8fef9]
* tests/root/etc/grub.conf:
File needed for running the tests
[75d79b7bba69]
* lenses/ifcfg.aug, lenses/tests/test_ifcfg.aug:
Stick more closely to what the shell accepts as assignments
[9ee43aafd440]
* src/internal.c, tests/modules/pass_quote_quote.aug:
Properly escape/unescape quotes in strings
Patch provided by Alan Pevec
[14427a0e08be]
2008-04-21 David Lutterkort <dlutter@redhat.com>
* NEWS:
Updated for 0.0.8 and upcoming 0.1.0 release
[dbb2e76ab038]
* src/augeas.c, src/augeas.h, src/augtool.c:
Remove aug_exists from public API
aug_get now combines the functionality of the old aug_exists and
aug_get calls, so that callers can retrieve a value and check
whether a path expression matches exactly one node in a single call.
[d67f4b412550]
* src/transform.c:
Make creation of new files work
When a subtree is created that corresponds to a brandnew file,
create the underlying file properly.
[c5e1a3aae036]
* src/augeas.c:
Propagate failure of transform_save up
[f79a82a6bf14]
* acinclude.m4, src/augeas.c, src/builtin.c, src/get.c,
src/internal.c, src/lens.c, src/put.c:
Sync compiler warnings with latest from libvirt
This should avoid build failures seen on Debian, caused by
-fstack-protector
Also fix build failure caused by addition of -Wformat-security
[5cc9b5e333b0]
* AUTHORS:
Mention people who sent patches
[33f59a598f2f]
* lenses/ifcfg.aug, lenses/tests/test_ifcfg.aug:
Parse network configs in /etc/sysconfig/ifcfg-*
Patch provided by Alan Pevec
[4626a17c7019]
* src/augeas.c:
Don't mark ROOT for MAKE_PATH as const - it's not always true
[73811a93b35f]
* src/internal.c:
Cap file reads (arbitrarily) at 32MB
[1155cc37a071]
* src/internal.c, src/internal.h, src/transform.c:
Don't ever try to read a directory
Suggested by Jim Meyering.
[944b7ecd8740]
* src/augeas.c, src/augeas.h, src/internal.h:
Return int from aug_print to indicate errors
Check for failures during printing and return an indication whether
printing succeeded or not.
[a0a65e2120b9]
* src/augeas.c, src/augeas.h, src/augparse.c, src/augtool.c,
src/internal.h, src/syntax.c:
Don't hide pointer in typedef; const correctness
The type for the Augeas handle is now called 'augeas' insteda of
'augeas_t', and is a struct, not a pointer to a struct.
Mark the places where the passed-in struct augeas is readonly in the
API.
Patch provided by Jim Meyering
[7c4b777aad4c]
* src/augeas.h, src/config.h, src/fa.h, src/internal.h, src/lens.h,
src/list.h, src/syntax.h:
Change names of macros used to guard against double-inclusion
Change the names from __NAME_H to NAME_H_ since __* macros are
reserved.
Suggested by Jim Meyering.
[6959b88425fa]
* src/augeas.c, src/augeas.h, src/augparse.c, src/augtool.c,
src/builtin.c, src/config.h, src/fa.c, src/fa.h, src/get.c,
src/internal.c, src/internal.h, src/lens.c, src/lens.h, src/list.h,
src/put.c, src/regexp.c, src/syntax.c, src/syntax.h,
src/transform.c:
Add "2008" to the copyright in the headers
[49a8ecee8784]
2008-04-19 David Lutterkort <dlutter@redhat.com>
* augeas.spec.in, configure.ac, src/Makefile.am, src/fa.c, src/hash.c:
Remove dependency on glib and use kazlib's hash table instead
The dependency on glib was only there for the hash tables used by
libfa. Rather than requiring all of glib just for that, use the hash
table implementation in hash.[ch] taken from kazlib.
[6743bba8c27e]
2008-04-18 David Lutterkort <dlutter@redhat.com>
* src/hash.c, src/hash.h:
Hashtable from Kazlib 1.20
Available from http://users.footprints.net/~kaz/kazlib.html
[c13de0c308a5]
* src/put.c, src/syntax.c:
Abort if failing assertions are not used
[f838a894e04f]
2008-04-19 David Lutterkort <dlutter@redhat.com>
* src/augeas_sym.version:
Remove pathsplit symbol
[d9a199a22bbe]
2008-04-16 David Lutterkort <dlutter@redhat.com>
* .hgtags:
Added tag release-0.0.8 for changeset cb00aa18e518
[5d7312241cf0]
* configure.ac:
Release 0.0.8
[cb00aa18e518] [release-0.0.8]
* src/put.c:
Remove unused function
[0801a2ebc4cd]
* Makefile.am:
Install lens tests in lenses/tests/ not lenses/
[c85c83c6701e]
* src/builtin.c:
Use the right path expression to print the whole tree
[ff6576e8698c]
* src/builtin.c:
Don't segfault when a test fails without producing any tree
[3733e1338f4c]
2008-04-15 David Lutterkort <dlutter@redhat.com>
* lenses/grub.aug, lenses/tests/test_grub.aug, tests/grub-rm-entry.rb:
Call the node for a boot entry 'title'
[dd43c041b9ae]
2008-04-14 David Lutterkort <dlutter@redhat.com>
* lenses/aliases.aug, lenses/hosts.aug, lenses/inittab.aug,
lenses/tests/test_aliases.aug, lenses/tests/test_hosts.aug, tests
/aliases-add-value.rb, tests/aliases-change-value.rb, tests/rec-
append-record.rb, tests/rec-hosts-add.rb, tests/rec-hosts-reorder-
new.rb, tests/rec-hosts-reorder.rb:
Remove the use in sequences in some places
Where indentation isn't important, we can flatten and simplify the
tree by not using seqs. Instead of something like aliases/1,
aliases/2, ... we now have alias[1], alias[2] etc.
[26c9924bcd54]
* lenses/tests/test_aliases.aug, lenses/tests/test_hosts.aug,
lenses/tests/test_inittab.aug, lenses/tests/test_pam.aug,
lenses/tests/test_sshd.aug, src/get.c, tests/aliases-add-value.rb,
tests/aliases-change-value.rb, tests/rec-hosts-add.rb, tests/rec-
hosts-reorder-new.rb, tests/rec-hosts-reorder.rb, tests/rec-ins-
record.rb, tests/rec-mod-field.rb, tests/rec-rm-inner-field.rb,
tests/rec-rm-record.rb, tests/rec-rm-tail-field.rb:
Start sequences at 1, in symmetry with the element[N] counting
[3b8578117e06]
* src/augeas.c, src/get.c, src/internal.h, src/parser.y:
Consolidate tree allocation into one make_tree function
[65026cce877b]
* src/augtool.c, tests/rec-hosts-add.rb, tests/rec-ins-record.rb:
Change the ins syntax to support insert before/after
This reflects the change to the aug_insert API
[acbd794e80f4]
* src/augeas.c:
Handle searching for the last() element properly
path_first didn't find anything when looking for 'element[last()]'
[d7c76e2f9348]
* lenses/grub.aug, lenses/tests/test_grub.aug, tests/grub-change-
default.rb, tests/grub-rm-entry.rb:
Process grub.conf
[2760d1b0b6c4]
* src/augeas.c:
Don't delete too many siblings
When a path specified a node that had siblings with the same name,
tree_rm was deleting that node and all the siblings after it
(because the name label[3] would ssuccessively refer to its later
siblings as label[3] was deleted)
Now, first generate a list of nodes to delete before removing
anything.
[c3e5da162a94]
* tests/modules/pass_subtree_growth.aug:
Fix put test - it was checking for hte wrong result
[9096633f9a1e]
* src/augparse.c, src/syntax.c:
Running a failing test fails loading the whole module
[830d8e37feef]
2008-04-11 David Lutterkort <dlutter@redhat.com>
* src/augeas.c, src/augeas.h, src/augtool.c, src/builtin.c,
src/internal.h, src/syntax.c, tests/rec-hosts-add.rb, tests/rec-
hosts-rm-hosts.rb, tests/rec-ins-record.rb, tests/sshd-add-
acceptenv.rb:
Add path expressions allowing XPath-like path matching
Path expressions passed in through the public API can now contain
indices to denote a specific sibling (including [last()]) amongst
siblings with multiple labels, and use '*' to match nodes with any
label.
Syntax and semantics follow XPath.
[9cda575db1c4]
* tests/test-lenses.sh:
Run all tests - don't abort after the first failure
[a063058dd69a]
2008-04-10 David Lutterkort <dlutter@redhat.com>
* src/augeas.c:
Escape values and enclose them in quotes when printing
[f9dd88565bdd]
* tests/augtest:
Typecheck only on the first test
It's enough to pass -c to augtool on the first test we run; doing it
again in later tests is completely redundant and just slows the test
run down.
[037bd77ed5ce]
2008-04-09 David Lutterkort <dlutter@redhat.com>
* src/builtin.c, tests/modules/fail_xform_orphan_value.aug:
Complain if a transform is built from a lens orphaning a key/value
Such a transform would lose information when applied and can't be
valid. Ideally, this check would be in the typechecker, but requires
dependant types, too much of a complication right now.
[76fab5a22ec3]
* lenses/util.aug, src/get.c, src/lens.c, src/lens.h, src/put.c,
tests/modules/fail_multi_store_concat.aug,
tests/modules/fail_multi_store_iter.aug:
Clean up some confusion around the semantics of store
Store does not create a tree; instead it puts a value in place where
the enclosing subtree will find it.
During lens building, there is now a check to make sure the key and
value are set in at most one place in each subtree. Ideally, this
check would happen in the typechecker, but it would require that we
parametrize the lens type, considerably complicating matters.
[10b8d1338c43]
* src/builtin.c, src/get.c, src/lens.h, src/transform.c:
When get encounters an error during a test, include hte tree in the
exn
lns_get now returns a tree even if the full input was not consumed.
To check whether get succeeded, the ERR parameter needs to be
checked.
[329a01df2eff]
* README:
Update README
[f8c93b49f8b6]
* spec/aliases.aug, spec/cmfm.aug, spec/hosts.aug, spec/inittab.aug,
spec/pairs.aug, spec/pam.aug, spec/sshd.aug, spec/yum.aug,
tests/grammars/accept/expr.aug, tests/grammars/accept/inistyle.aug,
tests/grammars/accept/inittab.aug,
tests/grammars/accept/records.aug, tests/grammars/accept/sshd.aug,
tests/grammars/reject/action-rule-ref.aug, tests/grammars/reject
/duplicate-action-field.aug, tests/grammars/reject/duplicate-action-
group.aug, tests/grammars/reject/duplicate-store.aug,
tests/grammars/reject/missing-token-default.aug,
tests/grammars/reject/mutual-recursion.aug, tests/grammars/reject
/store-out-of-tree.aug, tests/grammars/reject/undefined-field.aug,
tests/grammars/reject/useless-enter.aug:
Remove 'spec' files and tests that don't make sense any longer
[f63ecd0f2577]
* tests/test-interpreter.sh, tests/test-lenses.sh:
Fail test scripts on _any_ unexpected error
[ea5f4de07184]
* Makefile.am:
Distribute lens tests
[f5b3fb04d072]
* lenses/util.aug:
Suppress .rpmnew/save files
[eff1fde79ca3]
* src/lens.c, src/lens.h, src/syntax.c, src/try, tests/augtest:
Obey AUG_TYPE_CHECK flag
Do not do the expensive lens type checks if AUG_TYPE_CHECK is not
set. Run augtool with -c in tests to ensure tests do type checks.
[bbc09fe0cbcb]
* tests/Makefile.am, tests/aliases-add-value.rb, tests/aliases-change-
value.rb, tests/augtest, tests/ini-yum-change.rb, tests/ini-yum-
newkey.rb, tests/ini-yum-newsec.rb, tests/ini-yum-rmkey.rb, tests
/rec-append-record.rb, tests/rec-hosts-add.rb, tests/rec-hosts-
reorder-new.rb, tests/rec-hosts-reorder.rb, tests/rec-hosts-rm-
hosts.rb, tests/rec-hosts-rm.rb, tests/rec-initdefault.rb, tests
/rec-ins-record.rb, tests/rec-mod-field.rb, tests/rec-rm-inner-
field.rb, tests/rec-rm-record.rb, tests/rec-rm-tail-field.rb, tests
/sshd-add-acceptenv.rb:
Update augtool round-trip tests and add them to 'make check'
Update the tests to the new layout of the tree.
augtest allows marking tests to skip (by putting 'skip=true' into
the test) and sets the exit status properly so that 'make check'
will fail if one of the augtool tests fails
[3c6ff0978c3b]
* src/augeas.c:
Fix underallocation
[29ff100db829]
* src/augeas.c:
Only attempt to save if there are dirty files
[ba5f9a0eda19]
* src/transform.c:
Reread the original file from the same root on save
[7683a87ae020]
* src/augeas.c:
Pass the children of the right tree
[93575aea477b]
* src/augeas.c, src/transform.c:
Fix some errors that made aug_save fail
[baf934bd2f0d]
* src/augeas.c:
Mark a freshly loaded tree as clean
[d857b6ae9e52]
* src/augeas.c, src/builtin.c, src/get.c, src/put.c, src/regexp.c,
src/syntax.c, src/transform.c:
Check the return value of asprintf
Handling of asprintf failures (and allocation failures in general)
needs a lot more work.
[e1bc8fd8d0f4]
* doc/lenses.tex:
Small touchup - needs much more work
[408010429b9f]
* src/syntax.c, tests/modules/fail_self_ref_module.aug,
tests/modules/pass_self_ref_module.aug, tests/test-interpreter.sh:
Fix segfault if a qualified name references the module it is in
Now explicitly referencing the enclosing module works properly: if
the name is already defined locally, everything works, and if it is
not, an error is produced.
[4b526b554c4c]
2008-04-08 David Lutterkort <dlutter@redhat.com>
* src/lens.c, tests/modules/fail_concat_atype.aug,
tests/modules/fail_iter_atype.aug:
Typecheck the atype of concat and iter
[4aeed9dccc1c]
* src/lens.c, tests/modules/fail_union_atype.aug:
Typecheck the atype of union
[8deb52a74f8a]
* src/lens.c, tests/modules/fail_shadow_union.aug:
Change the typecheck on union
Typecheck unions l1|l2 less strictly (and less annoyingly) by
requiring that l2 has a chance of ever being used, and not the
stricter criterion of disjoint ctypes for l1 and l2
[d35b357e25cb]
* lenses/inittab.aug, lenses/sshd.aug, lenses/tests/test_inittab.aug,
lenses/tests/test_sshd.aug:
Port of the lenses for inittab and sshd_config tothe new syntax
[bcd047adec54]
* src/syntax.c, src/syntax.h:
Curb the repeated printing of exceptions
[9002ce7531f3]
* src/lens.c:
Clearer error message
[370687f14605]
* lenses/pam.aug, lenses/tests/test_pam.aug:
Processing of pam.d
[5391e24900c0]
* lenses/hosts.aug, lenses/util.aug:
Pull some useful space deleters into Util
[520bb3c2e325]
* tests/modules/pass_let_exp.aug:
Check that let expressions work
[df09e13b8f5f]
* src/syntax.c:
Fix problem in concating filters
The check whether we fully own a filter in compile_concat, and
therefore can modify it destructively, was wrong. Besides holding
the only reference to the filter, we also need to be holding the
only reference to the value wrapping the filter.
[7297eeaf57c9]
* lenses/aliases.aug, lenses/hosts.aug:
Mark hosts and aliases for autoloading
[418d692e5072]
* src/try:
Load from the new ../lenses dir
[22c9e0a81e58]
* src/augeas.c, src/internal.h, src/syntax.h, src/transform.c:
Obey setting of an explicit root directory
[ae147f03b018]
* src/augtool.c:
Don't segfault when there is no filter arg for a match
Before, running "augtool match '/augeas/files/*/error'" would result
in a segfault. Now it prints all matching entries, regardless of
their value.
[af072f61035b]
* lenses/tests/test_yum.aug, lenses/yum.aug:
Handle continuation lines; more thorough tests
[c7d7831bbaf1]
* src/builtin.c, src/lens.c, src/lens.h,
tests/modules/fail_key_slash.aug,
tests/modules/fail_label_slash.aug:
Check that labels and keys do not contain a '/'
We rely on that fact in various places when handling paths; '/' is
the separator of path components and can never appear in a path
component.
[c49459bcdbc1]
* src/augtool.c:
Print a newline on EOF
[8d1b94f82482]
* lenses/yum.aug, src/augeas.c, src/internal.h, src/lexer.l,
src/parser.y, src/syntax.c, src/syntax.h, src/transform.c:
Autoloading of files for augtool
Autoload is indicated by putting a 'autoload ...' statement as the
first expression in a module. Currently, there can only be one
autoload; the identifier mentioned in the autoload must be defined
in the enclosing module.
[59fb37a55915]
2008-04-07 David Lutterkort <dlutter@redhat.com>
* lenses/aliases.aug, lenses/hosts.aug, lenses/util.aug,
lenses/yum.aug, src/builtin.c, src/syntax.c, src/syntax.h,
src/transform.c:
Builtins for filters and transforms
Three simple builtins to construct transforms:
- incl : string -> filter includes all files matching a glob
- excl : string -> filter -> filter excludes all files matching a glob
- transform: lens -> filter -> transform
[8a9b7a670ee3]
2008-04-08 David Lutterkort <dlutter@redhat.com>
* src/lens.c:
Implement free_lens
[cad7c96ec053]
2008-04-07 David Lutterkort <dlutter@redhat.com>
* lenses/tests/test_yum.aug, lenses/yum.aug:
A lens for yum
[270831bfd011]
* src/syntax.c:
Fix bad free
[eeb12b2a2092]
* lenses/hosts.aug, lenses/tests/test_hosts.aug, lenses/util.aug:
Add Util.split
[1aac1d0d9ccd]
* src/lexer.l, src/parser.y, src/syntax.c, src/syntax.h,
tests/modules/pass_subtree_growth.aug:
Local let expressions
Add syntax for let a = let b = exp in exp
[278a0f88bba6]
* src/syntax.c:
Plug two more memory leaks
- require_exp_type is sometimes called with a term that already has
a type. Don't typecheck such terms again
- compile_compose should not run the full typechecker on the closure
it is building, since parts of it have been typechecked already.
Instead, manually create types for the new terms. Also, don't
evaluate the subexpressions since their values are not used at all
[4ef54de30f35]
* src/builtin.c:
Add a 'gensym' builtin
[ee180e9372e1]
* src/augeas.c, src/augparse.c, src/syntax.c, src/syntax.h:
More ref ocunting fixes
- aug_close now releases the list of modules
- compile_bracket cleans up the arg
- augparse closes the augeas connection, mostly so that we can see
leaks in valgrind better
[0b695da9130e]
2008-04-04 David Lutterkort <dlutter@redhat.com>
* src/syntax.c, src/syntax.h:
Fix major brainfart in ref counting lists
The way lists were reference counted (and particularly unref'd) was
just plain stupid wrong. A list 'next' pointer is no different from
any other pointer when it comes to ref counting.
[9c3c732f70ea]
* src/put.c:
Initialize *err properly, even if there is no tree
[c3090d8a6db0]
* src/get.c, tests/modules/pass_subtree_growth.aug:
Fix bug with nested subtrees
There was no clear indication if a subtree was a leaf (and should
therefore not grow any tree returned by its child) or was an
interior subtree (so that any returned tree needs to become a child
of a new tree)
[ff5d1cc5d6c0]
* src/augeas.c, src/syntax.c:
Kludge around an inconsistency with print_tree
[ece9b5f62da9]
* tests/Makefile.am, tests/modules/README,
tests/modules/fail_concat_ctype.aug,
tests/modules/pass_union_atype_298.aug, tests/test-grammars.sh,
tests/test-interpreter.sh:
Beginnings of tests for the interpreter
[eed1dcaccd20]
* src/syntax.c:
Exceptions during compilation countas failure
[fafbc8c36cbc]
* src/lens.c:
Fix how the key regexp for unions is calculated
Union would produce spurious empty keys, for example in the
expression [ key /a/ . ([ l1 ] | [ l2 ]) ] the union would get an
atype of '//' which is wrong, since the subtree [] does not
contribute to an atype.
[3439f6268480]
* lenses/hosts.aug, lenses/util.aug:
Start a util module with some common functions
[7c4df440ac17]
* tests/Makefile.am, tests/test-lenses.sh:
Run lens tests during 'make check'
[2b59c1c1a2f8]
* src/augeas.c:
Fix bug introduced in 292:5123e63e004b
Don't compare with the whole path if there is a parent, only the
last component of that path.
[ad5b3a701b1e]
* src/augeas.c, src/syntax.c:
Handle trailing slashes on loadpath components cleanly
[5c3032b2cfb3]
* lenses/aliases.aug, lenses/tests/test_aliases.aug:
/etc/aliases processing in the new syntax with tests
[75e944c6a61b]
* src/augeas.c, src/builtin.c, src/internal.h:
Allow rm from toplevel of tree
The only issue with this is that the dirty flag can not be set
properly when deleting from the toplevel of the tree since the flag
has to be set on the parent, which we don't have.
This is really only an issue if (a) we delete the whole tree (b) the
next sibling of the node we delete is semantically different from
the deleted node (e.g. because it goes into a different file)
Either way, this only happens during tests; in the 'real' tree,
toplevel nodes are fixed, like /files and /augeas, and we don't
really have an issue there.
[5123e63e004b]
* lenses/hosts.aug, lenses/tests/test_hosts.aug:
Small tweaks
[6cd477a6c225]
* src/builtin.c:
Produce exn when tree_rm/tree_set fail
[c97784243642]
* src/lexer.l:
Update yylloc for string/regexp constants
[7d93b79752cf]
2008-04-03 David Lutterkort <dlutter@redhat.com>
* src/syntax.c:
When compile_exp produces an exn, bind it anyway
This avoids lots of trouble with NULL values
[5b0251a970d7]
* src/get.c, src/lens.c, src/lens.h, src/put.c, src/syntax.c,
src/syntax.h:
Desugar (lens)+
The construct (lens)+ is now processed as lens . lens*
[b1208389a7d2]
* src/syntax.c:
Fix segv on repetition of regexps
[ff91a732967a]
* src/lens.c, src/syntax.c, src/syntax.h:
Clearer error messages from typechecking lenses
[e7f2c593d6df]
* src/lens.c:
Fix key regexp for union; throw exception on subtrees with multiple
keys
[1b44ac7037ca]
* src/builtin.c, src/lens.c, src/lens.h, src/syntax.c, src/syntax.h:
Have lens constructors return exns on failure
Also refactor exception generation.
[7c28a53a54a5]
* lenses/hosts.aug, lenses/tests/test_hosts.aug:
Add a test that produces an exception
[60e840f3d054]
* src/parser.y, src/syntax.c, src/syntax.h:
Allow '*' as a test result indicating an expected exception
[f640d3d96771]
* src/builtin.c, src/get.c, src/internal.c, src/internal.h,
src/lens.h, src/put.c, src/transform.c:
Error propagation from lns_put
Record a lns_error if things don't work out during put. Generate an
exception on error.
[01eebf66fe36]
* .hgignore, lenses/hosts.aug, lenses/tests/test_hosts.aug:
A very first lens in the new syntax, with tests
[40f519194135]
* src/builtin.c:
Use the default string for a del lens, really.
[bacf595cec77]
* src/syntax.c:
Module names must be consistent with the name of the file they are
in
The basename of the file must be the name of the module, lowercased
and with ".aug" appended
[f2d1cfcd3e77]
* src/augeas.c, src/augeas.h, src/augparse.c, src/augtool.c,
src/syntax.c:
Add explicit loadpath
augtool and augparse now take an explicit loadpath with the -I
option, which can be repeated multiple times.
aug_init takes a loadpath as a new argument
[88ee1f2fc46d]
* src/lexer.l, src/syntax.c, src/syntax.h:
Load needed modules
When the module for a qualified identifier Mod.name is not loaded
yet, automatically load it by looking for a file mod.aug on the
module load path.
[b7ccae3ae85f]
* src/builtin.c, src/internal.h, src/syntax.c, src/syntax.h:
Rename struct env to struct module
[a8f698510b04]
* src/parser.y, src/syntax.c, src/syntax.h:
Separate function composition from concatenation
Function composition is now written as 'f ; g' instead of 'f . g'
[ae9ba3f66588]
* src/parser.y:
Allow tree constants with NULL labels
[3c6362a71321]
* src/augeas.c:
Clean up printing of empty trees
[acc2b715923e]
* src/syntax.c, src/syntax.h:
Clarify the reference counting terminology
[181cd728cd3e]
* src/put.c:
Free the skel that lns_put creates initially
[07d7a53c6f7c]
* src/get.c:
Make sure free_dict frees the whole dict
[51106135e468]
* src/syntax.c:
Fix reference problem
The wrong type was being unref'd
[cb4759d00a54]
2008-04-02 David Lutterkort <dlutter@redhat.com>
* src/get.c, src/lens.h:
Free the whole dictionary
While entries are looked up, dict->entry changes; dict->mark is the
head of the list of all entries that were ever in the dict.
[399f0a8a13c4]
* src/put.c:
Clear skel and dict in state so assertions in create_ don't trip
[e698d555e465]
* src/put.c:
Always split the full tree
There's no need to support splitting a partial tree for now. This
means that lns_put will put TREE and all its siblings.
[bb029bbe7520]
* src/put.c:
Fix incorrect usage of size parameter for re_match
[4de695490657]
* src/get.c:
Add missing break in get/parse_union
Without it, it acts like a concat that drops trees on the floor
[26929c11000f]
* src/augeas.c, src/internal.h, src/syntax.c:
Allow printing of hidden tree nodes
When printing test results, we want to see the full tree
[bf5ab04cd1c1]
* src/builtin.c, src/get.c, src/internal.h, src/lens.h, src/put.c,
src/transform.c:
Pass lns_error to parse; free dicts and skels
[af4d404da920]
* src/builtin.c, src/get.c, src/internal.c, src/internal.h,
src/lens.c, src/lens.h, src/syntax.c, src/syntax.h, src/transform.c:
Report errors from get as exceptions
Adds a value kind 'EXN'. When the interpreter gets such a value, it
bails out immediately.
lns_get now reports parse errors in an lns_error struct, which is
turned into an exception in the interpreter.
[eb1e7c6ccc1b]
* .hgtags:
Added tag ml-syntax-start for changeset fcd6c04a1eed
[905ae48c7d45]
* src/lens.c:
A subtree without a key matches "/"
[2bf396b3439f]
* src/syntax.c:
Print \n after test result
[9d312f9aae87]
* src/internal.c:
Allocate enough bytes for string in unescape
[9dcd0f0f52a1]
* src/regexp.c, src/syntax.c, src/syntax.h:
Free regexps cleanly
[c777144e880c]
* src/lens.c:
Fill in subtree->atype with empty regexp
[0c85f7c964be]
2008-04-01 David Lutterkort <dlutter@redhat.com>
* .hgignore, src/Makefile.am, src/ast.c, src/ast.h, src/augeas.c,
src/augeas.h, src/augeas_sym.version, src/augparse.c, src/builtin.c,
src/config.h, src/get.c, src/internal.c, src/internal.h, src/lens.c,
src/lens.h, src/lexer.l, src/parser.y, src/prov_spec.c, src/put.c,
src/regexp.c, src/spec-lex.l, src/spec-parse.y, src/syntax.c,
src/syntax.h, src/transform.c:
Interpreter for the new file description syntax
This is by no means done, but done enough to allow incremental fixes
from now on. This checkin still contains lots of FIXME's and bugs.
Very simple unit tests do work though.
The syntax for describing files is now a very simple OCaml-like
functional language; the file syntax.c implements an interpreter for
that language.
[5a2a82511ae9]
2008-03-25 David Lutterkort <dlutter@redhat.com>
* src/Makefile.am, src/augeas.c, src/builtin.c, src/internal.h,
src/lens.c, src/lens.h, src/lexer.l, src/parser.y, src/prov_spec.c,
src/syntax.c, src/syntax.h:
Revamp the language
[fcd6c04a1eed] [ml-syntax-start]
2008-03-14 David Lutterkort <dlutter@redhat.com>
* src/fa.h:
Remove comment about fa_overlap/fa_ambig_example
I don't really have the data to support preferring one over the
other that.
[c9f51ed1a20c]
* src/ast.h, src/augeas_sym.version, src/augparse.c, src/get.c,
src/prov_spec.c:
Rename parse_* functions to get_*
[a04cce8411fe]
* src/Makefile.am, src/get.c, src/parser.c:
Rename parser.c to get.c
[eeca8476e5bc]
* doc/bcprules.sty:
Add bcprules (by Benjamin Pierce); needed by lenses.tex
[1d7e0a213a53]
* .hgtags:
Added tag release-0.0.7 for changeset 93563112907c
[c5a5dfdf954f]
* NEWS, configure.ac:
Release 0.0.7
[93563112907c] [release-0.0.7]
* src/augeas.h, src/augtool.c, src/prov_spec.c:
Expose typechecking in augtool
Run 'augtool -c' to get typechecking. Very useful during
development. (Though augparse is even more useful when writing new
lenses)
[cd0e0328d0c9]
* src/ast.c:
Be a little more restrictive on when to dump the whole grammar
[bcacd2780969]
* spec/pam.aug, spec/yum.aug:
Fix lenses so that they pass type checking.
There were several subtle amibuities in the lenses previously, which
the typechecker nicely discovers now.
[675a729e0088]
* src/put.c:
When splitting the tree, check that we are atthe right subtree
Without the check, spliting at a subtree just gobbles up trees
without any regard for what that tree is. This becmoes a problem in
a sequence like [ COMMENT ] * . [ key FOO . store BAR ] * when
there is no comment, and therefore no subtree witha NULL label. A
tree with a single node matching FOO is wrongly split as if there
was a COMMENT (which, if it were there would have to have a NULL
label)
[bdd63de697f2]
2008-03-13 David Lutterkort <dlutter@redhat.com>
* src/fa.c:
Defer allocating storage for a state_set as long as possible
[032912bf2e29]
* src/fa.c:
Rename constants state_set_* to array_*
We use state_set_initial_size and state_set_max_stride for both
state_set and transitions arrays. Rename them to array_initial_size
and array_max_expansion
[a8e936b8d40a]
* src/fa.c:
Speed up FA_MINUS by checking for some simple cases with fixed
results
[4f3492926a59]
* src/fa.c:
Speed up fa_contains by not determinizing FA1
[0b2e3e8c70b5]
* src/fa.c:
Speed up intersection
(1) Do not determinize before intersecting (2) Check if one of the
automata is the empty language, and return the empty language if
so
[a232fc14b359]
* src/fa.c:
Store transitions in an array
Brings about a 10% performance gain since we don't allocate each
transition individually, and since traversing and accessing
transitions is a wee bit faster.
[d58be56c6961]
* src/fa.c:
Remove unused macro
[f4306c0c1ad5]
* src/fa.c:
Clean up fa_iter some
Now both cases (max == -1 for unbounded iteration) and max >=0 use
the same code to generate the automaton (fa){min}
[e6e18e84cadf]
* src/fa.c:
Compute union and concat in place internally
Reduces the number of times we clone an fa for internal purposes,
and therefore the memory management overhead.
[b06b357f3e5c]
* src/fa.c:
Rejigger the weights assigned by chr_score to make fa_example more
predictable
[00b11c1df78c]
* src/fa.c:
Minor optimization for fa_example
[47b2e13ad398]
* src/fa.c:
Keep the list of states for clone in a sorted set
This speeds up things enormously (for cmfm.aug, augparse goes from
17s to 6s)
[035f3581fe68]
* src/fa.c:
Store that pairs of states for intersection in a hash table
[fc3632fe5e32]
* src/fa.c:
Sorted state sets
When order of states in a set doesn't matter, allow the set to be
kept sorted so that search can use binary search.
[c056883c76c2]
2008-03-12 David Lutterkort <dlutter@redhat.com>
* src/fa.c:
Fix two memory leaks
[2f98a9986372]
* src/fa.c, tests/fatest.c:
Remove the last uses of FA_MAP
Use STATE_SET instead, since it's faster and lighterweight
[e9954a1cf95b]
* src/fa.c:
Rename structs fa_state and fa_trans to state and trans
[f5ffe6dc9d82]
* src/fa.c, src/fa.h:
[mq]: min_hopcroft.patch
[977f3edebb4d]
* src/fa.c, tests/fatest.c:
Sort transitions before generating examples
Otherwise, examples depend on the order in which transitions appear
for each state.
[1cb061c6191a]
* src/fa.c:
Add state sets at head of state_set_list
[afa11557d438]
* src/fa.c:
Use state_set in fa_clone
To speed up fa_clone, keep the correspondence between old and new
states in a state_set to reduce allocation overhead.
[cb87aace5d11]
* src/fa.c:
Reverse transitions in place in fa_reverse
[008868470c61]
* src/fa.c:
Improve the performance of fa_intersect with better data structures
Store the map of (s1, s2) -> s for intersection in nested state sets
instead of a linked list.
[d9a9c52bee6a]
* augeas.spec.in, configure.ac, src/Makefile.am, src/fa.c:
Faster data structures for sets of states and a list of sets of
states
Store the list of sets of states for determinize in a hash table.
Since I don't feel like implementing my own, pull in glib and use
GHashTable.
Store sets of states in an array rather than in a linked list. This
greatly reducs the overhead from memory allocations, since the array
is expanded by doubling its size (up to some threshold)
[96553d05329b]
2008-03-11 David Lutterkort <dlutter@redhat.com>
* src/fa.c:
fa_star added a spurious epstrans loop on new initial
[0c7b413b6d77]
* src/fa.c:
Mark live and reachable states
Performance improvement. Instead of allocating temporary lists for
live and reachable states, use one bit each in the state to mark
them for that purpose.
[019f18249ded]
* spec/aliases.aug, spec/hosts.aug, spec/inittab.aug, spec/sshd.aug,
src/ast.c, src/ast.h, src/augparse.c:
Add typechecking of lenses
Concatenation and iteration of lenses is now checked for ambiguity.
Union is checked for disjointness, but that is only flagged as a
warning, since it's mostly a harmless problem, and fixing it
requires writing nasty regexps in the spec files.
Fix existing specs to pass typeckecking. Typechecking is extremely
slow right now, some of that will be addressed shortly. For now,
augtool does not do typechecking, but augparse does by default.
[0f4358f8dc18]
2008-03-10 David Lutterkort <dlutter@redhat.com>
* src/fa.c:
Fix subtle bug in determinize
Fix a bug that would only hit if '\0' is ever in points.
[8d90a8d630fa]
2008-03-06 David Lutterkort <dlutter@redhat.com>
* src/fa.c, src/fa.h, tests/fatest.c:
Add fa_ambig_example to generate ambiguous words
Generate an ambiguous string upv given two languages and directions
on how to split that string into u.pv and up.v. Algorithm from
Anders Moeller from the dk.brics.grammar package.
[b31de1d0a9aa]
* src/fa.c, tests/fatest.c:
Fix example generation, it was completely broken
The previous algorithm was way too simplistic, and failed on more
complicated languages.
fa_example now generates a relatively short word, subject to certain
preferences, so that for example, alnum characters are preferred
over printable ones, and those over nonprintable ones.
[da44ad9555d5]
* src/fa.c, tests/fatest.c:
Fix some cornercases in fa_example
[e73ace055a0b]
2008-03-05 David Lutterkort <dlutter@redhat.com>
* src/fa.c, src/fa.h:
Add generators and tests for some basic languages
Basic languages are the empty language, the language containing only
the empty word, and the total language \Sigma^*
[c40c6edff65e]
* NEWS:
Fix tyops
[1a888254c4a4]
* .hgtags:
Added tag release-0.0.6 for changeset 9a4f846673ac
[478d1136dcb3]
* NEWS, configure.ac:
Released version 0.0.6
[9a4f846673ac] [release-0.0.6]
* src/augeas.c, src/augeas.h, src/augtool.c, src/config.h,
src/internal.h, src/prov_spec.c, src/try, tests/augtest:
Allow influencing the behavior of save
By passing one of the flags AUG_SAVE_BACKUP or AUG_SAVE_NEWFILE to
aug_init, it is possible to influence the behavior of aug_save to
either overwrite files in palce, save originals with extension
.augsave, or put changes into files with extension .augnew.
Also added switches to augtool to set this from the command line,
and to set the filesystem root.
[2aff28aceb9b]
* .hgtags:
Added tag release-0.0.5 for changeset 0efe2a620e39
[adf9b4f94917]
* src/fa.c:
Mark print_re as unused
[0efe2a620e39] [release-0.0.5]
* NEWS, configure.ac:
Release 0.0.5
[faa973e3e955]
* src/augeas_sym.version:
Make aug_close public
[6155f875dbfe]
* src/augeas.c, src/augeas.h, src/augtool.c, src/internal.h,
src/prov_spec.c:
Public API change: include a reference to an augeas_t in all calls
To make Augeas threadsafe, we need to move away from keeping stuff
in global variables.
[ee31a345a042]
2008-03-04 David Lutterkort <dlutter@redhat.com>
* src/fa.c, src/fa.h, tests/fatest.c:
Add fa_example which produces an example string from a regular
language
[179e9019b999]
* tests/fatest.c:
Add a test that performs Anders Moeller's ambiguity algorithm
manually
[4a15712ee938]
* src/fa.c, tests/fatest.c:
Two bug fixes
(1) fa_make_char_set would never create transitions with min == max
(2) fa_intersect got things wrong when t2 had an interval that
overlapped several intervals on t1
Also added tests to check these two problems.
[0684a416d1e4]
* src/fa.c, tests/fatest.c:
Fix handling of negated charsets
Negated charsets where handled entirely wrong. A character set is
now represented as a map from char -> {0, 1}. That map is rather big
(one byte per character)
[c51f0f7051ee]
* src/Makefile.am:
Fix order in which libraries are installed
libaugeas must be installed after libfa, since it depends on it.
[55d96b0865ca]
* src/fa.h:
Remove old sketch of interface; not needed anymore
[83b0219a846c]
* src/fa.c, src/fa.h, tests/fatest.c:
Compute the complement, set difference and overlap of two languages
[9d20c6db515f]
* src/fa.c, tests/fatest.c:
Fix a bug in how '.' is being handled
The '.' was treated the same as [\n] instead of [^\n] by mistake.
Also fixes a small bug in fa_contains.
[6966baab4f73]
* doc/unambig.tex:
Add deciding unambiguously iterable based on ua concatenable
[f22a726e1ed5]
2008-03-03 David Lutterkort <dlutter@redhat.com>
* tests/fatest.c:
Automatically free all automata allocated during a test
[5ca8f2562042]
* src/fa.c:
Cleanup the returned FA in fa_intersect
[d09d2bc2e2ae]
* tests/Makefile.am:
Add a target to run fatest through valgrind
[10ef969c6ccc]
* src/fa.c, src/fa.h, tests/fatest.c:
Add fa_intersect: intersection of regular languages
[ecee0ccf4a82]
* src/fa.c:
Comment the uses of FA_MAP better and rename some internal helper
functions
[3f6f0955bba9]
* src/fa.c, src/list.h:
Clean up management of state lists
Centralise allocating new states for a fa in add_state; that makes
sure that all states appear on the list of states in fa->initial.
[ed4821c2a08d]
* src/Makefile.am, src/ast.h, src/augeas_sym.version, src/internal.h,
src/prov_spec.c, src/spec-lex.l, src/spec-parse.y:
Do not rely on gcc >= 4.0 for restricting symbol exports
Use a linker script instead. The visibility pragma is only available
in gcc >= 4.0, and thus imposes a pretty high burden to build
Augeas.
[426a31d81a27]
2008-02-29 David Lutterkort <dlutter@redhat.com>
* src/Makefile.am, src/ast.h, src/internal.h, src/prov_spec.c, src
/spec-lex.l, src/spec-parse.y:
Reign in the number of symbols exported from libaugeas
Use visibility=hidden to keep most local symbols to ourselves. Still
needs some work for augparse/augtool
[d11d2e9de4ba]
* src/fa.c:
Performance improvements
(1) Don't minimize the automaton quite so often. Now, only
fa_compile minimizes by default. (2) Instead of full-on
minimization, clean up the automaton before returning to the
user by removing dead transitions/states.
[e0cf0e8ebd81]
* src/fa.c, src/list.h:
Remove gratuitous list traversals
Replace list_append with list_cons (adds at the head of a list)
where order of the list does not matter.
[382f13043379]
* src/fa.c, src/fa.h, tests/fatest.c:
Add tests for language subsets and equality
[75702b5ffdb7]
* src/Makefile.am, src/fa.c, src/fa.h, src/internal.h, src/list.h,
tests/Makefile.am, tests/fatest.c:
The beginnings of a finite automata library
The code is heavily based on the Java package dk.brics.automaton by
Anders Moeller (http://www.brics.dk/automaton/)
Eventually, this should becomea standalone library, seeing how there
does not seem to be any open-source, maintained finite automata
library.
[ea99df193d38]
* doc/cutest-license.txt, tests/cutest.c, tests/cutest.h:
Some unit testing help
This is an adapted version of CuTest
(http://sourceforge.net/projects/cutest/) written by Asim Jalis
[ab11c74c700f]
* src/augeas.h:
Minimal docs for aug_save and aug_print
[1d9e674b3108]
2008-02-26 David Lutterkort <dlutter@redhat.com>
* .hgignore:
Ignore more stuff
[0c52a9000ab2]
* src/augeas.c:
Fix segfault in aug_ls
When skipping nodes with NULL label, don't segfault if the whole
tail of the list has NULL labels
[456400a17bb6]
2008-02-25 David Lutterkort <dlutter@redhat.com>
* .hgtags:
Added tag release-0.0.4 for changeset d8e750d82f97
[fad233d38b24]
* configure.ac:
Version 0.0.4
[d8e750d82f97] [release-0.0.4]
* NEWS:
Some NEWS
[f44ea9b07ff2]
* Makefile.am, augeas.spec.in, configure.ac:
Package as RPM
[d0c5e988bffe]
* src/Makefile.am:
Turn off warnings-as-errors when building spec-lex.l
We need -Wno-error, otherwise the CFLAGS passed during mock builds
turn checking for unused parameters back on; flex doesn't provide an
easy way to generate code that passes those checks (that's the
reason for building the liblexer.la convenience lib)
[9e77fb2a26ca]
* src/parser.c:
Only define print_dict when it is used
[8037896acbd5]
* .hgtags:
Added tag release-0.0.3 for changeset 56cb08f222a3
[fe5fce9312b6]
* configure.ac:
Version 0.0.3
[56cb08f222a3] [release-0.0.3]
* acinclude.m4, configure.ac, src/Makefile.am:
Test for readline in a way that works on RHEL5
[c92c02033eca]
* Makefile.am, augeas.pc.in, configure.ac, src/Makefile.am:
Some build/install tweaks
(1) Rename spec in $(datadir)/augeas/spec to lenses (2) Add
pkgconfig info for libaugeas (3) Install augeas.h as a header
[7e83fc201273]
* src/augtool.c, src/config.h, src/prov_spec.c, src/try,
tests/augtest:
Rename AUGEAS_SPECLIB to AUGEAS_LENS_LIB
[15a7955a6f71]
* .hgtags:
Added tag release-0.0.2 for changeset f981ccccb0ab
[c55ddce0f526]
* src/Makefile.am:
Include the try script in the distribution
[f981ccccb0ab] [release-0.0.2]
* configure.ac:
Bump version to 0.0.2
[b3ef7b0876f7]
* Makefile.am, tests/Makefile.am, tests/augtest, tests/test-
grammars.sh:
Fix things up so that 'make distcheck' works
(1) make test runs work when when top_builddir != top_srcdir (2)
Include spec/ files in distribution (3) disable test-grammars.sh
since the test grammars are busted right now
[3822143507ca]
* src/ast.c, src/prov_spec.c:
Fix warnings about uninitialized variables
[ffdfac478d46]
* src/Makefile.am:
Add config.h to libaugeas.la
[aaf18e5493f6]
* doc/lenses.tex:
Stricter types for some combinators. List needed reg lang operations
[44c90e229f6c]
2008-02-21 David Lutterkort <dlutter@redhat.com>
* spec/yum.aug, tests/ini-yum-change.rb, tests/ini-yum-newkey.rb,
tests/ini-yum-newsec.rb, tests/ini-yum-rmkey.rb,
tests/root/etc/yum.conf:
Some changes to the yum description
(1) Use a yum.conf that is actually shipping (2) Make COMMENT match
blank lines (3) Fix tests to work with updated yum.conf
[686680e01b36]
* src/try:
Only create /tmp/augcmds.txt if it doesn't exist
Nothing deep; just trying to keep Mercurial from marking the file as
modified as I change the commands that try runs
[d96518d708a7]
* src/augeas.c, src/list.h:
Make aug_ls return all the children for a given path
aug_ls did not handle entries that were split across several nodes
properly. Now, we find all the nodes for the given path and list
their children.
[211746116c0f]
* spec/sshd.aug:
Fix splitting of AcceptEnv
The list of env vars for AcceptEnv was not being split into
individual pieces
[e2b6d4e1bf87]
2008-02-20 David Lutterkort <dlutter@redhat.com>
* spec/cmfm.aug:
A (pretty kludgy) description for cmfm.conf
[5451f95d595f]
* src/augparse.c:
Make printing of skel/dict optional
[e573602a91e1]
* tests/augtest:
Print test results a tad prettier
[9c33fd39b76b]
* configure.ac, src/Makefile.am, src/ast.c, src/ast.h, src/parser.c,
src/put.c:
Use GNU regex instead of PCRE
Use the GNU regex functions from glibc instead of PCRE, as glibc
uses a DFA implementation that does not suffer the limitations of
PCRE's backtracking implementation.
The syntax for regular expressions is now
RE_SYNTAX_POSIX_MINIMAL_EXTENDED, essentially extended POSIX regular
expressions, except that '.' does not match newlines.
[0163babecb1f]
* spec/aliases.aug, spec/inittab.aug, spec/pairs.aug, spec/pam.aug,
spec/yum.aug:
Clean up regexps for POSIX
Various small fixes to regexps to make them work properly as POSIX
regexps.
[cf75410f2e4b]
* .hgtags:
Added tag remove-any-first-follow for changeset 0d22160e9494
[c121f627ec64]
* src/ast.c, src/ast.h, src/augparse.c, src/parser.c, src/put.c, src
/spec-lex.l, src/spec-parse.y:
Remove any matches ... and ..? from the language. Remove
first/follow sets
They currently require lookahead assertions from the underlying
regexp engine.
Since any matches were the only reason to compute first/follow sets,
remove those, too.
[0d22160e9494] [remove-any-first-follow]
* spec/aliases.aug, spec/hosts.aug, spec/inittab.aug, spec/pairs.aug,
spec/pam.aug, spec/sshd.aug, spec/words.aug, spec/yum.aug,
tests/root/word.txt:
Remove the use of the any operators '...' and '..?'
These operators inherently require lookahead assertions, but we need
to switch to a regexp engine that does not support them.
[2ed655dedcef]
* src/augparse.c:
Don't segfault when parsing fails
[3707bcf62978]
2008-02-19 David Lutterkort <dlutter@redhat.com>
* src/ast.c:
Drop CF-oriented check for ambiguity through looking at first sets
[4f2a3b2af3f3]
* src/spec-lex.l:
Allow escaping of a slash in tegular expressions
[c27fec4c4050]
2008-02-18 David Lutterkort <dlutter@redhat.com>
* spec/sshd.aug, src/ast.c, src/ast.h, src/augparse.c, src/parser.c,
src/try, tests/grammars/reject/mutual-recursion.aug:
Base parsing completely off regexp matching.
Parsing now uses regexp matching, and not the CFG-style parsing
based on first sets previously used. This actually makes it easier
to write specs, since parsing decisions are made based on the
complete string, not just the first 'token'.
The downside is that rules can not be recursive anymore, as that
would make the matched language non-regular.
The main motivator for this change is that it makes it possible to
do stricter checking of the input spec using type checking similar
to boomerang's string lenses based on operations on regular
languages.
Unfortunately, we have to keep first/follow computations to
construct the fairly tricky regexps that are used for ANY patterns.
[e6dc51490627]
* src/spec-lex.l, src/spec-parse.y:
Remove unused token T_FIELD
[f845d5624891]
* src/ast.c, src/ast.h, src/parser.c, src/put.c, src/spec-parse.y:
Rename match.xaction to match.action
The field was named initially to avoid a clash with another 'action'
field, but that field is gone now.
[1506b7d58935]
* tests/root/etc/ssh/sshd_config:
Add Match blocks
[e637fbb8fb3a]
* spec/sshd.aug:
Remove leading whitespace inside Match directives
[8ba242c3d929]
* src/put.c:
Fix nested splits
For a lens like a . (b . c)*, tree_split used to return a split that
looked like [a; b; c; b; c] That is wrong: when we split on the
outer '.', we need to produce a split with exactly two entries: [a;
b] (where b stands as the first entry in the tree that '*' will act
on.
split_tree_car cleans up recursively computed splits in this manner;
those subsplits are mostly computed for their sideeffect,
particularly for the fact that they change state->tree.
[19b0d95ee4bf]
* src/augeas.c, src/internal.h:
Properly print split nodes
[fef5d53b8c02]
* spec/sshd.aug, tests/root/etc/ssh/sshd_config, tests/sshd-add-
acceptenv.rb:
Lenses for sshd_config
This is interesting because of the treatment of AcceptEnv and
similar constructs
[9e020aec3680]
* src/augeas.c:
For split nodes, append entries at the last occurence
It is possible that one logical node is split across several
physical nodes to accomodate settings that are spread across several
lines like 'AcceptEnv' for sshd_config. Such lines lead to multiple
nodes /system/config/sshd/AcceptEnv (all siblings of each other)
When a call to aug_set creates a new entry underneath such a split
node, make sure that that the new node is put under the last such
node. This helps maintain the illusion for users that the split node
is really just one node.
[60f636dc9691]
2008-02-15 David Lutterkort <dlutter@redhat.com>
* src/config.h, src/prov_spec.c:
Report some information underneath /augeas
The root directory and information about how files were loaded into
the tree are kept in the /augeas hierarchy now
[3180a38873dc]
* src/prov_spec.c:
Fix very bad use of realloc
[274514f252b8]
* tests/ini-yum-rmkey.rb:
Adjust expected diff
Do not allow comments to disappear
[62863f563ecf]
* tests/rec-rm-inner-field.rb:
Fix test
The old diff was bogus (it expected a comment to be removed that has
to stay there)
[e20150943f2e]
* spec/inittab.aug:
Cleanly handle comments
[38d502e0cf22]
* spec/aliases.aug, tests/aliases-add-value.rb, tests/aliases-change-
value.rb:
Default COLON to ':' plus tab. Simple tests for aliases
[7d9fd7e23ee6]
* doc/etc.txt:
Informal survey of files in /etc
[fc661b9246c2]
* .hgignore:
Ignore intermediate Latex files
[7d9a32644065]
* spec/pam.aug:
Store comments in subtrees so they are restored properly
[4bcba556a818]
* tests/rec-rm-inner-field.rb:
Turn into a test on a legal tree and make it pass
[91891d26cc95]
* src/put.c:
Fix split of QUANT_MAYBE. Add create_quant_maybe
[fb235e342e34]
* spec/aliases.aug:
Make aliases work
[c80400d479aa]
* src/put.c:
Free the results of split_tree
[ee88fc0950d4]
* src/put.c:
Properly split an empty * as an empty list
[ea757a0305a7]
* src/put.c:
Try to make putting QUANT_MAYBE work
This is still kinda suspect
[16e6c31af58c]
* src/parser.c:
parse_subtree must always generates a tree
We have to have a subtree, no matter what, even if it is completely
empty. If the subtree doesn't contain any key and store
instructions, we still need to have a tree [ NULL -> NULL ]
[fe62dda103c9]
* spec/yum.aug:
Modified yum spec that seems to work
[b2f1384be6df]
* src/try:
Script to ease testing of augtool
[8d1e550fc9ce]
* spec/pam.aug:
Enable parsing of pam
[be188b547292]
* spec/inittab.aug:
Remove bogus reset of 'record' counter
[c7867f3ef3c9]
* src/augeas.c:
Fix print problem
Print did not generate paths right; it would print children of a
node with a path that did not contain the label of that node.
[b5f25fbf278d]
* src/augtool.c:
Add clear command
[09896900aa82]
* src/augeas.c:
Properly handle a NULL value in aug_set. Make aug_insert deal with
NULL labels.
[b2fa11e49f48]
2008-02-14 David Lutterkort <dlutter@redhat.com>
* spec/hosts.aug, tests/rec-hosts-add.rb, tests/rec-hosts-reorder.rb:
Fixed, nicely working tests
[682536c8cd81]
* src/augeas.c, src/augtool.c, src/internal.h:
Readline completion
Complete command names and tree paths.
Also cleans up the path entered by the user so that it doesn't have
trailing spaces or '/'. Cleaning should probably be done by the
public API.
[f72f8285c9be]
* src/ast.h, src/augeas.c, src/augparse.c, src/emit.c, src/internal.c,
src/internal.h, src/parser.c, src/prov_spec.c, src/put.c:
Major rework
Code still unbelievably buggy and segfaults in lots of places, but
it is fairly clean and works for choice examples.
The reworked code is based fairly closely of boomerang and lenses.
doc/lenses.tex describes some of the background.
[85c9778fbff5]
2008-02-13 David Lutterkort <dlutter@redhat.com>
* doc/lenses.tex, spec/aliases.aug, spec/hosts.aug, spec/inittab.aug,
spec/pairs.aug, spec/pam.aug, spec/words.aug, spec/yum.aug,
src/Makefile.am, src/ast.c, src/ast.h, src/augeas.c, src/augparse.c,
src/emit.c, src/internal.h, src/parser.c, src/prov_spec.c,
src/put.c, src/spec-lex.l, src/spec-parse.y, tests/rec-hosts-add.rb,
tests/root/etc/aliases, tests/root/pairs.txt, tests/root/word.txt:
Cleaner syntax
The spec language now contains instructions on how to build the tree
inline with the grammar.
This change is majorly broken.
[993c700e620b]
2008-02-12 David Lutterkort <dlutter@redhat.com>
* doc/emit.txt, doc/lenses.tex:
Better description of lenses
[3cd06abf3bd2]
* src/augeas.c, src/augeas.h, src/augtool.c, src/internal.h:
Different representation of the tree
The tree is now represented as a tree data structure, where each
node in the tree stores only a path component (label).
[ba2a6b399e09]
2008-02-08 David Lutterkort <dlutter@redhat.com>
* doc/lenses.tex, doc/unambig.tex:
Beginnings of a formal writeup
[e578adb022c0]
2008-01-30 David Lutterkort <dlutter@redhat.com>
* src/ast.c, src/ast.h, src/emit.c, src/parser.c, src/spec-parse.y:
Remove field references as a match
It used to be possible to have a rule like rule: RE '=' $1 with
the meaning that $1 would match the same thing as RE. That hasn't
been used yet; unclear if it ever will.
[afa085631b35]
* src/emit.c:
When deleting, only mark AST changed when leaf was deleted
This is really a kludge to work around the fact that we might
construct incomplete AST's.
[63585ef32e58]
* src/parser.c:
Slightly mroe helpful error message during parsing
[eea92d69b8ae]
* src/parser.c:
Don't segfault when the parse matches nothing
[d56d4c57ec7c]
2008-01-29 David Lutterkort <dlutter@redhat.com>
* tests/ini-yum-rmkey.rb:
Another yum test
[2c53a41aabd0]
* src/internal.h:
Remove more unneeded cruft
[79565811e4d5]
* src/ast.c, src/emit.c, src/internal.c, src/internal.h,
src/prov_spec.c:
Remove unneeded safe_free, TRUE and FALSE
[aab988e6eee2]
* src/augtool.c, src/internal.h:
Remove unneeded ROOT_DIR and update augtool help
[0df69d2680d3]
* src/emit.c:
Remove dead code and misleading comment
[b7b529b5ef69]
* src/Makefile.am, src/prov_hosts.c, src/prov_inittab.c,
src/prov_pam.c, src/record.c, src/record.h:
Remove files not needed any longer
[b0f754bda55c]
* NEWS:
Update NEWS
[8b85b01d1e63]
* tests/Makefile.am, tests/augtest:
Run all the augtest tests by default and from make check
[de145c2d459b]
* spec/yum.aug, tests/ini-yum-change.rb, tests/ini-yum-newkey.rb,
tests/ini-yum-newsec.rb, tests/root/etc/yum.conf:
Test key/value parsing with yum
The test file also nicely illustrates some shortcomings of the way
comments are associated with tree entries. There's not enough
flexibility to let the user cleanly indicate what a comment goes
with (e.g., an entire section, the next key/value pair etc.)
[ea657e4fc2b1]
* src/emit.c:
Initialize fields used as path components
When a field is used in a path component, initialize its value from
the path. Since it is not possible to change an existing path, this
operation is only needed when new parts of the AST are created.
The code assumes that the leaf for the path component is in the
subtree where the leaf's value is used. That is not necessarily
true; at least, it's not being checked from the grammar.
[6359de8c97e6]
* tests/rec-hosts-reorder.rb:
Test that reordering of subtrees works
[8861a1ea7c47]
* spec/hosts.aug, spec/inittab.aug, spec/pam.aug, src/ast.c,
src/ast.h, src/parser.c, src/prov_spec.c, src/spec-parse.y:
Set the root of the tree from include
[6c06f566b484]
* src/ast.h, src/emit.c, src/list.h, src/parser.c:
Respect ordering of nodes in the config tree.
Previously, reordering of branches in the config tree did not lead
to a corresponding reordering of elements in the file. Branches in
the AST are now reordered in such a way that their ordering reflects
the ordering in the config tree.
Iterator nodes with a $seq action need to be treated special: they
do not change the path for the current (iterator) node, only for the
child nodes. That is terribly ugly.
[ac87f0d3c6de]
* src/emit.c:
Fix bug in creating sequence subtrees
[6b664247b235]
* src/ast.c, src/parser.c:
Distribute enters so we have one per match
Simultaneous traversal of the AST and the config tree is much
simpler if any match will only go at most one level deeper. That
guarantees that entering a child in the config tree corresponds to
entering an AST node (possibly followed by entering some more AST
nodes labelled with the same path)
To this end, split actions with multiple enters into fake SEQUENCE
matches (followed by the match that held the initial action). The
fake SEQUENCE matches all have exactly one child in their matches
field, and one of the enter instructions from the action for them.
Actions are also lifted up in the grammar as far as possible; in
particular, this pulls constants (but not $seq) out of iterators.
This ensures that the children of an AST node differ in exactly one
path component.
[9d85af427c5b]
* src/ast.c, src/parser.c, tests/grammars/reject/duplicate-store.aug,
tests/grammars/reject/store-out-of-tree.aug, tests/grammars/reject
/useless-enter.aug:
Push stores to the matches they store in the tree
In an assignment, the value being stored can only be a field
reference. Push the corresponding action for the store to that
field. This simplifies both getting and putting the tree.
As a byproduct, a number of questionable constructs are spotted and
rejected: (1) Assignments that move the value out of the current
tree (2) Storing the same value in more than one place in the tree
(which would make it possible to change one copy, but not
both) (3) Useless enter instructions; they don't cause harm but
probably indicate some other problem in the grammar. They are
only spotted if they get in the way of a store, but should
probably be checked for the whole grammar
[c38e64611e00]
* src/ast.c, src/ast.h, src/augparse.c:
Produce dot files for the grammar
[5020e76d4fb9]
* tests/augtest, tests/rec-append-record.rb, tests/rec-hosts-add.rb,
tests/rec-hosts-rm-hosts.rb, tests/rec-hosts-rm.rb, tests/rec-
initdefault.rb, tests/rec-ins-record.rb, tests/rec-mod-field.rb,
tests/rec-rm-inner-field.rb, tests/rec-rm-record.rb, tests/rec-rm-
tail-field.rb:
Various changes to the tests to make them (almost) work
(1) Adjust to the fact that the root dir is now a variable (2) Mark
tests as failing if augtool exits with an error exit status (3) Use
numbers matching [0-9]+ where the grammar uses $seq, otherwise
augtool will (rightly) report an impossible path
Some of the tests are still failing.
[9777e42c41bb]
* src/augeas.c:
aug_ls: Fix bad parent comparison
Before /foo/1000 was listed as a child of /foo/1
[8786c396e31c]
* doc/emit.txt:
Docs
[266062336c02]
2008-01-24 David Lutterkort <dlutter@redhat.com>
* doc/emit.txt:
Rough thoughts about emit
[457b9871343a]
2008-01-21 David Lutterkort <dlutter@redhat.com>
* src/spec-parse.y:
For quantified groups, count the quantifier as the group
Previously, for a match like '(A)*' A was counted as a group, which
meant that if an action was attached to the group, all the children
of the '*' node in the AST had the same path. By counting the '*' as
the group, not 'A', the children will have different name if
different subtrees are produced in the group.
This ensures that in the AST, the children of '*' and '+' have
different names and simplifies the 'put' direction of the
transformation considerably.
[ebb8de9cfd28]
* src/config.h:
Some config settings - most of them need to be exposed through
configure.ac
[27fe1f1e2762]
2008-01-18 David Lutterkort <dlutter@redhat.com>
* tests/grammars/accept/inittab.aug,
tests/grammars/accept/records.aug:
Global filename does not exist. Use basename
[dc52e7ddbf0a]
* src/parser.c:
Only increment $seq when it has been used
With this change, $seq goes structly sequential in the generated
tree nodes. Before, things like comments that don't lead to changes
in the tree increased the counter, too.
[ef9d856fb8d9]
* spec/hosts.aug, spec/inittab.aug, spec/pam.aug:
Spec files needed by the tests
[6d94c70325ea]
* src/parser.c:
Don't segfault in ast_dot on NULL ast
[c36522001a77]
* src/ast.h, src/emit.c, src/prov_spec.c:
Only save files with actual changes
Split emitting into two parts: updating the AST from the config tree
and actually writing the AST to file. do_insertion and do_deletion
now report if they made any changes to the tree so that the provider
can decide whether to save the file or not.
As a byproduct, parts of the AST that are no longer needed are
actually freed.
[46f258586faa]
* src/emit.c:
Handle null values/tokens when storing
[070eddeb0f1c]
* src/emit.c:
Detect association of values with impossible paths
[85c152217cbe]
2008-01-17 David Lutterkort <dlutter@redhat.com>
* tests/augtest:
Make augtest set AUGEAS_ROOT and AUGEAS_SPECLIB before running
augtool.
augtest now copies test files into a separate subdirectory and
points augtool to that as its root. It also points augtool to
../spec for the spec files.
[860f738561bc]
* src/prov_spec.c:
Add the spec provider.
The provider should have been committed in 57:9e439a136787, but
wasn't. Unfortunately, versions of prov_spec.c that would compile
with that version have been lost. Therefore, builds between
57:9e439a136787 and this revision will fail.
[4f058fcedd2e]
* src/Makefile.am, src/ast.h, src/augeas.c, src/emit.c,
src/internal.h, src/parser.c:
Emit a the current tree into a file
Based on the AST, generate the file that lead to that AST. Changes
to the config tree are mirrored by corresponding changes in the AST
before it is written to disk.
This is a first version that works for some restricted set of
grammars, but needs a lot more testing.
[1e468ea3ca85]
* src/ast.c, src/ast.h, src/augparse.c, src/parser.c:
Compute tree handles for each match
The handle of a match is a set of regular expressions that indicate
which subtrees are generated by that match. Handles are computed
based on the actions in the grammar and propagated.
The handle of an action is a regular expression matching the path
generated by that action.
[4deb883abab5]
* src/ast.h, src/augparse.c, src/internal.c, src/internal.h,
src/parser.c:
Build an explicit AST
Instead of representing the parsed file by a simple list of tokens,
build a fullblown AST for that file. The AST is actually not very
abstract, and is directly the parse tree from parsing a file with a
certain grammar.
Split parsing and evaluating into to passes; references to fields
are too hard to resolve with a partially constructed AST.
Also adds a routine (ast_dot) to output the AST as a dot file; this
eases debugging tremendously. augparse will now produce dot files
when given '-P ast'
Remove aug_token and any mention of it - that has been replaced by
struct ast.
[4bb357035d13]
* src/ast.c, src/ast.h, src/parser.c, src/spec-parse.y:
Represent quantifiers in their own match nodes
Instead of using a field in struct match for quantifiers '*', '+',
'?', represent quantified expressions by their own struct match,
with a matches field pointing to the quantified expression.
This leads to a cleaner parser and makes constructing an explicit
AST simpler.
[504682db4235]
* tests/grammars/accept/inistyle.aug:
Prefer comments over kv
[216f12d41beb]
* src/ast.c:
Print first sets for every match
Factor printing of a literal_set into print_literal_set and use it
for printing both first and follow sets.
[fe5bd3a90fff]
* src/augparse.c:
Remove debug printing in augparse about loaded maps
[6b2b54e2fbd4]
2008-01-07 David Lutterkort <dlutter@redhat.com>
* src/internal.c:
Free tokens entirely when freeing file
[4423cfa8ea45]
* src/spec-parse.y:
Set action in all path components
[301b2b447e4a]
2008-01-03 David Lutterkort <dlutter@redhat.com>
* src/Makefile.am, src/ast.c, src/ast.h, src/augeas.c, src/augparse.c,
src/internal.c, src/internal.h, src/list.h, src/parser.c:
Provider that uses specs
The spec provider is hooked into libaugeas and loaded. It reads spec
files from /usr/share/augeas/spec and paths mentioned on
AUGEAS_SPECLIB. Files are parsed according to the specs loaded, and
values are written into the tree after parsing those files.
Still missing is saving of the tree back to file, and in particular
adding new entries in the tree to such files.
[9e439a136787]
* tests/root/etc/hosts, tests/root/etc/inittab, tests/root/hosts,
tests/root/inittab:
Move hosts and inittab under /etc
[b485b1883897]
* src/spec-parse.y:
Always set the passed-in grammars and maps to NULL
Without that, it's too easy to pass an invalid pointer in from
random nonsense on the stack. And since we do not append to anything
the user may pass in, setting to NULL is safe.
[3da36298e104]
* src/ast.c:
Compile regexps for multiline matching
[1507ba072023]
2008-01-02 David Lutterkort <dlutter@redhat.com>
* tests/grammars/reject/missing-token-default.aug:
Fix syntax error; we want to test that missing defaults are noticed
[6c3a08f2affc]
* src/ast.c, src/ast.h, src/augparse.c, src/spec-lex.l, src/spec-
parse.y:
Add filemappings to the language
The map construct specifies a grammar and a list of glob patterns
that this grammar should be applied to.
[79b6860d50e6]
* src/ast.c:
Print the filename in errors about tokens (abbrevs)
[936b4be4d38a]
* src/ast.h, src/spec-parse.y, tests/grammars/accept/expr.aug,
tests/grammars/accept/inistyle.aug,
tests/grammars/accept/inittab.aug,
tests/grammars/accept/records.aug, tests/grammars/accept/sshd.aug,
tests/grammars/reject/action-rule-ref.aug, tests/grammars/reject
/duplicate-action-field.aug, tests/grammars/reject/duplicate-action-
group.aug, tests/grammars/reject/missing-token-default.aug,
tests/grammars/reject/mutual-recursion.aug, tests/grammars/reject
/undefined-field.aug:
Add name to grammars
[b772008b96d5]
* tests/test-grammars.sh:
Add -v switch for printing errors
[bf16b9bd2416]
* tests/grammars/accept/sshd.aug, tests/grammars/reject/action-rule-
ref.aug:
Two more test grammars
[55aceff40ffd]
* src/ast.c, src/ast.h, src/augparse.c, src/internal.h, src/parser.c,
src/spec-parse.y, tests/grammars/accept/inistyle.aug:
Execute actions (not writing to tree yet)
Actions are executed at the right points during the parse, and a
stack of paths is maintained. References to values work with the
exception of references to rules.
[9045cd054ede]
2007-12-21 David Lutterkort <dlutter@redhat.com>
* tests/Makefile.am, tests/grammar-reject.sh, tests/test-grammars.sh:
Check grammar acceptance/rejection
[53f73d5724bc]
* doc/expr.aug, doc/httpd.aug, doc/inistyle.aug, doc/inittab.aug,
doc/nodes.aug, doc/records.aug, src/ast.c, src/ast.h,
src/augparse.c, src/spec-lex.l, src/spec-parse.y,
tests/grammars/accept/expr.aug, tests/grammars/accept/inistyle.aug,
tests/grammars/accept/inittab.aug,
tests/grammars/accept/records.aug, tests/grammars/reject/duplicate-
action-field.aug, tests/grammars/reject/duplicate-action-group.aug:
More precise syntax for where actions attach in a rule
Previously, it was not clear how far into a rule the current path
would be modified during parsing. This syntax defines some clear
rules for that:
- if the rule applies to a parenthesized group (@n), the path is
in effect until the end of the group
- if the rule applies to a field (@$n), the new path is used during
parsing of that field
- the assignment part of the action is done after the field/group
has been parsed
[8c4f0fb108c2]
* .hgtags:
Snapshot before changing the syntax of rule actions
[2ba319b18ff4]
2007-12-20 David Lutterkort <dlutter@redhat.com>
* src/spec-lex.l, src/spec-parse.y:
Remove unused keyword and token 'default'
[3c1cad97ac54] [snapshot-1]
* src/ast.c:
Fix field number computation
[fc65e7c382c9]
* src/ast.c, tests/grammar-reject.sh, tests/grammars/reject/missing-
token-default.aug, tests/grammars/reject/undefined-field.aug:
Two more rejection tests
[9435e170bda3]
* Makefile.am, configure.ac, src/augparse.c, tests/Makefile.am, tests
/grammar-reject.sh, tests/grammars/reject/mutual-recursion.aug:
Add a simple test for rejecting bad grammars
[fc0cb1faf228]
* src/ast.c:
Don't try to dump a NULL grammar
[6fb80df40553]
* src/ast.c, src/ast.h:
Introduce SUBMATCH_P macro; cleanup unnecessary switch statements.
[41754314ef53]
* src/ast.c, src/ast.h, src/parser.c:
Statically number all matches in a rule. Check for illegal field
refs.
[1a9c94ea64ff]
* src/parser.c:
Collect unprocessed tokens in the parser state.
[7f41276fae9f]
* src/ast.c:
Print quantifier after rule reference
[53fc8400c4e3]
* src/parser.c:
Remove unneeded debug print
[f418234a305a]
* src/Makefile.am, src/internal.h, src/parser.c:
Produce tokens during parsing.
Also, nicer printing of the tokens read.
[d5b9ff798830]
* src/ast.c:
Stricter checking for ambiguous rules
Check that all items in alternatives have non-overlapping first
sets. Two sets are overlapping if they both contain an entry
pointing to the same struct literal or if the contain entries where
the literals have the same patterns (as strings)
This still misses the case where literals have equivalent regular
expresions (e.g. /[ab]/ in one and /[ba]/ in the other) but that
seems very hard to determine.
[f1dba6e92157]
* src/ast.c, src/ast.h, src/parser.c:
Print first/follow sets prettier, print control characters escaped
with ~
Literals from first/follow sets are now reduced back to the abbrev
they belong to if that exists.
[3ef09ff1df24]
* src/ast.c, src/ast.h, src/augparse.c:
Add options to control grammar printing
[beacad31d8e8]
* src/ast.c:
Set match->owner for _all_ matches
[539b628770f0]
* doc/expr.aug, doc/inittab.aug:
Two more sample/test grammars
[59bd28e78fab]
* .hgignore, configure.ac, doc/grammar.txt, doc/httpd.aug,
doc/inistyle.aug, doc/nodes.aug, doc/records.aug, src/Makefile.am,
src/ast.c, src/ast.h, src/augparse.c, src/list.h, src/parser.c, src
/spec-lex.l, src/spec-parse.y:
First step towards a specification for config files
Definition of a simple language for describing the syntax of config
files and how they are to be mapped to a tree. Lexer/parser for the
language and data structures to hold the specification. Parses files
defined by the grammar - processing of the parse is missing though.
[86cf342432c2]
2007-12-14 David Lutterkort <dlutter@redhat.com>
* src/internal.c, src/internal.h, src/record.c:
Factor aug_make_file into internal.c
[5a40cf1eb3e2]
2007-12-01 David Lutterkort <dlutter@redhat.com>
* tests/augtest:
Be more verbose about which tests were run
[ce670233ca4f]
* src/internal.h:
Do not include unused util.h
[e0655ca5d517]
* README:
Mention language bindings
[3959bcf6676e]
* .hgtags:
Added tag release-0.0.1 for changeset 69688020bb1b
[bf9c34e9fd2e]
* NEWS:
Some news
[69688020bb1b] [release-0.0.1]
* Makefile.am:
Disribute tests and doc/examples.txt
[15e945ebb58e]
* doc/examples.txt:
Some pseudo-code examples
[c3fd11f1e3ee]
* README:
Explain yourself
[f760d61d3d82]
2007-11-30 David Lutterkort <dlutter@redhat.com>
* tests/augtest, tests/rec-initdefault.rb:
Add a test that shows how to change the initdefault
[888fd9336ec9]
* src/augtool.c:
Add help texts and a help command
[bb80953a5af4]
* src/augeas.c, src/augeas.h, src/augtool.c:
Add aug_match as a simple query facility
[574cfb6837b4]
* src/Makefile.am, src/augeas.c, src/prov_inittab.c,
tests/root/inittab:
Handle /etc/inittab
[62efb27b143a]
* src/internal.h, src/prov_hosts.c, src/prov_pam.c:
Make the ROOT_DIR a constant instead of hardcoding it everywhere
[e6975ac9919c]
* tests/rec-hosts-rm.rb:
Test deleting everything from /etc/hosts
[372bb08fdefa]
* tests/augtest:
Describe what a test description looks like
[1d9a9c0d57aa]
* src/Makefile.am, src/augeas.c, src/internal.h, src/prov_hosts.c,
src/prov_pam.c, src/prov_pam.h, src/provider.h, src/record.h, tests
/rec-hosts-add.rb, tests/root/hosts:
Add a provider for /etc/hosts and reorganize how providers are
loaded/saved a little
[51bbd0bd5daf]
* src/record.c:
aug_rec_save: Check input parameters
[39684df63e92]
* configure.ac, src/Makefile.am, src/augeas.c, src/augeas.h,
src/augtool.c, src/internal.c, src/internal.h, src/prov_pam.c,
src/prov_pam.h, src/provider.h, src/record.c, src/record.h:
Major overhaul of record parsing
Use PCRE to split records with regexps, and abstract a major chunk
of functionality out so it is independent of parsing pam config
files
Translate changes in the tree into changes in files
(change/insert/delete of nodes are translated into changing fields
and insert/delete of fields and records/lines)
[d243d8e50188]
* tests/root/etc/pam.d/login, tests/root/etc/pam.d/newrole,
tests/root/etc/pam.d/postgresql:
Root filesys that tests pass against
[4296e2e50ac5]
* tests/augtest, tests/rec-append-record.rb, tests/rec-ins-record.rb,
tests/rec-mod-field.rb, tests/rec-rm-inner-field.rb, tests/rec-rm-
record.rb, tests/rec-rm-tail-field.rb:
Basic tests for record parsing
[a45d661f0e90]
2007-11-26 David Lutterkort <dlutter@redhat.com>
* src/augeas.c:
Trim trailing slashes from paths
[48d2ae5f2e0c]
* src/augeas.c:
Keep /system and /system/config around at all times
[d32ae81afccf]
* src/augeas.c, src/augeas.h, src/augtool.c:
Access aug_insert from the command line; do better error checking
for aug_insert
[c97fc57ae4ba]
* AUTHORS, COPYING, ChangeLog, INSTALL, Makefile.am, NEWS, README,
acinclude.m4, autogen.sh, configure.ac, src/Makefile.am:
Autotools support for building
[33b6ba331e19]
* src/augeas.c, src/augeas.h, src/augtool.c, src/internal.h:
Very simplistic key store with a public API in augeas.h
The implementation is braindead and slow, but good enough to
experiment with the actual difficulty for augeas: parsing and
editing different config files
augtool gives a basic mean to inspect the keystore from the command
line
[7cf9055d5dec]
* .hgignore:
Ignore some files
[e894e25fcd88]
|