1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274 3275 3276 3277 3278 3279 3280 3281 3282 3283 3284 3285 3286 3287 3288 3289 3290 3291 3292 3293 3294 3295 3296 3297 3298 3299 3300 3301 3302 3303 3304 3305 3306 3307 3308 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 3324 3325 3326 3327 3328 3329 3330 3331 3332 3333 3334 3335 3336 3337 3338 3339 3340 3341 3342 3343 3344 3345 3346 3347 3348 3349 3350 3351 3352 3353 3354 3355 3356 3357 3358 3359 3360 3361 3362 3363 3364 3365 3366 3367 3368 3369 3370 3371 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 3421 3422 3423 3424 3425 3426 3427 3428 3429 3430 3431 3432 3433 3434 3435 3436 3437 3438 3439 3440 3441 3442 3443 3444 3445 3446 3447 3448 3449 3450 3451 3452 3453 3454 3455 3456 3457 3458 3459 3460 3461 3462 3463 3464 3465 3466 3467 3468 3469 3470 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 3481 3482 3483 3484 3485 3486 3487 3488 3489 3490 3491 3492 3493 3494 3495 3496 3497 3498 3499 3500 3501 3502 3503 3504 3505 3506 3507 3508 3509 3510 3511 3512 3513 3514 3515 3516 3517 3518 3519 3520 3521 3522 3523 3524 3525 3526 3527 3528 3529 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 3588 3589 3590 3591 3592 3593 3594 3595 3596 3597 3598 3599 3600 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610 3611 3612 3613 3614 3615 3616 3617 3618 3619 3620 3621 3622 3623 3624 3625 3626 3627 3628 3629 3630 3631 3632 3633 3634 3635 3636 3637 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 3731 3732 3733 3734 3735 3736 3737 3738 3739 3740 3741 3742 3743 3744 3745 3746 3747 3748 3749 3750 3751 3752 3753 3754 3755 3756 3757 3758 3759 3760 3761 3762 3763 3764 3765 3766 3767 3768 3769 3770 3771 3772 3773 3774 3775 3776 3777 3778 3779 3780 3781 3782 3783 3784 3785 3786 3787 3788 3789 3790 3791 3792 3793 3794 3795 3796 3797 3798 3799 3800 3801 3802 3803 3804 3805 3806 3807 3808 3809 3810 3811 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 3822 3823 3824 3825 3826 3827 3828 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872 3873 3874 3875 3876 3877 3878 3879 3880 3881 3882 3883 3884 3885 3886 3887 3888 3889 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 3900 3901 3902 3903 3904 3905 3906 3907 3908 3909 3910 3911 3912 3913 3914 3915 3916 3917 3918 3919 3920 3921 3922 3923 3924 3925 3926 3927 3928 3929 3930 3931 3932 3933 3934 3935 3936 3937 3938 3939 3940 3941 3942 3943 3944 3945 3946 3947 3948 3949 3950 3951 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 3962 3963 3964 3965 3966 3967 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 3980 3981 3982 3983 3984 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 4000 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 4016 4017 4018 4019 4020 4021 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 4057 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 4070 4071 4072 4073 4074 4075 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 4088 4089 4090 4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 4142 4143 4144 4145 4146 4147 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 4160 4161 4162 4163 4164 4165 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 4178 4179 4180 4181 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 4216 4217 4218 4219 4220 4221 4222 4223 4224 4225 4226 4227 4228 4229 4230 4231 4232 4233 4234 4235 4236 4237 4238 4239 4240 4241 4242 4243 4244 4245 4246 4247 4248 4249 4250 4251 4252 4253 4254 4255 4256 4257 4258 4259 4260 4261 4262 4263 4264 4265 4266 4267 4268 4269 4270 4271 4272 4273 4274 4275 4276 4277 4278 4279 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 4321 4322 4323 4324 4325 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349 4350 4351 4352 4353 4354 4355 4356 4357 4358 4359 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386 4387 4388 4389 4390 4391 4392 4393 4394 4395 4396 4397 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410 4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 4425 4426 4427 4428 4429 4430 4431 4432 4433 4434 4435 4436 4437 4438 4439 4440 4441 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 4538 4539 4540 4541 4542 4543 4544 4545 4546 4547 4548 4549 4550 4551 4552 4553 4554 4555 4556 4557 4558 4559 4560 4561 4562 4563 4564 4565 4566 4567 4568 4569 4570 4571 4572 4573 4574 4575 4576 4577 4578 4579 4580 4581 4582 4583 4584 4585 4586 4587 4588 4589 4590 4591 4592 4593 4594 4595 4596 4597 4598 4599 4600 4601 4602 4603 4604 4605 4606 4607 4608 4609 4610 4611 4612 4613 4614 4615 4616 4617 4618 4619 4620 4621 4622 4623 4624 4625 4626 4627 4628 4629 4630 4631 4632 4633 4634 4635 4636 4637 4638 4639 4640 4641 4642 4643 4644 4645 4646 4647 4648 4649 4650 4651 4652 4653 4654 4655 4656 4657 4658 4659 4660 4661 4662 4663 4664 4665 4666 4667 4668 4669 4670 4671 4672 4673 4674 4675 4676 4677 4678 4679 4680 4681 4682 4683 4684 4685 4686 4687 4688 4689 4690 4691 4692 4693 4694 4695 4696 4697 4698 4699 4700 4701 4702 4703 4704 4705 4706 4707 4708 4709 4710 4711 4712 4713 4714 4715 4716 4717 4718 4719 4720 4721 4722 4723 4724 4725 4726 4727 4728 4729 4730 4731 4732 4733 4734 4735 4736 4737 4738 4739 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 4750 4751 4752 4753 4754 4755 4756 4757 4758 4759 4760 4761 4762 4763 4764 4765 4766 4767 4768 4769 4770 4771 4772 4773 4774 4775 4776 4777 4778 4779 4780 4781 4782 4783 4784 4785 4786 4787 4788 4789 4790 4791 4792 4793 4794 4795 4796 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810 4811 4812 4813 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 4848 4849 4850 4851 4852 4853 4854 4855 4856 4857 4858 4859 4860 4861 4862 4863 4864 4865 4866 4867 4868 4869 4870 4871 4872 4873 4874 4875 4876 4877 4878 4879 4880 4881 4882 4883 4884 4885 4886 4887 4888 4889 4890 4891 4892 4893 4894 4895 4896 4897 4898 4899 4900 4901 4902 4903 4904 4905 4906 4907 4908 4909 4910 4911 4912 4913 4914 4915 4916 4917 4918 4919 4920 4921 4922 4923 4924 4925 4926 4927 4928 4929 4930 4931 4932 4933 4934 4935 4936 4937 4938 4939 4940 4941 4942 4943 4944 4945 4946 4947 4948 4949 4950 4951 4952 4953 4954 4955 4956 4957 4958 4959 4960 4961 4962 4963 4964 4965 4966 4967 4968 4969 4970 4971 4972 4973 4974 4975 4976 4977 4978 4979 4980 4981 4982 4983 4984 4985 4986 4987 4988 4989 4990 4991 4992 4993 4994 4995 4996 4997 4998 4999 5000 5001 5002 5003 5004 5005 5006 5007 5008 5009 5010 5011 5012 5013 5014 5015 5016 5017 5018 5019 5020 5021 5022 5023 5024 5025 5026 5027 5028 5029 5030 5031 5032 5033 5034 5035 5036 5037 5038 5039 5040 5041 5042 5043 5044 5045 5046 5047 5048 5049 5050 5051 5052 5053 5054 5055 5056 5057 5058 5059 5060 5061 5062 5063 5064 5065 5066 5067 5068 5069 5070 5071 5072 5073 5074 5075 5076 5077 5078 5079 5080 5081 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 5092 5093 5094 5095 5096 5097 5098 5099 5100 5101 5102 5103 5104 5105 5106 5107 5108 5109 5110 5111 5112 5113 5114 5115 5116 5117 5118 5119 5120 5121 5122 5123 5124 5125 5126 5127 5128 5129 5130 5131 5132 5133 5134 5135 5136 5137 5138 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 5149 5150 5151 5152 5153 5154 5155 5156 5157 5158 5159 5160 5161 5162 5163 5164 5165 5166 5167 5168 5169 5170 5171 5172 5173 5174 5175 5176 5177 5178 5179 5180 5181 5182 5183 5184 5185 5186 5187 5188 5189 5190 5191 5192 5193 5194 5195 5196 5197 5198 5199 5200 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210 5211 5212 5213 5214 5215 5216 5217 5218 5219 5220 5221 5222 5223 5224 5225 5226 5227 5228 5229 5230 5231 5232 5233 5234 5235 5236 5237 5238 5239 5240 5241 5242 5243 5244 5245 5246 5247 5248 5249 5250 5251 5252 5253 5254 5255 5256 5257 5258 5259 5260 5261 5262 5263 5264 5265 5266 5267 5268 5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 5285 5286 5287 5288 5289 5290 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 5307 5308 5309 5310 5311 5312 5313 5314 5315 5316 5317 5318 5319 5320 5321 5322 5323 5324 5325 5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5376 5377 5378 5379 5380 5381 5382 5383 5384 5385 5386 5387 5388 5389 5390 5391 5392 5393 5394 5395 5396 5397 5398 5399 5400 5401 5402 5403 5404 5405 5406 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417 5418 5419 5420 5421 5422 5423 5424 5425 5426 5427 5428 5429 5430 5431 5432 5433 5434 5435 5436 5437 5438 5439 5440 5441 5442 5443 5444 5445 5446 5447 5448 5449 5450 5451 5452 5453 5454 5455 5456 5457 5458 5459 5460 5461 5462 5463 5464 5465 5466 5467 5468 5469 5470 5471 5472 5473 5474 5475 5476 5477 5478 5479 5480 5481 5482 5483 5484 5485 5486 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508 5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531 5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 5553 5554 5555 5556 5557 5558 5559 5560 5561 5562 5563 5564 5565 5566 5567 5568 5569 5570 5571 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 5617 5618 5619 5620 5621 5622 5623 5624 5625 5626 5627 5628 5629 5630 5631 5632 5633 5634 5635 5636 5637 5638 5639 5640 5641 5642 5643 5644 5645 5646 5647 5648 5649 5650 5651 5652 5653 5654 5655 5656 5657 5658 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 5678 5679 5680 5681 5682 5683 5684 5685 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 5701 5702 5703 5704 5705 5706 5707 5708 5709 5710 5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757 5758 5759 5760 5761 5762 5763 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782 5783 5784 5785 5786 5787 5788 5789 5790 5791 5792 5793 5794 5795 5796 5797 5798 5799 5800 5801 5802 5803 5804 5805 5806 5807 5808 5809 5810 5811 5812 5813 5814 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 5834 5835 5836 5837 5838 5839 5840 5841 5842 5843 5844 5845 5846 5847 5848 5849 5850 5851 5852 5853 5854 5855 5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 5888 5889 5890 5891 5892 5893 5894 5895 5896 5897 5898 5899 5900 5901 5902 5903 5904 5905 5906 5907 5908 5909 5910 5911 5912 5913 5914 5915 5916 5917 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5929 5930 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5947 5948 5949 5950 5951 5952 5953 5954 5955 5956 5957 5958 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5989 5990 5991 5992 5993 5994 5995 5996 5997 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010 6011 6012 6013 6014 6015 6016 6017 6018 6019 6020 6021 6022 6023 6024 6025 6026 6027 6028 6029 6030 6031 6032 6033 6034 6035 6036 6037 6038 6039 6040 6041 6042 6043 6044 6045 6046 6047 6048 6049 6050 6051 6052 6053 6054 6055 6056 6057 6058 6059 6060 6061 6062 6063 6064 6065 6066 6067 6068 6069 6070 6071 6072 6073 6074 6075 6076 6077 6078 6079 6080 6081 6082 6083 6084 6085 6086 6087 6088 6089 6090 6091 6092 6093 6094 6095 6096 6097 6098 6099 6100 6101 6102 6103 6104 6105 6106 6107 6108 6109 6110 6111 6112 6113 6114 6115 6116 6117 6118 6119 6120 6121 6122 6123 6124 6125 6126 6127 6128 6129 6130 6131 6132 6133 6134 6135 6136 6137 6138 6139 6140 6141 6142 6143 6144 6145 6146 6147 6148 6149 6150 6151 6152 6153 6154 6155 6156 6157 6158 6159 6160 6161 6162 6163 6164 6165 6166 6167 6168 6169 6170 6171 6172 6173 6174 6175 6176 6177 6178 6179 6180 6181 6182 6183 6184 6185 6186 6187 6188 6189 6190 6191 6192 6193 6194 6195 6196 6197 6198 6199 6200 6201 6202 6203 6204 6205 6206 6207 6208 6209 6210 6211 6212 6213 6214 6215 6216 6217 6218 6219 6220 6221 6222 6223 6224 6225 6226 6227 6228 6229 6230 6231 6232 6233 6234 6235 6236 6237 6238 6239 6240 6241 6242 6243 6244 6245 6246 6247 6248 6249 6250 6251 6252 6253 6254 6255 6256 6257 6258 6259 6260 6261 6262 6263 6264 6265 6266 6267 6268 6269 6270 6271 6272 6273 6274 6275 6276 6277 6278 6279 6280 6281 6282 6283 6284 6285 6286 6287 6288 6289 6290 6291 6292 6293 6294 6295 6296 6297 6298 6299 6300 6301 6302 6303 6304 6305 6306 6307 6308 6309 6310 6311 6312 6313 6314 6315 6316 6317 6318 6319 6320 6321 6322 6323 6324 6325 6326 6327 6328 6329 6330 6331 6332 6333 6334 6335 6336 6337 6338 6339 6340 6341 6342 6343 6344 6345 6346 6347 6348 6349 6350 6351 6352 6353 6354 6355 6356 6357 6358 6359 6360 6361 6362 6363 6364 6365 6366 6367 6368 6369 6370 6371 6372 6373 6374 6375 6376 6377 6378 6379 6380 6381 6382 6383 6384 6385 6386 6387 6388 6389 6390 6391 6392 6393 6394 6395 6396 6397 6398 6399 6400 6401 6402 6403 6404 6405 6406 6407 6408 6409 6410 6411 6412 6413 6414 6415 6416 6417 6418 6419 6420 6421 6422 6423 6424 6425 6426 6427 6428 6429 6430 6431 6432 6433 6434 6435 6436 6437 6438 6439 6440 6441 6442 6443 6444 6445 6446 6447 6448 6449 6450 6451 6452 6453 6454 6455 6456 6457 6458 6459 6460 6461 6462 6463 6464 6465 6466 6467 6468 6469 6470 6471 6472 6473 6474 6475 6476 6477 6478 6479 6480 6481 6482 6483 6484 6485 6486 6487 6488 6489 6490 6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 6502 6503 6504 6505 6506 6507 6508 6509 6510 6511 6512 6513 6514 6515 6516 6517 6518 6519 6520 6521 6522 6523 6524 6525 6526 6527 6528 6529 6530 6531 6532 6533 6534 6535 6536 6537 6538 6539 6540 6541 6542 6543 6544 6545 6546 6547 6548 6549 6550 6551 6552 6553 6554 6555 6556 6557 6558 6559 6560 6561 6562 6563 6564 6565 6566 6567 6568 6569 6570 6571 6572 6573 6574 6575 6576 6577 6578 6579 6580 6581 6582 6583 6584 6585 6586 6587 6588 6589 6590 6591 6592 6593 6594 6595 6596 6597 6598 6599 6600 6601 6602 6603 6604 6605 6606 6607 6608 6609 6610 6611 6612 6613 6614 6615 6616 6617 6618 6619 6620 6621 6622 6623 6624 6625 6626 6627 6628 6629 6630 6631 6632 6633 6634 6635 6636 6637 6638 6639 6640 6641 6642 6643 6644 6645 6646 6647 6648 6649 6650 6651 6652 6653 6654 6655 6656 6657 6658 6659 6660 6661 6662 6663 6664 6665 6666 6667 6668 6669 6670 6671 6672 6673 6674 6675 6676 6677 6678 6679 6680 6681 6682 6683 6684 6685 6686 6687 6688 6689 6690 6691 6692 6693 6694 6695 6696 6697 6698 6699 6700 6701 6702 6703 6704 6705 6706 6707 6708 6709 6710 6711 6712 6713 6714 6715 6716 6717 6718 6719 6720 6721 6722 6723 6724 6725 6726 6727 6728 6729 6730 6731 6732 6733 6734 6735 6736 6737 6738 6739 6740 6741 6742 6743 6744 6745 6746 6747 6748 6749 6750 6751 6752 6753 6754 6755 6756 6757 6758 6759 6760 6761 6762 6763 6764 6765 6766 6767 6768 6769 6770 6771 6772 6773 6774 6775 6776 6777 6778 6779 6780 6781 6782 6783 6784 6785 6786 6787 6788 6789 6790 6791 6792 6793 6794 6795 6796 6797 6798 6799 6800 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810 6811 6812 6813 6814 6815 6816 6817 6818 6819 6820 6821 6822 6823 6824 6825 6826 6827 6828 6829 6830 6831 6832 6833 6834 6835 6836 6837 6838 6839 6840 6841 6842 6843 6844 6845 6846 6847 6848 6849 6850 6851 6852 6853 6854 6855 6856 6857 6858 6859 6860 6861 6862 6863 6864 6865 6866 6867 6868 6869 6870 6871 6872 6873 6874 6875 6876 6877 6878 6879 6880 6881 6882 6883 6884 6885 6886 6887 6888 6889 6890 6891 6892 6893 6894 6895 6896 6897 6898 6899 6900 6901 6902 6903 6904 6905 6906 6907 6908 6909 6910 6911 6912 6913 6914 6915 6916 6917 6918 6919 6920 6921 6922 6923 6924 6925 6926 6927 6928 6929 6930 6931 6932 6933 6934 6935 6936 6937 6938 6939 6940 6941 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6955 6956 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 6967 6968 6969 6970 6971 6972 6973 6974 6975 6976 6977 6978 6979 6980 6981 6982 6983 6984 6985 6986 6987 6988 6989 6990 6991 6992 6993 6994 6995 6996 6997 6998 6999 7000 7001 7002 7003 7004 7005 7006 7007 7008 7009 7010 7011 7012 7013 7014 7015 7016 7017 7018 7019 7020 7021 7022 7023 7024 7025 7026 7027 7028 7029 7030 7031 7032 7033 7034 7035 7036 7037 7038 7039 7040 7041 7042 7043 7044 7045 7046 7047 7048 7049 7050 7051 7052 7053 7054 7055 7056 7057 7058 7059 7060 7061 7062 7063 7064 7065 7066 7067 7068 7069 7070 7071 7072 7073 7074 7075 7076 7077 7078 7079 7080 7081 7082 7083 7084 7085 7086 7087 7088 7089 7090 7091 7092 7093 7094 7095 7096 7097 7098 7099 7100 7101 7102 7103 7104 7105 7106 7107 7108 7109 7110 7111 7112 7113 7114 7115 7116 7117 7118 7119 7120 7121 7122 7123 7124 7125 7126 7127 7128 7129 7130 7131 7132 7133 7134 7135 7136 7137 7138 7139 7140 7141 7142 7143 7144 7145 7146 7147 7148 7149 7150 7151 7152 7153 7154 7155 7156 7157 7158 7159 7160 7161 7162 7163 7164 7165 7166 7167 7168 7169 7170 7171 7172 7173 7174 7175 7176 7177 7178 7179 7180 7181 7182 7183 7184 7185 7186 7187 7188 7189 7190 7191 7192 7193 7194 7195 7196 7197 7198 7199 7200 7201 7202 7203 7204 7205 7206 7207 7208 7209 7210 7211 7212 7213 7214 7215 7216 7217 7218 7219 7220 7221 7222 7223 7224 7225 7226 7227 7228 7229 7230 7231 7232 7233 7234 7235 7236 7237 7238 7239 7240 7241 7242 7243 7244 7245 7246 7247 7248 7249 7250 7251 7252 7253 7254 7255 7256 7257 7258 7259 7260 7261 7262 7263 7264 7265 7266 7267 7268 7269 7270 7271 7272 7273 7274 7275 7276 7277 7278 7279 7280 7281 7282 7283 7284 7285 7286 7287 7288 7289 7290 7291 7292 7293 7294 7295 7296 7297 7298 7299 7300 7301 7302 7303 7304 7305 7306 7307 7308 7309 7310 7311 7312 7313 7314 7315 7316 7317 7318 7319 7320 7321 7322 7323 7324 7325 7326 7327 7328 7329 7330 7331 7332 7333 7334 7335 7336 7337 7338 7339 7340 7341 7342 7343 7344 7345 7346 7347 7348 7349 7350 7351 7352 7353 7354 7355 7356 7357 7358 7359 7360 7361 7362 7363 7364 7365 7366 7367 7368 7369 7370 7371 7372 7373 7374 7375 7376 7377 7378 7379 7380 7381 7382 7383 7384 7385 7386 7387 7388 7389 7390 7391 7392 7393 7394 7395 7396 7397 7398 7399 7400 7401 7402 7403 7404 7405 7406 7407 7408 7409 7410 7411 7412 7413 7414 7415 7416 7417 7418 7419 7420 7421 7422 7423 7424 7425 7426 7427 7428 7429 7430 7431 7432 7433 7434 7435 7436 7437 7438 7439 7440 7441 7442 7443 7444 7445 7446 7447 7448 7449 7450 7451 7452 7453 7454 7455 7456 7457 7458 7459 7460 7461 7462 7463 7464 7465 7466 7467 7468 7469 7470 7471 7472 7473 7474 7475 7476 7477 7478 7479 7480 7481 7482 7483 7484 7485 7486 7487 7488 7489 7490 7491 7492 7493 7494 7495 7496 7497 7498 7499 7500 7501 7502 7503 7504 7505 7506 7507 7508 7509 7510 7511 7512 7513 7514 7515 7516 7517 7518 7519 7520 7521 7522 7523 7524 7525 7526 7527 7528 7529 7530 7531 7532 7533 7534 7535 7536 7537 7538 7539 7540 7541 7542 7543 7544 7545 7546 7547 7548 7549 7550 7551 7552 7553 7554 7555 7556 7557 7558 7559 7560 7561 7562 7563 7564 7565 7566 7567 7568 7569 7570 7571 7572 7573 7574 7575 7576 7577 7578 7579 7580 7581 7582 7583 7584 7585 7586 7587 7588 7589 7590 7591 7592 7593 7594 7595 7596 7597 7598 7599 7600 7601 7602 7603 7604 7605 7606 7607 7608 7609 7610 7611 7612 7613 7614 7615 7616 7617 7618 7619 7620 7621 7622 7623 7624 7625 7626 7627 7628 7629 7630 7631 7632 7633 7634 7635 7636 7637 7638 7639 7640 7641 7642 7643 7644 7645 7646 7647 7648 7649 7650 7651 7652 7653 7654 7655 7656 7657 7658 7659 7660 7661 7662 7663 7664 7665 7666 7667 7668 7669 7670 7671 7672 7673 7674 7675 7676 7677 7678 7679 7680 7681 7682 7683 7684 7685 7686 7687 7688 7689 7690 7691 7692 7693 7694 7695 7696 7697 7698 7699 7700 7701 7702 7703 7704 7705 7706 7707 7708 7709 7710 7711 7712 7713 7714 7715 7716 7717 7718 7719 7720 7721 7722 7723 7724 7725 7726 7727 7728 7729 7730 7731 7732 7733 7734 7735 7736 7737 7738 7739 7740 7741 7742 7743 7744 7745 7746 7747 7748 7749 7750 7751 7752 7753 7754 7755 7756 7757 7758 7759 7760 7761 7762 7763 7764 7765 7766 7767 7768 7769 7770 7771 7772 7773 7774 7775 7776 7777 7778 7779 7780 7781 7782 7783 7784 7785 7786 7787 7788 7789 7790 7791 7792 7793 7794 7795 7796 7797 7798 7799 7800 7801 7802 7803 7804 7805 7806 7807 7808 7809 7810 7811 7812 7813 7814 7815 7816 7817 7818 7819 7820 7821 7822 7823 7824 7825 7826 7827 7828 7829 7830 7831 7832 7833 7834 7835 7836 7837 7838 7839 7840 7841 7842 7843 7844 7845 7846 7847 7848 7849 7850 7851 7852 7853 7854 7855 7856 7857 7858 7859 7860 7861 7862 7863 7864 7865 7866 7867 7868 7869 7870 7871 7872 7873 7874 7875 7876 7877 7878 7879 7880 7881 7882 7883 7884 7885 7886 7887 7888 7889 7890 7891 7892 7893 7894 7895 7896 7897 7898 7899 7900 7901 7902 7903 7904 7905 7906 7907 7908 7909 7910 7911 7912 7913 7914 7915 7916 7917 7918 7919 7920 7921 7922 7923 7924 7925 7926 7927 7928 7929 7930 7931 7932 7933 7934 7935 7936 7937 7938 7939 7940 7941 7942 7943 7944 7945 7946 7947 7948 7949 7950 7951 7952 7953 7954 7955 7956 7957 7958 7959 7960 7961 7962 7963 7964 7965 7966 7967 7968 7969 7970 7971 7972 7973 7974 7975 7976 7977 7978 7979 7980 7981 7982 7983 7984 7985 7986 7987 7988 7989 7990 7991 7992 7993 7994 7995 7996 7997 7998 7999 8000 8001 8002 8003 8004 8005 8006 8007 8008 8009 8010 8011 8012 8013 8014 8015 8016 8017 8018 8019 8020 8021 8022 8023 8024 8025 8026 8027 8028 8029 8030 8031 8032 8033 8034 8035 8036 8037 8038 8039 8040 8041 8042 8043 8044 8045 8046 8047 8048 8049 8050 8051 8052 8053 8054 8055 8056 8057 8058 8059 8060 8061 8062 8063 8064 8065 8066 8067 8068 8069 8070 8071 8072 8073 8074 8075 8076 8077 8078 8079 8080 8081 8082 8083 8084 8085 8086 8087 8088 8089 8090 8091 8092 8093 8094 8095 8096 8097 8098 8099 8100 8101 8102 8103 8104 8105 8106 8107 8108 8109 8110 8111 8112 8113 8114 8115 8116 8117 8118 8119 8120 8121 8122 8123 8124 8125 8126 8127 8128 8129 8130 8131 8132 8133 8134 8135 8136 8137 8138 8139 8140 8141 8142 8143 8144 8145 8146 8147 8148 8149 8150 8151 8152 8153 8154 8155 8156 8157 8158 8159 8160 8161 8162 8163 8164 8165 8166 8167 8168 8169 8170 8171 8172 8173 8174 8175 8176 8177 8178 8179 8180 8181 8182 8183 8184 8185 8186 8187 8188 8189 8190 8191 8192 8193 8194 8195 8196 8197 8198 8199 8200 8201 8202 8203 8204 8205 8206 8207 8208 8209 8210 8211 8212 8213 8214 8215 8216 8217 8218 8219 8220 8221 8222 8223 8224 8225 8226 8227 8228 8229 8230 8231 8232 8233 8234 8235 8236 8237 8238 8239 8240 8241 8242 8243 8244 8245 8246 8247 8248 8249 8250 8251 8252 8253 8254 8255 8256 8257 8258 8259 8260 8261 8262 8263 8264 8265 8266 8267 8268 8269 8270 8271 8272 8273 8274 8275 8276 8277 8278 8279 8280 8281 8282 8283 8284 8285 8286 8287 8288 8289 8290 8291 8292 8293 8294 8295 8296 8297 8298 8299 8300 8301 8302 8303 8304 8305 8306 8307 8308 8309 8310 8311 8312 8313 8314 8315 8316 8317 8318 8319 8320 8321 8322 8323 8324 8325 8326 8327 8328 8329 8330 8331 8332 8333 8334 8335 8336 8337 8338 8339 8340 8341 8342 8343 8344 8345 8346 8347 8348 8349 8350 8351 8352 8353 8354 8355 8356 8357 8358 8359 8360 8361 8362 8363 8364 8365 8366 8367 8368 8369 8370 8371 8372 8373 8374 8375 8376 8377 8378 8379 8380 8381 8382 8383 8384 8385 8386 8387 8388 8389 8390 8391 8392 8393 8394 8395 8396 8397 8398 8399 8400 8401 8402 8403 8404 8405 8406 8407 8408 8409 8410 8411 8412 8413 8414 8415 8416 8417 8418 8419 8420 8421 8422 8423 8424 8425 8426 8427 8428 8429 8430 8431 8432 8433 8434 8435 8436 8437 8438 8439 8440 8441 8442 8443 8444 8445 8446 8447 8448 8449 8450 8451 8452 8453 8454 8455 8456 8457 8458 8459 8460 8461 8462 8463 8464 8465 8466 8467 8468 8469 8470 8471 8472 8473 8474 8475 8476 8477 8478 8479 8480 8481 8482 8483 8484 8485 8486 8487 8488 8489 8490 8491 8492 8493 8494 8495 8496 8497 8498 8499 8500 8501 8502 8503 8504 8505 8506 8507 8508 8509 8510 8511 8512 8513 8514 8515 8516 8517 8518 8519 8520 8521 8522 8523 8524 8525 8526 8527 8528 8529 8530 8531 8532 8533 8534 8535 8536 8537 8538 8539 8540 8541 8542 8543 8544 8545 8546 8547 8548 8549 8550 8551 8552 8553 8554 8555 8556 8557 8558 8559 8560 8561 8562 8563 8564 8565 8566 8567 8568 8569 8570 8571 8572 8573 8574 8575 8576 8577 8578 8579 8580 8581 8582 8583 8584 8585 8586 8587 8588 8589 8590 8591 8592 8593 8594 8595 8596 8597 8598 8599 8600 8601 8602 8603 8604 8605 8606 8607 8608 8609 8610 8611 8612 8613 8614 8615 8616 8617 8618 8619 8620 8621 8622 8623 8624 8625 8626 8627 8628 8629 8630 8631 8632 8633 8634 8635 8636 8637 8638 8639 8640 8641 8642 8643 8644 8645 8646 8647 8648 8649 8650 8651 8652 8653 8654 8655 8656 8657 8658 8659 8660 8661 8662 8663 8664 8665 8666 8667 8668 8669 8670 8671 8672 8673 8674 8675 8676 8677 8678 8679 8680 8681 8682 8683 8684 8685 8686 8687 8688 8689 8690 8691 8692 8693 8694 8695 8696 8697 8698 8699 8700 8701 8702 8703 8704 8705 8706 8707 8708 8709 8710 8711 8712 8713 8714 8715 8716 8717 8718 8719 8720 8721 8722 8723 8724 8725 8726 8727 8728 8729 8730 8731 8732 8733 8734 8735 8736 8737 8738 8739 8740 8741 8742 8743 8744 8745 8746 8747 8748 8749 8750 8751 8752 8753 8754 8755 8756 8757 8758 8759 8760 8761 8762 8763 8764 8765 8766 8767 8768 8769 8770 8771 8772 8773 8774 8775 8776 8777 8778 8779 8780 8781 8782 8783 8784 8785 8786 8787 8788 8789 8790 8791 8792 8793 8794 8795 8796 8797 8798 8799 8800 8801 8802 8803 8804 8805 8806 8807 8808 8809 8810 8811 8812 8813 8814 8815 8816 8817 8818 8819 8820 8821 8822 8823 8824 8825 8826 8827 8828 8829 8830 8831 8832 8833 8834 8835 8836 8837 8838 8839 8840 8841 8842 8843 8844 8845 8846 8847 8848 8849 8850 8851 8852 8853 8854 8855 8856 8857 8858 8859 8860 8861 8862 8863 8864 8865 8866 8867 8868 8869 8870 8871 8872 8873 8874 8875 8876 8877 8878 8879 8880 8881 8882 8883 8884 8885 8886 8887 8888 8889 8890 8891 8892 8893 8894 8895 8896 8897 8898 8899 8900 8901 8902 8903 8904 8905 8906 8907 8908 8909 8910 8911 8912 8913 8914 8915 8916 8917 8918 8919 8920 8921 8922 8923 8924 8925 8926 8927 8928 8929 8930 8931 8932 8933 8934 8935 8936 8937 8938 8939 8940 8941 8942 8943 8944 8945 8946 8947 8948 8949 8950 8951 8952 8953 8954 8955 8956 8957 8958 8959 8960 8961 8962 8963 8964 8965 8966 8967 8968 8969 8970 8971 8972 8973 8974 8975 8976 8977 8978 8979 8980 8981 8982 8983 8984 8985 8986 8987 8988 8989 8990 8991 8992 8993 8994 8995 8996 8997 8998 8999 9000 9001 9002 9003 9004 9005 9006 9007 9008 9009 9010 9011 9012 9013 9014 9015 9016 9017 9018 9019 9020 9021 9022 9023 9024 9025 9026 9027 9028 9029 9030 9031 9032 9033 9034 9035 9036 9037 9038 9039 9040 9041 9042 9043 9044 9045 9046 9047 9048 9049 9050 9051 9052 9053 9054 9055 9056 9057 9058 9059 9060 9061 9062 9063 9064 9065
|
2021-11-04 D. V. Wiebe <getdata@ketiltrout.net>
* src/parse.c (_GD_ParseFieldSpec): If parsing a RAW field
fails, and it was stored as D->reference_field, NULLify
D->reference_field when destroying the bad RAW entry.
(Fixes CVE-2021-20204.)
* src/common.c (_GD_LinterpData): Remove restrict from
input and output buffers (which may be the same for
in-place processing).
* m4/php.m4 (GD_PHP): Disable PHP bindings if a check
for php.h fails.
* test/olimit_count_gzip.c: Fix skip condition.
* src/getdata.h.in bindings/make_parameters.c: Remove symbols:
GD_FLOAT GD_DOUBLE GD_E_BAD_ENDIANNESS GD_E_BAD_PROTECTION
GD_E_BAD_VERSION GD_E_FORMAT_NO_PARENT gd_bit_t gd_spf_t
all deprecated in GetData-0.8.
2021-11-03 D. V. Wiebe <getata@ketiltrout.net>
* bindings/f77/Makefile.am bindings/f77/test/Makefile.am:
Add -std=legacy to FFLAGS and -fallow-argument-mismatch to
FCFLAGS for modern gfortran support.
* configure.ac: Check for the above compiler flags.
* bindings/f77/getdata.f90.in (fgd_madd): Remove extra
parameters in gdadwd calls.
* bindings/f77/getdata.f90.in (fgd_add_window_r): Fix
int-ification of threshold.
* bindings/f77/getdata.f90.in (fgd_match_entries): Ensure
return value is initialised.
* bindings/php/getdata.c: Fix definition of dtracetsrm.
* m4/compiler.m4 configure.ac: Combine all the compiler
flag checking macros into one per language:
GD_PROG_CC_ARG. GD_PROG_CXX_ARG, GD_PROG_F77_ARG,
GG_PROG_FC_ARG
* m4/php.m4 (PHP_CONFIG): Try php7-config, too.
2018-04-25 D. V. Wiebe <getdata@ketiltrout.net> svn:1174
* bindings/php/getdata.c (gdphp_to_datum): Handle GD_STRING.
* bindings/php/getdata.c (gdphp_convert_cmparray): Fix error string.
* bindings/python/pydirfile.c (gdpy_dirfile_getsarray gdpy_dirfile_getdata):
Check for overflow of returned string array data.
* bindings/python/pydirfile.c (gdpy_dirfile_putsarray): Use size_t for len.
2018-04-25 D. V. Wiebe <getdata@ketiltrout.net> svn:1173
* configure.ac: Look for install_name_tool
* bindings/perl/Makefile.am bindings/python/Makefile.am src/Makefile.am:
Use install_name_tool to mangle library paths on MacOS.
* src/Makefile.am: Drop all the -dlopen options from libgetdata.la. Link
all the modules to libgetdata.la.
* m4/perl.m4 (GD_PERL_MAKEMAKER_CONFIG): Replaced GD_PERL_MAN3EXT.
Determine DLEXT from ExtUtils::MakeMaker
* bindings/perl/Makefile.am: Use correct dlext.
2018-04-18 D. V. Wiebe <getdata@ketiltrout.net> svn:1172
* src/Makefile.am: Add -lgetdata to the module link line.
* src/bzip.c (_GD_Bzip2DoOpen _GD_Bzip2Open): Zero file->pos in
_GD_Bzip2Open not _GD_Bzip2DoOpen so that mixing gd_nframes calls
with data reads of a bzipped REFERENCE field doesn't mess things up.
* bindings/python/pydirfile.c (gdpy_dirfile_getdata): Fix read-past-end
check. Patch from Matthew Petroff.
2017-10-04 D. V. Wiebe <getdata@ketiltrout.net> svn:1165
* src/getdata.h.in: Define GD_OLIMIT_*
* src/globals.c (_GD_FindOpenFields openedcmp _GD_CloseOpenFields
_GD_AutoClose gd_open_limit): Added.
* src/internal.h (gd_private_entry_): Add u.raw.atime, u.raw.fd_count
* src/internal.h (gd_dirfile_): Add open_limit, open_fds, open_raws,
opened_sorted, opened.
* src/iopos.c (_GD_DoSeek): Update u.raw.atime.
* src/close.c (_GD_FreeD): Free D->opened.
* src/encoding.c (_GD_FiniRawIO): Remove closed field from D->opened.
* src/encoding.c (_GD_InitRawIO): Call _GD_AutoClose if limiting is active.
Add opened field to D->opened.
* man/gd_open_limit.3in: Added.
* test/test.h (MAKERAWFILE): Added.
* test/olimit_count.c test/olimit_count_gzip.c test/olimit_down.c
test/olimit_foffs.c test/olimit_get.c test/olimit_get_err.c
test/olimit_reset.c test/olimit_set.c: Added.
* bindings/make_parameters.c: Add GD_OLIMIT_*. Merge GDMP_RFLAG and
GDMP_DESYNC flags into GDMP_FFLAG.
* bindings/cxx/dirfile.cpp (Dirfile::OpenLimit) bindings/f77/fgetdata.c
(GDOLIM) bindings/f77/getdata.f90.in (fgd_open_limit) bindings/idl/getdata.c
(gdidl_open_limit) bindings/matlab/gd_open_limit.c
bindings/perl/simple_funcs.xsin (open_limit) bindings/php/getdata.c
(gd_open_limit) bindings/python/pydirfile.c (gdpy_dirfile_getocount
gdpy_dirfile_getolimit gdpy_dirfile_setolimit): Added.
* bindings/perl/simple_funcs.pl: Handle (signed) long.
* bindings/cxx/test/big_test.cpp bindings/f77/test/big_test.f
bindings/f77/test/big_test95.f90 bindings/idl/test/big_test.pro
bindings/matlab/test/big_test.m bindings/perl/t/big_test.t
bindings/php/test/big_test.php bindings/python/test/big_test.py: Added test
306.
* bindings/idl/getdata.c (gdidl_dirfile_standards): Remove unnecessary,
undocumented /CURRENT flag.
2017-10-04 D. V. Wiebe <getdata@ketiltrout.net> svn:1164
* src/internal.h bindings/idl/getdata.c: Define CMPLX if necessary.
* src/internal.h bindings/idl/getdata.c test/add_clincom.c
test/add_clincom_nfields.c test/add_cpolynom.c test/add_cpolynom_order.c
test/add_crecip.c test/alter_clincom.c test/alter_cpolynom.c
test/alter_cpolynom_null.c test/alter_crecip.c test/alter_entry_scalar3c.c
test/convert_complex128_complex64.c test/convert_complex64_complex128.c
test/get_clincom.c test/get_complex128.c test/get_complex64.c
test/get_const_complex.c test/get_cpolynom.c test/get_endian_complex128_arm.c
test/get_endian_complex128_big.c test/get_endian_complex128_little.c
test/get_endian_complex64_arm.c test/get_endian_complex64_big.c
test/get_endian_complex64_little.c test/madd_clincom.c
test/madd_clincom_nfields.c test/madd_cpolynom.c test/madd_cpolynom_order.c
test/madd_crecip.c test/parse_const_complex.c test/put_complex128.c
test/put_complex64.c test/put_endian_complex128_arm.c
test/put_endian_complex128_big.c test/put_endian_complex128_little.c
test/put_endian_complex64_big.c test/put_endian_complex64_little.c: Use
CMPLX to build up complex numbers.
2017-10-04 D. V. Wiebe <getdata@ketiltrout.net> svn:1163
* bindings/f77/fgetdata.c src/add.c src/common.c src/internal.h src/mod.c
src/putdata.c src/sie.c src/types.c test/add_clincom.c
test/add_clincom_nfields.c test/add_cpolynom.c test/add_cpolynom_order.c
test/add_crecip.c test/alter_clincom.c test/alter_cpolynom.c
test/alter_crecip.c test/convert_complex128_complex64.c
test/convert_complex128_float64.c test/convert_complex128_int64.c
test/convert_complex128_uint64.c test/convert_complex64_complex128.c
test/convert_complex64_float64.c test/convert_complex64_int64.c
test/convert_complex64_int64.c test/convert_complex64_uint64.c
test/convert_float32_complex128.c test/convert_float32_complex64.c
test/convert_float64_complex128.c test/convert_float64_complex64.c
test/convert_int16_complex128.c test/convert_int16_complex64.c
test/convert_int32_complex128.c test/convert_int32_complex64.c
test/convert_int64_complex128.c test/convert_int64_complex64.c
test/convert_int8_complex128.c test/convert_int8_complex64.c
test/convert_uint16_complex128.c test/convert_uint16_complex64.c
test/convert_uint32_complex128.c test/convert_uint32_complex64.c
test/convert_uint64_complex128.c test/convert_uint64_complex64.c
test/convert_uint8_complex128.c test/convert_uint8_complex64.c
test/get_clincom.c test/get_complex128.c test/get_complex64.c
test/get_const_complex.c test/get_cpolynom.c test/get_endian_complex128_arm.c
test/get_endian_complex128_big.c test/get_endian_complex128_little.c
test/get_endian_complex64_arm.c test/get_endian_complex64_big.c
test/get_endian_complex64_little.c test/madd_clincom.c
test/madd_clincom_nfields.c test/madd_cpolynom.c test/madd_cpolynom_order.c
test/madd_crecip.c test/parse_const_complex.c test/put_complex128.c
test/put_complex64.c test/put_endian_complex128_arm.c
test/put_endian_complex128_big.c test/put_endian_complex128_little.c
test/put_endian_complex64_arm.c test/put_endian_complex64_big.c
test/put_endian_complex64_little.c: Use _Complex instead of complex.
2017-10-04 D. V. Wiebe <getdata@ketiltrout.net> svn:1161
* test/match_pcre_js.c: Check that PCRE behaves as expected.
* test/alter_entry_sarray.c test/match_fragment.c test/match_pcre.c
test/match_pcre_caseless.c test/match_pcre_ext.c test/match_pcre_js.c
test/match_pcre_utf8.c test/match_regex.c test/match_regex_ext.c
test/match_regex_icase.c test/name_alias.c test/name_dangle.c
test/name_meta2.c test/name_move.c test/name_move_alias.c test/name_name.c:
Fix string array checks.
* test/test.h (CHECKSA CHECKPA): Added.
* test/ascii_put.c test/ascii_put_here.c test/ascii_sync.c test/bzip_put.c
test/bzip_put_back.c test/bzip_put_endian.c test/bzip_put_get.c
test/bzip_put_pad.c test/bzip_put_sub.c test/bzip_sync.c test/enc_del.c
test/flac_put_big.c test/flac_put_complex128.c test/flac_put_float64.c
test/flac_put_int32.c test/flac_put_little.c test/flac_sync.c test/flush_all.c
test/flush_flush.c test/flush_raw_close.c test/flush_sync.c gzip_put.c
test/gzip_put_back.c test/gzip_put_endian.c test/gzip_put_get.c
test/gzip_put_pad.c test/gzip_put_sub.c test/gzip_sync.c test/legacy_get_put.c
test/legacy_put.c test/lzma_xz_put.c test/lzma_xz_put_back.c
test/lzma_xz_put_endian.c test/lzma_xz_put_get.c test/lzma_xz_put_pad.c
test/lzma_xz_sync.c test/put64.c test/put_char.c test/put_clincom1.c
test/put_complex128.c test/put_complex64.c test/put_crecip.c test/put_divide.c
test/put_ff.c test/put_float32.c test/put_float64.c test/put_fs.c
test/put_here.c test/put_heres.c test/put_indir.c test/put_int16.c
test/put_int32.c test/put_int64.c test/put_int8.c test/put_lincom1.c
test/put_lincom2.c test/put_linterp.c test/put_linterp_noin.c
test/put_linterp_nomono.c test/put_linterp_notab.c test/put_linterp_reverse.c
test/put_multiply.c test/put_off64.c test/put_phase.c test/put_phase_noin.c
test/put_polynom1.c test/put_polynom2.c test/put_polynom_noin.c
test/put_protect.c test/put_rdonly.c test/put_recip.c test/put_repr.c
test/put_sf.c test/put_sindir.c test/put_ss.c test/put_uint16.c
test/put_uint32.c test/put_uint64.c test/put_window.c: Remove unnecessary
memset.
* test/test/bzip_get.c test/bzip_get_far.c test/convert_complex128_complex64.c
test/convert_complex64_complex128.c test/convert_float32_complex128.c
test/convert_float32_complex64.c test/convert_float32_float64.c
test/convert_float32_int16.c test/convert_float32_int32.c
test/convert_float32_int64.c test/convert_float32_uint16.c
test/convert_float32_uint32.c test/convert_float32_uint64.c
test/convert_float64_complex128.c test/convert_float64_complex64.c
test/convert_float64_float32.c test/convert_float64_int16.c
test/convert_float64_int32.c test/convert_float64_uint16.c
test/convert_float64_uint32.c test/convert_float64_uint64.c
test/convert_int16_complex128.c test/convert_int16_complex64.c
test/convert_int16_float32.c test/convert_int16_float64.c
test/convert_int16_int32.c test/convert_int16_int64.c
test/convert_int16_uint16.c test/convert_int16_uint32.c
test/convert_int16_uint64.c test/convert_int32_complex128.c
test/convert_int32_complex64.c test/convert_int32_float32.c
test/convert_int32_float64.c test/convert_int32_int16.c
test/convert_int32_int64.c test/convert_int32_uint16.c
test/convert_int32_uint32.c test/convert_int32_uint64.c
test/convert_int64_complex128.c test/convert_int64_complex64.c
test/convert_int64_float32.c test/convert_int64_float64.c
test/convert_int64_int16.c test/convert_int64_int32.c
test/convert_int64_uint16.c test/convert_int64_uint32.c
test/convert_int64_uint64.c test/convert_int8_complex128.c
test/convert_int8_complex64.c test/convert_int8_float32.c
test/convert_int8_float64.c test/convert_int8_int16.c
test/convert_int8_int32.c test/convert_int8_int64.c
test/convert_int8_uint16.c test/convert_int8_uint32.c
test/convert_int8_uint64.c test/convert_uint16_complex128.c
test/convert_uint16_complex64.c test/convert_uint16_float32.c
test/convert_uint16_float64.c test/convert_uint16_int16.c
test/convert_uint16_int32.c test/convert_uint16_int64.c
test/convert_uint16_uint32.c test/convert_uint16_uint64.c
test/convert_uint32_complex128.c test/convert_uint32_complex64.c
test/convert_uint32_float32.c test/convert_uint32_float64.c
test/convert_uint32_int16.c test/convert_uint32_int32.c
test/convert_uint32_int64.c test/convert_uint32_uint16.c
test/convert_uint32_uint64.c test/convert_uint64_complex128.c
test/convert_uint64_complex64.c test/convert_uint64_float32.c
test/convert_uint64_float64.c test/convert_uint64_int16.c
test/convert_uint64_int32.c test/convert_uint64_int64.c
test/convert_uint64_uint16.c test/convert_uint64_uint32.c
test/convert_uint8_complex128.c test/convert_uint8_complex64.c
test/convert_uint8_float32.c test/convert_uint8_float64.c
test/convert_uint8_int16.c test/convert_uint8_int32.c
test/convert_uint8_int64.c test/convert_uint8_uint16.c
test/convert_uint8_uint32.c test/convert_uint8_uint64.c
test/encode_alter.c test/encode_recode.c test/endian_alter.c
test/endian_move.c test/flac_get_big.c test/flac_get_far.c
test/flac_get_int64.c test/flac_get_little.c test/get_complex128.c
test/get_complex64.c test/get_float32.c test/get_float64.c test/get_int16.c
test/get_int32.c test/get_int64.c test/get_uint16.c test/get_uint32.c
test/get_uint64.c gzip_get.c gzip_get_far.c test/lzma_get.c test/lzma_xz_get.c
test/lzma_xz_get_far.c test/repr_float32.c test/repr_float64.c
test/repr_int16.c test/repr_int32.c test/repr_int64.c test/repr_uint16.c
test/repr_uint32.c test/repr_uint64.c test/version_2.c test/version_3.c
test/version_4.c test/version_5.c test/version_5_strict.c test/version_6.c
test/version_6_strict.c test/version_7.c test/version_7_strict.c
test/version_8.c test/version_9.c test/zzip_data.c test/zzip_get.c: Fix
memset call.
2017-06-02 D. V. Wiebe <getdata@ketiltrout.net> svn:1160
* m4/matlab.m4: Eval matlabroot to determine matlab_prefix instead
of using mex -v.
* m4/matlab.m4 (GD_MEX_VAR): Deleted.
2017-03-23 D. V. Wiebe <getdata@ketiltrout.net> svn:1155
* man/Makefile.am: Fix man3 distribution
2017-01-26 D. V. Wiebe <getdata@ketiltrout.net> svn:1153
GetData-0.10.0 released.
2017-01-25 D. V. Wiebe <getdata@ketiltrout.net> svn:1148
* src/encoding.c: Better values for GD_INT_FUNCS when USE_<foo> is not
defined.
* test/enc_seek.c: Replace accidental USE_FLAC with USE_ENC.
2017-01-21 D. V. Wiebe <getdata@ketiltrout.net> svn:1146
* test/error_verbose.c test/error_verbose_prefix.c: Use an anonymous pipe
instead of a named fifo.
* configure.ac: Look for dup2, kill and pipe instead of mkfifo.
2017-01-20 D. V. Wiebe <getdata@ketiltrout.net> svn:1145
* src/getdata.c (_GD_DoRaw): Don't assume malloc(0) returns NULL.
* test/alter_entry_sarray.c: zero E.flags;
2017-01-20 D. V. Wiebe <getdata@ketiltrout.net> svn:1144
* src/close.c (_GD_FreeD): Free D->regex_list.
2017-01-20 D. V. Wiebe <getdata@ketiltrout.net> svn:1143
GetData-0.10.0rc2:
* README, README.win,: Update.
* bindings/perl/src/typemap [INPUT] (T_DIRFILE): Don't leak the struct
gdp_dirfile_t pointer.
* bindings/perl/src/typemap [INPUT] (T_GDP_DIRFILE): Added to handle struct
gdp_dirfile_t *.
* bindings/perl/src/GetData.xs (DESTROY parser_callback close discard): Accept
struct gdp_dirfile_t argument explicitly, rather than implcitly via the
T_DIRFILE typemap.
* bindings/perl/src/typemap [OUTPUT] (T_GDP_DIRFILE): Replaced the OUTPUT
T_DIRFILE.
* bindings/perl/src/GetData.xs (open invalid_dirfile): Change return type to
struct gdp_dirfile *.
* src/field_list.c (gd_match_entries): Properly NULL D->regex_list if n == 0.
2017-01-19 D. V. Wiebe <getdata@ketiltrout.net> svn:1141,1142
* test/legacy_get_rofs.c: Unbreak after chainsawing.
* test/test.h (rmdirfile): Check system return value.
* src/field_list.c (gd_match_entries): Suppress compiler warning.
* util/checkdirfile.c (main): Fix printf.
2017-01-19 D. V. Wiebe <getdata@ketiltrout.net> svn:1140
GetData-0.10.0rc1.
2017-01-19 D. V. Wiebe <getdata@ketiltrout.net> svn:1136
* test/flac_get_int64.c: Correct.
2017-01-19 D. V. Wiebe <getdata@ketiltrout.net> svn:1135
* src/encoding.c: set GD_EF_SWAP instead of GD_EF_ECOR for flac.
* src/flac.c (_GD_FlacDecodeCallback _GD_FlacWrite): Ensure non-native
endianness channelisation occurs in the right order.
* src/flac.c (_GD_FlacOpen _GD_FlacSize): The size parameter is no longer
unused; pass it to _GD_FlacDoOpen.
* src/flac.c (_GD_FlacDoOpen): Record the value of swap.
* test/flac_get_big.c test/flac_get_cont.c test/flac_get_far.c
test/flac_get_get.c test/flac_get_get2.c test/flac_get_int64.c
test/flac_get_int8.c test/flac_get_little.c test/flac_get_long.c
test/flac_move_from.c test/flac_put_big.c test/flac_put_little.c
test/flac_seek.c test/flac_seek_far.c test/flac_sync.c: Test endianness
correctly.
* src/lzma.c (_GD_LzmaRead): Deal with a trailing partial sample in the
returned LZMA data.
* src/lzma.c (_GD_LzmaReady): Read more data when we have less than one
full sample.
* src/lzma.c (_GD_LzmaClear): Handle a trailing partial sample.
* test/enc_complex128.c test/enc_complex64.c test/enc_float32.c
test/enc_float64.c test/enc_int16.c test/enc_int32.c test/enc_int64.c
test/enc_int8.c test/enc_put_offs.c test/enc_uint16.c test/enc_uint32.c
test/enc_uint64.c test/enc_uint8.c: Don't accidentally read out of bounds.
Remove unnecessary mkdir() calls.
* test/error_verbose.c test/error_verbose_prefix.c: Use waitpid instead of
wait.
* test/include_ns_dotns.c: Correct test.
2017-01-17 D. V. Wiebe <getdata@ketiltrout.net> svn:1134
* bindings/cxx/getdata/entry.h: replace gd_shift_t with gd_int64_t.
* src/field_list.c (_GD_Constants): char *fl;
* src/field_list.c (gd_match_entries): Fix GD_NO_REGEX case.
* src/getdata.c (_GD_IndirData): Fix carray pointer arithmetic.
* src/internal.h: Fix ssize_t definition on WIN32/WIN64. Define __func__
if needed.
* test/add_spec_affix.c: Check e1.
* test/cvlist_meta_meta.c: Deleted.
* test/vlist.c test/include_ns_dotns.c: Fix test.
* test/parse_esc.c: Use '\x1B' instead of '\e'.
* test/test.h (MAKEDATAFILE): Use O_BINARY.
2017-01-16 D. V. Wiebe <getdata@ketiltrout.net> svn:1132
* bindings/python/pyentry.c (gdpy_entry_geta): Fix self->E->EN access.
* src/common.c (INVERTC): Fix non-C99 case.
* test/add_name_len.c test/alter_polynom_scalar.c: ANSI C fixes.
* test/parse_ns_par.c: Deleted.
* util/checkdirfile.c: Include inttypes.h if present.
2016-12-25 D. V. Wiebe <getdata@ketiltrout.net> svn:1130,1131
* configure.ac: Add --disable-util. Remove --enable-assert. Locate
regex libraries.
* src/internal.h: Deprecate gd_shift_t.
* src/add.c (gd_add_phase gd_madd_phase): Replace gd_shift_t with
gd_int64_t.
* src/field_list.c (_GD_EntryList gd_entry_list) src/nfields.c (_GD_NEntries
gd_nentries: Remove fragment.
* util/checkdirfile.c: Updated.
* src/internal.h: Add regex_list to struct gd_dirfile_.
* src/field_list.c (gd_compile_regex gd_compile_pcre gd_match_entries):
Added.
* src/errors.c: Add GD_E_UNSUPPORTED:GD_E_SUPPORT_REGEX,
GD_E_ARGUMENT:GD_E_ARG_REGEX, GD_E_ARGUMENT:GD_E_ARG_PCRE.
* src/getdata.h.in: Add GD_REGEX_PCRE, GD_REGEX_EXTENDED, GD_REGEX_ICASE,
GD_REGEX_CASELESS, GD_REGEX_JAVASCRIPT, GD_REGEX_UNICODE.
* src/internal.h: Remove unused alias_list from struct gd_flist_.
* test/add_spec_affix.c: Reimplemented.
* test/elist_alias.c test/elist_hidden.c test/elist_noalias.c
test/elist_parent.c test/elist_parent2.c test/elist_scalar.c
test/elist_type.c test/nentries_alias.c test/nentries_entype.c
test/nentries_hidden.c test/nentries_noalias.c test/nentries_scalar.c:
Updated.
* test/match_fragment.c: Moved from test/elist_fragment.c and updated.
* test/match_pcre.c test/match_pcre_bad.c test/match_pcre_caseless.c
test/match_pcre_ext.c test/match_pcre_js.c test/match_pcre_utf8.c
test/match_regex.c test/match_regex_bad.c test/match_regex_ext.c
test/match_regex_icase.c: Added.
* test/nentries_fragment.c: Deleted.
* man/gd_mstrings.3: Merged into man/gd_strings.3.
* man/*.3in: moved from *.3
* man/header.tmac: Added.
* bindings/make_parameters.c: Add GD_REGEX_* flags.
* bindings/cxx/dirfile.cpp (Dirfile::NEntries Dirfile::EntryList)
bindings/f77/fgetdata.c (GDNENT GDENTX GDENTN) bindings/f77/getdata.f90.in
(fgd_nentries fgd_entry_name_max fgd_entry_list)
bindings/matlab/gd_entry_list.c bindings/matlab/gd_field_list.m
bindings/matlab/gd_field_list_by_type.m bindings/matlab/gd_mfield_list.m
bindings/matlab/gd_mfield_list_by_type.m bindings/matlab/gd_mvector_list.m
bindings/matlab/gd_nentries.c bindings/matlab/gd_nfields.m
bindings/matlab/gd_nfields_by_type.m bindings/matlab/gd_nmfields.m
bindings/matlab/gd_nmfields_by_type.m bindings/matlab/gd_nmvectors.m
bindings/matlab/gd_nvectors.m bindings/matlab/gd_vector_list.m
bindings/perl/src/GetData.xs (entry_list) bindings/php/getdata.c
(gd_entry_list gd_nentries) bindings/python/pydirfile.c
(gdpy_dirfile_nentries gdpy_dirfile_entrylist): Remove fragment parameter.
* bindings/idl/getdata.c (gdidl_get_field_list): Support gd_match_entries().
* bindings/cxx/dirfile.cpp (Dirfile::MatchEntries) bindings/f77/fgetdata.c
(GDMATX GDMATN GDNMAT) bindings/f77/getdata.f90.in (fgd_match_entries_max
fgd_match_entries) bindings/matlab/gd_match_entries.c gd_nvectors.m
bindings/matlab/gd_vector_list.m (match_entries) bindings/php/getdata.c
(gd_match_entries) bindings/python/pydirfile.c (gdpy_dirfile_matchentries):
Added.
* bindings/cxx/getdata/phaseentry.h bindings/cxx/phaseentry.cpp
(PhaseEntry::PhaseEntry PhaseEntry::SetShift) bindings/perl/simple_funcs.pl
bindings/perl/simple_funcs.xsin bindings/perl/src/GetData.xs
bindings/perl/src/typemap: Replace gd_shift_t with gd_int64_t.
* bindings/cxx/test/big_test.cpp bindings/f77/test/big_test.f
bindings/f77/test/big_test95.f90 bindings/idl/test/big_test.pro
bindings/matlab/test/big_test.m bindings/perl/t/big_test.t
bindings/php/test/big_test.php bindings/python/test/big_test.py: Add test 305.
2016-12-08 D. V. Wiebe <getdata@ketiltrout.net> svn:1129
* bindings/matlab/gd_include.c: Initialise ns to NULL.
* bindings/php/getdata.c (gdphp_convert_sarray): Fix empty list check.
* bindings/php/getdata.c (gdphp_convert_cmparray gdphp_convert_sarray
gdphp_convert_nsarray gdphp_convert_array): Make index unsigned.
* src/flush.c (WriteInclude): Added to simplify cleaning up sx on error.
* src/flush.c (_GD_FlushFragment): Call WriteInclude.
* test/alloc_callback.c test/parse_ref_type.c: Remove unused variables.
2016-12-06 D. V. Wiebe <getdata@ketiltrout.net> svn:1128
* src/include.c (_GD_IncludeAffix): Actually delete the deleted entries,
why not.
* src/name.c (_GD_PerformRename): Steal 'new_name' instead of strdup'ing a
copy.
* src/move.c (_GD_Move): Delete unnecessary free()s.
* src/name.c (_GD_Rename): Properly clean up on error.
* src/name.c (_GD_RenameCode): Fix error handling when _GD_CodeOffsets
checks fail.
* src/parse.c (_GD_ParseFieldSpec): Clean up after I/O errors.
* src/compat.c (_GD_ReadDir): We don't know how big struct dirent actually
is, so don't pretend we do. Ignore the second parameter (entry), just set
*result to the returned pointer.
* src/open.c (_GD_TruncDir): Ignore the second parameter to _GD_ReadDir
(which may be readdir_r(3)).
* src/field_list.c (_GD_ListEntry): Don't match SINDIR entries with
GD_VECTOR_ENTRIES.
* cxx/test/big_test.cpp f77/test/big_test.f f77/test/big_test95.f90
idl/test/big_test.pro matlab/test/big_test.m perl/t/big_test.t
php/test/big_test.php python/test/big_test.py: Update tests 69, 70, 237, 239
* test/vlist.c: Update.
* test/mflush_affix.c test/mflush_pretty.c test/put_carray_bad.c
test/put_carray_bounds.c test/put_carray_bounds.c test/put_carray_type.c
test/put_sarray_bad.c test/put_sarray_bounds.c test/put_sarray_type.c: Call
gd_discard().
* test/put_carray_bounds.c: Don't double-open the dirfile.
2016-12-06 D. V. Wiebe <getdata@ketiltrout.net> svn:1127
* src/flac.c (_GD_FlacOutput): Fix memcpy src calculation.
* test/bzip_get_cont.c test/enc_get_cont.c test/flac_get_cont.c
test/gzip_get_cont.c test/lzma_xz_get_cont.c: Added.
2016-11-30 D. V. Wiebe <getdata@ketiltrout.net> svn:1126
* bindings/cxx/dirfile.cpp: Update Dirfile::PutString return type.
* bindings/perl/simple_funcs.xsin: Update put_string return type.
* bindings/f77/fgetdata.c (GDPTST): Don't return n_wrote.
* bindings/f77/getdata.f90.in (fgd_put_string): Change to subroutine.
* bindings/cxx/test/big_test.cpp bindings/f77/test/big_test.f
bindings/f77/test/big_test95.f90 bindings/perl/t/big_test.t: Update
test 94.
2016-11-30 D. V. Wiebe <getdata@ketiltrout.net> svn:1125
* m4/perl.m4: Better default install path.
2016-11-29 D. V. Wiebe <getdata@ketiltrout.net> svn:1122
* src/protect.c (gd_alter_protection): If the protection level changes,
mark the fragment dirty (modified).
* src/parse.c (_GD_CodeFromFrag): Fix version check.
* src/add.c (_GD_BadType): Deal with DSV <= 4 correctly.
* src/common.c (_GD_Alloc _GD_LinterpData) src/getdata.c (_GD_ExtractRepr
_GD_PolynomData _GD_CPolynomData _GD_MultiplyData _GD_CMultiplyData
_GD_DivideData _GD_CDivideData _GD_WindowData _GD_MplexData) src/types.c
(_GD_ConvertType): Return internal error on bad data type.
* src/constant.c (gd_get_carray_slice gd_get_carray _GD_PutCarraySlice)
src/field_list.c (_GD_Constants _GD_Carrays) src/getdata.c (gd_getdata64)
src/putdata.c (gd_putdata64):
Call _GD_BadType.
* src/getdata.c (_GD_DoLincom _GD_DoMultiply _GD_DoRecip _GD_DoDivide
_GD_DoBit _GD_DoPhase _GD_DoLinterp _GD_DoPolynom _GD_DoWindow _GD_DoMplex
_GD_DoIndir) src/putdata.c (_GD_DoLinterpOut _GD_DoBitOut _GD_DoPhaseOut
_GD_DoRecipOut _GD_DoPolynomOut _GD_MplexOutData): Remove _GD_BadInput call.
* src/entry.c (_GD_BadInput): Moved from common.c and statickified.
* src/entry.c (_GD_FindInputs): Added.
* src/entry.c (gd_validate) src/flimits.c (_GD_GetEOF _GD_GetBOF)
src/flush.c (_GD_Flush) src/getdata.c (_GD_DoSindir) src/iopos.c
(_GD_GetIOPos _GD_Seek) src/native.c (_GD_NativeType) src/putdata.c
(_GD_DoFieldOut) src/spf.c (_GD_GetSPF): Call _GD_FindInputs.
* src/flush.c (_GD_Flush): Permit E == NULL (in which case do nothing).
* src/fragment.c (_GD_UpdateAffixes): Remove dead code.
* src/close.c (_GD_FreeF): Added.
* src/close.c (_GD_FreeD) src/include (gd_uninclude): Call _GD_FreeF.
* src/include.c (_GD_IncludeAffix): Properly clean up after errors.
* src/close.c (_GD_FreeD _GD_ShutdownDirfile): Move directory closing from
_GD_ShutdownDirfile to _GD_FreeD.
* src/parse.c (_GD_CodeFromFrag): Fix early calculation in _GD_BuildCode
call.
* src/protect.c (gd_alter_protection): Dirty fragment if protection changed.
* src/nfields.c (_GD_NEntries): Correct invalid type check.
* src/parse.c (_GD_ParseFieldSpec): Remove n_cols < 2 check.
* src/add.c (_GD_AddSpec): Add n_cols < 2 check.
* src/parse.c (_GD_ParseFieldSpec): Remove encoding checks; _GD_InitRawIO
already does them.
* src/common.c (_GD_ReadLinterpFile): Return non-zero on error.
* src/getdata.c (gd_getdata64) src/putdata.c (gd_putdata64): Always convert
from frames to samples.
* src/parse.c (_GD_WindOp): Also check for the trailing NUL.
* src/parse.c (_GD_ParseNamespace): Fix trailing . removal.
* src/parse.c (_GD_ResolveAlias): Add base parameter and delete the recursion
counter, which want' being used. Alias loops are valid syntax, so don't
return an error when encountering them, just make them all dangle (set
entry[0] to NULL).
* src/putdata.c (_GD_DoLinterpOut): Load the LUT *before* checking if it's
complex valued, instead of after.
* src/string.c (_GD_PutSarraySlice): Return void.
* src/string.c (gd_put_string): Return int D->error.
* test/alter_entry_lincom_nfields.c: Renamed from alter_lincom_nfields.c
* test/mflush.c: Renamed from flush_meta.c
* test/mflush_amb_code.c test/mflush_hex.c test/mflush_ref.c
test/mflush_repr.c test/mflush_repr9.c test/mflush_reprz.c
test/mflush_spec.c test/mflush_string.c: Renamed from flush_*.c
* test/ref_empty.c test/ref_get.c test/ref_set.c: Renamed from
global_ref_*.c
* test/tell_multi_div.c: Renamed from tell_multidiv.c
* test/parse_name_pedantic.c: Deleted.
* test/add_name_len.c test/add_spec_raw_autoenc.c test/add_spec_raw_prot.c
test/add_spec_raw_unkenc.c test/alloc_affix.c test/alloc_callback.c
test/alloc_clear.c test/alloc_entry.c test/alloc_tok.c
test/alter_bit_scalar.c test/alter_clincom_32.c test/alter_clincom_nfields.c
test/alter_clincom_nfields_code.c test/alter_clincom_null.c
test/alter_cpolynom_ord.c test/alter_cpolynom_ord_code.c
test/alter_lincom_nfields.c test/alter_lincom_nfields_code.c
test/alter_lincom_scalar.c test/alter_mplex_scalar.c test/alter_phase_scalar.c
test/alter_polynom_ord2.c test/alter_polynom_ord_code.c
test/alter_polynom_scalar.c test/alter_raw_spf_type.c
test/alter_recip_scalar.c test/alter_spec_prot.c test/alter_spec_rdonly.c
test/alter_window_scalar.c test/flush_recurse.c test/get_divide_code.c
test/get_index_type.c test/get_lincom_code.c test/get_multiply_code.c
test/get_sindir_code.c test/get_sindir_neg.c test/include_format.c
test/include_ref_code.c test/include_ref_type.c test/index_empty.c
test/index_one.c test/index_scalar.c test/mflush_carray.c test/mflush_indir.c
test/mflush_mplex.c test/mflush_ns.c test/mflush_pretty.c test/mflush_prot.c
test/mflush_sindir.c test/mflush_type.c test/mflush_type4.c
test/mflush_windop.c test/move_unkenc.c test/native_code.c
test/native_recurse.c test/nentries_entype.c test/nmeta_parent_meta.c
test/parse_alias_loop.c test/parse_alias_ncols.c test/parse_carray_ncols.c
test/parse_carray_type.c test/parse_const_type.c test/parse_endian_bad2.c
test/parse_esc.c test/parse_hidden_frag.c test/parse_meta_ncols.c
test/parse_mplex_neg.c test/parse_recip_ncols.c test/parse_ref_type.c
test/parse_sarray_ncols.c test/protect_alter_arg.c test/protect_alter_index.c
test/protect_alter_rdonly.c test/protect_index.c test/put_bit_repr.c
test/put_lincom_repr.c test/put_linterp_cmp.c test/put_linterp_repr.c
test/put_mplex_repr.c test/put_neg.c test/put_phase_repr.c
test/put_polynom_repr.c test/put_recip_repr.c test/put_scalar.c
test/put_string_type.c test/ref_set_code.c test/ref_set_prot.c
test/ref_set_rdonly.c test/ref_set_type.c test/seek_arg.c test/seek_code.c
test/seek_dim.c test/seek_index_end.c test/seek_mplex.c test/seek_range_end.c
test/seek_recurse.c test/spf_const.c test/tell_code.c test/tell_dim.c
test/tell_multi_lincom.c test/tell_recurse.c: Added.
* test/convert_float64_int64.c test/parse_const_ncols.c
test/put_lincom_noin.c test/put_recurse.c: Fixed.
* test/fragment_affix_alter_code.c test/name_updb_carray.c
test/name_updb_const.c test/parse_window_op.c test/put_string.c
test/put_string_protect.c: Updated.
2016-11-26 D. V. Wiebe <getdata@ketiltrout.net> svn:1121
* src/ascii.c (_GD_AsciiOpen): Remove the ancient existing file code.
* src/ascii.c (_GD_AsciiWrite): Update file->pos.
* src/bzip.c (_GD_Bzip2Seek): Unfortunately, remove the dead backwards
seek code: the current bookkeping layer means this can never happen. (For
OOP encodings, seeks calls to the framework are always forward.)
* src/common.c (_GD_ReadLinterpFile): Return GD_E_IO for I/O errors instead
of GD_E_LUT.
* src/common.c (_GD_CInvertData): Remove dead, non-complex return_type code:
_GD_DoField ensures that return_type is always complex valued in this case.
* src/constat.c (gd_array_len): Return 0 on error.
* src/del.c (_GD_ClearInput): Added.
* src/del.c (_GD_ClearDerived): Call _GD_ClearInput for each in_fields
element. strcmp is not adequate for field matching; _GD_ClearInput uses
_GD_FindFieldAndRepr.
* src/del.c (_GD_Delete): Remove incorrect check for _GD_ClearDerived call.
* src/getdata.c (_GD_DoRaw): Update s0 based on zero padding. Instead of
calling the encoding's seek function directly, use _GD_Seek, which also will
handle calling _GD_InitRawIO when necessary. Always call _GD_Seek if zero
padding.
* src/iopos.c (_GD_DoSeek): Fix oop_write calculation.
* test/get_carray.c: Remove GD_VERBOSE.
* test/legacy_format.c bindings/cxx/test/big_test.cpp
bindings/f77/test/big_test.f bindings/f77/test/big_test95.f90
bindings/idl/test/big_test.pro bindings/matlab/test/big_test.m
bindings/perl/t/big_test.t bindings/php/test/big_test.php
bindings/python/test/big_test.py: Update checks for sortation change.
* test/test.h: Define INFINITY if necessary.
* test/len_carray.c test/len_sarray.c: Renamed from get_carray_len.c and
get_sarray_len.c.
* test/calist.c test/calist0.c test/calist_free.c test/calist_hidden.c
test/calist_long.c test/calist_meta.c test/calist_meta0.c
test/calist_meta_free.c test/calist_meta_hidden.c test/calist_meta_meta.c
test/calist_meta_parent.c test/calist_null.c test/salist.c test/salist0.c
test/salist_hidden.c test/salist_long.c test/salist_meta.c test/salist_meta0.c
test/salist_meta_free.c test/salist_meta_hidden.c test/salist_meta_meta.c
test/salist_meta_parent.c: Renamed from [cs]vlist_array*.c.
* test/add_sarray_dup.c test/add_spec_nil.c test/add_string_dup.c
test/ascii_complex128.c test/ascii_complex64.c test/ascii_float32.c
test/ascii_float64.c test/ascii_int16.c test/ascii_int32.c test/ascii_int64.c
test/ascii_int8.c test/ascii_uint16.c test/ascii_uint32.c test/ascii_uint64.c
test/ascii_uint8.c test/bof_bit_code.c test/bof_code.c test/bof_const.c
test/bof_lincom_code.c test/bof_phase_code.c test/bof_recurse.c
test/bzip_complex128.c test/bzip_complex64.c test/bzip_float32.c
test/bzip_float64.c test/bzip_int16.c test/bzip_int32.c test/bzip_int64.c
test/bzip_int8.c test/bzip_uint16.c test/bzip_uint32.c test/bzip_uint64.c
test/bzip_uint8.c test/cvlist_meta_code.c test/del_alias_dangle.c
test/del_alias_target.c test/del_data_prot.c test/del_divide.c test/del_prot.c
test/del_rdonly.c test/elist_parent2.c test/enc_complex128.c
test/enc_complex64.c test/enc_float32.c test/enc_float64.c test/enc_int16.c
test/enc_int32.c test/enc_int64.c test/enc_int8.c test/enc_uint16.c
test/enc_uint32.c test/enc_uint64.c test/enc_uint8.c test/endian_alter_arg.c
test/endian_alter_dprot.c test/endian_alter_fprot.c test/endian_alter_index.c
test/endian_alter_rdonly.c test/endian_index.c test/eof_bit_code.c
test/eof_const.c test/eof_lincom_code.c test/eof_phase_code.c
test/eof_recurse.c test/flac_complex128.c test/flac_complex64.c
test/flac_float32.c test/flac_float64.c test/flac_int16.c test/flac_int32.c
test/flac_int64.c test/flac_int8.c test/flac_uint16.c test/flac_uint32.c
test/flac_uint64.c test/flac_uint8.c test/foffs_alter_dprot.c
test/foffs_alter_fprot.c test/foffs_alter_index.c test/foffs_alter_range.c
test/foffs_alter_rdonly.c test/foffs_index.c test/get_carray_bad.c
test/get_carray_slice_bounds.c test/get_carray_slice_type.c
test/get_carray_type.c test/get_dimin.c test/get_indir_typein.c
test/get_recip_cmpin.c test/get_sarray_bad.c test/get_sarray_slice_bounds.c
test/get_sarray_slice_type.c test/get_sarray_type.c test/get_sindir_reprz.c
test/get_sindir_typein.c test/gzip_complex128.c test/gzip_complex64.c
test/gzip_float32.c test/gzip_float64.c test/gzip_int16.c test/gzip_int32.c
test/gzip_int64.c test/gzip_int8.c test/gzip_uint16.c test/gzip_uint32.c
test/gzip_uint64.c test/gzip_uint8.c test/len_bad.c test/len_const.c
test/len_string.c test/len_type.c test/lzma_xz_complex128.c
test/lzma_xz_complex64.c test/lzma_xz_float32.c test/lzma_xz_float64.c
test/lzma_xz_int16.c test/lzma_xz_int32.c test/lzma_xz_int64.c
test/lzma_xz_int8.c test/lzma_xz_uint16.c test/lzma_xz_uint32.c
test/lzma_xz_uint64.c test/lzma_xz_uint8.c test/madd_sarray_dup.c
test/madd_spec_parent.c test/madd_string_dup.c test/put_carray_bad.c
test/put_carray_bounds.c test/put_carray_rdonly.c test/put_carray_type.c
test/put_sarray_bad.c test/put_sarray_bounds.c test/put_sarray_rdonly.c
test/put_sarray_type.c: Added.
2016-11-24 D. V. Wiebe <getdata@ketiltrout.net> svn:1118, 1119
* src/internal.h: Add GD_CO_REPR and GD_CO_REPRZ flags.
* src/name.c (_GD_SlashDot): Don't match '.z' unless GD_CO_REPRZ is set.
* src/name.c (_GD_StripCode): Keep a representation suffix if GD_CO_REPR is
set. If GD_CO_REPR and GD_CO_REPRZ set, add a disambiguating .z if needed.
* src/flush.c (_GD_WriteFieldCode): Add GD_WFC_NAME flag. Set GD_CO_REPR
and/or GD_CO_REPRZ in strip_flags when appropriate.
* src/flush.c (_GD_PadField): Call _GD_WriteFieldCode with GD_WFC_NAME set.
* src/flush.c (_GD_FieldSpec) src/flush.c (_GD_FlushFragment): For
/ALIAS, /HIDDEN, and /REFERENCE directives, add GD_WFC_NAME to
_GD_WriteFieldCode call.
* src/name.c (_GD_CodeOffsets): Fix offset[8] calculation for repr.
* test/flush_affix.c test/flush_repr.c test/flush_repr9.c
test/flush_reprz.c: Added.
2016-11-23 D. V. Wiebe <getdata@ketiltrout.net> svn:1117
* src/common.c (_GD_FindFieldWithParent): Remove unused DIRFILE* parameter.
2016-11-23 D. V. Wiebe <getdata@ketiltrout.net> svn:1116
* src/common.c (_GD_FindFieldWithParent _GD_FindField): Ignore an initial
dot in the field code.
* src/common.c (_GD_FindFieldAndRepr): Look for field code with repr first
to resolve the .z ambiguity.
* src/entry.c (_GD_GetScalar): Don't set an error (for gd_entry() use).
* src/entry.c (gd_validate): If _GD_CalculateEntry() fails, return early.
* test/get_const_bad.c test/get_const_reprz.c test/get_dot.c test/get_reprz.c
test/index_reprz.c test/native_reprz.c test/valid_reprz.c: Added.
2016-11-22 D. V. Wiebe <getdata@ketiltrout.net> svn:1115
* src/common.c (_GD_GetRepr): Add len parameter. Don't malloc, just
decrement *len twice if matched. Don't set errors. Remove D and field_code
parameters.
* src/common.c (_GD_FindFieldAndRepr): Remove field_code and set parameters.
* src/constant.c (gd_array_len): Call _GD_FindEntry instead of
_GD_FindFieldAndRepr.
* src/entry.c (gd_aliases): Don't call gd_naliases. Resize as necessary.
2016-11-22 D. V. Wiebe <getdata@ketiltrout.net> svn:1112
* bindings/perl/src/GetData.xs: Fix a few EXTEND() calls.
* src/add.c (_GD_Add): subfield_offs is size_t. Move _GD_InvalidEntype call
earlier.
* src/internal.h (gd_private_entry_): Add len.
* src/internal.h (gd_rename_update_): Add new_len and dst_len.
* src/add.c (_GD_Add _GD_AddAlias) src/fragment.c (_GD_UpdateAffixes)
src/open.c (_GD_Open) src/parse.c (_GD_SetField): Set E->e->len.
* src/move.c (_GD_Move): Update E->e->len.
* src/add.c (_GD_FixName) src/common.c (_GD_FindField): Add len parameter.
* src/name.c (_GD_RenameCode): Add len parameter. Record E->e->len update.
* src/name.c (_GD_PerformRename): Do all the len updates.
* src/name.c (_GD_PrepareRename): Add new_len parameter.
* src/parse.c (_GD_CheckParent): Add len parameter. Update *len.
* src/parse.c (_GD_ParseFieldSpec): Add len0 parameter.
* src/common.c (_GD_pstrlencmp _GD_strlencmp _GD_FindFieldWithParent): Added.
* src/common.c (_GD_EntryCmp): Use _GD_strlencmp for comparison. This
changes the sorted entry order!
* src/common.c (_GD_FindField): Don't malloc. Use _GD_FindFieldWithParent to
find subfields of aliased fields.
* test/name_alias.c test/name_dangle.c test/name_move.c
test/name_move_alias.c test/name_name.c test/parse_sort.c: Update for
changes in entry sort.
* src/del.c (_GD_Delete): Delete meta fields the expensive way (by searching
for each one) because they aren't necessarily sorted together anymore.
* src/constant.c (gd_put_carray_slice gd_put_carray) src/entry.c (gd_aliases
gd_naliases) src/field_list.c (gd_entry_list _GD_Constants _GD_Carrays
_GD_Strings _GD_SArrays) src/globals.c (gd_reference) src/mod.c (_GD_Change
gd_alter_lincom gd_alter_clincom gd_alter_polynom gd_alter_cpolynom
_GD_AlterSpec) src/nfields.c (gd_nentries) src/putdata.c (gd_putdata64)
src/string.c (gd_get_sarray_slice gd_put_sarray_slice gd_put_sarray
gd_put_string): Call _GD_FindEntry instead of _GD_FindField.
* src/field_list.c (_GD_Carrays _GD_Strings _GD_SArrays): Add space for the
terminating record.
* src/name.c (_GD_PerformRename): Don't allow rdat==NULL.
* src/move.c (_GD_Move): Only call _GD_PerformRename if rdat is non-NULL.
* test/alter_bit_in.c test/alter_divide_in.c test/alter_mplex_in.c
test/alter_phase_in.c test/alter_window_in.c test/alter_window_op.c: Free
entry strings.
* test/cvlist_array_long.c: Check number returned.
* test/enc_add.c test/enc_del.c test/enc_enoent.c test/enc_move_from.c
test/enc_nframes.c test/enc_seek.c: Added.
* test/bzip_add.c test/bzip_enoent.c test/bzip_move_from.c
test/bzip_nframes.c test/bzip_seek.c test/flac_add.c test/flac_enoent.c
test/flac_nframes.c test/flac_seek.c test/gzip_add.c test/gzip_del.c
test/gzip_enoent.c test/gzip_move_from.c test/gzip_nframes.c
test/gzip_seek.c test/lzma_enoent.c test/lzma_nframes.c test/lzma_xz_add.c
test/lzma_xz_nframes.c test/lzma_xz_seek.c: Use enc_*.c version.
* test/bzip_del.c test/flac_del.c test/flac_move_from.c: Added.
* test/flac_seek_far.c test/gzip_seek_far.c test/lzma_xz_del.c
test/lzma_xz_move_from.c test/zzip_nframes.c: Update.
* test/unclude_index.c test/unclude_prot.c test/unclude_rdonly.c: Call
gd_discard.
2016-11-19 D. V. Wiebe <getdata@ketiltrout.net> svn:1111
* src/fragment.c (_GD_UpdateAffixes): Always steal nsin. Caller must pass
nsl and ensure ns has a dot at the end.
* src/fragment.c (_GD_NormaliseNamespace): Added.
* src/fragment.c (gd_alter_affixes): Handle leading dots correctly.
* src/include.c (gd_include_ns) src/fragment.c (gd_fragment_namespace): Call
_GD_NormaliseNamespace.
* configure.ac: Look for features.h.
* src/internal.h: Deal with glibc-2.24's deprecation of readdir_r, I
suppose.
* test/fragment_ns_dot.c test/fragment_ns_dotdot.c test/fragment_ns_dotns.c
test/fragment_ns_nsdot.c test/include_ns_dotdot.c test/move_ns.c
test/move_nsns.c: Added.
2016-11-18 D. V. Wiebe <getdata@ketiltrout.net> svn:1110
* src/open.c (gd_desync): Moved from fragment.c.
* src/open.c (_GD_Open): Statickify.
* src/internal.h: Renamed gd_fragment_t.prefix and gd_fragment_t.suffix to
px and sx, and add pxl and sxl to match namespace handling.
* src/flush.c (_GD_FlushFragment): Handle /INCLUDE affixes directly.
* src/getdata.h.in: GD_EN_DOTTED deleted.
* src/internal.h: GD_EN_EARLY internal entry flag, does basically the
same thing that GD_EN_DOTTED did.
* src/add.c (_GD_Add): Set GD_EN_EARLY when appropriate.
* test/add_dot10.c test/add_dot5.c test/name_dot10.c test/name_dot5.c
test/name_dot5r.c: Remove references to GD_EN_DOTTED.
* src/parse.c (_GD_SubfieldCode): Remove nso parameter.
* src/parse.c (_GD_ParseNamespace): Simplify /NAMESPACE: it now is always
relative to the fragment rootspace. An initial . is ignored.
* src/include.c (_GD_SetFieldAffixes): Use memcpy instead of sprintf.
Handle namespace better.
* src/include.c (_GD_Include _GD_SetFieldAffixes): Update for /NAMESPACE
changes: parser_state_->ns now holds only the namespace part relative to
fragment rootspace.
* test/parse_include_ns2.c test/parse_name_dot.c test/parse_ns_dotdot.c
test/parse_nsf_dot.c test/parse_nsf_sub.c: Update test.
* test/parse_nsf_par.c test/parse_nsf_refrel.c test/parse_nsf_rpar.c:
Deleted.
* src/include.c (_GD_IncludeAffix): Renamed form gd_include_affix to get
parser_state function name correct.
* src/include.c (gd_include_affix): Added.
* src/include.c (_GD_CollectFragments): Deleted. Duplicated by
_GD_SubFragmentList in fragment.c.
* src/include.c (gd_uninclude): Call _GD_SubFragmentList.
* bindings/matlab/gd_include.c: Renamed from gd_include_ns.c
* bindings/matlab/gd_include_affix.c: Renamed from gd_include.c
* bindings/perl/src/GetData.xs (include): Call gd_include_ns instead of
gd_include_affix.
* bindings/perl/simple_funcs.xsin: Removed include_ns. Added include_affix.
* bindings/php/getdata.c (gd_include_affix): Renamed from gd_include.
* bindings/php/getdata.c (gd_include): Renamed from gd_include_ns.
* bindings/python/pydirfile.c (gdpy_dirfile_include): Re-order keywords.
* man/gd_fragment_namespace.3: Added.
* src/add.c (_GD_InvalidEntype): Parameterise check.
* src/add.c (_GD_BadType): Added.
* src/add.c (_GD_Add): Call _GD_BadType to check storage type.
* test/alter_carray_type.c test/alter_raw_type.c: Expand test.
* src/add.c (_GD_Add): Add init_scalar parameter to avoid unnecessary
scalar initialisations.
* src/add.c (_GD_Add _GD_AddAlias): Reject aliases as parents. Call
_GD_SlashDot to find namespace.
* src/fragment.c (_GD_CheckAffixes): Deleted. Replaced by
_GD_UpdateAffixes.
* src/fragment.c (_GD_UpdateCode _GD_UpdateAffixes) src/name.c (_GD_SlashDot
_GD_CodeOffsets _GD_StripCode _GD_BuildCode): Added.
* src/internal.h: Replace GD_MC_ flags with GD_CO_ flags.
* src/fragment.c (_GD_ChangeAffixes) src/name.c (_GD_MungeCode): Deleted.
Functionality broken up into smaller pieces: _GD_SlashDot, _GD_CodeOffsets,
_GD_StripCode, _GD_BuildCode in name.c plus _GD_UpdateCode in fragment.c.
* src/add.c (_GD_Add) src/flush.c (_GD_WriteFieldCode) src/move.c (_GD_Move)
src/parse.c (_GD_CodeFromFrag): Replace _GD_MungeCode calls with
_GD_StripCode or _GD_BuildCode calls.
* src/parse.c (_GD_InputCode): Just call _GD_BuildCode.
* src/name.c (_GD_RenameCode): Added.
* src/name.c (_GD_MatchCode _GD_MakeNewCode): Deleted. Functionality
combined into _GD_RenameCode.
* src/name.c (_GD_UpdateScalar _GD_UpdateInField): Do little other than
call _GD_RenameCode and dirty caches.
* src/internal.h: Update gd_rename_data_ struct. Add gd_rename_update_
struct.
* src/name.c (_GD_CleanUpRename _GD_PrepareRename): Update. Call
_GD_RenameCode for subfields.
* src/name.c (_GD_PerformRename): Handle rename directly.
* src/name.c (_GD_Rename): Create new filebase with _GD_StripCode to
properly handle namespaces.
* src/flush.c (GD_WRITE_INFIELD GD_WRITE_CONST): Added.
* src/include.h src/add.c (_GD_Add) src/common.c (_GD_FindEntry
_GD_FindFieldAndRepr) src/move.c (_GD_Move) src/parse.c (_GD_ParseFieldSpec):
Remove dot_list stuff.
* src/mod.c (_GD_AlterSpec): Only undo the parser's handiwork on success.
* src/entry.c (_GD_FreeE): Don't assume the caller has set n_fields or
poly_ord to a valid value.
* src/errors.c: Fix GD_E_BAD_TYPE string.
* src/field_list.c (_GD_SArrays): Don't leak.
* src/add.c (gd_add_polynom gd_add_cpolynom): Fix poly_ord check.
* test/add_cpolynom.c test/add_polynom.c: Update.
* test/add_alias_index.c test/add_alias_name.c test/add_alias_ns.c
test/add_alias_prot.c test/add_alias_rdonly.c test/add_bit_inaff.c
test/add_carray_entry.c test/add_carray_type.c test/add_clincom_nfields.c
test/add_const_type.c test/add_cpolynom_order.c test/add_divide_inaff1.c
test/add_divide_inaff2.c test/add_lincom_nfields2.c test/add_linterp_inaff.c
test/add_meta_parent.c test/add_mplex_inaff.c test/add_mplex_period.c
test/add_phase_inaff.c test/add_polynom_inaff.c test/add_polynom_order.c
test/add_polynom_order2.c test/add_raw_prot.c test/add_recip_inaff.c
test/add_spec_index.c test/add_spec_prot.c test/add_string_entry.c
test/add_window_inaff.c test/alter_bit_in.c test/alter_code.c
test/alter_const_type.c test/alter_divide_in.c test/alter_entry_entype.c
test/alter_lincom_nfields.c test/alter_linterp_in.c test/alter_mplex_in.c
test/alter_phase_in.c test/alter_prot.c test/alter_raw_prot.c
test/alter_rdonly.c test/alter_sarray_nop.c test/alter_sbit.c
test/alter_spec_code.c test/alter_spec_format.c test/alter_spec_nil.c
test/alter_window_in.c test/alter_window_op.c test/cvlist_array_long.c
test/cvlist_array_meta_meta.c test/cvlist_array_meta_parent.c
test/cvlist_long.c test/cvlist_meta_meta.c test/cvlist_meta_parent.c
test/elist_parent.c test/elist_type.c test/fragment_affix_alter_dotpx.c
test/fragment_affix_alter_index.c test/fragment_affix_alter_nons.c
test/fragment_affix_alter_ns.c test/fragment_affix_alter_pns.c
test/fragment_affix_index.c test/fragment_ns_alter_nop.c
test/fragment_ns_alter_pdel.c test/fragment_parent_index.c
test/fragment_parent_root.c test/include_prot.c test/madd_alias_alias.c
test/madd_alias_subsub.c test/madd_aliasmeta.c test/madd_clincom_nfields.c
test/madd_cpolynom_order.c test/madd_lincom_nfields.c test/madd_parent_bad.c
test/madd_polynom_order.c test/madd_raw.c test/madd_subsub.c test/move_code.c
test/move_data_enc_un.c test/move_data_prot.c test/move_entype.c
test/move_nop.c test/move_rdonly.c test/name_code.c test/name_index.c
test/name_meta2.c test/name_prot.c test/name_rdonly.c test/parse_huge.c
test/parse_include_nodir.c test/parse_ns_include.c test/parse_ns_include_ns.c
test/svlist_array_long.c test/svlist_array_meta_meta.c
test/svlist_array_meta_parent.c test/svlist_long.c test/svlist_meta_meta.c
test/svlist_meta_parent.c test/unclude_index.c test/unclude_keep.c
test/unclude_prot.c test/unclude_rdonly.c: Added.
* test/add_code.c test/add_ns.c: Zero memory to avoid crashing.
* test/cvlist_array_meta.c test/cvlist_array_meta0.c
test/cvlist_array_meta_free.c test/cvlist_array_meta_hidden.c
test/svlist_array_meta_free.c test/svlist_array_meta_hidden.c: error is
signed.
* test/elist_alias.c test/elist_fragment.c test/elist_hidden.c
test/elist_noalias.c test/elist_scalar.c util/checkdirfile.c: Fix
gd_entry_list call.
* test/nentries_alias.c test/nentries_fragment.c test/nentries_hidden.c
test/nentries_noalias.c test/nentries_scalar.c util/checkdirfile.c: Fix
gd_nentries call.
* test/parse_alias_code.c: Specify version.
* test/include_ns_prefix.c: Check e2.
2016-09-29 D. V. Wiebe <getdata@ketiltrout.net> svn:1109
* bindings/cxx/dirfile.cpp (Dirfile::IncludeNS) bindings/cxx/fragment.cpp
(Fragment::SetNamespace) bindings/cxx/getdata/fragment.h (Namespace)
bindings/f77/fgetdata.c (GDFRNS GDINCN) bindings/f77/getdata.f90.in
(fgd_include_ns fgd_fragment_namespace fgd_alter_namespace)
bindings/idl/getdata.c (gdidl_fragment_namespace)
bindings/matlab/gd_fragment_namespace.c bindings/matlab/gd_include_ns.c
bindings/perl/simple_funcs.xsin (include_ns fragment_namespace)
bindings/php/getdata.c (gd_fragment_namespace gd_include_ns)
bindings/python/pyfragment.c (gdpy_fragment_getns gdpy_fragment_setns): Added.
* bindings/idl/getdata.c (gdidl_include) bindings/python/pydirfile.c
(gdpy_dirfile_include): Handle both prefix and namespace.
* bindings/cxx/fragment.cpp (Fragment::Fragment): Initialise ns.
* bindings/cxx/fragment.cpp (Fragment::SetPrefix): Reload ns.
* bindings/cxx/dirfile.cpp (Dirfile::NEntries Dirfile::EntryList)
bindings/f77/fgetdata.c (GDNENT GDENTX GDENTN) bindings/f77/getdata.f90.in
(fgd_nentries fgd_entry_list) bindings/idl/getdata.c (gdidl_get_field_list
gdidl_get_nfields) bindings/matlab/gd_entry_list.c
bindings/matlab/gd_nentries.c bindings/perl/src/GetData.xs (entry_list)
bindings/php/getdata.c (gd_entry_list gd_nentries)
bindings/python/pydirfile.c (gdpy_dirfile_nentries gdpy_dirfile_entrylist)
src/field_list.c (gd_entry_list) src/nfields.c (gd_nentries):
Swap order of fragment and parent arguments.
* src/fragment.c: fix GD_E_BAD_INDEX error initialisation.
* bindings/matlab/gd_include.c: Make flags optional.
* bindings/idl/getdata.c (gdidl_get_raw_filename)
bindings/matlab/gd_linterp_tablename.c bindings/matlab/gd_raw_filename.c
bindings/php/getdata.c (gd_linterp_tablename gd_raw_filename):
Free string returned by C API.
* bindings/cxx/test/big_test.cpp bindings/f77/test/big_test.f
bindings/f77/test/big_test95.f90 bindings/idl/test/big_test.pro
bindings/matlab/test/big_test.m bindings/perl/t/big_test.t
bindings/php/test/big_test.php bindings/python/test/big_test.py:
Added tests 302, 303, and 304.
* src/common.c: Initialise _GD_CMalloc, _GD_CFree, _GD_CStrdup.
* src/globals.c (_GD_CallerStrdup gd_alloc_funcs): Added.
* src/entry.c (_GD_FreeE): Use the correct free function in all cases.
* src/entry.c (gd_raw_filename gd_linterp_tablename) src/errors.c
(gd_error_string) src/fragment.c (gd_fragment_affixes) src/parse.c
(gd_strtok): Move result to caller's heap, if necessary.
* src/parse.c (_GD_ParseFragment): Move a callback-returned string off
the caller's heap, if necessary.
* src/errors.c (_GD_SetError2): Call _GD_CFree.
* src/entry.c (gd_entry): Allocate strings on the caller's heap.
* bindings/matlab/matlab.c (gdmx_initialise): Added.
* bindings/matlab/gd_invalid_dirfile.c bindings/matlab/gd_open.c: Call
gdmx_initialise;
* bindings/perl/src/GetData.xs (gdp_malloc): Added.
* bindings/perl/src/GetData.xs: Call gd_alloc_funcs() in BOOT; use Newx,
savepv, &c. everywhere appropriate.
* bindings/python/pygetdata.c (gdpy_strdup): Added.
* bindings/python/pygetdata.c: (GDPY_MODINITFUNC): Call gd_alloc_funcs.
* man/gd_alloc_funcs.3: Added.
* bindings/matlab/matlab.c (gdmx_err): Errors don't need to be globals.
* src/getdata.h.in: Remove the GetData-0.6 API (GD_FUNCTION_ALIASES).
2016-09-27 D. V. Wiebe <getdata@ketiltrout.net> svn:1108
* src/error.c (gd_error_string): Use -D->error in the UNKNOWN error case.
* src/fragment.c (_GD_CheckChangeNamespace): Handle both oldns == NULL
and newns == NULL, by adding or deleting the dot when appropriate. Also,
don't crash when pns == NULL;
* src/include.c (gd_include_ns): Added.
* test/include_affix_ns.c: Renamed from include_ns.c
* fragment_affix_ns.c test/fragment_ns.c test/fragment_ns0.c
test/fragment_ns_add.c test/fragment_ns_add0.c test/fragment_ns_alter.c
test/fragment_ns_del.c test/include_affix_ns.c test/include_ndotdots.c
test/include_ndots.c test/include_ns_dot.c test/include_ns_dotns.c
test/include_ns_nil.c test/include_ns.c test/include_ns_null.c
test/include_ns_prefix.c test/fragment_ndotdots.c test/fragment_ndots.c:
Added.
* test/parse_nsf_alias.c: Fix and add to test suite.
* test/test.h: Don't segfault in CHECKS tests if n == NULL. (Which
shouldn't be true, but can occur when there are bugs in the library.)
2016-09-26 D. V. Wiebe <getdata@ketiltrout.net> svn:1106
* configure.ac: Make --enable-modules the default.
2016-09-25 D. V. Wiebe <getdata@ketiltrout.net> svn:1105
Merge in getdata-dsv10 branch:
* bindings/matlab/matlab.c (gdmx_err) bindings/python/pygetdata.h
(PYGD_REPORT_ERROR): Handle negative error codes. (r1027)
* bindings/perl/src/GetData.xs (fragments): Return undef on error in array
context. (r1027)
* src/getdata.h.in: Make all error codes negative and remove unused numbers.
(r1027)
* bindings/matlab/matlab.c (gdmx_msgid) bindings/python/pygetdata.c
(gdpy_exception_list) src/legacy.c (GD_ERROR_CODES): Update for renumbered
codes. (r1027)
* src/legacy.c (_GD_GetDirfile GetFormat GetData GetNFrames
GetSamplesPerFrame PutData): Set *error_code to -D->error. (r1027)
* src/add.c (_GD_AddSpec _GD_AddAlias) src/constant.c (_GD_PutCarraySlice)
src/del.c (_GD_Delete) src/flush.c (_GD_SyncOrClose) src/mod.c (_GD_Change)
src/mod.c (_GD_AlterYoke _GD_AlterSpec) src/move.c (_GD_Move) src/name.c
(_GD_Rename): Return void. (r1027)
* src/add.c (gd_madd_spec gd_add_spec gd_add gd_add_raw gd_add_lincom
gd_add_clincom gd_add_linterp gd_add_bit gd_add_sbit _GD_AddYoke
gd_add_multiply gd_add_recip gd_add_crecip89 gd_add_polynom gd_add_cpolynom
gd_add_phase gd_add_window gd_add_mplex gd_add_string gd_add_const
gd_add_carray gd_add_sarray gd_madd_lincom gd_madd_clincom gd_madd_linterp
gd_madd_bit gd_madd_sbit _GD_MAddYoke gd_madd_phase gd_madd_polynom
gd_madd_cpolynom gd_madd_recip gd_madd_crecip89 gd_madd_window gd_madd_mplex
gd_madd_string gd_madd_const gd_madd_carray gd_madd_sarray gd_add_alias
gd_madd_alias) src/constant.c (gd_get_carray_slice gd_get_carray
gd_put_carray_slice gd_put_carray) src/del.c (gd_delete) src/encoding.c
(gd_alter_encoding gd_encoding_support) src/endian.c (gd_alter_endianness)
src/entry.c (gd_entry gd_fragment_index gd_hide gd_hidden gd_unhide
gd_validate) src/flimits.c (gd_alter_frameoffset64 gd_frameoffset64
gd_eof64 gd_bof64) src/flush.c (gd_metaflush gd_rewrite_fragment gd_sync
gd_raw_close gd_flush gd_dirfile_standards) src/fpos.c (_GD_GetFilePos
gd_tell64 _GD_DoSeek _GD_Seek gd_seek64) src/fragment.c (gd_fragment_affixes
gd_alter_affixes gd_nfragments gd_parent_fragment gd_desync) src/globals.c
(gd_verbose_prefix) src/include.c (gd_include_affix gd_uninclude) src/mod.c
(gd_alter_entry gd_alter_raw gd_alter_lincom gd_alter_clincom
gd_alter_linterp gd_alter_bit gd_alter_sbit gd_alter_recip gd_alter_recip
gd_alter_crecip89 gd_alter_divide gd_alter_multiply gd_alter_indir
gd_alter_sindir gd_alter_phase gd_alter_const gd_alter_carray
gd_alter_sarray gd_alter_polynom gd_alter_cpolynom gd_alter_window
gd_alter_mplex gd_alter_spec gd_malter_spec) src/move.c (gd_move) src/name.c
(gd_rename) src/nframes.c (gd_nframes64) src/protect.c (gd_protection
gd_alter_protection) src/string.c (gd_get_sarray_slice gd_get_sarray
gd_put_sarray_slice gd_put_sarray gd_put_string): Return D->error. (r1027)
Re-enable DSV 10 stuff removed for GetData-0.9, reverting (at least parts
of) revisions 997, 999, 1000, 1001, 1004 through selective merge in from
getdata-dsv10 branch:
* src/add.c (_GD_InvalidEntype _GD_Add) src/close.c (_GD_FreeD)
src/constant.c (gd_array_len) src/del.c (_GD_ClearDerived _GD_DeReference)
src/entry.c (_GD_FreeE _GD_CalculateEntry gd_entry gd_validate)
src/field_list.c (_GD_EntryIndex) src/flimits.c (_GD_GetEOF _GD_GetBOF)
src/flush.c (_GD_Flush _GD_FieldSpec _GD_FindVersion) src/fpos.c
(_GD_GetFilePos _GD_Seek) src/getdata.c (_GD_DoField gd_getdata64)
src/getdata.h.in src/internal.h src/mod.c (_GD_Change) src/name.c
(_GD_UpdateInputs) src/native.c (_GD_NativeType) src/parse.c
(_GD_ParseArray _GD_ParseFieldSpec _GD_ParseDirective) src/putdata.c
(_GD_DoFieldOut) src/spf.c (_GD_GetSPF) src/include.c (_GD_SetFieldAffixes):
Restore from getdata-dsv10 branch.
* src/add.c (gd_add_indir gd_add_sindir gd_add_sarray gd_madd_indir
gd_madd_sindir gd_madd_sarray) src/field_list.c (gd_sarrays gd_msarrays)
src/getdata.c (_GD_IndirData _GD_DoIndir _GD_DoSindir) src/mod.c
(gd_alter_indir gd_alter_sindir gd_alter_sarray) src/parse.c
(_GD_ParseNamespace) src/string.c (gd_get_sarray gd_put_sarray_slice
gd_put_sarray) src/fragment.c (_GD_CheckChangeNamespace
gd_fragment_namespace): Restore from getdata-dsv10 branch.
* src/string.c (gd_get_sarray_slice): Remove static.
* test/add_dot10.c test/add_indir.c test/add_sarray.c test/add_sarray_nil.c
test/add_sindir.c test/alter_entry_sarray.c test/alter_indir.c
test/alter_sarray.c test/alter_sindir.c test/get_indir.c test/get_sarray.c
test/get_sarray_len.c test/get_sarray_slice.c test/get_sindir.c
test/get_sindir_none.c test/get_sindir_null.c test/get_sindir_type.c
test/get_type_string.c test/madd_indir.c test/madd_sarray.c
test/madd_sindir.c test/name_updb_sarray.c test/parse_include_ns2.c
test/parse_include_nsabs.c test/parse_include_nsinh.c
test/parse_include_nspop.c test/parse_include_nsrabs.c
test/parse_include_nsrainh.c test/parse_include_nsrinh.c
test/parse_include_nsroot.c test/parse_indir.c test/parse_ns.c
test/parse_ns_abs.c test/parse_ns_dot.c test/parse_ns_dotdot.c
test/parse_ns_dotdotns.c test/parse_ns_dotns.c test/parse_ns_ndotdots.c
test/parse_ns_ndots.c test/parse_ns_nsdot.c test/parse_ns_nsdotdot.c
test/parse_ns_par.c test/parse_ns_sub.c test/parse_nsf.c
test/parse_nsf_abs.c test/parse_nsf_alias.c test/parse_nsf_dot.c
test/parse_nsf_hide.c test/parse_nsf_index.c test/parse_nsf_meta.c
test/parse_nsf_meta2.c test/parse_nsf_par.c test/parse_nsf_ref.c
test/parse_nsf_refabs.c test/parse_nsf_refrel.c test/parse_nsf_root.c
test/parse_nsf_rpar.c test/parse_nsf_sub.c test/parse_sarray.c
test/parse_sarray_long.c test/parse_sindir.c put_indir.c test/put_sarray.c
test/put_sarray_slice.c test/put_sindir.c test/svlist_array.c
test/svlist_array_meta.c test/add_ns.c test/add_ns_frag.c
test/add_ns_frag2.c test/include_ns.c test/name_ns.c test/name_ns2.c
test/name_nsdot.c test/parse_include_ns.c test/name_dot10.c: Restore from
getdata-dsv10 branch.
* test/name_updb.c test/name_updb_carray.c test/native_string.c: Restore
from getdata-dsv10 branch.
* bindings/make_parameters.c bindings/cxx/dirfile.cpp (Dirfile::Entry
Dirfile::GetData) bindings/cxx/entry.cpp (Entry::CheckIndex scalar_ok)
bindings/cxx/getdata/entry.h bindings/f77/fgetdata.c (GDGSCA GDASCA)
bindings/f77/getdata.f90.in (fgd_entry fgd_add fgd_madd fgd_alter_entry)
bindings/idl/getdata.c (gdidl_make_idl_entry gdidl_convert_entry_num
gdidl_read_idl_entry gdidl_getdata) bindings/matlab/gd_getdata.c
bindings/matlab/matlab.c (gdmx_from_entry gdmx_to_entry)
bindings/perl/GetData.xs (gdp_to_entry entry getdata)
bindings/perl/simple_funcs.xsin bindings/php/getdata.c (gdphp_from_entry
gdphp_to_entry gd_getdata) bindings/python/pydirfile.c
(gdpy_dirfile_getdata) bindings/python/pyentry.c (gdpy_set_entry_from_tuple
gdpy_entry_getinfields gdpy_entry_setinfields gdpy_entry_getarraylen
gdpy_entry_setarraylen gdpy_entry_getparms) bindings/python/pygetdata.c
(gdpy_convert_to_pylist gdpy_convert_to_pyobj): Restore from getdata-dsv10
branch.
* bindings/cxx/dirfile.cpp (Dirfile::GetSarray Dirfile::Sarrays
Dirfile::MSarrays Dirfile::PutSarray) bindings/f77/fgetdata.c (GDGEID GDGESD
GDGESA GDADID GDADSD GDMDID GDMDSD GDADSA GDMDSA GDALID GDALSD GDSARX GDMSAX
GDGTSA GDPTSA GDALSA GDGSTD GDGSTP GDXSTP) bindings/f77/getdata.f90.in
(fgd_sarray_value_max fgd_msarray_value_max fgd_get_sarray
fgd_get_sarray_slice fgd_put_sarray fgd_put_sarray_slice fgd_add_sarray
fgd_madd_sarray fgd_alter_sarray fgd_add_indir fgd_add_sindir fgd_madd_indir
fgd_madd_sindir fgd_alter_indir fgd_alter_sindir fgd_getstrdata)
bindings/idl/getdata.c (gdidl_add_sarray gdidl_get_sarray gdidl_get_sarray
gdidl_alter_sarray gdidl_add_indir gdidl_alter_indir gdidl_add_sindir
gdidl_alter_sindir) bindings/matlab/matlab.c (gdmx_from_sarrays)
bindings/perl/GetData.xs (get_sarray get_sarray_slice sarrays put_sarray
put_sarray_slice add_sarray madd_sarray msarrays) bindings/php/getdata.c
(gdphp_convert_sarray gd_add_sarray gd_add_indir gd_add_sindir
gd_alter_sarray gd_alter_indir gd_alter_sindir gd_sarrays gd_get_sarray
gd_madd_sarray gd_madd_indir gd_madd_sindir gd_msarrays gd_put_sarray)
bindings/python/pydirfile.c (gdpy_dirfile_getsarray gdpy_dirfile_sarrays
gdpy_dirfile_msarrays gdpy_dirfile_putsarray): Restore from getdata-dsv10
branch.
* bindings/cxx/getdata/indirentry.h bindings/cxx/getdata/sarrayentry.h
bindings/cxx/getdata/sindirentry.h bindings/cxx/indirentry.cpp
bindings/cxx/sarrayentry.cpp bindings/cxx/sindirentry.cpp
bindings/matlab/gd_add_sarray.c bindings/matlab/gd_alter_sarray.m
bindings/matlab/gd_get_sarray.c bindings/matlab/gd_get_sarray_slice.c
bindings/matlab/gd_madd_sarray.c bindings/matlab/gd_put_sarray.m
bindings/matlab/gd_put_sarray_slice.c bindings/matlab/gd_sarrays.c: Restore
from getdata-dsv10 branch.
* src/fragment.c (_GD_SubFragmentList): Restore from getdata-dsv10 branch.
* src/common.c (_GD_GetRepr): Restore DSV 10 features from getdata-dsv10
branch.
* src/include.c (_GD_SetFieldAffixes): Restore ns and nsl arguments from
getdata-dsv10 branch.
* src/legacy.c (GetFormat): Restore DSV 10 stuff from getdata-dsv10 branch.
* bindings/cxx/test/big_test.cpp bindings/f77/test/big_test.f
bindings/f77/test/big_test95.f90 bindings/idl/test/big_test.pro
bindings/matlab/test/big_test.m bindings/perl/t/big_test.t
bindings/php/test/big_test.php bindings/python/test/big_test.py
doc/list.tests: Restore tests 275-301 from getdata-dsv10 branch (where they
were numbered 272-298).
* src/getdata.h.in: Bump GD_DIRFILE_STANDARDS_VERSION.
Also:
* test/svlist_array.c test/svlist_array0.c test/svlist_array_hidden.c
test/svlist_array_meta.c test/svlist_array_meta0.c
test/svlist_array_meta_free.c test/svlist_array_meta_hidden.c: Added.
* bindings/perl/src/GetData.xs: Replace gratuitous use of XPUSH with
EXTEND + PUSH.
* src/field_list.c (gd_entry_list) src/nfields.c (gd_nentries): Add fragment
argument.
* bindings/perl/src/GetData.xs bindings/perl/src/typemap: Rename gdp_bitnum_t
to gdp_ffff_t for generic use.
* test/elist_fragment.c test/nentries_fragment.c: Added.
* bindings/cxx/dirfile.cpp (Dirfile::NEntries Dirfile::EntryList)
bindings/f77/fgetdata.c (GDNENT GDENTX GDENTN)
bindings/f77/getdata.f90.in (fgd_nentries fgd_entry_list)
bindings/idl/getdata.c (gdidl_get_field_list gdidl_get_nfields)
bindings/matlab/gd_entry_list.c bindings/matlab/gd_nentries.c
bindings/matlab/gd_field_list.m bindings/matlab/gd_field_list_by_type.m
bindings/matlab/gd_mfield_list.m bindings/matlab/gd_mfield_list_by_type.m
bindings/matlab/gd_mvector_list.m bindings/matlab/gd_nfields.m
bindings/matlab/gd_nfields_by_type.m bindings/matlab/gd_nmfields.m
bindings/matlab/gd_nmfields_by_type.m bindings/matlab/gd_nmvectors.m
bindings/matlab/gd_nvectors.m bindings/matlab/gd_vector_list.m
bindings/perl/src/GetData.xs (entry_list) bindings/php/getdata.c
(gd_entry_list gd_nentries) bindings/python/pydirfile.c
(gdpy_dirfile_nentries gdpy_dirfile_entrylist): Handle fragment parameter.
2016-09-19 D. V. Wiebe <getdata@ketiltrout.net> svn:1104
* src/sie.c (_GD_SampIndOpen): Remove all the weird existing file checks
before the malloc. That kind of stuff got put in the bookkeeping layer
a loooong time ago.
* test/sie_err_open.c: Added.
2016-09-19 D. V. Wiebe <getdata@ketiltrout.net> svn:1101
* src/flac.c (_GD_FlacDecodeCallback): Renamed from _GD_FlacWriteCallback
because that name was confusing. (The callback is invoked via
_GD_FlacRead).
* src/flac.c (_GD_FlacSeek): Fix write-seek.
* src/gzip.c (_GD_GzipOpen): Set errno when fdopen fails.
* test/bzip_enoent.c test/flac_enoent.c test/gzip_enoent.c
test/lzma_enoent.c: Added.
* bindings/python/pydirfile.c (gdpy_dirfile_getentry
gdpy_dirfile_getfragment): Remove Py_INCREF call on new object: tp_alloc
already sets the refcount to 1.
* bindings/python/pydirfile.c (gdpy_dirfile_getentry): strdup() the char_enc
to avoid double free.
* bindings/python/pyfragment.c (gdpy_dirfile_getfragment): Call Py_INCREF on
self to match the decref in gdpy_fragment_delete().
* src/encoding.c (_GD_FiniRawIO): When closing an OOP write, count passed
to _GD_ef->read should be samples, not bytes.
* test/lzma_xz_offs_clear.c: Added.
* src/bzip.c (_GD_Bzip2Seek) src/flac.c (_GD_FlacSeek) src/gzip.c
(_GD_GzipSeek _GD_GzipWrite) src/lzma.c (_GD_LzmaSeek _GD_LzmaSync): Treat
file as a simple struct pointer, not an array for better encapsulation. (All
dealings with the array should occur in the bookkeeping layer.)
* src/encoding.c (_GD_InitRawIO): Initialise E->e->u.raw.file[1].subenc for
OOP writes.
* src/flush.c (_GD_SyncRaw): Added.
* src/flush.c (_GD_Flush): sync the correct file for OOP write encodings.
* src/bzip.c (_GD_Bzip2Seek): Rename count parameter to offset to reduce
confusion. Handle byte counting in a separate variable (remaining).
* src/encoding.c (_GD_FiniRawIO): count to read call should be samples, not
bytes.
* src/iopos.c (_GD_DoSeek): Fix OOP seek check.
* src/lzma.c: Increased GD_LZMA_DATA_IN to 32752 from 4096.
* src/lzma.c (_GD_LzmaReady): Don't read more data if we already have some
ready.
* src/lzma.c (_GD_LzmaClear): Set lzd->offset after move.
* src/lzma.c (_GD_LzmaWrite _GD_LzmaRead): Update file->pos on success.
* src/lzma.c (_GD_LzmaSeek): count to _GD_LzmaWrite is samples not bytes.
* src/lzma.c (_GD_LzmaRead): Only call _GD_LzmaClear when there's no
data ready.
* test/enc_put_offs.c test/bzip_put_offs.c test/flac_put_offs.c
test/gzip_put_offs.c test/lzma_xz_offs_clear.c test/lzma_xz_put_offs.c:
Added.
2016-09-17 D. V. Wiebe <getdata@ketiltrout.net> svn:1099
* bindings/python/pydirfile.c (gdpy_dirfile_setverboseprefix): Report
encoding errors.
* bindings/python/pydirfile.c (gdpy_dirfile_setverboseprefix): Don't
trash the value of self->verbose_prefix (= dirfile.verbose_prefix) if
encoding fails.
* bindings/python/pyentry.c (gdpy_entry_getinfields): Remove dead code.
* bindings/python/pyentry.c (gdpy_entry_setinfields): Return error on first
encoding failure.
* bindings/python/pyentry.c (gdpy_set_entry_from_tuple gdpy_entry_init
gdpy_entry_setname gdpy_entry_setinfields) bindings/python/pyfragment.c
(gdpy_fragment_setprefix gdpy_fragment_setsuffix)
bindings/python/pygetdata.c (gdpy_parse_charenc): Re-arrange things a bit
to help Coverity Scan figure out what's going on.
* bindings/python/pygetdata.c (gdpy_string_from_pyobj): Return error on
encoding failure.
2016-09-07 D. V. Wiebe <getdata@ketiltrout.net> svn:1097
GetData-0.9.4 released.
* doc/README.python doc/README.php: Update for PHP7/Py3.
* bindings/python/pyentry.c (gdpy_set_entry_from_tuple): Fix printf format.
* test/flac_get_big.c test/flac_get_far.c test/flac_get_get.c
test/flac_get_get2.c test/flac_get_int64.c test/flac_get_int8.c
test/flac_get_little.c test/flac_get_long.c test/flac_nframes.c
test/flac_seek.c test/flac_seek_far.c test/flac_sync.c: Discard
flac(1)'s stderr. If flac fails, the test will, too.
2016-09-01 D. V. Wiebe <getdata@ketiltrout.net> svn:1096
* src/flac.c (_GD_FlacOutput): Skip pointless memcpy when ns == 0.
* src/flac.c (_GD_FlacRead): Advance output after write.
* test/flac_get_long.c: Added.
* src/flac.c (_GD_FlacWriteCallback): Fix 1-byte data type check.
* test/flac_get_int8.c: Added.
* test/flac_get_int64.c: Added.
* m4/python.m4 (GD_PYTHON): Do the standard strip-exec_prefix-after-the-
fact thing with the pythondir to work around the debianification of
distutils in debian.
2016-08-17 D. V. Wiebe <getdata@ketiltrout.net> svn:1095
* m4/python.m4: Add some superfluous exec's to work around a
bug in bash-4.1.
* bindings/python/gdpy_intern.h (gdpy_path_from_pyobj): Fix Python3
definition.
* bindings/python/pyentry.c (gdpy_entry_setspf gdpy_entry_setbitnum
gdpy_entry_setshift gdpy_entry_setcountval gdpy_entry_setthreshold):
initialise scalar to suppress compiler warning.
* bindings/python/test/big_test.py bindings/python/test/char_enc1.py
bindings/python/test/char_enc2.py bindings/python/test/char_enc3.py: Fix
all the encodings for Python3. Use os.fsdecode in Python3 for filename
checks.
2016-07-20 D. V. Wiebe <getdata@ketiltrout.net> svn:1091
GetData-0.9.3 released.
2016-06-28 D. V. Wiebe <getdata@ketiltrout.net> svn:1088
* bindings/php/php_getdata.h: Handle zend_register_long_constant() call
changes in PHP7.
2016-06-28 D. V. Wiebe <getdata@ketiltrout.net> svn:1087
* src/sie.c (_GD_SampIndSeek): Check fread return value.
2016-06-28 D. V. Wiebe <getdata@ketiltrout.net> svn:1086
* src/sie.c (_GD_SampIndDiscardHeader): Added.
* src/sie.c (_GD_SampIndDoOpen): Call _GD_SampIndDiscardHeader to look for
(and skip) the header.
* src/sie.c (_GD_SampIndSeek): Seek past the header on rewind.
* test/sie_get_header.c test/sie_put_header.c: Added.
2016-06-23 D. V. Wiebe <getdata@ketiltrout.net> svn:1085
* bindings/make_parameters.c (PHP): in constants.c, use the macro
GDPHP_REGISTER_LONG_CONSTANT instead of zend_register_long_constant
directly.
* bindings/php/getdata.c: There's a large section at the top abstracting
PHP5 and PHP7.
* bindings/php/getdata.c (gdphp_add_assoc_complex gdphp_add_assoc_cmparray
gdphp_data_to_array gd_carrays gd_mcarrays): In PHP7, allocate a zval on the
stack to pass to gdphp_from_complex because it can't allocate one anymore.
* bindings/php/getdata.c (gd_getdata): Free data on error.
* bindings/php/getdata.c (gd_madd_bit gd_madd_sbit): Correctly deal with
NULL numbits.
2016-05-25 D. V. Wiebe <getdata@ketiltrout.net> svn:1082
* bindings/python/gdpy_intern.h: Renamed from pygd_intern.h
2016-05-25 D. V. Wiebe <getdata@ketiltrout.net> svn:1080,1081
* bindings/idl/Makefile.am: Remove -p from mkdir call
* bindings/idl/makedlm.sh.in bindings/matlab/Makefile.am
bindings/matlab/make_contents.sh.in m4/idl.m4 (GD_IDL_VAR
GD_IDL_CHECK_VERSION GD_IDL): Use "grep" instead of "${GREP}"
* configure.ac bindings/idl/package/configure.ac
bindings/matlab/package/configure.ac: Remove AC_PROG_GREP call:
baseline grep should be sufficient for us, whatever it is.
* bindings/matlab/make_contents.sh.in: use "grep | head" instead of
"grep -m"
* m4/compiler.m4 (GD_LANG_F77_COMPILER_INTEL GD_LANG_FC_COMPILER_INTEL)
m4/idl.m4 (GD_IDL_CHECK_VERSION GD_IDL) m4/matlab.m4 (GD_MATLAB):
Redirect grep output to /dev/null instead of using "grep -q"
* bindings/matlab/make_contents.sh.in bindings/matlab/test/test.sh: Use
expr instead of basename
* bindings/matlab/make_contents.sh.in: Use tr instead of ${AWK}
* bindings/idl/package/configure.ac bindings/matlab/package/configure.ac:
Remove AC_PROG_SED call: baseline sed should be sufficient for us,
whatever it is.
* configure.ac: Don't make Fortran or Perl bindings if we don't have ${SED}:
baseline sed isn't necessarily good enough.
* m4/idl.m4 (GD_IDL_CHECK_VERSION GD_IDL) bindings/matlab/Makefile.am: Use
sed instead of ${SED}
* bindings/idl/makedlm.sh.in: set LC_ALL=C
* m4/win32.m4 (GD_MSYS_SHELL): Use ${AWK} instead of "grep | awk"
2016-05-20 D. V. Wiebe <getdata@ketiltrout.net> svn:1078
* configure.ac: Require SED and GREP to build the IDL bindings.
* m4/idl.m4 (GD_IDL): Define and AC_SUBST idl_prefix. Replace idl_prefix
with exec_prefix in idldir if needed.
* m4/idl.m4 (GD_IDL_VAR): Added.
* m4/perl.m4 (GD_PERL) m4/php.m4 (GD_PHP): Replace the interpreter's prefix
with ${exec_prefix} in install directories if possible.
* m4/python.m4 (GD_PYTHON): Fix pythondir calculation to use exec_prefix.
And also PYTHON_LDVERSION instead of PYTHON_VERSION.
* Makefile.am bindings/idl/package/Makefile.am: remove all the directory
options from DISTCHECK_CONFIGURE_FLAGS.
* bindings/idl/package/configure.ac: Abort if GREP and SED aren't defined.
2016-05-19 D. V. Wiebe <getdata@ketiltrout.net> svn:1075
* bindings/cxx/getdata/types.h: Added.
* bindings/cxx/getdata/dirfile.h: include getdata/types.h instead of
getdata.h directly.
* bindings/cxx/getdata/entry.h: include getdata/types.h instead of
getdata/dirfile.h. DataType, EntryType, WindOpType moved to
getdata/types.h.
* bindings/cxx/getdata/fragment.h: include getdata/types.h instead of
getdata/dirfile.h. EncodingScheme moved to getdata/types.h
* bindings/cxx/internal.h: Include everything explicitly to avoid
accidentally including a file outside the source tree instead.
2016-05-12 D. V. Wiebe <getdata@ketiltrout.net> svn:1073
* bindings/python/pygd_intern.h: Don't include numpy/arrayobject.h unless
GDPY_INCLUDE_NUMPY id defined.
* bindings/python/pygetdata.c bindings/python/pydirfile.c: Define
GDPY_INCLUDE_NUMPY.
* bindings/python/pydirfile.c (gdpy_dirfile_setreference
gdpy_dirfile_setstandards gdpy_dirfile_setmplexlookback)
bindings/python/pyentry.c (gdpy_entry_setname gdpy_entry_setfragment
gdpy_entry_setinfields gdpy_entry_setdatatype gdpy_entry_setarraylen
gdpy_entry_setnfields gdpy_entry_setm gdpy_entry_setb gdpy_entry_settable
gdpy_entry_setdividend gdpy_entry_seta gdpy_entry_setpolyord
gdpy_entry_setparms gdpy_entry_setwindop): Prohibit deletion.
* bindings/python/pydirfile.c (gdpy_dirfile_getflags): Zero flags on delete.
* bindings/python/pydirfile.c (gdpy_dirfile_setverboseprefix): Set prefix to
NULL on delete.
* bindings/python/pyentry.c (gdpy_entry_getnumbits): Set numbits to 1 on
delete.
* bindings/python/pyentry.c (gdpy_entry_setperiod): Set period to 0 on
delete.
* bindings/python/pyfragment.c (gdpy_fragment_setprotection): Set to
GD_PROTECT_NONE on delete.
* bindings/python/pyfragment.c (gdpy_fragment_setprefix
gdpy_fragment_setsuffix): Set to parent's affix on delete.
* bindings/python/pyentry.c (gdpy_set_scalar_from_pyobj): Handle pyobj =
NULL (i.e. attribute deletion).
* bindings/python/pygetdata.c (gdpy_parse_charenc): Handle value == NULL.
* configure.ac: Look for PyErr_NewExceptionWithDoc.
* m4/python.m4 (GD_PYTHON): Compute PYTHON_LDFLAGS for configure's use.
* bindings/python/pygd_intern.h: Handle HAVE_PYERR_NEWEXCEPTIONWITHDOC.
* bindings/python/pygetdata.c (gdpy_exception_list GDPY_MODINITFUNC): Add
docstrings to Exception objects.
* bindings/python/pygetdata.c (gdpy_copy_global_charenc): Take no arguments;
return a strdup'd string or NULL.
* bindings/python/pyentry.c (gdpy_entry_setthreshold): Call
gdpy_set_scalar_from_pyobj to properly handle scalar field codes.
* bindings/python/pygetdata.c (gdpy_string_from_pyobj): delete dup
parameter: now we always strdup the string. Also clean up the encoded pyobj
when appropriate.
* bindings/python/pygetdata.c (gdpy_report_error): Added. Handle GD_E_ALLOC
errors and gd_error_string() failures with PyErr_NoMemory().
* bindings/python/pygetdata.c (GDPY_MODINITFUNC): Make pygetdata.AllocError
an alias of MemoryError
* bindings/python/pygd_intern.h (GDPY_REPORT_ERROR): Deleted.
* bindings/python/pygd_intern.h (GDPY_CHECK_ERROR2): Call gdpy_report_error.
* bindings/python/pydirfile.c (gdpy_dirfile_raise): Call gdpy_report_error
directly.
2016-05-11 D. V. Wiebe <getdata@ketiltrout.net> svn:1072
* bindings/python/pygetdata.h: Renamed from cpygetdata.h
2016-05-11 D. V. Wiebe <getdata@ketiltrout.net> svn:1070
* bindings/pyghon/pygd_intern.h: Renamed from pygetdata.h
2016-05-11 D. V. Wiebe <getdata@ketiltrout.net> svn:1069
* bindings/python/cpygetdata.h (PyDirfile_Raise)
bindings/python/pydirfile.c (gdpy_dirfile_raise): Added.
2016-05-11 D. V. Wiebe <getdata@ketiltrout.net> svn:1067
* bindings/python/cpygetdata.h: Added.
* bindings/python/pydirfile.c (gdpy_dirfile_dirfile): Added.
* bindings/python/pygetdata.c (GDPY_MODINITFUNC): Create the PyCapsule
object if including the C API.
* bindings/python/pygetdata.h: Include cpygetdata.h if building the C API.
* bindings/python/Makefile.am: Install cpygetdata.h if appropriate.
* configure.ac: Check for PyCapsule and enable pygetdata C API if found.
2016-04-28 D. V. Wiebe <getdata@ketiltrout.net> svn:1063
Python3 and PyUnicode support:
* bindings/python/pygetdata.h: Define gdpyint_fromlong, gdpyint_check,
gdpyint_fromlong based on python version.
* bindings/python/pygetdata.c (gdpy_ulong_from_pyobj gdpy_long_from_pyobj):
Abstractify PyInt/PyLong differences. Everything that used to call
PyInt_AsLong, PyLong_AsUnsignedLong now uses one of these or the macros
defined in pygetdata.h as appropriate.
* bindings/python/pygetdata.h: Define gdpy_encobj_check,
gdpystrobj_from_string, gdpy_string_from_encobj, gdpy_encobj_from_string to
handle encoded strings (i.e. PyString in Python2 or PyBytes in Python3).
* bindings/python/pygetdata.c (gdpyobj_from_estring): Added.
* bindings/python/pygetdata.c (gdpy_string_from_pyobj gdpyobj_from_string):
Added, replacing most PyString_AsString and PyString_FromString calls.
* bindings/python/pygetdata.c (gdpy_encobj_check): Added, replacing
PyString_Check calls.
* bindings/python/pyentry.c (gdpy_dup_pystring): Deleted (now handled by
gdpy_string_from_pyobj).
* bindings/python/pygetdata.c (gdpy_path_from_pyobj_): Added for Python3.
* bindings/python/pygetdata.h: Define gdpy_path_from_pyobj to either
gdpy_string_from_pyobj (Python2) or else gdpy_path_from_pyobj_ (Python3).
Define gdpyobj_from_path to either PyString_FromString (Python2) or else
PyUnicode_DecodeFSDefault (Python3).
* bindings/python/pygetdata.c (gdpy_convert_from_pylist
gdpy_convert_from_pyobj): Skip GDPY_INT_AS_LONG in python3.
* bindings/python/pydirfile.c bindings/python/pyentry.c
bindings/python/pyfragment.c: Use PyVarObject_HEAD_INIT for PyTypeObject
initialisation.
* bindings/python/test/check_enc1.py bindings/python/test/check_enc2.py
bindings/python/test/check_enc3.py: Added.
* bindings/python/pygetdata.h: Define GDPY_MODINITFUNC,
GDPY_MODINITSUCCESS, GDPY_MODINITFAILURE based on python version. Also
define PyVarObject_HEAD_INIT if needed.
* bindings/python/pygetdata.c (GDPY_MODINITFUNC): version-agnostic name for
initpygetdata. Remember the module as global gdpy_mod.
* bindings/python/pygetdata.h: Add struct gdpy_charenc_t char_enc to struct
gdpy_dirfile_t and struct gdpy_charenc_t char_enc.
* bindings/python/pygetdata.h (PYGD_CHECK_ERROR PYGD_CHECK_ERROR2
PYGD_REPORT_ERROR): Add ce parameter.
* bindings/python/pygetdata.c (GDPY_MODINITFUNC): Initialise
pygetdata.character_encoding to Py_None.
* bindings/python/pygetdata.c (gdpy_charenc_repr gdpy_parse_charenc
gdpy_copy_global_charenc) bindings/python/pydirfile.c
(gdpy_dirfile_getcharencoding gdpy_dirfile_setcharencoding)
bindings/python/pyentry.c (gdpy_entry_getcharencoding
gdpy_entry_setcharencoding): Added.
* bindings/python/pyentry.c (gdpy_set_entry_from_tuple
gdpy_set_entry_from_dict gdpy_set_scalar_from_pyobj): Add char_enc parameter.
* bindings/python/pydirfile.c (gdpy_dirfile_create) bindings/python/pyentry.c
(gdpy_entry_create): Call gdpy_copy_global_charenc to initialise
self->char_enc.
* bindings/python/pydirfile.c (gdpy_dirfile_getentry): Copy dirfile's
char_enc instead of the global one.
* bindings/python/pydirfile.c (gdpy_dirfile_init) bindings/python/pyentry.c
(gdpy_entry_init): Add character_encoding parameter.
* bindings/python/pydirfile.c bindings/python/pyentry.c
bindings/python/pyfragment.c: Replace "s" with "et" and, pass self->char_enc
where appropriate, in most PyArg_ParseTupleAndKeywords calls to automatically
encode Unicode objects.
* bindings/python/test/char_enc1.py bindings/python/test/char_enc2.py
bindings/python/test/char_enc3.py: Added.
* bindings/python/pydirfile.c (gdpyobj_from_strarr): Renamed from
gdpy_to_pystringlist, moved from pygetdata.c, and made static.
* bindings/python/pyentry.c (S1CHECK S2CHECK S3CHECK S4CHECK): Define to
handle unicode decoding errors.
* bindings/python/test/big_test.py (L B): Added to deal with python2/3
differences.
* bindings/python/test/big_test.py (CheckOK CheckOK2 CheckException
CheckException2): Use sys.exc_info()[0] instead of sys.exc_type.
* m4/python.m4 (GD_LOG_SHELL GD_PYTHON_CONFIGVAR GD_PYTHON3
GD_PYTHON_MIN_VERSION): Added.
* m4/python.m4 (GD_PYTHON): Look for python3. Determine PYTHON_LDVERSION.
Don't use python-config to avoid buggy ones. Use the right sysconfig.
* m4/python.m4 (GD_PYTHON): Figure out PYTHON_OBJECT_SUFFIX.
* bindings/python/Makefile.am: Use PYTHON_OBJECT_SUFFIX.
Also:
* configure.ac: Bump minimum Python2 to 2.4 due to bugs in the 2.3 branch.
* bindings/python/pygetdata.h (GDPY_CHECK_ERROR GDPY_CHECK_ERROR2
GDPY_REPORT_ERROR): Rename from PYGD_CHECK_ERROR PYGD_CHECK_ERROR2
PYGD_REPORT_ERROR for consistency.
* bindings/python/pygetdata.c (gdpylist_append): Return error if item ==
NULL.
* bindings/python/pyentry.c (gdpy_entry_repr): Added.
* bindings/python/pyfragment.c (gdpy_fragment_init): Fix
PyArg_ParseTupleAndKeywords call.
* bindings/python/pygetdata.c (gdpy_coerce_from_pyobj): Added.
* bindings/python/pyentry.c (gdpy_set_scalar_from_pyobj): Call
gdpy_string_from_pyobj or gdpy_coerce_from_pyobj to do all the work.
* bindings/python/pyentry.c (gdpyobj_from_scalar): Added.
* bindings/python/pyentry.c (gdpy_entry_getspf gdpy_entry_getm
gdpy_entry_getb gdpy_entry_getbitnum gdpy_entry_getnumbits
gdpy_entry_getdividend gdpy_entry_getshift gdpy_entry_getcountval
gdpy_entry_getperiod gdpy_entry_geta gdpy_entry_getparms): Call
gdpyobj_from_scalar.
* bindings/python/pygetdata.c (gdpy_maybe_complex): Added.
* bindings/python/pygetdata.c (gdpy_convert_to_pyobj): Add force_complex
flag. Call gdpy_maybe_complex().
* bindings/python/pydirfile.c (gdpy_dirfile_carrays gdpy_dirfile_mcarrays):
Don't crash if return_type = GD_NULL.
* bindings/python/pydirfile.c (gdpy_dirfile_carraylen): Use PyErr_Warn
instead of PyErr_WarnEx for backwards compatibility.
* src/common.c (_GD_SetTablePath): If _GD_GrabDir fails, report the error.
* test/get_linterp_nodir.c: Added.
* configure.ac: Add AC_BOTTOM call.
* src/gd_extra_config.h: Added for Apple universal binaries
* src/include.c (_GD_Include): Pop file location from oldp.
* src/parse.c (_GD_ParseFragment): Use p->line for linenumbers.
* src/name.c (_GD_ValidateField): Handle CHAR_MIN != 0.
2016-03-29 D. V. Wiebe <getdata@ketiltrout.net> svn:1055
GetData-0.9.2.1 released:
* m4/version.m4: distinguish library version (getdata_version) and package
version (getdata_pkg_version).
* configure.ac bindings/idl/package/configure.ac
bindings/matlab/package/configure.ac: Call AC_INIT with getdata_pkg_version
not getdata_version
* configure.ac: AC_SUBST GETDATA_LIB_VERSION
* bindings/php/getdata.c (PHP_MINFO_FUNCTION getdata_module_entry)
bindings/make_parameters.c (MatLab) src/encoding.c (_GD_MissingFramework)
src/flush.c (_GD_FlushFragment): Use GD_GETDATA_VERSION instead of
PACKAGE_VERSION or VERSION.
* src/Makefile.am: Use GETDATA_LIB_VERSION for module version instead of
PACKAGE_VERSION
2016-03-25 D. V. Wiebe <getdata@ketiltrout.net> svn:1054
* test/alter_entry_scalar3r.c: Fix check.
2016-03-24 D. V. Wiebe <getdata@ketiltrout.net> svn:1050
GetData-0.9.2 released.
2016-03-21 D. V. Wiebe <getdata@ketiltrout.net> svn:1049
* php/getdata.c (gdphp_open): Record persistent-ness.
* php/getdata.c (gd_close gd_discard): Don't close persistent dirfiles.
* php/test/persistence.php: Added.
2016-03-12 D. V. Wiebe <getdata@ketiltrout.net> svn:1048
GetData-0.9.2rc2:
* bindings/python/pydirfile.c (gdpy_dirfile_delentry): Change flags to
unsigned per C API.
* bindings/python/pydirfile.c (gdpy_dirfile_include): Change flags to
unsigned long per C API.
* bindings/python/pydirfile.c (gdpy_dirfile_getcarray): Use unsigned
PY_LONG_LONG for len instead of size_t since size_t isn't supported by
PyArg_ParseTupleAndKeywords.
* bindings/python/pydirfile.c (gdpy_dirfile_getconstants
gdpy_dirfile_mcarrays gdpy_dirfile_getmconstants gdpy_dirfile_getmfieldlist
gdpy_dirfile_putconstant gdpy_dirfile_putcarray gdpy_dirfile_putdata)
bindings/python/pyentry.c (gdpy_entry_init): Don't assume enums are the same
size as int.
2016-03-08 D. V. Wiebe <getdata@ketiltrout.net> svn:1047
GetData-0.9.2rc1.
2016-03-05 D. V. Wiebe <getdata@ketiltrout.net> svn:1046
* src/entry.c (_GD_GetScalar): Take scalar and scalar_ind directly;
allow E == NULL, return GD_E_BAD_SCALAR error instead of setting an
error; destatickify.
* src/entry.c (_GD_GetScalar2): Added with the old signature of
_GD_GetScalar.
* src/entry.c (_GD_Calculate): Call _GD_GetScalar2 instead of _GD_GetScalar
directly.
* src/mod.c (_GD_AlterScalar): Call _GD_GetScalar instead of gd_get_constant
to dereference when needed. Also renamed most of the parameters to make
things (hopefully) less confusing in the future.
* test/alter_entry_scalar3i.c: Renamed from test/alter_entry_scalar3c.c.
* test/alter_entry_scalar3r.c test/alter_entry_scalar3c.c: Added.
* test/flac_put_big.c test/flac_put_little.c: Don't double-close the
dirfile.
2016-03-02 D. V. Wiebe <getdata@ketiltrout.net> svn:1044
* src/mod.c (_GD_Change): Free the correct scalar for PHASE entries.
* bindings/cxx/test/big_test.cpp: Delete test 272's Dirfile object.
2016-03-01 D. V. Wiebe <getdata@ketiltrout.net> svn:1043
* src/flush.c (_GD_FlushFragment): Don't double fclose on ferror.
* src/fragment.c (gd_desync): close dup'd dirfd on error.
* src/add.c (gd_add_string gd_madd_string): free the empty string created
by _GD_Add.
* src/flac.c (_GD_FlacClose): Free gdfl->data.
* src/zzip.c (_GD_ZzipSize): Free gdzz.
* test/flush_amb_code.c test/parse_scalar2.c: Call gd_free_entry_strings.
2016-02-24 D. V. Wiebe <getdata@ketiltrout.net> svn:1041
* m4/perl.m4: Fix perlmandir when user specifies --with-perl-dir=
* src/flac.c (_GD_FlacSize): Close the file after reading it.
* test/flac_put_big.c test/flac_put_float64.c test/flac_put_little.c
test/flac_put_complex128.c test/flac_put_int32.c: Call gd_discard at the end.
* test/lzma_put.c: Fix Dirfile creation.
* src/field_list.c (_GD_EntryList): Fix fencepost error in realloc check.
* man/gd_getdata.3 man/gd_putdata.3: Mention the 2**63 sample limit.
2016-02-18 D. V. Wiebe <getdata@ketiltrout.net> svn:1038
GetData-0.9.1 released.
2016-02-17 D. V. Wiebe <getdata@ketiltrout.net> svn:1037
* src/gzip.c (_GD_GzipWrite): A return value of zero from gzwrite indicates
error.
* configure.ac: Added --disable-large-tests. Define NO_LARGE_TESTS if
given.
* test/gzip_put_off.c test/gzip_seek_put.c: Skip if NO_LARGE_TESTS defined.
* configure.ac: Call both AC_TYPE_UNSIGNED_LONG_LONG_INT and
AC_TYPE_LONG_LONG_INT.
* bindings/perl/simple_funcs.pl (printfmt): Fix format codes for gd_shift_t,
gdp_shift_t, gd_off64_t, size_t.
2016-02-17 D. V. Wiebe <getdata@ketiltrout.net> svn:1036
* bindings/idl/package/configure.ac bindings/matlab/package/configure.ac:
Update to match changes in ./configure.ac. Remove cruft.
2016-01-17 D. V. Wiebe <getdata@ketiltrout.net> svn:1035
* bindings/perl/Makefile.am: Remove gnuism.
* bindings/php/getdata.c (gd_getdata): Don't call gdphp_from_data with
GD_NULL.
* bindings/python/pydirfile.c (gdpy_dirfile_getcarray gdpy_dirfile_getdata
gdpy_dirfile_putcarray) bindings/python/pyentry.c (gdpy_set_entry_from_tuple
gdpy_entry_getdatatype gdpy_entry_getwindop) bindings/python/pyfragment.c
(gdpy_fragment_setprotection) bindings/python/pygetdata.c
(gdpy_convert_from_pylist): Fix data types and conversions.
2015-12-19 D. V. Wiebe <getdata@ketiltrout.net> svn:1033,1034
* src/ascii.c (_GD_ScanFormat): Don't strcpy, just return the string.
* src/ascii.c (_GD_AsciiWrite): Merge duplicate code into WRITE_ASCII and
WRITE_CASCII macros.
* src/getdata.c (_GD_DoField gd_getdata64) src/putdata.c (_GD_DoFieldOut
gd_putdata64): Truncate requests to avoid overflow of ssize_t.
* src/getdata.c (_GD_DoField gd_getdata64 _GD_DoSeek gd_seek64
_GD_DoFieldOut gd_putdata64): Return GD_E_RANGE if we would overflow the
I/O position.
* test/get_range.c test/put_range.c test/seek_range.c test/seek_range2.c:
Added.
* src/internal.h: Define PRIuSIZE and PRIdSIZE if necessary.
* src/flush.c (_GD_FlushFragment): Use inttype printf macros to write
frameoffset, &c.
* configure.ac: Call AC_TYPE_LONG_LONG_INT
* bindings/idl/getdata.c (gdidl_get_frameoffset): Use IDL_LONG64 for long
long.
* bindings/python/pydirfile.c (gdpy_dirfile_seek gdpy_dirfile_tell)
bindings/python/pyentry.c (gdpy_entry_getparms gdpy_entry_getthreshold)
bindings/python/pyfragment.c (gdpy_fragment_getoffset
gdpy_fragment_setoffset) bindings/python/pygetdata.c (gdpy_convert_to_pylist
gdpy_convert_to_pyobj): Use PY_LONG_LONG for long long.
* bindings/perl/simple_funcs.pl: Use inttypes printf macros and avoid long
long.
* bindings/matlab/gd_matlab.h: Define int64_t and uint64_t.
* bindings/matlab/matlab.c (gdmx_to_int64_): Renamed from gdmx_to_llong_.
* bindings/matlab/matlab.c (gdmx_to_int64): Renamed from gdmx_to_llong.
* bindings/matlab/matlab.c (gdmx_to_uint64_): Renamed from gdmx_to_ullong_.
* bindings/matlab/matlab.c (gdmx_to_uint64): Renamed from gdmx_to_ullong.
* bindings/matlab/matlab.c (gdmx_from_int64): Renamed from gdmx_from_llong.
* bindings/matlab/matlab.c (gdmx_from_uint64): Renamed from gdmx_from_ullong.
* src/internal.h: Properly distinguish between _MSC_VER (compiler stuff) and
__MSVCRT__ (library stuff).
* bindings/idl/getdata.c (gdidl_getdata gdidl_get_constant
gdidl_get_carray) bindings/matlab/gd_get_carray.c
bindings/matlab/gd_get_carray_slice.c bindings/matlab/gd_getdata.c
bindings/perl/src/GetData.xs (get_carray get_carray_slice get_constant
getdata) bindings/php/getdata.c (gd_get_carray gd_get_constant gd_getdata)
bindings/python/pydirfile.c (gdpy_dirfile_getcarray gdpy_dirfile_getconstant
gdpy_dirfile_getdata): Handle GD_NULL.
* bindings/test/matlab/big_test.m: Add tests 11, 273, 274.
* bindings/test/idl/big_test.pro bindings/perl/t/big_test.t
bindings/php/test/big_test.php: Add tests 11, 20, 273, 274.
* bindings/python/test/big_test.py: Add tests 11, 16, 20, 274.
* bindings/python/pydirfile.c (gdpy_dirfile_getcarray
gdpy_dirfile_getconstant): Make return_type optional.
* bindings/python/test/big_test.py: Delete all the __numpy_supported__
conditionals.
* bindings/perl/Makefile.am: Fix verbose tests and test dependency tracking.
2015-12-10 D. V. Wiebe <getdata@ketiltrout.net> svn:1032
* src/field_list.c (_GD_EntryList): Fix _GD_ListEntry call.
* test/vlist.c test/vlist_meta.c: Updated.
2015-12-10 D. V. Wiebe <getdata@ketiltrout.net> svn:1031
* man/gd_mconstants.3: Merged into gd_constants.3 and deleted.
* man/gd_constants.3: Merge in gd_mconstants.3.
* src/bzip.c (_GD_Bzip2Sync) src/flac.c (_GD_FlacSync) src/gzip.c
(_GD_GzipSync): Deleted. (Replaced by _GD_NopSync.)
* src/encoding.c (_GD_NopSync): Added.
* src/encoding.c: Deal with _GD_NopSync in the gd_ef_ initialisation.
_GD_NopSync added to Slim functions.
* src/internal.h: Merge the entry_list stuff found in both gd_private_entry_
and gd_dirfile_ into a common struct gd_flist_ used by both.
* src/entry.c (_GD_FreeFL): Added.
* src/close.c (_GD_FreeD) src/entry.c (_GD_FreeE): Call _GD_FreeFL().
* src/errors.c src/internal.h: Distinguish GD_E_BAD_TYPE errors where
the caller has invalidly passed GD_NULL.
* src/field_list.c (_GD_Constants): Set GD_E_BAD_TYPE if passed GD_NULL.
* test/cvlist_array_null.c test/cvlist_null.c: Added.
* src/internal.h: Only export _GD_StrError when using modules.
* src/compat.c (_GD_StrError): Renamed from gd_strerror.
* src/field_list.c (_GD_EntryList _GD_Constants _GD_Carrays _GD_Strings):
Remove the _GD_NEntries call to avoid running throught the field list twice.
Instead, dynamically resize the output buffer.
2015-11-25 D. V. Wiebe <getdata@ketiltrout.net> svn:1030
* bindings/idl/getdata.c (gdidl_alter_lincom gdidl_alter_polynom): Set
comp_scal = 0 by default.
* bindings/matlab/matlab.c (gdmx_free_entry): Fix GD_LINTERP_ENTRY case.
* bindings/perl/src/GetData.xs bindings/perl/simple_funcs.pl: Handle
gdp_complex_undef.
* bindings/perl/src/typemap: rename T_COMPLEXIN to T_COMPLEX_UNDEF and add
new T_COMPLEXIN which doesn't allow NULL.
* bindings/perl/src/GetData.xs (gdp_fetch_scalars): Don't dereference a NULL
scalar_ind.
* bindings/php/getdata.c (gdphp_convert_data): Properly handle GD_NULL.
* bindings/python/pydirfile.c (gdpy_dirfile_getstring): Free data on error.
* bindings/python/pyentry.c (gdpy_entry_init): Fix field_type check.
* doc/cov_mod.c: Added mexErrMsgIdAndTxt.
* src/bzip.c (_GD_Bzip2DoOpen) src/lzma.c (_GD_LzmaSeek): Record error before
free.
* src/sie.c (_GD_SampIndSize): Handle overflow.
* src/flush.c (_GD_StringEscapeise): Check fputc return value.
* src/flush.c (_GD_FlushFragment): Don't try another fclose after fclose
fails.
* src/lzma.c (_GD_LzmaDoOpen): close stream on error.
* src/zzip.c (_GD_ZzipName): Immediately return if file->name is defined.
2015-11-05 D. V. Wiebe <getdata@ketiltrout.net> svn:1028
* src/field_list.c (_GD_ListEntry): Force meta_ok and hidden_ok on after
dereferencing an alias.
* src/field_list.c (_GD_Constants _GD_Carrays _GD_Strings): Handle aliases.
* test/cvlist_array.c test/cvlist_array_meta.c test/cvlist_hidden.c
test/svlist_hidden.c: Update test.
* src/open.c (_GD_Open): Zero the unused nsl in fragment[0].
* src/iopos.c: Renamed from src/fpos.c.
* src/iopos.c (_GD_GetIOPos): Renamed from _GD_GetFilePos.
* src/del.c (gd_delete) src/entry.c (gd_hide gd_hidden gd_unhide): Properly
check for failure of _GD_FindField.
* test/del_bad_code.c test/hide_bad.c test/hide_hidden_bad.c
test/hide_unhide_bad.c: Added.
* src/entry.c (gd_entry): Don't doubly set GD_E_BAD_CODE.
* src/common.c (_GD_FindEntry): Removed parameters index, set, err: anyone
who calls this function wants it to succeed or return error.
* src/move.c (_GD_Move): Statickify.
* src/fpos.c (_GD_GetFilePos gd_seek64 gd_tell64): Return -1 on error.
2015-11-05 D. V. Wiebe <getdata@ketiltrout.net> svn:1024
* src/add.c (gd_add_spec gd_madd_spec _GD_AddSpec): Merge gd_add_spec and
gd_madd_spec into _GD_AddSpec and make the public functions boilerpates for
the new common code.
* src/field_list.c (gd_carrays gd_mcarrays _GD_Carrays): Similarly, gd_carrays
and gd_mcarrays into _GD_Carrays.
* src/field_list.c (gd_constants gd_mconstants _GD_Constants): gd_constants
and gd_mconstants into _GD_Constants.
* src/field_list.c (gd_strings gd_mstrings _GD_Strings): gd_strings and
gd_mstrings into _GD_Strings.
* src/mod.c (gd_alter_spec gd_malter_spec _GD_AlterSpec): gd_alter_spec and
gd_malter_spec into _GD_AlterSpec.
* src/parse.c (_GD_RawType): Reduce the number of string compares.
2015-10-16 D. V. Wiebe <getdata@ketiltrout.net> svn:1022
* bindings/perl/Makefile: Use ExtUtils::MakeMaker instead of Module::Build.
Because EU::MM creates a Makefile, run everything in a "build" subdir created
and populated at build-time.
* bindings/perl/Build.PL.in bindings/perl/MANIFEST.in: Deleted.
* bindings/perl/src: Added.
* bindings/perl/src/GetData.xs bindings/perl/src/typemap: Moved from ..
* bindings/perl/src/Makefile.PL.in: Added.
* m4/perl.m4: Look for and use ExtUtils::MakeMaker instead of Module::Build.
* bindings/python/Makefile.am: Fix race condition in "make -j distclean"
2015-10-16 D. V. Wiebe <getdata@ketiltrout.net> svn:1021
* src/legacy.c: Correct GD_ERROR_CODES.
* bindings/python/pygetdata.c bindings/matlab/matlab.c: Deprecate
GD_E_BAD_REPR.
2015-10-16 D. V. Wiebe <getdata@ketiltrout.net> svn:1011
GetData-0.9.0 released.
2015-10-05 D. V. Wiebe <getdata@ketiltrout.net> svn:1009
GetData-0.9.0rc3:
* bindings/cxx/dirfile.cpp (GetData::EncodingSupport): Use
GetData::EncodingScheme for the encoding parameter.
* bindings/cxx/dirfile.cpp (Dirfile::Delete): Use unsigned for the flags
parameter.
* bindings/cxx/getdata/fragment.h: Add FlacEncoding.
* bindings/idl/getdata.c (gdidl_delete): Add missing /META flag.
* bindings/php/getdata.c (gdphp_callback): Don't accept floating point
response from callback.
* bindings/matlab/Contents.m.head bindings/matlab/gd_move.c
bindings/perl/GetData.pm.in doc/README.cxx doc/README.f77 doc/README.f95
doc/README.idl doc/README.php doc/README.python: Update bindings docs.
* test/put_nofile.c: Fix !defined HAVE_SETRLIMIT case.
* test/test.h (gd_pathwrite): Also escape hash and space and use in all
cases.
* test/get_linterp_abs.c: Use gd_pathwrite. Don't double buffer
format_data.
2015-10-05 D. V. Wiebe <getdata@ketiltrout.net> svn:1008
* configure.ac: Fix handling of --with-ltdl.
* src/encoding.c src/internal.h: Move inclusion of <ltdl.h> out of header.
* src/compat.c (gd_StatAt64): Don't define if GD_NO_64BIT_STAT is defined.
* test/gzip_put_nframes.c test/gzip_put_off.c test/gzip_seek.c
test/gzip_seek_far.c test/gzip_seek_put.c: Fix for !defined(USE_GZIP).
* bindings/f77/getdata.f.in: Delete GDDELA and GDDSTP.
* configure.ac: remove check for -fno-backslash
* m4/compiler.m4 (GD_PROG_F77_FNO_BACKSLASH): Deleted.
* bidnings/f77/test/big_test.f: Define backslash parameter.
2015-09-30 D. V. Wiebe <getdata@ketiltrout.net> svn:1007
GetData-0.9.0rc2.
2015-09-27 D. V. Wiebe <getdata@ketiltrout.net> svn:1006
* test/gzip_seek_far.c: Allow both 256 and 4000 which can be returned by
different builds of zlib.
* src/getdata.c (_GD_ExtractRepr): Remove unused 4th parameter from
EXTRACT_REPR.
2015-09-26 D. V. Wiebe <getdata@ketiltrout.net> svn:1005
* bindings/cxx/bitentry.cpp (BitEntry::Scalar BitEntry::ScalarIndex)
bindings/cxx/sbitentry.cpp (SBitEntry::Scalar SBitEntry::ScalarIndex): Moved
to header.
* bindings/cxx/getdata/bitentry.h (Input Scalar ScalarIndex)
bindings/cxx/getdata/divideentry.h (Input) bindings/cxx/getdata/entry.h
(Input Scalar ScalarIndex Scale CScale Offset COffset Coefficient CCoefficient
SetInput SetScale SetOffset SetCoefficient) bindings/cxx/getdata/lincomentry.h
(Input Scalar ScalarIndex Scale CScale Offset COffset SetInput SetScale
SetOffset) bindings/cxx/getdata/linterpentry.h (Input)
bindings/cxx/getdata/mplexentry.h (Input Scalar ScalarIndex)
bindings/cxx/getdata/multiplyentry.h (Input) bindings/cxx/getdata/phaseentry.h
(Input Scalar ScalarIndex) bindings/cxx/getdata/polynomentry.h (Input Scalar
ScalarIndex Coefficient CCoefficient SetCoefficient)
bindings/cxx/getdata/rawentry.h (Scalar ScalarIndex)
bindings/cxx/getdata/recipentry.h (Index Scalar ScalarIndex)
bindings/cxx/getdata/sbitentry.h (Index Scalar ScalarIndex)
bindings/cxx/getdata/windowentry.h (Index Scalar ScalarIndex): Remove default
from index.
* bindings/python/pydirfile.c (gdpy_dirfile_getfieldlist
gdpy_dirfile_getmfieldlist gdpy_dirfile_getnmfields): Fix type cast.
* configure.ac: Remove GD_C_CAST_COMPLEX
* src/getdata.c (_GD_ExtractRepr): Avoid calling complex functions
unnecessarily.
* src/internal.h: Remove GD_RTOC.
* configure.ac: Check for gzseek64 and gztell64
* src/gzip.c (_GD_GzipSeek): Abstractify gzseek and gztell.
* src/internal.h: Redirect gd_StatAt64 if GD_NO_64BIT_STAT.
2015-09-25 D. V. Wiebe <getdata@ketiltrout.net> svn:1004
GetData-0.9.0rc1:
* src/internal.h (gd_ef_strerr_t): Mark first argument const.
* src/include.c (_GD_SetFieldAffixes): Remove unused ns and nsl arguments.
* src/legacy.c (GetFormat): Remove DSV 10 stuff.
* test/ascii_get_here.c: Fix e1 check.
* test/flac_put_int32.c: Fix signedness.
* bindings/matlab/gd_add_indir.m bindings/matlab/gd_add_sindir.m
bindings/matlab/gd_alter_indir.m bindings/matlab/gd_alter_sindir.m
bindings/matlab/gd_madd_indir.m bindings/matlab/gd_madd_sindir.m
bindings/matlab/gd_msarrays.c: Deleted.
* src/nan.h: Deleted.
* src/internal.h: Merged in nan.h content.
* test/gzip_put_off.c test/gzip_seek_put.c: Halve the amount of data used.
Merge in build system fixes from GetData-0.8 branch, revision 969:
* Makefile.am: Don't run matlabdistcheck and idldistcheck against an
installed GetData.
* bindings/idl/Makefile.am bindings/python/Makefile.am: Fix VPATH builds
again.
2015-09-25 D. V. Wiebe <getdata@ketiltrout.net> svn:1003
* src/flac.c (_GD_FlacWrite): Fix data marshalling for little-ended data.
* test/flac_put_complex128.c: Added.
2015-09-24 D. V. Wiebe <getdata@ketiltrout.net> svn:1001
* src/flac.c: Added.
* configure.ac src/Makefile.am src/encoding.c (_GD_EncodingUnderstood)
src/flush.c (_GD_FlushFragment): Deal with FLAC.
* bindings/make_parameters.c src/getdata.h.in: Add GD_FLAC_ENCODED.
* man/dirfile-encoding.5: Updated.
* src/internal.h: data_type added to gd_ef_open_t.
* src/bzip2.c (_GD_Bzip2DoOpen): Clean up after errors.
* src/internal.h: Abstractify strerror stuff.
* src/compat.c (gd_sterror): Added.
* src/errors.c (gd_error_string): Call gd_sterrror.
* src/fpos.c (_GD_DoSeek): Renamed from _GD_WriteSeek. Handle short writes.
* src/slim.c: Handle ZZSLIM.
* src/slim.c (Seek) src/zzip.c (_GD_ZzipSeek): Deal with seeks past the EOF.
Properly update and report file->pos.
* src/slim.c (DoOpen): Record full path name along with SLIMFILE in
file->edata. Renamed from _GD_SlimOpen.
* src/slim.c (Open): Added.
* src/zzip.c (_GD_ZzipName): Put both .zip name and field name in
file->name.
* src/zzip.c (_GD_ZzipDoOpen): Renamed from _GD_ZzipOpen. Open containing
archive (ZZIP_DIR) separately from the data file (ZZIP_FILE).
* src/zzip.c (_GD_ZzipOpen): Added.
* src/zzip.c (_GD_ZzipDoOpen): Call _GD_DoOpen.
* src/zzslim.c (_GD_ZzslimOpen _GD_ZzslimSeek _GD_ZzslimRead _GD_ZzslimClose
_GD_ZzslimSize): Removed. Instead, define ZZSLIM and include slim.c.
* src/internal.h: Added error to gd_raw_file_. Added strerr to encoding_t.
Added GD_EF_STRERR.
* src/bzip2.c src/gzip.c src/lzma.c src/zzip.c: Record errors in file->error.
* src/errors.c (_GD_SetEncIOError) src/bzip2.c (_GD_Bzip2Strerr) src/gzip.c
(_GD_GzipStrerr) src/lzma.c (_GD_LzmaStrerr) src/slim.c (Strerr) src/zzip.c
(_GD_ZzipStrerr): Added.
* src/del.c (_GD_Delete) src/encoding.c (_GD_FiniRawIO _GD_InitRawIO)
src/flimits.c (_GD_GetEOF) src/fpos.c (_GD_DoSeek gd_tell) src/getdata.c
(_GD_DoRaw) src/mod.c (_GD_Change) src/move.c (_GD_MogrifyFile) src/name.c
(_GD_Rename) src/nframes.c (gd_nframes64) src/putdata.c (_GD_DoRawOut): Set
error via _GD_SetEncIOError.
* src/encoding.c (_GD_MissingFramework): Deal with GD_EF_STRERR
* src/fpos.c (_GD_Seek): _GD_DoSeek has already set the error.
* src/errors.c: Added GD_E_IO_ENC_*.
* src/errors.c (_GD_SetEncIOError): Added.
* src/getdata.h.in: Fix GD_DIRFILE_STANDARDS_VERSION.
* test/name_dot10.c: Deleted.
* test/ascii_get_here.c test/ascii_put_here.c test/ascii_seek.c
test/ascii_seek_far.c test/bzip_seek.c test/bzip_seek_far.c test/flac_add.c
test/flac_get_big.c test/flac_get_far.c test/flac_get_get.c
test/flac_get_get2.c test/flac_get_little.c test/flac_nframes.c
test/flac_put_big.c test/flac_put_float64.c test/flac_put_int32.c
test/flac_put_little.c test/flac_seek.c test/flac_seek_far.c
test/flac_sync.c test/gzip_seek.c test/gzip_seek_far.c test/lzma_xz_seek.c
test/lzma_xz_seek_far.c test/seek_far.c test/sie_seek.c test/sie_seek_far.c
test/slim_seek.c test/slim_seek_far.c test/zzip_seek.c test/zzip_seek_far.c
test/zzslim_seek.c test/zzslim_seek_far.c: Added.
2015-09-22 D. V. Wiebe <getdata@ketiltrout.net> svn:1000
* bindings/python/pydirfile.c bindings/python/pygetdata.c configure.ac: Make
NumPy support mandatory.
* src/common.c (_GD_GetRepr): Remove DSV 10 features.
2015-09-22 D. V. Wiebe <getdata@ketiltrout.net> svn:999
* src/fragment.c (_GD_SubFragmentList): Removed (part of DSV 10).
* bindings/f77/test/gdcopn.f: remove GD_VB
2015-09-22 D. V. Wiebe <getdata@ketiltrout.net> svn:998
* bindings/idl/getdata.c bindings/python/pydirfile.c bindings/perl/typemap
bindings/perl/simple_funcs.pl bindings/perl/GetData.xs: Use gd_off64_t in
place of off64_t or off_t.
* bindings/perl/GetData.xs bindings/perl/simple_funcs.pl (gdp64): Deleted;
use the 64-bit API always.
* bindings/python/pydirfile.c (gdpy_dirfile_getdata gdpy_dirfile_getnframes
gdpy_dirfile_getbof gdpy_dirfile_getbof gdpy_dirfile_geteof
gdpy_dirfile_putdata gdpy_dirfile_getframenum gdpy_dirfile_seek
gdpy_dirfile_tell) bindings/python/pyfragment.c (gdpy_fragment_getoffset
gdpy_fragment_setoffset): Call the 64-bit API.
* configure.ac: Remove AC_SYS_LARGEFILE
* src/internal.h: Define _LARGEFILE64_SOURCE.
* test/header_off64t: Added.
* m4/php.m4: Handle NONE for php-binary.
* src/getdata.h.in: Do 64-bit API redirection if _FILE_OFFSET_BITS == 64.
* src/zzslim.c (_GD_ZzslimSeek) src/zzip.c (_GD_ZzipSeek) src/slim.c
(_GD_SlimSeek): Cast count to the correct type.
* src/gzip.c (_GD_GzipSeek): Use the 64-bit zlib API.
2015-09-21 D. V. Wiebe <getdata@ketiltrout.net> svn:997
* src/add.c (_GD_InvalidEntype _GD_Add) src/close.c (_GD_FreeD)
src/constant.c (gd_array_len) src/del.c (_GD_ClearDerived _GD_DeReference)
src/entry.c (_GD_FreeE _GD_CalculateEntry gd_entry gd_validate)
src/field_list.c (_GD_EntryIndex) src/flimits.c (_GD_GetEOF _GD_GetBOF)
src/flush.c (_GD_Flush _GD_FieldSpec _GD_FindVersion) src/fpos.c
(_GD_GetFilePos _GD_Seek) src/getdata.c (_GD_DoField gd_getdata64)
src/getdata.h.in src/internal.h src/mod.c (_GD_Change) src/name.c
(_GD_UpdateInputs) src/native.c (_GD_NativeType) src/parse.c
(_GD_ParseArray _GD_ParseFieldSpec _GD_ParseDirective) src/putdata.c
(_GD_DoFieldOut) src/spf.c (_GD_GetSPF) src/include.c (_GD_SetFieldAffixes):
Remove DSV 10 features.
* src/add.c (gd_add_indir gd_add_sindir gd_add_sarray gd_madd_indir
gd_madd_sindir gd_madd_sarray) src/field_list.c (gd_sarrays gd_msarrays)
src/getdata.c (_GD_IndirData _GD_DoIndir _GD_DoSindir) src/mod.c
(gd_alter_indir gd_alter_sindir gd_alter_sarray) src/parse.c
(_GD_ParseNamespace) src/string.c (gd_get_sarray gd_put_sarray_slice
gd_put_sarray) src/fragment.c (_GD_CheckChangeNamespace
gd_fragment_namespace): Removed.
* src/string.c (gd_get_sarray_slice): Made static.
* test/add_dot10.c test/add_indir.c test/add_sarray.c test/add_sarray_nil.c
test/add_sindir.c test/alter_entry_sarray.c test/alter_indir.c
test/alter_sarray.c test/alter_sindir.c test/get_indir.c test/get_sarray.c
test/get_sarray_len.c test/get_sarray_slice.c test/get_sindir.c
test/get_sindir_none.c test/get_sindir_null.c test/get_sindir_type.c
test/get_type_string.c test/madd_indir.c test/madd_sarray.c
test/madd_sindir.c test/name_updb_sarray.c test/parse_include_ns2.c
test/parse_include_nsabs.c test/parse_include_nsinh.c
test/parse_include_nspop.c test/parse_include_nsrabs.c
test/parse_include_nsrainh.c test/parse_include_nsrinh.c
test/parse_include_nsroot.c test/parse_indir.c test/parse_ns.c
test/parse_ns_abs.c test/parse_ns_dot.c test/parse_ns_dotdot.c
test/parse_ns_dotdotns.c test/parse_ns_dotns.c test/parse_ns_ndotdots.c
test/parse_ns_ndots.c test/parse_ns_nsdot.c test/parse_ns_nsdotdot.c
test/parse_ns_par.c test/parse_ns_sub.c test/parse_nsf.c
test/parse_nsf_abs.c test/parse_nsf_alias.c test/parse_nsf_dot.c
test/parse_nsf_hide.c test/parse_nsf_index.c test/parse_nsf_meta.c
test/parse_nsf_meta2.c test/parse_nsf_par.c test/parse_nsf_ref.c
test/parse_nsf_refabs.c test/parse_nsf_refrel.c test/parse_nsf_root.c
test/parse_nsf_rpar.c test/parse_nsf_sub.c test/parse_sarray.c
test/parse_sarray_long.c test/parse_sindir.c put_indir.c test/put_sarray.c
test/put_sarray_slice.c test/put_sindir.c test/svlist_array.c
test/svlist_array_meta.c test/add_ns.c test/add_ns_frag.c
test/add_ns_frag2.c test/include_ns.c test/name_ns.c test/name_ns2.c
test/name_nsdot.c test/parse_include_ns.c: Deleted.
* test/name_updb.c test/name_updb_carray.c test/native_string.c: Remove DSV 10
tests.
* bindings/make_parameters.c bindings/cxx/dirfile.cpp (Dirfile::Entry
Dirfile::GetData) bindings/cxx/entry.cpp (Entry::CheckIndex scalar_ok)
bindings/cxx/getdata/entry.h bindings/f77/fgetdata.c (GDGSCA GDASCA)
bindings/f77/getdata.f90.in (fgd_entry fgd_add fgd_madd fgd_alter_entry)
bindings/idl/getdata.c (gdidl_make_idl_entry gdidl_convert_entry_num
gdidl_read_idl_entry gdidl_getdata) bindings/matlab/gd_getdata.c
bindings/matlab/matlab.c (gdmx_from_entry gdmx_to_entry)
bindings/perl/GetData.xs (gdp_to_entry entry getdata)
bindings/perl/simple_funcs.xsin bindings/php/getdata.c (gdphp_from_entry
gdphp_to_entry gd_getdata) bindings/python/pydirfile.c
(gdpy_dirfile_getdata) bindings/python/pyentry.c (gdpy_set_entry_from_tuple
gdpy_entry_getinfields gdpy_entry_setinfields gdpy_entry_getarraylen
gdpy_entry_setarraylen gdpy_entry_getparms) bindings/python/pygetdata.c
(gdpy_convert_to_pylist gdpy_convert_to_pyobj): Remove DSV 10 features.
* bindings/cxx/dirfile.cpp (Dirfile::GetSarray Dirfile::Sarrays
Dirfile::MSarrays Dirfile::PutSarray) bindings/f77/fgetdata.c (GDGEID GDGESD
GDGESA GDADID GDADSD GDMDID GDMDSD GDADSA GDMDSA GDALID GDALSD GDSARX GDMSAX
GDGTSA GDPTSA GDALSA GDGSTD GDGSTP GDXSTP) bindings/f77/getdata.f90.in
(fgd_sarray_value_max fgd_msarray_value_max fgd_get_sarray
fgd_get_sarray_slice fgd_put_sarray fgd_put_sarray_slice fgd_add_sarray
fgd_madd_sarray fgd_alter_sarray fgd_add_indir fgd_add_sindir fgd_madd_indir
fgd_madd_sindir fgd_alter_indir fgd_alter_sindir fgd_getstrdata)
bindings/idl/getdata.c (gdidl_add_sarray gdidl_get_sarray gdidl_get_sarray
gdidl_alter_sarray gdidl_add_indir gdidl_alter_indir gdidl_add_sindir
gdidl_alter_sindir) bindings/matlab/matlab.c (gdmx_from_sarrays)
bindings/perl/GetData.xs (get_sarray get_sarray_slice sarrays put_sarray
put_sarray_slice add_sarray madd_sarray msarrays) bindings/php/getdata.c
(gdphp_convert_sarray gd_add_sarray gd_add_indir gd_add_sindir
gd_alter_sarray gd_alter_indir gd_alter_sindir gd_sarrays gd_get_sarray
gd_madd_sarray gd_madd_indir gd_madd_sindir gd_msarrays gd_put_sarray)
bindings/python/pydirfile.c (gdpy_dirfile_getsarray gdpy_dirfile_sarrays
gdpy_dirfile_msarrays gdpy_dirfile_putsarray): Removed.
* bindings/cxx/getdata/indirentry.h bindings/cxx/getdata/sarrayentry.h
bindings/cxx/getdata/sindirentry.h bindings/cxx/indirentry.cpp
bindings/cxx/sarrayentry.cpp bindings/cxx/sindirentry.cpp
bindings/matlab/gd_add_sarray.c bindings/matlab/gd_alter_sarray.m
bindings/matlab/gd_get_sarray.c bindings/matlab/gd_get_sarray_slice.c
bindings/matlab/gd_madd_sarray.c bindings/matlab/gd_put_sarray.m
bindings/matlab/gd_put_sarray_slice.c bindings/matlab/gd_sarrays.c: Deleted.
* bindings/cxx/test/big_test.cpp bindings/f77/test/big_test.f
bindings/f77/test/big_test95.f90 bindings/idl/test/big_test.pro
bindings/matlab/test/big_test.m bindings/perl/t/big_test.t
bindings/php/test/big_test.php bindings/python/test/big_test.py
doc/list.tests: Deleted tests 272-298. Renumbered test 299 to 272.
2015-09-20 D. V. Wiebe <getdata@ketiltrout.net> svn:995
* src/encoding.c (_GD_FiniRawIO) src/fpos.c (_GD_WriteSeek): Place large
buffers on the heap.
2015-09-20 D. V. Wiebe <getdata@ketiltrout.net> svn:993
Merge in bugfixes from GetData-0.8:
* src/add.c (_GD_Add _GD_AddAlias) src/fragment.c (_GD_CheckAffixes):
Don't dealias during the duplicate field name check. (r973)
* test/add_dangle_dup.c: Added. (r973)
* cmake/test/CMakeLists.txt: blacklist gzip tests. (r976)
* src/getdata.h.in: Don't attempt to use __nonnull. (r976)
* configure.ac: Fix cygwin check. (r976)
* src/getdata.c (_GD_DoRaw): Rewind RAW file if necessary after
zero-padding. (r977)
* test/get_foffs2.c test/seek_foffs2.c: Added. (r977)
* src/raw.c (_GD_RawSeek): Handle landing in the middle of a sample. (r977)
* src/raw.c (_GD_RawSeek): Remember the actual position, not the
requested position. (r977)
* bindings/idl/test/Makefile.am bindings/matlab/test/Makefile.am
bindings/perl/Makefile.am bindings/python/test/Makefile.am: Fix
DL_LIBRARY_PATH ordering. (r977)
* bindings/perl/GetData.pm.in: Fix perldoc markup. (r977)
* bindings/f77/fgetdata.c (GDFLSH GDSYNC GDRCLO): Fix zero-length string
checks. (r979)
* bindings/python/pyfragment.c (gdpy_fragment_getprefix
gdpy_fragment_getsuffix): Fix memory leaks. (r979)
* src/add.c (_GD_Add) src/legacy.c (_GD_GetDirfile) src/mod.c
(gd_alter_spec): Fix on-error memory leaks. (r979)
* src/common.c (_GD_GetRepr): Only set field_code to field_code_in if
necessary. (r979)
* src/flush.c (_GD_StringEscapeise): Fix upper nibble of hex encoding.
* test/flush_hex.c: Added. (r979)
* src/getdata.c (_GD_DoBit): Fix sign mask. (r979)
* src/sie.c (_GD_SampIndSize): Fix return value. (r980)
* src/sie.c (_GD_SampIndWrite): Flush stdio buffer before truncating to
avoid having a partially written file on disk. (r980)
* test/sie_put_trunc_nf.c: Added. (r980)
* bindings/python/pydirfile.c (gdpy_dirfile_getrawfilename)
bindings/python/pyfragment.c (gdpy_fragment_getprefix
gdpy_fragment_getsuffix): Free C strings after calling PyString_FromString.
Patch from Matthew Petroff. (r985)
* bindings/python/pydirfile.c (gdpy_dirfile_delete)
bindings/python/pyentry.c (gdpy_entry_delete) bindings/python/pyfragment.c
(gdpy_fragment_delete): Free the object. (r985)
* src/raw.c (_GD_RawOpen): Don't set the mode if open fails. (r988)
* test/put_nofile.c: Added. (r988)
* src/fpos.c (_GD_WriteSeek): Don't overrun the buffer when doing OOP
seeks. (r989, r990, r992)
* test/gzip_put_off.c * test/gzip_seek_put.c: Added. (r989, r990)
* src/nframes.c (gd_nframes64): Close the reference field if it's open for
writing to ensure everything is on disk before we check its size. (r989)
* test/gzip_put_nframes.c: Added. (r989)
Also:
* src/internal.h: Merge BUFFER_SIZE and GD_BUFFER_SIZE.
2015-05-15 D. V. Wiebe <getdata@ketiltrout.net> svn:974
* m4/compiler.m4 (GD_C_CAST_COMPLEX): Added.
* configure.ac: Call GD_C_CAST_COMPLEX in C99 mode.
* src/internal.h: Define GD_RTOC to handle GD_COMPLEX_CONV_OK.
* src/getdata.c (EXTRACT_REPRS EXTRACT_REPR2 EXTRACT_REPRR2 EXTRACT_REPR):
Use GD_RTOC when appropriate.
2015-05-15 D. V. Wiebe <getdata@ketiltrout.net> svn:972
* src/name.c (_GD_MungeCode): Fix buffer overrun. Don't write spurious
slash. Patch from Seth Hillbrand.
Merge in bugfixes from 0.8 branch:
* src/include.c )_GD_Include): Only open the file read-write if it's being
truncated or created. (r949)
* test/open_rofs.c: Added. (r949)
* bindings/f77/fgetdata.c (GDREFE): Convert a passed empty string to NULL.
(r956)
* bindings/f77/getdata.f90.in (fgd_reference): Handle empty string from
GDREFE. (r956)
* bindings/python/pydirfile.c (gdpy_dirfile_getreference): Handle NULL from
gd_reference. (r956)
* bindings/cxx/test/big_test.cpp bindings/f77/test/big_test.f
bindings/f77/test/big_test95.f90 bindings/matlab/test/big_test.m
bindings/perl/t/big_test.t bindings/python/test/big_test.py: Add test 299.
(r956, where it is test 243).
* src/sie.c (_GD_SampIndSeek): Behave when seeking on an empty file. (r960)
* src/sie.c (_GD_SampIndWrite): Update cur_end when reallocing p. (r960)
* src/sie.c (_GD_SampIndWrite): Fix fence-post error in memcpy. (r960)
* test/sie.put_many.c test/sie_put_newo.c test/sie_put_newo0.c: Added.
(r961)
* src/getdata.h.in: Delete all the __REDIRECTs. (r969)
* test/get_uint32.c test/get_uint64.c: Fix signed integer overflow.
Also:
* bindings/php/getdata.c (gd_reference): Handle NULL from gd_reference.
* bindings/php/test/big_test/php: Add test 299.
* bindings/python/pydirfile.c (gdpy_dirfile_getstrings): Fix error call.
2014-04-29 D. V. Wiebe <getdata@ketiltrout.net> svn:955
* bindings/idl/getdata.c (gdidl_reference): Converted from procedure to
function returning the string returned by gd_reference(), or the empty
string if gd_reference returns NULL.
2014-04-24 D. V. Wiebe <getdata@ketiltrout.net> svn:954
Merge in bugfixes from 0.8 branch, rev.953:
* bindings/python/pygetdata.c (gdpylist_append gdpy_to_pystringlist): Added.
* bindings/python/pydirfile.c (gdpy_dirfile_getvectorlist
gdpy_dirfile_getfieldlist gdpy_dirfile_getmfieldlist
gdpy_dirfile_getmvectorlist gdpy_dirfile_aliaslist gdpy_dirfile_entrylist(:
Call gdpy_to_pystringlist();
* bindings/python/pygetdata.c (gdpy_convert_to_pylist)
bindings/python/pydirfile.c (gdpy_dirfile_carrays gdpy_dirfile_getconstants
gdpy_dirfile_mcarrays gdpy_dirfile_getstrings): Call gdpylist_append().
* bindings/python/pydirfile.c (gdpy_dirfile_getstring): Fix clean-up on
error.
* test/add_raw_spf_scalar.c: Initialise E.
* test/open_sym_a.c: Free string.
2015-04-15 D. V. Wiebe <getdata@ketiltrout.net> svn:952
* configure.ac: Call AC_TYPE_MODE_T and AC_TYPE_SSIZE_T.
* src/internal.h [_MSC_VER]: Don't typedef mode_t.
* cmake/CMakeLists.txt: Define mode_t.
* src/bzip.c (_GD_Bzip2Read) src/flimits.c (_GD_GetBOF gd_bof64)
src/parse.c (_GD_TokToNum): Use stdint types instead of "long long" directly.
2015-04-03 D. V. Wiebe <getdata@ketiltrout.net> svn:947
* configure.ac bindings/idl/package/configure.ac
bindings/matlab/package/configure.ac: Use AC_USE_SYSTEM_EXTENSIONS and
AC_SYS_LARGEFILE instead of definining feature macros explicitly.
* m4/compiler.m4 (GD_CHECK_LFS_TYPE): Deleted.
2014-12-31 D. V. Wiebe <getdata@ketiltrout.net> svn:940
* src/getdata.c (_GD_DoField) src/putdata.c (_GD_DoFieldOut): Fix recursion
counting on error.
* src/getdata.h.in src/errors.c: Merge GD_E_BAD_REPR into GD_E_BAD_CODE.
* src/common.c (_GD_FindEntry): Added.
* src/entry.c (gd_raw_filename gd_entry, gd_entry_type gd_linterp_tablename)
src/flush.c (_GD_SyncOrClose) src/spf.c (_GD_GetSPF) src/constant.c
(gd_put_carray_slice gd_put_carray) src/putdata.c (gd_putdata64)
src/flimits.c (gd_eof64 gd_bof64) src/fpos.c (gd_tell64 gd_seek64):
Use _GD_FindEntry instead of _GD_FindFieldAndRepr.
* src/constant.c (_GD_PutCarraySlice) src/putdata.c (_GD_DoFieldOut):
Remove repr parameter.
* src/putdata.c (_GD_DoLinterpOut _GD_DoLincomOut _GD_DoBitOut
_GD_DoPhaseOut _GD_DoRecipOut _GD_DoPolynomOut _GD_DoMplexOut
_GD_DoConstOut): Return error if input field has a repr.
* src/parse.c: Use struct parser_state to pass around parser data rather
than passing bits and pieces individually.
* src/internal.h: Define struct parser_state.
* src/parse.c (_GD_SimpleParserInit): Added.
* src/open.c (_GD_Open): Initialise the parser proto-state; set or clear
GD_PEDANTIC in the dirfile flags after parsing completes.
* src/mod.c (gd_alter_spec gd_malter_spec) src/parse.c (gd_strtok) src/add.c
(_GD_FixName gd_madd_spec gd_add_spec): Call _GD_SimpleParserInit().
* src/parse.c (_GD_ParseFieldSpec): Speed up strcmps.
* src/common.c (_GD_GrabDir): Let callers (i.e. _GD_Include) skip
canonicalisation, if they've already done it.
* src/internal.h: Add ns and nsl to gd_fragment_t.
* src/name.c (_GD_MungeCode): Remove subfield munging (the P parameter).
Replace err_ok with flags parameter. Don't malloc the buffer it the caller
doesn't want it.
* src/name.c (_GD_ValidateField): Replaced affix parameter with flags.
* src/parse.c (_GD_SubfieldCode _GD_CodeFromFrag _GD_InputCode _GD_SetField):
Added.
* src/name.c (_GD_MungeCode _GD_CheckCodeAffixes _GD_ValidateField)
src/include.c (_GD_SetFieldAffixes _GD_Include): Handle
namespaces.
* src/parse.c (_GD_ParseNamespace): Added.
* src/parse.c (_GD_ParseDirective): Handle "/NAMESPACE"
* src/name,c (_GD_MakeNewCode): Handle errors better.
* src/getdata.h.in: Declare GD_EN_DOTTED.
* src/name.c (_GD_PerformRename) src/add.c (_GD_Add): Set or clear
GD_EN_DOTTED.
* src/fragment.c (_GD_SubFragmentList _GD_CheckChangeNamespace
gd_fragment_namespace): Added.
2014-10-16 D. V. Wiebe <getdata@ketiltrout.net> svn:929
* src/open.c (_GD_CreateDirfile): Force GD_RDWR when creating a dirfile.
* test/creat_rdonly.c: Updated.
* test/creat_rdonly_exists.c: Added.
2014-10-16 D. V. Wiebe <getdata@ketiltrout.net> svn:928
* bindings/make_parameters.c: Replace numeric type literals with CPP macros
for legibility.
* man/gd_getdata.3: Explain I/O pointers more.
* src/getdata.h.in: Merge GD_E_OPEN, GD_E_TRUNC, GD_E_RAW_IO,
GD_E_OPEN_FRAGMENT, most of GD_E_FLUSH and half of GD_E_OPEN_LINFILE into
the new GD_E_IO and deprecate. The remainder of GD_E_OPEN_LINFILE (syntax
errors) is now the new GD_E_LUT.
* src/common.c (_GD_ReadLinterpFile): Consolidate error handling code.
Handle syntax errors better.
* src/flush.c (_GD_FieldSpec): Raise GD_E_LINE_TOO_LONG for line overflows.
* src/errors.c (_GD_SetError2 _GD_SetError gd_error_string): Track stdlib
errno separately and implicitly.
* bindings/python/pygetdata.c: Define deprecated Exceptions as aliases for
current ones.
2014-07-30 D. V. Wiebe <getdata@ketiltrout.net> svn:921
* src/del.c (gd_delete_alias): Deleted.
* src/del.c (gd_delete): Don't dereference the field code.
* bindings/f77/fgetdata.c (GDDELA) bindings/f77/getdata.f90.in
(fgd_delete_alias) bindings/cxx/dirfile.cpp (Dirfile::DeleteAlias)
bindings/php/getdata.c (gd_delete_alias) bindings/python/pydirfile.c
(gdpy_dirfile_deletealias): Deleted.
* bindings/matlab/gd_delete_alias.c: Deleted.
* bindings/perl/simple_funcs.xsin: Deleted delete_alias.
* bindings/idl/getdata.c (gdidl_delete): Removed the /ALIAS keyword.
* bindings/cxx/test/big_test.cpp bindings/f77/test/big_test.f
bindings/f77/test/big_test95.f90 bindings/idl/test/big_test.pro
bindings/matlab/test/big_test.m bindings/perl/t/big_test.t
bindings/php/test/big_test.php bindings/python/test/big_test.py: Deleted
test 225.
2014-07-25 D. V. Wiebe <getdata@ketiltrout.net> svn:915
* Makefile.am: Auotmake version bumped to 1.13.
* configure.ac: Autoconf version bumped to 2.65.
2014-07-25 D. V. Wiebe <getdata@ketiltrout.net> svn:914
* src/parse.c (_GD_TokToNum): Added.
* src/parse.c (_GD_SetScalar): Call _GD_TokToNum to parse numbers.
* src/errors.c: Add GD_E_CODE_AMBIGUOUS suberror.
* src/flush.c (_GD_WriteFieldCode): Append "<0>" when necessary to avoid
otherwise ambiguous scalar field codes. Replaced "space" with "flags"
parameter. Add "index" parameter.
* src/add.c (_GD_CopyScalars) src/mod.c (_GD_AlterScalar): Reject ambiguous
field codes when the format file writer won't be able to deal with them.
* src/internal.h: Alias GD_PERMISSIVE to GD_NOSTANDARD for legibility.
* src/common.c (_GD_GetRepr): Add .z (we'll want that later).
* src/parse.c (_GD_ConstType): Handle GD_STRING.
* src/parse.c (_GD_ParseRaw): Don't set GD_E_FORMAT more than once.
* src/parse.c (_GD_SetScalar): Check for the closing > with CARRAY indices.
* test/add_amb_code7.c test/alter_entry_scalar_amb.c test/flush_amb_code.c
test/parse_scalar1.c test/parse_scalar2.c test/parse_scalar_repr.c: Added.
2014-07-17 D. V. Wiebe <getdata@ketiltrout.net> svn:912
* bindings/f77/fgetdata.c (_GDF_SetDirfile): Don't abort on error, just
return -1 (optionally discarding the dirfile first).
* bindings/f77/fgetdata.c (_GDF_Callback GDCOPN): Handle running out of
DUNs.
2014-07-17 D. V. Wiebe <getdata@ketiltrout.net> svn:911
* src/getdata.c (_GD_DoSindir): Renamed from gd_getstrdata64 and
internalised. Do return_type checks, and handle num_samp = 0.
* src/getdata.c (gd_getstrdata): Deleted.
* src/getdata.h.in: Add GD_STRING.
* src/native.c (_GD_NativeType): Return GD_STRING for string types.
* bindings/make_parameters.c: Add GD_STRING.
* bindings/cxx/dirfile.cpp (Dirfile::GetData) bindings/f77/fgetdata.c
(GDGSTD GDGSTP) bindings/idl/getdata.c (gdidl_getdata)
bindings/perl/GetData.xs (getdata) bindings/python/pydirfile.c
(gdpy_dirfile_getdata): Convert gd_getstrdata call to gd_getdata.
* bindings/matlab/gd_getdata.c: Handle SINDIR.
* bindings/matlab/gd_getstrdata.c: Deleted.
* bindings/php/getdata.c (gd_getdata): Handle SINDIR; made return_type
optional.
* bindings/php/getdata.c (gd_getstrdata): Deleted.
* test/get_none.c: Added.
* test/get_sindir.c: Replaced by renaming getstr_sindir.c.
* test/get_sindir_none.c test/get_sindir_null.c: Added.
* test/get_sindir_type.c: Replaced.
* test/getstr_here.c test: Deleted.
* configure.ac: Renamed the intermediate getdata.h file from getdata.ah to
getdata.in2.
2014-07-16 D. V. Wiebe <getdata@ketiltrout.net> svn:908
* bindings/cxx/dirfile.cpp (GetData::EncodingSupport Dirfile::ArrayLen
Dirfile::GetData(..., const char** data_out) Dirfile::GetSarray
Dirfile::Sarrays Dirfile::MSarrays Dirfile::PutSarray): Added.
* bindings/cxx/getdata/sindirentry.h bindings/cxx/getdata/indirentry.h
bindings/cxx/getdata/sarrayentry.h bindings/cxx/indirentry.cpp
bindings/cxx/sarrayentry.cpp bindings/cxx/sindirentry.cpp
* bindings/cxx/indexentry.cpp: Deleted.
* bindings/f77/fgetdata.c (_GDF_GetEntryYoke GDGEID GDGESD GDGESA GDADID
GDADSD GDMDID GDMDSD GDADSA GDMDSA GDALID GDALSD GDENCS GDSARX GDMSAX GDARLN
GDGTSA GDPTSA GDALSA GDGSTD GDGSTP GDXSTP GDDSTP): Added.
* bindings/f77/getdata.f90.in (fgd_array_len fgd_encoding_support
fgd_sarray_value_max fgd_msarray_value_max fgd_get_sarray
fgd_get_sarray_slice fgd_put_sarray fgd_put_sarray_slice fgd_add_sarray
fgd_madd_sarray fgd_alter_sarray fgd_add_indir fgd_add_sindir fgd_madd_indir
fgd_madd_sindir fgd_alter_indir fgd_alter_sindir fgd_getstrdata): Added.
* bindings/idl/getdata.c (gdidl_add_yoke_ gdidl_alter_yoke_
gdidl_encoding_support gdidl_add_sarray gdidl_get_sarray gdidl_alter_sarray
gdidl_put_sarray gdidl_add_indir gdidl_alter_indir gdidl_add_sindir
gdidl_alter_sindir): Added.
* bindings/idl/getdata.c (gdidl_array_len): Renamed from gdidl_carray_len.
* bindings/idl/getdata.c (gdidl_getdata): Support gd_getstrdata, too.
* bindings/matlab/gd_add_indir.m bindings/matlab/gd_add_sarray.c
bindings/matlab/gd_add_sindir.m bindings/matlab/gd_alter_indir.m
bindings/matlab/gd_alter_sarray.m bindings/matlab/gd_alter_sindir.m
bindings/matlab/gd_carray_len.m bindings/matlab/gd_encoding_support.c
bindings/matlab/gd_get_sarray.c bindings/matlab/gd_get_sarray_slice.c
bindings/matlab/gd_getstrdata.c bindings/matlab/gd_madd_indir.m
bindings/matlab/gd_madd_sarray.c bindings/matlab/gd_madd_sindir.m
bindings/matlab/gd_msarrays.c bindings/matlab/gd_put_sarray.m
bindings/matlab/gd_put_sarray_slice.c bindings/matlab/gd_sarrays.c: Added.
* bindings/matlab/gd_array_len.c: Renamed from gd_carray_len.c.
* bindings/matlab/matlab.c (gdmx_from_sarrays gdmx_to_sdata
gdmx_free_sdata): Added.
* bindings/perl/GetData.xs (gdp_convert_const_avpv gdp_convert_strarr
gdp_newRVavpv0 array_len get_sarray get_sarray_slice sarrays put_sarray
put_sarray_slice add_sarray madd_sarray msarrays): Added.
* bindings/perl/simple_funcs.xsin (array_len alter_sarray add_indir
add_sindir alter_indir alter_sindir madd_indir madd_sindir): Added.
* bindings/php/getdata.c (gdphp_convert_sarray gdphp_convert_nsarray
gd_add_sarray gd_add_indir gd_add_sindir gd_alter_sarray gd_alter_indir
gd_alter_sindir gd_array_len gd_sarrays gd_get_sarray gd_getstrdata
gd_madd_sarray gd_madd_indir gd_madd_sindir gd_msarrays gd_put_sarray
gd_encoding_support): Added.
* bindings/python/pydirfile.c (gdpy_dirfile_getsarray gdpy_dirfile_arraylen
gdpy_dirfile_sarrays gdpy_dirfile_msarrays gdpy_dirfile_putsarray): Added.
* bindings/python/pyentry.c: Handle SARRAY, INDIR, SINDIR
* bindings/python/pygetdata.c (gdpy_encoding_support): Added.
* bindings/cxx/test/big_test.cpp bindings/f77/test/big_test.f
bindings/f77/test/big_test95.f90 bindings/idl/test/big_test.pro
bindings/matlab/test/big_test.m bindings/perl/t/big_test.t
bindings/php/test/big_test.php bindings/python/test/big_test.py: Added tests
271 through 298.
* src/field_list.c (_GD_EntryIndex): Handle SARRAY, INDIR, SINDIR
* gd_get_sarray_slice (gd_get_sarray_slice): Fix return for GD_INVALID.
2014-05-27 D. V. Wiebe <getdata@ketiltrout.net> svn:907
* src/constant.c (gd_array_len): Added.
* src/constant.c (gd_carray_len): Replaced with a gd_array_len() call and
marked deprecated.
* src/string.c (gd_sarray_len): Deleted.
* man/gd_array_len.3: Renamed from man/gd_carray_len.3
2014-05-23 D. V. Wiebe <getdata@ketiltrout.net> svn:906
* src/field_list.c (gd_sarrays gd_msarrays): Added.
* src/close.c (_GD_FreeD) src/entry.c (_GD_FreeE): Free sarray_value_list.
* test/svlist_array.c test/svlist_array_meta.c: Added.
* src/field_list.c (gd_mstrings): Don't use realloc to skip the unnecessary
potential memcpy.
* src/include.c (_GD_SetFieldAffixes) src/open.c (_GD_CreateDirfile)
src/zzslim.c (_GD_ZzslimName): Use sprintf instead of convolutions of strcpy
and strcat for efficiency's sake.
2014-05-22 D. V. Wiebe <getdata@ketiltrout.net> svn:905
* src/slim.c (_GD_SlimOpen _GD_SlimSize): Disable the slimdopen and
slimdrawsize stuff to avoid a slimlib bug.
* src/bzip.c src/lzma.c: Re-order some functions to get modules working
again.
* src/encoding.c (_GD_InitialiseFramework): Don't try to lock the mutex if
it's not needed.
2014-05-19 D. V. Wiebe <getdata@ketiltrout.net> svn:904
* src/lzma.c: Rewritten with better understanding of liblzma. Includes
write support.
* src/encoding.c: LZMA write support.
* test/lzma_xz_get_get.c test/lzma_xz_get_get2.c test/lzma_xz_put.c
test/lzma_xz_get_put.c test/lzma_xz_add.c test/lzma_xz_sync.c
test/lzma_xz_move_to.c test/lzma_put.c test/lzma_xz_get_far.c
test/lzma_xz_put_pad.c test/lzma_xz_put_endian.c test/lzma_xz_put_back.c
test/lzma_xz_put_get.c: Added.
* test/lzma_xz_get.c test/lzma_xz_nframes.c: Renamed from
xz_{get|nframes}.c.
* test/encode_support.c: Update for LZMA writes.
* src/bzip.c: Remove unnecessary .write member.
2014-05-10 D. V. Wiebe <getdata@ketiltrout.net> svn:903
* src/slim.c (_GD_SlimOpen _GD_SlimSize): Use slimdopen and slimdrawsize if
available to reduce race conditions.
2014-05-06 D. V. Wiebe <getdata@ketiltrout.net> svn:901
* src/encoding.c: Add bzip2 OOP write support.
* src/bzip.c (_GD_Bzip2DoOpen _GD_Bzip2Open _GD_Bzip2Seek _GD_Bzip2Close
_GD_Bzip2Read): Handle writes. Properly clean up on error. Track file->pos.
* src/bzip.c (_GD_Bzip2Write _GD_Bzip2Sync): Added.
* test/bzip_add.c test/bzip_put_back.c test/bzip_move_to.c
test/bzip_get_far.c test/bzip_put_pad.c test/bzip_put_sub.c
test/bzip_get_get2.c test/bzip_put_get.c test/bzip_put_endian.c
test/bzip_sync.c test/bzip_get_put.c: Added.
* test/bzip_put.c: Replaced with a working test.
* src/fpos.c (_GD_WriteSeek): Fix offset in the seek call.
* src/gzip.c (_GD_GzipSeek): Handle seeks past the EOF while reading.
* test/gzip_get_far.c test/gzip_put_pad.c: Added.
* test/test.h: Remove unnecessary include statements.
* src/encoding.c (_GD_MoveOver): Don't attempt to change mode if not needed.
* bindings/matlab/matlab.c (gdmx_from_string_list): Use mxFree.
* bindings/perl/GetData.xs (gdp_get_type): Fix undef check.
2014-05-05 D. V. Wiebe <getdata@ketiltrout.net> svn:896
* src/encoding.c (gd_encoding_support): Call _GD_InitialiseFramework().
2014-05-05 D. V. Wiebe <getdata@ketiltrout.net> svn:895
* src/getdata.h.in: Remove GD_MAX_CARRAY_LENGTH.
* src/add.c (_GD_Add) src/mod.c (_GD_Change) src/parse.c (_GD_ParseArray):
Remove references to GD_MAX_CARRAY_LENGTH.
* src/add.c (gd_add_raw gd_add_lincom gd_add_clincom gd_add_linterp
gd_add_bit gd_add_sbit _GD_AddYoke gd_add_recip gd_add_crecip89
gd_add_polynom gd_add_cpolynom gd_add_phase gd_add_window gd_add_mplex
gd_madd_lincom gd_madd_clincom gd_madd_linterp gd_madd_bit gd_madd_sbit
_GD_MAddYoke gd_madd_phase gd_madd_polynom gd_madd_cpolynom gd_madd_recip
gd_madd_crecip89 gd_madd_window gd_madd_mplex): Call _GD_Add in a slightly
less ridiculous way.
* src/encoding.c (gd_encoding_support): Added.
* man/gd_encoding_support.3 test/encode_support.c: Added.
2014-04-30 D. V. Wiebe <getdata@ketiltrout.net> svn:890 svn:891
* bindings/cxx/test/big_test.cpp bindings/f77/test/big_test.f
bindings/f77/test/big_test95.f90 bindings/idl/test/big_test.pro
bindings/python/test/big_test.py: Fix test 157 for DSV 10.
* src/constant.c (gd_get_constant) src/string.c (gd_get_string): Fix call in
the case of using a [CS]ARRAY after breaking it.
* test/get_const_carray.c: Added.
2014-04-30 D. V. Wiebe <getdata@ketiltrout.net> svn:889
* test/parse_indir.c test/get_sindir.c test/alter_entry_sarray.c
test/add_sindir.c test/getstr_sindir.c test/name_updb_sarray.c
test/add_indir.c test/get_indir.c test/getstr_here.c test/alter_sindir.c
test/parse_sindir.c test/alter_indir.c test/getstr_type.c
test/name_updb_carray.c test/madd_sindir.c test/put_indir.c
test/put_sindir.c test/madd_indir.c test/add_sarray_nil.c: Added.
* test/name_updb.c test/native_const.c: Update.
* src/entry.c (_GD_FreeE _GD_CalculateEntry gd_entry gd_validate)
src/legacy.c (GetFormat) src/getdata.c (_GD_DoField gd_getdata64) src/name.c
(_GD_UpdateInputs) src/flush.c (_GD_Flush _GD_FieldSpec _GD_FindVersion)
src/native.c (_GD_NativeType) src/spf.c (_GD_GetSPF) src/putdata.c
(_GD_DoFieldOut) src/del.c (_GD_ClearDerived _GD_DeReference _GD_Delete)
src/flimits.c (_GD_GetEOF _GD_GetBOF) src/fpos.c (_GD_GetFilePos _GD_Seek)
src/parse.c (_GD_ParseFieldSpec) src/mod.c (_GD_Change) src/add.c
(_GD_InvalidEntype _GD_Add): Handle INDIR and SINDIR.
* src/getdata.c (_GD_IndirData _GD_DoIndir gd_getstrdata64 gd_getdata64)
src/parse.c (_GD_ParseYoke) src/mod.c (_GD_AlterYoke gd_alter_indir
gd_alter_sindir) src/add.c (_GD_AddYoke gd_add_indir gd_add_sindir
_GD_MAddYoke gd_madd_indir gd_madd_sindir): Added.
* src/common.c (_GD_BadInput): Add entry type parameter and allow non-vector
input fields.
* src/parse.c (_GD_ParseDivide _GD_ParseMultiply): Deleted (merged into
_GD_ParseYoke).
* src/mod.c (gd_alter_divide gd_alter_multiply): Call _GD_AlterYoke.
* src/add.c (gd_add_multiply gd_add_divide): Call _GD_AddYoke.
* src/add.c (gd_madd_multiply gd_madd_divide): Call _GD_MAddYoke.
* src/errors.c: Add GD_E_FIELD_FORMAT and GD_E_FIELD_STR.
* src/native.c (_GD_NativeType): Return internal type for CONST/CARRAY not
storage type (ie. run it through _GD_ConstType).
* src/string.c (gd_get_sarray_slice gd_get_sarray) src/mod.c (_GD_Change)
src/add.c (_GD_Add): Nilify new SARRAYs on creation, not on read.
* src/getdata.h.in: Bump GD_DIRFILE_STANDARDS_VERSION. Add GD_INDIR_ENTRY
and GD_SINDIR_ENTRY.
2014-04-27 D. V. Wiebe <getdata@ketiltrout.net> svn:887
* src/entry.c (_GD_FreeE _GD_CalculateEntry gd_entry gd_validate)
src/legacy.c (GetFormat) src/getdata.c (_GD_DoField) src/name.c
(_GD_UpdateInputs) src/flush.c (_GD_Flush _GD_FieldSpec _GD_FindVersion)
src/native.c (_GD_NativeType) src/spf.c (_GD_GetSPF) src/putdata.c
(_GD_DoFieldOut) src/del.c (_GD_DeReference) src/flimits.c (_GD_GetEOF
_GD_GetBOF) src/fpos.c (_GD_GetFilePos _GD_Seek) src/mod.c (_GD_Change)
src/add.c (_GD_InvalidEntype _GD_Add): Handle GD_SARRAY_ENTRY.
* src/string.c (gd_get_sarray_slice gd_get_sarray gd_sarray_len
gd_put_sarray_slice gd_put_sarray) src/mod.c (gd_alter_sarray) src/add.c
(gd_add_sarraygd_madd_sarray): Added.
* src/string.c (_GD_PutSarraySlice): Renamed from _GD_DoStringOut and
updated to handle SARRAYs. Made static.
* src/parse.c (_GD_ParseArray): Renamed from _GD_ParseCarray and updated to
handle SARRAYs.
* test/get_sarray.c test/add_sarray.c test/get_sarray_len.c
test/get_string.c test/get_sarray_slice.c test/alter_sarray.c
test/parse_sarray.c test/madd_sarray.c test/put_sarray.c
test/put_sarray_slice.c test/parse_sarray_long.c: Added.
* src/add.c (gd_add_string gd_madd_string): Don't call _GD_DoStringOut to
set the value, just set it directly.
* src/compat.c: Define AT_SYMLINK_NOFOLLOW if necessary.
* src/mod.c (_GD_Change): Report AlterScalar errors for LINCOMs.
* src/errors.c: Add GD_E_FLUSH_WRITE and GD_E_FLUSH_TOO_LONG.
* src/flush.c (_GD_StringEscapeise): Return -1 on error; don't write
anything if stream == NULL.
* src/flush.c (_GD_StringEscapeise _GD_WriteFieldCode _GD_WriteConst
_GD_FieldSpec _GD_FlushFragment): Report write errors.
* src/flush.c (_GD_WriteFieldCode): Write a trailing space if requested.
* src/flush.c (_GD_FlushFragment): Try USER if LOGNAME not available.
* src/constant.c (gd_get_carray_slice _GD_PutCarraySlice
gd_put_carray_slice): Make first long.
2014-04-03 D. V. Wiebe <getdata@ketiltrout.net> svn:883
* src/add.c (gd_add_crecip gd_madd_crecip) src/mod.c (gd_alter_crecip): Call
the ...crecip89 function.
* src/getdata.h.in: Fix GD_MAX_CARRAY_LENGTH computation.
2014-03-20 D. V. Wiebe <getdata@ketiltrout.net> svn:882
* bindings/php/getdata.c (gd_add_polynom gd_madd_polynom): Fix array size.
* bindings/python/pydirfile.c (gdpy_dirfile_getentry): Fix segfault.
* test/zzslim_get.c: Fix.
2014-03-10 D. V. Wiebe <getdata@ketiltrout.net> svn:880
* bindings/matlab/gd_move_alias.c: Deleted.
* bindings/matlab/test/big_test/m: Delete test 224.
2014-02-14 D. V. Wiebe <getdata@ketiltrout.net> svn:877
* bindings/cxx/entry.cpp (Entry::Entry): Zero E if gd_entry call fails.
* bindings/cxx/fragment.cpp (Fragment::Fragment): Handle error in
gd_fragment_affixes call.
* bindings/f77/fgetdata.c (GDASCA): Handle error in gd_entry call.
* bindings/php/getdata.c (gdphp_data_to_array) src/types.c (_GD_ConvertType):
Add missing break.
* bindings/php/getdata.c (gd_error_string): Handle error in gd_error_string
call.
* bindings/python/pygetdata.h (PYGD_REPORT_ERROR): Added.
* bindings/python/pydirfile.c (gdpy_dirfile_getentry gdpy_dirfile_getstring
gdpy_dirfile_putcarray gdpy_dirfile_putdata) src/include.c (_GD_Include)
src/name.c (_GD_PrepareRename) src/putdata.c (_GD_DoMplexOut) src/sie.c
(_GD_SampIndWrite): Deallocate buffers on error.
* bindings/python/pyentry.c (gdpy_entry_seta): Set a[i] if the pyobj is
complex.
* src/bzip.c (_GD_Bzip2Size): Free ptr only after we're done with it.
* src/common.c (_GD_CanonicalPath): Don't let readlink overrun the buffer.
Also fix double free.
* src/entry.c (_GD_FreeE): Fix overrun on zeroing of in_fields.
* src/entry.c (gd_linterp_tablename): Don't use field_code after free.
* src/getdata.h.in: Remove __nonnull__ from parameter two of
gd_verbose_prefix.
* src/gzip.c (_GD_GzipOpen): Check that _GD_MakeTempFile() worked.
* src/open.c (_GD_CreateDirfile _GD_Open): Close descriptors on error.
* src/parse.c (_GD_ParseCarray): Return on error.
* src/parse.c (_GD_ParseFieldSpec): Only resize the dot_list when necessary.
Also, clean up if the resize doesn't work.
* util/dirfile2ascii.c (main): Fix check for too many fields.
* src/entry.c (gd_naliases): Return unsigned int and zero on error per
documentation.
* bindings/idl/getdata.c (gdidl_naliases) src/entry.c (gd_aliases)
test/add_alias.c test/add_alias_affix.c test/add_alias_meta.c
test/add_resolv.c test/add_spec_resolv.c test/alias_num.c
test/alias_num_alias.c test/alias_num_missing.c test/madd_alias.c
test/madd_alias_affix.c test/madd_spec_resolv.c: Handle unsigned gd_naliases.
2014-02-13 D. V. Wiebe <getdata@ketiltrout.net> svn:876
* bindings/python/pyfragment.c (gdpy_fragment_init): Fix typo in keyword
names.
2013-12-17 D. V. Wiebe <getdata@ketiltrout.net> svn:875
* src/add.c (_GD_Add) src/fpos.c (_GD_GetFilePos _GD_WriteSeek _GD_Seek)
src/getdata.c (_GD_DoRaw) src/mod.c (_GD_Change) src/move.c
(_GD_MogrifyFile) src/parse.c (_GD_ParseFieldSpec) src/putdata.c
(_GD_InitRawIO): Call _GD_InitRawIO with fragment = -1.
* test/add_raw_sub.c test/ascii_get_sub.c test/gzip_put_sub.c test/put_sub.c
test/seek_sub.c test/tell_sub.c: Added.
* src/errors.c src/internal.h: Add GD_E_UNCLEAN_CALL suberror.
2013-12-12 D. V. Wiebe <getdata@ketiltrout.net> svn:874
* src/endian.c (_GD_CheckByteSex): Added.
* src/endian.c (_GD_FileSwapBytes): Added (replacing macro in internal.h).
* src/endian.c (_GD_FixEndianness): Call _GD_CheckByteSex() to check whether
correction is needed.
* src/getdata.c (_GD_DoRaw) src/move.c (_GD_MogrifyFile) src/putdata.c
(_GD_DoRawOut): Let _GD_FixEndianness and _GD_CheckByteSex do the endianness
logic.
2013-12-12 D. V. Wiebe <getdata@ketiltrout.net> svn:872
* configure.ac: Disable PHP bindings if we don't have a C99 compiler.
* src/common.c (_GD_CInvertData): Correct algebra in C89 INVERT macro.
* src/getdata.c (_GD_PolynomData): Implement correct C89 POLYNOMC macro.
* src/getdata.c (_GD_CDivideData): Correct algebra in C89 DIVIDEC macro.
* src/entry.c (_GD_CalculateEntry): Return success or failure separately
from Dirfile error.
* src/internal.h: Fix pointer arithmetic in C89 gd_cap_ macro.
2013-12-10 D. V. Wiebe <getdata@ketiltrout.net> svn:868
* src/getdata.h.in src/internal.h: Merge gd_entry_t members 'comp_scal' and
'hidden', plus private member 'calculated' into (public) member 'flags', and
add GD_EN_CALC, GD_EN_COMPSCAL and GD_EN_HIDDEN flags.
* bindings/make_parameters.c: Add entry flags.
* bindings/cxx/getdata/entry.h (Entry::Flags) bindings/f77/fgetdata.c
(GDENFL): Added.
* bindings/f77/fgetdata.c (GDCSCL): Deleted.
* bindings/f77/getdata.f90.in: Replaced comp_scal with flags in gd_entry
type.
* bindings/idl/getdata.c: Replaced COMP_SCAL with FLAGS member in gd_entry
struct.
* src/mod.c (_GD_Change): Allow hiddenness modification.
* test/alter_entry_hidden.c: Update test: hiddenness should change.
* test/cvlist_meta0.c: Check error.
* bindings/cxx/getdata/entry.h (Entry::CompScal): Allow non-zero for
RECIP, too.
2013-12-06 D. V. Wiebe <getdata@ketiltrout.net> svn:867
* test/add_dot.c test/alter_clincom.c test/alter_const_r2c.c test/sie_sync.c
test/alter_const_r2r.c test/alter_cpolynom_null.c test/alter_crecip89_null.c
test/alter_entry_lincom.c test/alter_entry_recode_recalc.c test/get_divide_s.c
test/alter_entry_scalar1.c test/alter_entry_scalar3c.c test/alter_index.c
test/alter_spec_polynom.c test/ascii_get_complex.c test/ascii_sync.c
test/bof_bit.c test/bof_index.c test/bof_phase_neg.c test/cvlist_array0.c
test/cvlist_array_free.c test/cvlist_array_meta0.c test/native_polynom_cmpin.c
test/cvlist_array_meta_free.c test/cvlist_meta0.c test/del_alias.c
test/del_data_enoent.c test/del_data_open.c test/del_ref.c test/desync_path.c
test/encode_alter_all.c test/encode_alter_open.c test/svlist_meta0.c
test/encode_recode_open.c test/endian_alter_all.c test/eof_bit.c test/flist2.c
test/eof_phase_neg.c test/flist0.c test/flist_meta2.c test/flush_lincom.c
test/flush_lincom1.c test/flush_mult.c test/sie_put_back.c test/put_cpolynom.c
test/flush_raw_close.c test/flush_string.c test/flush_sync.c test/svlist2.c
test/foffs_alter_all.c test/fragment_affix_alter_code.c test/native_recip.c
test/fragment_affix_alter_nop.c test/get_cpolynom1.c test/get_cpolynom_int.c
test/get_dim.c test/get_divide_ccin.c test/get_divide_crin.c test/native_raw.c
test/get_divide_crinr.c test/get_divide_rcin.c test/get_index_complex.c
test/get_lincom2s.c test/get_lincom3s.c test/get_lincom_mdt.c test/parse_hex.c
test/get_linterp1.c test/get_linterp_abs.c test/get_linterp_complex.c
test/get_linterp_empty.c test/get_mplex_complex.c test/get_mplex_s.c
test/get_mplex_saved.c test/get_multiply_ccin.c test/get_multiply_crin.c
test/get_multiply_crinr.c test/get_multiply_rcin.c test/get_multiply_s.c
test/get_neg.c test/get_polynom_cmpin.c test/get_window_complex.c
test/get_window_s.c test/get_zero_complex.c test/get_zero_float.c
test/gzip_del.c test/gzip_put_back.c test/gzip_sync.c test/index_s.c
test/index_subset.c test/legacy_error.c test/legacy_estring.c test/seek_mult.c
test/legacy_format.c test/move_affix_meta.c test/move_affix_updb.c
test/move_data_foffs_neg.c test/name_dangle.c test/name_dot.c test/name_meta.c
test/name_updb_affix.c test/native_bit.c test/native_const.c test/repr_bad.c
test/native_index.c test/native_lincom.c test/native_lincom_cmpin.c
test/native_lincom_cmpscal.c test/native_linterp.c test/native_linterp_cmp.c
test/native_mult.c test/native_mult1.c test/native_mult2.c test/native_phase.c
test/native_polynom.c test/native_polynom_cmpscal.c test/native_recip_cmpin.c
test/native_recip_cmpscal.c test/native_sbit.c test/native_string.c
test/open_cb_rescan_alloc.c test/open_invalid.c test/open_sym_as.c
test/open_sym_d.c test/open_sym_l.c test/parse_include_affix_bad.c
test/parse_literal_cmpbad.c test/parse_literal_fltcmp.c test/parse_meta_frag.c
test/parse_literal_fltcmp0.c test/parse_literal_intcmp.c test/sie_put_append.c
test/parse_literal_intcmp0.c test/parse_literal_uintcmp.c test/sie_put_trunc.c
test/parse_literal_uintcmp0.c test/parse_octal_zero.c test/protect_alter_all.c
test/parse_raw_char_bad.c test/parse_utf8.c test/parse_utf8_invalid.c
test/parse_utf8_zero.c test/put_carray_client.c test/put_clincom1.c
test/put_crecip.c test/put_mplex_complex.c test/svlist0.c test/seek_index.c
test/seek_lincom.c test/seek_phase.c test/sie_put_append2.c test/sie_put_pad.c
test/sie_put_trunc2.c test/sie_put_pad0.c test/unclude_open.c: Added.
* test/encode_recode.c: Renamed.
* src/add.c (_GD_Add): Set the right suberror (GD_E_ENTRY_POLYORD) for
poly_ord out of range.
* src/add.c (gd_add_alias) src/field_list.c (_GD_EntryList): Remove
duplicate check for invalid dirfile.
* src/ascii.c (_GD_ScanFormat): Append a newline.
* src/ascii.c (_GD_AsciiRead): Use ferror instead of feof to check for stdio
errors.
* src/common.c (_GD_ReadLinterpFile): Zero the LUT pointer on error.
* src/mod.c (_GD_Change): reset the LUT length to force table re-read.
Also, release the LUT directory.
* src/common.c (_GD_CanonicalPath): Set errno to ELOOP late.
* src/constant.c (_GD_PutCarraySlice): Added.
* src/constant.c (gd_put_carray_slice gd_put_carray): Call
_GD_PutCarraySlice.
* src/del.c (_GD_Delete): Always close an open raw file, even when
deleting it.
* src/encoding.c (_GD_RecodeFragment): Use _GD_FiniRawIO to close raw files.
Clear the internal cache of raw filenames.
* src/entry.c (_GD_GetScalar): Return non-zero on error. Always call
_GD_DoField.
* src/entry.c (gd_entry): Return uncalculable entries rather than failing.
* src/flimits.c (_GD_GetBOF): Also zero *ds if we're before sample zero.
* src/flush.c (_GD_Flush): Validate input fields before trying to flush
them. Don't flush the second lincom field if it's not used.
* src/flush.c (_GD_StringEscapeise): Remove duplicate check for ".
* src/fpos.c (_GD_Seek): Fix sign on PHASE shift.
* src/fpos.c (gd_seek64): Pass index_pos=-1 to _GD_GetFilePos.
* src/getdata.c (_GD_CPolynomData _GD_CMultiplyData _GD_CDivideData):
Delete unused code: type is guaranteed to be complex in these calls.
* src/getdata.c (_GD_CDivideData): Fix computation of complex division.
* src/getdata.c (_GD_DoLinterp): Delete check for uninitialised LUT: the
native type check done in DoField has already initialised the LUT.
* src/index.c (_GD_GetIndex): Fix extrapolations performed when required to
search for the EOF.
* src/index.c (gd_framenum_subset64): Fix conversion of field_end from
frames to samples.
* src/legacy.c (GetFormat): Allocate Format.mplexEntries.
* src/mod.c (_GD_Change): Ensure a RAW entry is calculated before trying to
modify the data file.
* src/mod.c (gd_alter_spec gd_malter_spec): Set move flags for POLYNOM
entries to ensure co-efficients are updated.
* src/getdata.h.in: Added struct gd_rename_data_. Added GD_REN_DANGLE,
GD_REN_FORCE.
* src/move.c (_GD_Move) src/name.c (_GD_Rename): Call _GD_PrepareRename and
_GD_PerformRename to handle metadata updates resulting from name changes.
* src/move.c (gd_move): Replace move_data with flags argument, which accepts
the GD_REN_* flags.
* src/name.c (_GD_MatchCode _GD_MakeNewCode _GD_SetNewCode _GD_UpdateInputs
_GD_CleanUpRename _GD_PerformRename _GD_PrepareRename): Added.
* src/name.c (_GD_InvalidateConst _GD_InvalidateVect): Deleted. (Combined into
_GD_UpdateInputs).
* src/name.c (_GD_UpdateScalar _GD_UpdateInField): Call _GD_MatchCode
_GD_MakeNewCode _GD_SetNewCode for common code. Return non-zero on failure.
Update gd_rename_data_ struct in-place.
* src/name.c (_GD_MungeCode): If err_ok is 2, dont' worry at all about
errors.
* src/name.c (_GD_CheckCodeAffixes): Add set_error argument. Remember
success or failure separately from the DIRFILE error.
* src/move.c (gd_move_alias): Deleted.
* src/move.c (gd_move): Don't delalias the provided field code.
* bindings/cxx/dirfile.cpp (Dirfile::MoveAlias) bindings/f77/fgetdata.c
(GDMOVA) bindings/f77/getdata.f90.in (fgd_move_alias)
bindings/perl/simple_funcs.xsin (move_alias) bindings/php/getdata.c
(gd_move_alias) bindings/python/pydirfile.c (gdpy_dirfile_movealias):
Deleted.
* bindings/idl/getdata.c (gdidl_move gdidl_rename): Remove keyword ALIAS;
add keywords DANGLE, FORCE, UPDATEDB.
* bindings/cxx/test/big_test.cpp bindings/f77/test/big_test.f
bindings/f77/test/big_test95.f90 bindings/idl/test/big_test.pro
bindings/perl/t/big_test.t bindings/php/test/big_test.php
bindings/python/test/big_test.py: Delete test 224.
* src/native.c (_GD_NativeType): Don't always return GD_FLOAT64 for LINCOMs.
* src/errors.c: Added GD_E_OPEN_IO.
* src/open.c (_GD_Open): Throw GD_E_OPEN instead of GD_E_RAW_IO if resolving
the supplied path fails.
* src/parse.c (_GD_SetScalar): Allow literals in semicolon (complex) form in
all cases but require a zero imaginary part for non-complex data.
* src/parse.c (_GD_Tokenise): Fix parsing of \x and \u. Don't unnecessarily
overwrite earlier errors with GD_E_FORMAT_UNTERM.
* src/putdata.c (_GD_MplexOutData): Fix computation of complex data.
* src/sie.c: Added l, have_l and bof to struct gd_siedata. Also, f->d[0]
is no longer endianness corrected (ie. f->d is now simply the raw record),
which means we use f->s in most places where we used f->d[0] previously.
* src/sie.c (_GD_Advance): remember the previous record in f->l. Also set
f->bof.
* src/sie.c (_GD_SampIndSeek): check stdio calls for failure. Correctly
format a padding record when write seeking past the EOF.
* src/sie.c (_GD_SampIndWrite): Correctly deal with appending data,
including backing up a record when necessary to check whether we need to
combine the start of the new data with that record. Compose p with the
output endianness.
* bindings/idl/getdata.c (gdidl_rename): Fix handling of UPDATEDB.
* bindings/php/getdata.c (gd_rewrite_fragment): Initalise zi.
2013-11-15 D. V. Wiebe <getdata@ketiltrout.net> svn:866
* test/add_add.c test/close_close.c test/del_del.c test/flush_flush.c
test/include_include.c test/index_index.c test/move_move.c test/name_name.c
test/nfields_nfields.c test/nframes_nframes.c test/open_open.c
test/spf_raw.c: Renamed.
2013-11-13 D. V. Wiebe <getdata@ketiltrout.net> svn:863
* bindings/cxx/rawentry.cpp (RawEntry::RawEntry): Initialise filename.
Patch from S. J. Benton.
2013-10-26 D. V. Wiebe <getdata@ketiltrout.net> svn:862
* src/getdata.h.in: Add GD_GETDATA_VERSION and GD_GETDATA_INT_VERSION
* configure.ac cmake/CMakeLists.txt: Calculate GD_GETDATA_VERSION and
GD_GETDATA_INT_VERSION.
2013-10-19 D. V. Wiebe <getdata@ketiltrout.net> svn:854
* src/add.c (_GD_Add) src/fpos.c (_GD_GetFilePos _GD_WriteSeek _GD_Seek)
src/getdata.c (_GD_DoRaw) src/mod.c (_GD_Change) src/move.c
(_GD_MogrifyFile) src/parse.c (_GD_ParseFieldSpec) src/putdata.c
(_GD_DoRawOut): Compute the swap argument correctly in _GD_InitRawIO calls.
* src/encoding.c (_GD_InitRawIO): Merge oop_write and temp file creation
code; also, assume that the caller has figured out the swap parameter.
* test/gzip_put_endian.c: Added.
2013-10-19 D. V. Wiebe <getdata@ketiltrout.net> svn:852
_GD_MakeTempFile patch from Seth:
* src/encoding.c (_GD_InitRawIO): Let the encoding framework deal with
creating temporary files.
* src/ascii.c (_GD_AsciiOpen) src/gzip.c (_GD_GzipOpen) src/raw.c
(_GD_RawOpen) src/sie.c (_GD_SampIndDoOpen): Call _GD_MakeTempFile when
necessary.
2013-10-19 D. V. Wiebe <getdata@ketiltrout.net> svn:850
Merge in getdata-distutils branch:
* m4/python.m4 bindings/python/test/Makefile.am bindings/python/Makefile.am
configure.ac: Use distutils to build Python bindings rather than rolling our
own.
* bindings/python/setup.py.in: Added.
2013-10-18 D. V. Wiebe <getdata@ketiltrout.net> svn:848
* bindings/f77/fgetdata.c (GDASRW GDASLC GDASCL GDASPN GDASCP GDASPH GDASRC
GDASCR GDASWD GDASMX GDLSPH GDLSPN GDLSCP GDLSWD _GDF_AddBitSBit GDASBT
GDASSB _GDF_AlterBitSBit GDLSBT GDLSSB GDLSLC GDLSCL GDLSRC GDLSCR GDLSRW):
Added.
* bindings/f77/getdata.f90.in (fgd_add): Call GDAS.. instead of GDAD.. where
possible.
* bindings/f77/getdata.f90.in (fgd_alter_entry): Call GDLS.. instead of
GDAL.. where possible.
* bindings/f77/getdata.f90.in (fgd__set_field_len fgd__set_scalar_len):
Added.
* bindings/cxx/test/big_test.cpp bindings/f77/test/big_test.f
bindings/f77/test/big_test95.f90 bindings/idl/test/big_test.pro
bindings/matlab/test/big_test.m bindings/perl/t/big_test.t
bindings/python/test/big_test.py: Reorganize, renumber tests. Add tests
243-269 where appropriate.
* bindings/idl/getdata.c (gdidl_convert_entry_num gdidl_get_entry_num
gdidl_get_entry_scalars gdidl_get_in_fields gdidl_get_entry_cmparr): Added.
* bindings/idl/getdata.c (gdidl_read_idl_entry): Be less pedantic about
numerical types.
* bindings/idl/getdata.c (gdidl_make_idl_entry: Initialise both complex and
real floating point parameters.
* bindings/perl/GetData.xs (gdp_fetch_cmp_list gdp_fetch_in_fields
gdp_fetch_scalars gdp_to_entry): Be less pedantic about numerical types and
array sizes.
* bindings/perl/typemap (T_PENTRY): Added.
* bindings/php m4/php.m4: Added.
* bindings/make_parameters.c (PHP): Added.
* src/mod.c (_GD_Change): Fix MPLEX scalar modifying.
* src/add.c (_GD_CopyScalars): Added.
* src/add.c (_GD_Change): Fix scalar copying for GD_POLYNOM_ENTRY. Don't
throw errors for passed members which will be ignored due to scalars (spf,
numbits, bitnum).
* test/add_bit_scalars.c test/add_mplex_scalars.c test/add_raw_spf_scalar.c
* test/add_polynom_scalar.c: Added.
* src/add.c (_GD_Change): Don't throw an error on mplex.count_val < 0.
* src/errors.c src/internal.h: Remove unused GD_E_ENTRY_CNTVAL.
* test/add_mplex_val.c: Deleted.
* src/getdata.c (_GD_DoConst): Return len instead of 1.
* src/field_list.c (gd_carrays gd_mcarrays): Update _GD_DoField calls to
deal with the above.
* test/get_carray_c2r.c: Added.
* src/entry.c (_GD_FreeE): When priv == 0, zero free'd pointers.
* bindings/perl/t/big_test.t: Added test 181.
2013-09-05 D. V. Wiebe <getdata@ketiltrout.net> svn:845
GetData-0.8.5 released.
* src/zzslim.c: Fix for rename of gd_raw_file_.
2013-07-17 D. V. Wiebe <getdata@ketiltrout.net> svn:835
* bindings/python/pydirfile.c: Remove spurious debug printf.
* bindings/doc/Makefile.am: Fix make clean
* bindings/bindings/perl/Makefile.am: Fix make clean
2013-05-14 D. V. Wiebe <getdata@ketiltrout.net> svn:832
GetData-0.8.4 released.
2013-04-11 D. V. Wiebe <getdata@ketiltrout.net> svn:830
GetData-0.8.4rc2:
* bindings/perl/Build.PL.in: make include_dirs an array. Reported by Seth.
* bindings/idl/package/configure.ac bindings/matlab/package/configure.ac:
Require GetData >= 0.8.4.
2013-04-10 D. V. Wiebe <getdata@ketiltrout.net> svn:829
GetData-0.8.4rc1.
2013-04-06 D. V. Wiebe <getdata@ketiltrout.net> svn:827
* bindings/cxx/getdata/entry.h (Entry::CountMax)
bindings/cxx/getdata/mplexentry.h (MplexEntry::CountMax
MplexEntry::SetCountMax): Added (but marked deprecated) for backwards
compatibility.
2013-04-05 D. V. Wiebe <getdata@ketiltrout.net> svn:826
* bindings/f77/test/big_test.f bindings/f77/test/big_test95.f90
bindings/perl/t/big_test.t: Fix test 231.
2013-04-05 D. V. Wiebe <getdata@ketiltrout.net> svn:825
* src/getdata.h.in: Renamed gd_entry_t.count_max to gd_entry_t.period.
* bindings/cxx/getdata/entry.h (Entry::Period)
bindings/cxx/getdata/mplexentry.h (NplexEntry::Period): Renamed from CountMax.
* bindings/cxx/mplexentry.cpp (MplexEntry::SetPeriod): Renamed from
SetCountMax.
* bindings/cxx/mplexentry.cpp (MplexEntry::MplexEntry)
bindings/f77/fgetdata.c (GDGEMX) bindings/f77/getdata.f90.in (fgd_entry
fgd_add fgd_madd fgd_alter_entry fgd_add_mplex fgd_madd_mplex
fgd_alter_mplex) bindings/idl/getdata.c (gdidl_make_idl_entry
gdidl_alter_mplex) bindings/matlab/gd_add_mplex.m
bindings/matlab/gd_alter_mplex.m bindings/matlab/gd_madd_mplex.m
bindings/matlab/matlab.c (gdmx_from_entry gdmx_to_entry)
bindings/perl/GetData.xs (gdp_to_entry entry) bindings/python/pyentry.c
(gdpy_set_entry_from_tuple gdpy_entry_getperiod gdpy_entry_setperiod
gdpy_entry_getparms): Rename count_max to period.
* src/add.c (_GD_Add): Fix range checks on MPLEX parameters.
* src/getdata.c (_GD_DoMplex): The default period is 2n+1, not 2n.
* src/internal.h: Rename GD_E_ENTRY_CNTMAX to GD_E_ENTRY_PERIOD.
* src/errors.c: Update GD_E_ENTRY_PERIOD and GD_E_FORMAT_MPLEXVAL messages.
* src/mod.c (_GD_Change): mplex.count_val = -1 is not a magic value.
* src/parse.c (_GD_ParseMplex): Remove incorrect restrictions count_val <=
period and count_val >= 0.
* bindings/idl/getdata.c (gdidl_read_idl_entry): Properly convert an IDL
MPLEX entry object.
* bindings/idl/getdata.c (gdidl_alter_mplex): Handle missing COUNT_VAL.
* man/dirfile-format.5: Fix and clarify MPLEX specification.
2013-03-13 D. V. Wiebe <getdata@ketiltrout.net> svn:819
* src/flush.c (_GD_FlushFragment): Strip affixes from field codes in
/REFERENCE directives.
* test/flush_ref.c test/parse_include_affix_ref.c: Added.
2013-03-12 D. V. Wiebe <getdata@ketiltrout.net> svn:818
* bindings/python/pydirfile.c (gdpy_dirfile_getdata): Resize the ndarray
before returning it, if necessary. Also, don't try to read past the EOF in
read-to-end mode.
* src/fpos.c (_GD_GetFilePos): Fix computation of two input field derived
types to properly return MULTIPOS when necessary.
* test/tell_multidiv.c: Added.
* src/fpos.c (_GD_Seek): Return error if trying to place the I/O pointer
before sample zero.
* test/seek_neg.c: Added.
* src/gzip.c (_GD_GzipSeek): Allow seeking to sample zero.
* test/gzip_get_get2.c: Added.
2013-03-12 D. V. Wiebe <getdata@ketiltrout.net> svn:815
GetData-0.8.3 released.
2013-03-09 D. V. Wiebe <getdata@ketiltrout.net> svn:807
* src/flush.c: C89-ify the GD_VERS_... constants.
2013-03-08 D. V. Wiebe <getdata@ketiltrout.net> svn:806
GetData-0.8.3rc1.
2013-03-08 D. V. Wiebe <getdata@ketiltrout.net> svn:803
* src/internal.h (gd_put_unalinged64): Fix spelling.
* src/encoding.c (_GD_FiniRawIO): Don't pass NULL to gd_UnlinkAt.
* man/GD_SIZE.3: Added.
* configure.ac: Turn on fast unaligned access for armv[6789] per Dinar
Valeev. Also add add --enable-fast-unaligned to allow users to override the
check.
2013-02-15 D. V. Wiebe <getdata@ketiltrout.net> svn:795
* bindings/matlab/package: Added.
* Makefile.am: Add matlabdist and matlabdistcheck
* doc/README.matlab bindings/matlab/make_contents.sh.in
bindings/matlab/Contents.m.head bindings/matlab/doc.tail: Added.
* bindinag/matlab/matlab.c (gdmx_from_carrays): Added.
* bindings/matlab/gd_mcarrays.c: Added.
* bindings/matlab/test/big_test.m: Add test 243.
* bindings/matlab/gd_include.c: Renamed from gd_include_affix.c
* bindings/matlab/gd_include.m: Deleted.
2013-02-13 D. V. Wiebe <getdata@ketiltrout.net> svn:794
* bindings/cxx/test/big_test.cpp bindings/perl/t/big_test.t
bindings/python/test/big_test.py: Add test 243.
2013-02-06 D. V. Wiebe <getdata@ketiltrout.net> svn:793
* src/parse.c (_GD_Tokenise): Don't falsely report an unterminated token when
stopping a partial tokenisation on top of a " or \.
* test/tok_arg.c test/tok_escape.c test/tok_quote.c: Added.
2013-02-02 D. V. Wiebe <getdata@ketiltrout.net> svn:792
* src/string.c (gd_get_string): Handle string retrieval directly instead of
calling _GD_DoField.
* src/string.c (_GD_DoStringOut): Moved from putdata.c.
* src/string.c (gd_put_string) src/add.c (gd_add_string gd_madd_string): Call
_GD_DoStringOut directly instead of _GD_DoFieldOut.
* src/getdata.c (_GD_DoString): Deleted.
* src/getdata.c (_GD_DoField) src/putdata.c (_GD_DoFieldOut): Remove string
processing.
2013-02-02 D. V. Wiebe <getdata@ketiltrout.net> svn:790
* bindings/matlab/matlab.c: ANSI C.
2013-02-02 D. V. Wiebe <getdata@ketiltrout.net> svn:789
* bindings/python/pyentry.c (gdpy_set_scalar_from_pyobj): Add missing data
types.
* bindings/python/pyentry.c (gdpy_set_entry_from_tuple gdpy_entry_setspf
gdpy_entry_setbitnum gdpy_entry_setnumbits gdpy_entry_setcountval
gdpy_entry_setcountmax): Fix data type in gdpy_set_scalar_from_pyobj calls.
* src/entry.c (_GD_GetScalar): Handle bogus CARRAY indices.
* src/mod.c (_GD_Change): Fix floating point CONST conversions.
* test/add_scalar_carray_bad.c test/alter_const_c2r.c: Added.
* bindings/python/test/big_test.py: Fix the part of test 35 that the
previous fix broke.
2013-02-02 D. V. Wiebe <getdata@ketiltrout.net> svn:788
* src/debug.c (gd_colclear): Added.
* src/protect.c (gd_protection gd_alter_protection): Fix error reporting for
GD_E_BAD_INDEX.
* m4/matlab.m4 bindings/matlab: Added.
* configure.ac bindings/Makefile.am: Added MATLAB config.
* bindings/make_parameters.c (MatLab): Added.
* bindings/python/test/big_test.py: Fixed tests 35 and 67.
2013-01-26 D. V. Wiebe <getdata@ketiltrout.net> svn:787
* src/del.c (_GD_DeReference) src/entry.c (_GD_CalculateEntry) src/flush.c
(_GD_FieldSpec) src/mod.c (_GD_Change): Fix data type (size) of
EN(raw,spf) in function calls.
2013-01-15 D. V. Wiebe <getdata@ketiltrout.net> svn:785
* m4/floatordering.m4: Split from m4/compiler.m4
* src/parse.c (_GD_ParseRaw _GD_ParseMplex): Fix types in _GD_SetScalar
calls.
2013-01-04 D. V. Wiebe <getdata@ketiltrout.net> svn:783
* configure.ac: powerpc64 also supports fast unaligned access. Reported by
Dinar Valeev.
2012-12-13 D. V. Wiebe <getdata@ketiltrout.net> svn:775
GetData-0.8.2 released.
2012-12-12 D. V. Wiebe <getdata@ketiltrout.net> svn:773
* src/common.c (_GD_CanonicalPath): Don't bail early when encountering a
trailing absolute symlink.
* src/common.c (_GD_CanonicalPath): Strip DIRSEP along with a symlink name
from res when necessary.
* test/test.h test/parse_include_absolute.c test/parse_include_absrel.c
test/parse_include_relabs.c: Abstract getcwd in the header.
* test/open_sym_a.c test/open_sym_al.c test/open_sym_at.c test/open_sym_c.c
test/open_sym_cl.c test/open_sym_ct.c test/open_sym_p.c test/open_sym_pl.c
test/open_sym_pt.c: Added.
2012-11-22 D. V. Wiebe <getdata@ketiltrout.net> svn:772
* src/encoding.c (_GD_WriteOut): Remove unnecessary DIRFILE parameter.
2012-10-10 D. V. Wiebe <getdata@ketiltrout.net> svn:771
* src/getdata.c (_GD_DoMplex): Check we're at the BOF before trying to do a
lookback.
* src/internal.h: Only export gd_MakeFullPathOnly when using modules.
2012-08-20 D. V. Wiebe <getdata@ketiltrout.net> svn:767
GetData-0.8.1 released.
2012-08-15 D. V. Wiebe <getdata@ketiltrout.net> svn:760
* src/internal (_GD_IsDirSep): Added.
* src/common.c (_GD_CanonicalPath): Call _GD_IsDirSep
2012-08-15 D. V. Wiebe <getdata@ketiltrout.net> svn:759
GetData-0.8.1rc1:
* src/parse.c (_GD_ParseDirective _GD_ParseFragment): Remove inappropriate
restrict keywords. Reported by Daniel Flanigan.
2012-08-14 D. V. Wiebe <getdata@ketiltrout.net> svn:757
* src/include.c (_GD_Include): Return the correct fragment index, not just
D->n_fragment - 1.
* test/include_sub.c: Added.
2012-08-04 D. V. Wiebe <getdata@ketiltrout.net> svn:755
* src/parse.c (_GD_ParseFragment): Don't resize instring unnecessarily.
2012-08-04 D. V. Wiebe <getdata@ketiltrout.net> svn:754
* src/parse.c (_GD_ParseDirective): Delete free reference on encountered
one in a subfragment.
2012-08-02 D. V. Wiebe <getdata@ketiltrout.net> svn:753
* src/include.c (_GD_Include): Reject non-regular files as fragments.
2012-08-02 D. V. Wiebe <getdata@ketiltrout.net> svn:752
* src/globals.c (gd_dirfilename): Return the full path.
* test/global_name.c: Update.
* src/add.c (_GD_Add): Properly compute filebase.
* src/entry.c (gd_linterp_tablename): Added.
* test/table.c test/table_code. test/table_type.c: Added.
* bindings/cxx/dirfile.cpp (Dirfile::LinterpTableName)
bindings/perl/simple_funcs.xsin (linterp_tablename)
bindings/f77/getdata.f90.in (fgd_linterp_tablename) bindings/f77/fgetdata.c
(GDLTTN) bindings/idl/getdata.c (gdidl_get_linterp_tablename)
bindings/python/pydirfile.c (gdpy_dirfile_linterptablename): Added.
* bindings/perl/simple_funcs.pl: Handle returning malloc'd string.
* bindings/cxx/test/big_test.cpp bindings/perl/test/big_test.t
bindings/f77/test/big_test.f bindings/f77/test/big_test95.f90
bindings/idl/test/big_test.pro bindings/python/test/big_test.py: Add test
241. Update tests 21 and 80.
2012-07-26 D. V. Wiebe <getdata@ketiltrout.net> svn:751
* src/flush.c (_GD_FieldSpec): Write /HIDDEN directives for /ALIASes.
2012-07-26 D. V. Wiebe <getdata@ketiltrout.net> svn:749
* src/parse.c (_GD_SetScalar _GD_ParseLincom _GD_ParseLinterp
_GD_ParseMultiply _GD_ParseRecip _GD_ParseWindow _GD_ParseMplex
_GD_ParseDivide _GD_ParseBit _GD_ParsePhase _GD_ParsePolynom
_GD_ParseAlias): Store munged input fields.
* src/entry.c (_GD_GetScalar) src/common.c (_GD_BadInput) src/parse.c
(_GD_ResolveAlias): Don't (re-)munge field codes.
* src/name.c (_GD_MungeCode): Take an additional parameter, err_ok,
indicating whether missing affixes indicate an internal error or not.
* src/mod.c (_GD_AlterInField) src/name.c (_GD_CheckCodeAffixes): Added.
* src/mod.c (_GD_AlterScalar) src/add.c (_GD_FixName _GD_Add _GD_AddAlias):
Call _GD_CheckCodeAffixes.
* src/mod.c (_GD_Change): Call _GD_AlterInField to modify in_fields.
* src/flush.c (_GD_WriteFieldCode): Added.
* src/flush.c (_GD_PadField _GD_WriteConst _GD_FieldSpec): Call
_GD_WriteFieldCode.
* test/get_affix.c test/add_alias_affix.c test/add_alias_affix.c
test/add_spec_affix.c test/madd_alias_affix.c test/alter_lincom_affix.c
test/add_lincom_affix.c test/alter_scalar_affix.c: Added.
* test/add_string_affix.c test/madd_affix.c test/add_affix.c: Update for new
affix semantics.
* src/mod.c (gd_alter_entry) src/add.c (gd_madd_alias): Clear error when
starting.
2012-07-12 D. V. Wiebe <getdata@ketiltrout.net> svn:743
* bindings/f77/fgetdata.c (GDALLC): Delete unnecessary malloc.
* src/fragment.c (_GD_CheckAffixes): Free subaffixes on error.
* src/fragment.c (gd_desync): Free old name after reopen.
* src/include.c (_GD_Include): Free sname on error.
* src/add.c (_GD_Add): Free temp_buffer on error.
* src/close.c (_GD_FreeD): Free tok_base and error_prefix.
* src/move.c (_GD_Move): Free new_code on error.
* src/parse.c (gd_strtok): Cache the string per documentation.
* test/valgrind.suppressions: Added.
* bindings/cxx/test/big_test.cpp test/add_affix.c test/add_meta_alias.c
test/add_scalar_carray.c test/name_updb_alias.c test/name_updb_const.c
test/name_updb_const_alias.c test/name_alias.c test/name_updb.c
test/madd_affix.c test/add_meta.c test/add_scalar.c test/name.c test/add.c
test/parse_mplex_nomax.c: Deal with memory.
2012-07-10 D. V. Wiebe <getdata@ketiltrout.net> svn:740
* src/common.c (_GD_CanonicalPath): Fix pointer arithmetic
* src/compat.c (gd_strtod): Drop octal (not in POSIX); handle hex floating
point; don't zero errno.
2012-07-04 D. V. Wiebe <getdata@ketiltrout.net> svn:737
GetData-0.8.0 released.
2012-07-04 D. V. Wiebe <getdata@ketiltrout.net> svn:736
* src/constant.c (gd_get_carray_slice gd_get_carray gd_carray_len
gd_put_carray_slice gd_put_carray): Handle both CONST and CARRAY.
* src/constant.c (gd_get_constant gd_put_constant): Just call the
corresponding carray_slice function.
2012-06-30 D. V. Wiebe <getdata@ketiltrout.net> svn:732
* src/getdata.h.in configure.ac cmake/CMakeLists.txt: Fix definition of
gd_off64_t.
* bindings/perl/Build.PL.in: make getdata.h a dependency of lib/GetData.xs.
2012-06-29 D. V. Wiebe <getdata@ketiltrout.net> svn:728
* src/getdata.h.in src/internal.h src/errors.c: Merge GD_E_BAD_VERSION into
GD_E_ARGUMENT.
2012-06-28 D. V. Wiebe <getdata@ketiltrout.net> svn:725,726
* util/checkdirfile.c: Find and report dangling aliases.
* bindings/python/pydirfile.c (gdpy_dirfile_nentries gdpy_dirfile_entrylist)
bindings/cxx/dirfile.cpp (Dirfile::NEntries Dirfile::EntryList)
bindings/perl/GetData.xs (entry_list) : Fix signedness of "type".
* bindings/idl/getdata.c (gdidl_get_field_list gdidl_get_nfields): Deal with
/ALIASES.
* bindings/make_parameters.c: Add GD_ALIAS_ENTRIES.
* test/nentries_noalias.c test/elist_noalias.c: Renamed from ..._alias.c.
* test/nentries_alias.c test/elist_alias.c: Added.
* src/internal.h getdata.h.in: Move GD_ALIAS_ENTRY to public header.
* src/getdata.h.in: Define GD_ALIAS_ENTRIES.
* src/field_list.c (_GD_EntryIndex _GD_ListEntry) src/nfields.c
(_GD_NEntries): Handle GD_ALIAS_ENTRIES.
* src/common.c (_GD_CanonicalPath): Sidestep GCC warning.
2012-06-27 D. V. Wiebe <getdata@ketiltrout.net> svn:724
* src/name.c (_GD_UpdateScalar _GD_InvalidateConst _GD_UpdateInField
_GD_InvalidateVect): Handle aliases.
* src/name.c (gd_rename): Don't dereference aliases.
* src/name.c (gd_rename_alias): Deleted.
* test/name.c test/name_updb_const.c test/name_updb.c: Updated.
* test/name_updb_const_alias.c test/name_move_alias.c test/name_alias.c
test/name_updb_alias.c: Added.
* test/name_after_const.c test/name_after.c: Deleted.
* src/parse.c (_GD_ResolveAlias): Reset aliases if requested.
* man/make_html.pl: Don't eat "**" in synopses.
2012-06-25 D. V. Wiebe <getdata@ketiltrout.net> svn:723
* src/flush.c (_GD_FindVersion): ALIAS means >= 9.
* util/checkdirfile.c: Grammar.
2012-06-13 D. V. Wiebe <getdata@ketiltrout.net> svn:721
GetData-0.8.0rc2.
2012-06-04 D. V. Wiebe <getdata@ketiltrout.net> svn:720
* bindings/cxx/dirfile.cpp bindings/cxx/fragment.cpp
bindings/cxx/getdata/dirfile.h bindings/cxx/getdata/fragment.h: off_t
-> gd_off64_t.
2012-06-02 D. V. Wiebe <getdata@ketiltrout.net> svn:717
* src/internal.h (_GD_AbsPath): Allow s == NULL.
2012-05-25 D. V. Wiebe <getdata@ketiltrout.net> svn:712
* bindings/cxx/fragment.cpp (Fragment::Fragment Fragment::SetEndianness)
bindings/cxx/dirfile.cpp (Dirfile::NFrames Dirfile::EoF Dirfile::BoF
Dirfile::GetData Dirfile::PutData Dirfile::FrameNum Dirfile::Seek
Dirfile::Tell): Call the 64-bit API.
* src/getdata.h.in: Support GD_64BIT_API and use configure to define
gd_off64_t.
* src/internal.h bindings/cxx/getdata/dirfile.h: Define GD_64BIT_API before
including getdata.h.
* test/Makefile.am man/Makefile.am: Remove LFS_TRANSITIONAL_API (always
enabled).
* confihure.ac: Figure out a suitable type for gd_off64_t. Remove
LFS_TRANSITIONAL_API conditional.
2012-05-23 D. V. Wiebe <getdata@ketiltrout.net> svn:710
* test/test.h: Don't redefine isnan if it's okay as-is.
* src/open.c (_GD_CreateDirfile): Don't unnecessarily disable mtime
acquisition.
* cmake/test/CMakeLists.txt: enable desync checks.
* src/compat.c (gd_strtod): Fix sign check.
2012-05-22 D. V. Wiebe <getdata@ketiltrout.net> svn:709
* cmake/CMakeLists.txt: Update definitons. Support GD_UTIL.
* cmake/test/CMakeLists.txt: Update the list of excluded tests.
* cmake/src/CMakeLists.txt: Support GD_DEBUG and conditionally build debug.c.
* cmake/bindings/cxx/CMakeLists.txt: Support GD_TEST.
* cmake/util/CMakeLists.txt cmake/bindings/cxx/test/CMakeLists.txt: Added.
* src/internal.h: Define PRNsize_t and PRNssize_t to get around printf()s
which don't recognise the "z" length modifier. Changed everywhere. Handle
basename, offsetof, strtod.
* src/compat.c (basename gd_strtod): Added.
* src/parse.c (_GD_SetScalar) src/nan.h: Call gd_strtod.
* README.win: Update.
* bindings/cxx/test/big_test.cpp: Tweak includes to allow compilation with
MSVC.
* bindings/cxx/getdata/entry.h bindings/cxx/getdata/fragment.h: Include
dirfile.h.
* test/include_cb.c test/madd_window.c test/open_cb_cont.c
test/open_cb_invalid.c test/include_pc.c test/test.h test/open_cb_rescan.c
test/open_cb_abort.c test/open_cb_ignore.c: Tweak for compilation with MSVC.
* test/add_meta_alias.c test/madd_affix.c test/parse_mplex_nomax.c
test/add_meta.c: Fix gd_entry_t access.
* util/checkdirfile.c: Preprocessor fixes for compilation with MSVC.
2012-04-21 D. V. Wiebe <getdata@ketiltrout.net> svn:706
GetData-0.8.0rc1:
* bindings/cxx/test/big_test.cpp bindings/perl/test/big_test.t: Fix
mplex_lookback checks.
2012-04-21 D. V. Wiebe <getdata@ketiltrout.net> svn:705
* man/make_html.pl: Improvements.
* src/globals.c (gd_mplex_lookback): Always succeed; return void.
* bindings/perl/simple_funcs.pl: Handle returning void.
2012-04-19 D. V. Wiebe <getdata@ketiltrout.net> svn:701
* src/add.c (_GD_Add): Don't check protection level before figuring out the
fragment index.
* bindings/perl/GetData.xs bindings/perl/typemap
bindings/perl/simple_funcs.pl: gdpu_spf_t -> gdpu_uint_t.
* bindings/perl/GetData.xs (gdp_to_entry entry): Use "in_fields" everywhere
to be consistent with the C API.
* bindings/perl/GetData.xs (mcarrays): Remove unpacked. Use GIMME_V
instead.
* bindings/perl/simple_funcs.xsin (reference alter_phase add_window
alter_window alter_affixes add_mplex alter_mplex desync flags
verbose_prefix): Fix parameter defaults and types.
* bindings/perl/Build.PL.in: Install GetData.pm
* bindings/perl/simple_funcs.xsin (include include_affex): Deleted.
* bindings/perl/GetData.xs (include): Added.
* doc/README.perl: Added.
* bindings/perl/GetData.pm.in: POD.
* bindings/cxx/test/Makefile.am bindings/f77/Makefile.am test/Makefile.am
test/error_verbose.c test/error_verbose_prefix.c: Remove GNUisms.
2012-04-13 D. V. Wiebe <getdata@ketiltrout.net> svn:699
* src/common.c (_GD_CanonicalPath): Terminate and don't clobber string
from realpath().
* bindings/make_parameters.c: Add GD_SIE_ENCODED.
* bindings/cxx/getdata/fragment.h: Update encodings.
* bindings/f77/fgetdata.c (GDTOKE) bindings/f77/getdata.f90.in (fgd_strtok):
Drop the 'n' parameter: just do what the C API does.
* bindings/idl/getdata.c (gdidl_getdata gdidl_putdata): Drop /HERE: just use
the absense of FIRST_FRAME and FIRST_SAMPLE.
* bindings/idl/getdata.c (gdidl_add_mplex): Make the MAX parameter optional.
2012-04-01 D. V. Wiebe <getdata@ketiltrout.net> svn:696
* src/compat.c (_GD_ReadDir): Renamed from gd_readdir().
2012-04-01 D. V. Wiebe <getdata@ketiltrout.net> svn:694
* src/getdata.h.in: Deprecate gd_bit_t and gd_spf_t. Remove gd_count_t.
* src/getdata.h.in bindings/make_parameters.c: Remove GD_COUNT_MAX.
* cmake/CMakeLists.txt: Remove DEFINE_gd_int16_t and DEFINE_gd_uint16_t.
* src/internal.h: Calculate GD_INT_TYPE and GD_UINT_TYPE.
* src/entry.c (_GD_CalculateEntry) src/flush.c (_GD_FieldSpec) src/getdata.c
(_GD_DoMplex) src/putdata.c (_GD_DoMplexOut gd_putdata64) src/del.c
(_GD_DeReference) src/parse.c (_GD_ParseMplex _GD_ParseBit) src/mod.c
(_GD_Change): Use GD_INT_TYPE when dealing with bitnum, numbits, count_max,
and count_val.
* src/add.c (gd_add_bit gd_add_sbit gd_add_mplex gd_madd_bit gd_madd_sbit
gd_madd_mplex) src/mod.c (gd_alter_bit gd_alter_sbit gd_alter_mplex)
bindings/python/pyentry.c (gdpy_entry_setnumbits gdpy_entry_setbitnum
gdpy_entry_setcountval gdpy_entry_setcountmax) bindings/cxx/mplexentry.cpp
(MplexEntry::MplexEntry MplexEntry::SetCountVal MplexEntry::SetCountMax)
bindings/cxx/sbitentry.cpp (SBitEntry::SBitEntry SBitEntry::SetFirstBit
SBitEntry::SetNumBits) bindings/cxx/test/big_test.cpp
bindings/cxx/bitentry.cpp (BitEntry::BitEntry BitEntry::SetFirstBit
BitEntry::SetNumBits) bindings/cxx/getdata/bitentry.h (FirstBit NumBits)
bindings/cxx/getdata/entry.h (FirstBit NumBits CountVal CountMax)
bindings/cxx/getdata/mplexentry.h (CountVal CountMax)
bindings/cxx/getdata/sbitentry.h (FirstBit NumBits) bindings/perl/GetData.xs
bindings/perl/typemap bindings/perl/simple_funcs.pl bindings/f77/fgetdata.c
(GDADBT GDADSB GDMDBT GDMDSB GDALBT GDALSB) bindings/idl/getdata.c
(gdidl_make_idl_entry gdidl_read_idl_entry gdidl_add_mplex gdidl_alter_mplex):
gd_bit_t, gd_count_t -> int.
* src/fpos.c (_GD_Seek) src/getdata.c (_GD_MultiplyData _GD_CMultiplyData
_GD_DivideData _GD_CDivideData _GD_WindowData _GD_CDivideData _GD_MplexData
_GD_DoLincom _GD_DoMultiply _GD_DoDivide _GD_DoWindow _GD_DoMplex
gd_getdata64) src/putdata.c (_GD_MplexOutData gd_putdata64) src/flimits.c
(_GD_GetEOF _GD_GetBOF gd_bof64) src/common.c (_GD_LinterpData
_GD_LincomData) src/add.c (gd_add_raw) src/spf.c (_GD_GetSPF gd_spf)
src/mod.c (_GD_SPFConvert) src/mod.c (gd_alter_entry) src/index.c
(gd_framenum_subset64) bindings/python/pyentry.c (gdpy_entry_setspf)
bindings/python/pydirfile.c (gdpy_dirfile_getdata) bindings/cxx/rawentry.cpp
(RawEntry::RawEntry RawEntry::SetSamplesPerFrame)
bindings/cxx/getdata/rawentry.h (SamplesPerFrame) bindings/perl/GetData.xs
bindings/perl/typemap bindings/perl/simple_funcs.pl bindings/f77/fgetdata.c
(GDADRW GDALRW) util/dirfile2ascii.c: gd_spf_t -> unsigned int.
* src/flush.c (_GD_WriteConst) src/mod.c (_GD_AlterScalar): Add missing
integer types.
* src/parse.c (_GD_ParseMplex): Make count_max optional.
* src/getdata.c (_GD_DoMplex) src/add.c (_GD_Add): Handle count_max == 0.
* src/getdata.h.in: Mark GD_FLOAT and GD_DOUBLE as deprecated.
* src/encoding.c (_GD_FiniRawIO): Handle short writes and IO errors.
* src/getdata.c (_GD_DoMplex): use D->lookback to determine how far to
search backwards. Also, read data in chunks of size GD_BUFFER_SIZE.
* src/open.c (_GD_Open): Initialise D->lookback.
* src/globals.c (gd_mplex_lookback): Added.
* bindings/cxx/dirfile.cpp (Dirfile::MplexLookback)
bindings/perl/simple_funcs.xsin (mplex_lookback) bindings/f77/getdata.f90.in
(fgd_mplex_lookback) bindings/f77/fgetdata.c (GDMXLB) bindings/idl/getdata.c
(gdidl_mplex_lookback): Added.
* src/parse.c (gd_strtok): Renamed from gd_tokenise to avoid regional
spelling variations. Bindings renamed accordingly (except for the F77
bindings).
* bindings/python/pygetdata.c: Add GD_E_EXISTS exception.
* bindings/python/pydirfile.h: Add mplex_lookback and verbose_prefix to
gdpy_constant_t.
* bindings/python/pydirfile.c (gdpy_dirfile_delete): Delete verbose_prefix.
* bindings/python/pydirfile.c (gdpy_dirfile_create): Initialise
mplex_lookback and verbose_prefix.
* bindings/python/pydirfile.c (gdpy_dirfile_verbose_prefix): Deleted.
* bindings/python/pydirfile.c (gdpy_dirfile_getverboseprefix
gdpy_dirfile_setverboseprefix gdpy_dirfile_getmplexlookback
gdpy_dirfile_setmplexlookback): Added.
* bindings/Makefile.am: add src/gd_config.h to the prerequisites of
make_parameters.
* src/flush.c (_GD_FlushFragment): Write /ENCODING for zzip and zzslim.
* src/meta_list.c: Merged into src/field_list.c
* src/nmeta.c: Merged into src/nfields.c
* src/add.c (_GD_InvalidEntype): Added.
* src/internal.h: Add entry_list and entry_list_flags to DIRFILE and
private_entry.
* src/internal.h (_GD_EntryIndex): Deleted.
* src/field_list.c (_GD_EntryIndex _GD_EntryList gd_entry_list): Added.
* src/field_list.c (_GD_ListEntry): Handle GD_ENTRIES_... flags.
* src/field_list.c (gd_field_list_by_type gd_vector_list gd_field_list
gd_mfield_list_by_type gd_mfield_list): Reimplement via gd_entry_list().
* src/nfields.c (_GD_NEntries gd_nentries): Added.
* src/nfields.c (gd_nfields gd_nvectors gd_nfields_by_type gd_nmfields
gd_nmvectors gd_nmfields_by_type): Reimplement via gd_nentries().
* src/field_list.c (gd_constants gd_carrays gd_strings gd_mconstants
gd_mcarrays gd_mstrings): Call _GD_NEntries for counts.
* src/entry.c (gd_hide gd_unhide) src/del.c (_GD_Delete) src/include.c
(gd_uninclude) src/add.c (_GD_Add): Delete count updates.
* src/name.c (_GD_Rename) src/del.c (_GD_Delete) src/include.c
(gd_uninclude) src/add.c (_GD_Add _GD_AddAlias): Invalidate metafield lists
too.
* src/entry.c (_GD_FreeE) src/close.c (_GD_FreeD): Delete entry_lists.
* src/globals.c (gd_flags): Don't check GD_INVALID.
* bindings/python/pydirfile.c (gdpy_dirfile_nentries
gdpy_dirfile_entrylist) bindings/perl/GetData.xs (entry_list)
bindings/cxx/dirfile.cpp (Dirfile::NEntries Dirfile::EntryList)
bindings/f77/getdata.f90.in (fgd_nentries fgd_entry_name_max fgd_entry_list)
bindings/f77/fgetdata.c (GDNENT GDENTX GDENTN): Added.
* bindings/idl/getdata.c (gdidl_get_field_list gdidl_get_nfields)): Convert to
bindings for gd_entry_list and gd_nentries.
* bindings/python/test/big_test.py bindings/cxx/test/big_test.cpp
bindings/perl/test/big_test.t bindings/f77/test/big_test.f
bindings/f77/test/big_test95.f90 bindings/idl/test/big_test.pro: Add tests
237 through 240.
* test/elist_alias.c test/elist_hidden.c test/elist_scalar.c
test/get_lincom_null.c test/get_mplex_lball.c test/get_mplex_nolb.c
test/nentries_alias.c test/nentries_hidden.c test/nentries_scalar.c
test/parse_malias_meta.c test/parse_mplex_nomax.c: Added.
* man/: Updated.
2012-03-28 D. V. Wiebe <getdata@ketiltrout.net> svn:691
* src/flush.c (_GD_FieldSpec) src/parse.c (_GD_ParseMplex): Swap order of
fields in MPLEX specification.
* bindings/python/test/big_test.py bindings/cxx/test/big_test.cpp
bindings/perl/test/big_test.t bindings/f77/test/big_test.f
bindings/f77/test/big_test95.f90 bindings/idl/test/big_test.pro
test/entry_mplex_scalar.c test/get_mplex.c test/alter_mplex.c
test/put_mplex.c test/get_mplex_lb.ctest/entry_mplex.c: Update for
Standards change.
2012-03-28 D. V. Wiebe <getdata@ketiltrout.net> svn:690
* m4/compiler.m4 (GD_C_RESTRICT_ARRAY): Fix test program.
* bindings/idl/getdata.c (gdidl_alter_mplex): Fix uninitialised variable.
2012-03-28 D. V. Wiebe <getdata@ketiltrout.net> svn:689
* m4/compiler.m4 (GD_C_RESTRICT_ARRAY): Added.
* src/parse.c src/internal.h: Work around deficiencies in the GCC-3.4 C99
compliance.
2012-03-22 D. V. Wiebe <getdata@ketiltrout.net> svn:683
* src/sie.c (_GD_SampIndWrite): Fix file size calculation during truncation.
* bindings/python/pydirfile.c (gdpy_dirfile_getdata): Make return_type and
num_<foo> optional.
2012-03-16 D. V. Wiebe <getdata@ketiltrout.net> svn:680
* src/globals.c (gd_flags gd_verbose_prefix): Added.
* src/errors.c (_GD_SetError): Print verbose prefix, if present.
* make_parameters.c: Promote GD_VERBOSE and GD_PRETTY_PRINT.
* bindings/cxx/dirfile.cpp (Dirfile::Flags Dirfile::VerbosePrefix)
bindings/python/pydirfile.c (gdpy_dirfile_getflags gdpy_dirfile_setflags
gdpy_dirfile_verbose_prefix) bindings/perl/simple_funcs.xsin (flags
verbose_prefix) bindings/f77/fgetdata.c (GDFLAG GDVBPX)
bindings/f77/getdata.f90.in (fgd_flags fgd_verbose_prefix)
bindings/idl/getdata.c (gdidl_flags gdidl_verbose_prefix): Added.
* bindings/python/test/big_test.py bindings/cxx/test/big_test.cpp
bindings/perl/test/big_test.t bindings/f77/test/big_test.f
bindings/f77/test/big_test95.f90 bindings/idl/test/big_test.pro: Add tests
235, 236.
* src/open.c (_GD_Open): Reset errno to prevent spurious error messages.
* src/flush.c (_GD_FlushFragment): Avoid FPE.
* test/global_flags.c test/error_verbose.c test/error_verbose_prefix.c:
Added.
* bindings/idl/getdata.c (gdidl_open): Add missing IGNORE_REFS,
PRETTY_PRINT, TRUNCSUB.
* bindings/f77/fgetdata.c (_GDF_CString): Take care of the malloc'ing rather
than forcing the caller to do it.
2012-03-16 D. V. Wiebe <getdata@ketiltrout.net> svn:678
* src/errors.c src/getdata.h.in: Add GD_E_EXISTS
* src/open.c (_GD_CreateDirfile): Replace GD_E_CREAT:GD_E_CREAT_EXCL with
GD_E_EXISTS.
2012-03-16 D. V. Wiebe <getdata@ketiltrout.net> svn:676
* configure.ac bindings/idl/package/configure.ac src/include.h
bindings/make_parameters.c bindings/cxx/internal.h bindings/idl/getdata.c
test/test.h util/dirfile2ascii.c util/checkdirfile.c: Renamed config.h to
gd_config.h to get around lossage in the Perl CORE public headers.
* bindings/perl/test: Renamed from t.
* bindings/perl/MANIFEST.in: Renamed from MANIFEST.
* bindings/perl Makefile.am bindings/f77/test/Makefile.am: VPATH fixes.
* src/fragment.c (gd_desync): dup the dirfile fd before closing.
* test/desync_reopen.c test/desync_reopen_inv.c: Added.
* bindings/idl/package/configure.ac bindings/idl/package/README: Bump
GetData min version.
2012-03-15 D. V. Wiebe <getdata@ketiltrout.net> svn:675
* src/internal.h: Add fragment->mtime, dirfile->open_flags. Deconst
fragment->sname.
* src/close.c (_GD_FreeD _GD_ShutdownDirfile): Add new parameter
(keep_dirfile) to prohibit deallocating the dirfile struct itself.
De-staticked _GD_ShutdownDirfile.
* src/include.c (_GD_Include): Compute the path relative to the parent of
fragment and store it in fragment->sname. Store mtime.
* src/close.c (_GD_FreeD): Free fragment->sname.
* src/flush.c (_GD_FlushFragment): Remove unnecessary strdup: we already
cache the basename. Update mtime.
* src/open.c (_GD_CreateDirfile): Return mtime.
* src/open.c (_GD_Open): Renamed from gd_cbopen; optionally take an existing
dirfd and DIRFILE pointer. Fix the dirfd/dirfile race condition by
canonicalising dirfile first.
* src/fragment.c (gd_desync) src/open.c (gd_cbopen): Added.
* src/getdata.h.in: Added GD_DESYNC_PATHCHECK GD_DESYNC_REOPEN.
* test/desync.c test/desync_flush.c: Added.
* src/internal.h (offsetof): Added.
* src/compat.c (gd_readdir): Added.
* src/open.c (_GD_TruncDir): Use a thread-safe readdir where possible.
* src/include.c (gd_include_affix): Don't call do stuff before validating
the dirfile.
* bindings/make_parameters.c: Add desync flags.
* bindings/python/pydirfile.c (gdpy_dirfile_desync) bindings/cxx/dirfile.cpp
(Dirfile::DeSync) bindings/perl/simple_funcs.xsin (desync)
bindings/f77/getdata.f90.in (fgd_desync) bindings/f77/fgetdata.c (GDDSYN)
bindings/idl/getdata.c (gdidl_desync): Added.
* bindings/python/test/big_test.py bindings/cxx/test/big_test.cpp
bindings/perl/t/big_test.t bindings/f77/test/big_test.f
bindings/f77/test/big_test95.f90 bindings/idl/test/big_test.pro: Added test
234.
* bindings/cxx/test/big_test.cpp: Functionise to reduce compilation work.
* bindings/perl/Makefile.am: Tweak yet some more.
2012-03-14 D. V. Wiebe <getdata@ketiltrout.net> svn:674
* src/open.c (gd_cbopen): Handle failure of _GD_CanonicalPath better.
2012-03-14 D. V. Wiebe <getdata@ketiltrout.net> svn:671
* src/flush.c (_GD_FlushFragment): Write SIE encoding directives.
* src/sie.c (_GD_SampIndOpen): Initialise file->pos to 0 to avoid issues
with _GD_GetFilePos.
* src/sie.c (_GD_SampIndSeek): Don't short circuit if no record is loaded.
* src/flush.c (_GD_Flush _GD_SyncOrClose): Make syncing optional with a new
parameter (syn).
* src/flush.c (gd_raw_close): Added.
* src/clsoe.c (_GD_ShutdownDirfile) src/include.c (gd_uninclude): Don't
sync, just close raw files.
* bindings/python/pydirfile.c (gdpy_dirfile_raw_close)
bindings/cxx/dirfile.cpp (Dirfile::RawClose) bindings/perl/simple_funcs.xsin
(raw_close) bindings/f77/fgetdata.c (GDRCLO) bindings/f77/getdata.f90.in
(fgd_raw_close): Added.
* bindings/idl/getdata.c (gdidl_flush): Add /NOSYNC.
* bindings/python/test/big_test.py bindings/cxx/test/big_test.cpp
bindings/perl/t/big_test.t bindings/f77/test/big_test.f
bindings/f77/test/big_test95.f90: Added test 233.
* bindings/perl/Build.PL.in: subclass Module::Build to properly handle
simple_funcs.xs dependency tracking.
2012-03-06 D. V. Wiebe <getdata@ketiltrout.net> svn:667
* src/errors.c: Change prefix on verbose output to "libgetdata".
* src/add.c (_GD_FixName): Added.
* src/add.c (_GD_Add _GD_AddAlias): Call _GD_FixName.
* test/add_alias_meta.c: Added.
* src/open.c (_GD_TruncDir): Fix subdirectory truncation.
* src/internal.h: Remove conditional defition of AT_SYMLINK_NOFOLLOW.
* src/compat.c (gd_StatAt): Check for definition of AT_SYMLINK_NOFOLLOW
before use.
2012-03-03 D. V. Wiebe <getdata@ketiltrout.net> svn:665
* src/getdata.h.in bindings/make_parameters.c: Added GD_TRUNCSUB open flag.
* src/open.c (_GD_TruncDir): Added.
* src/open.c (_GD_CreateDirfile): Call _GD_TruncDir.
* test/trunc_dir.c test/trunc_truncsub.c: Added.
* src/fragment.c (gd_alter_affixes): Handle GD_E_ACCMODE and GD_E_PROTECTED
errors.
* bindings/f77/fgetdata.c (GDDELA): Correct call to gd_delete_alias.
2012-03-02 D. V. Wiebe <getdata@ketiltrout.net> svn:664
* src/errors.c: Added GD_E_ARGUMENT:GD_E_ARG_NODATA.
* src/parse.c (_GD_Tokenise): Take number of columns to return.
* src/parse.c (gd_tokenise): Added.
* src/internal.h: Added _GD_DIRFILE->tok_pos.
* src/parse.c (_GD_CheckParent): Destatickify, and modify for use by
_GD_Add.
* src/add.c (_GD_Add): Call _GD_CheckParent to automatically allow
parent/meta style metafield addition via gd_add[_<whatever>]().
* bindings/python/pydirfile.c (gdpy_dirfile_tokenise)
bindings/cxx/dirfile.cpp (Dirfile::Tokenise) bindings/perl/GetData.xs
(tokenise) bindings/f77/getdata.f90.in (fgd_tokenise)
bindings/f77/fgetdata.c (GDTOKE) bindings/idl/getdata.c (gdidl_tokenise):
Added.
* bindings/python/test/big_test.py bindings/cxx/test/big_test.cpp
bindings/perl/t/big_test.t bindings/f77/test/big_test.f
bindings/f77/test/big_test95.f90 bindings/idl/test/big_test.pro: Add test
#232.
* bindings/f77/getdata.f90.in (fgd_fragment_affixes): Fix GDFRAF call.
* bindings/f77/fgetdata.c (_GDF_SetDirfile _GDF_Callback GDCOPN GDCLBK):
Don't cast between data and code pointers. Encapsulate the F77 callback
function in a container.
* bindings/f77/fgetdata.c (GDNOCB): Added.
* bindings/f77/test/gdcopn.f: Add GDCLBK and GDNOCB tests.
* test/ascii_get.c test/ascii_put.c test/ascii_get_get.c
test/ascii_nframes.c: Delete FOPEN_TEXT.
* test/add_meta.c test/add_meta_alias.c: Added.
2012-02-16 D. V. Wiebe <getdata@ketiltrout.net> svn:658
* src/getdata.c (_GD_DoLincom): Get the correct SPFs.
* test/get_lincom_spf.c: Added.
* src/open.c (_GD_CreateDirfile): When truncating, don't delete and then
recreate the format file; just truncate it. (This helps kst not get
confused when monitoring a dirfile which gets truncated.)
2012-02-14 D. V. Wiebe <getdata@ketiltrout.net> svn:656 svn:657
* src/putdata.c (gd_putdata): Return early if num_samp == 0.
* test/put_zero.c: Added.
2012-02-01 D. V. Wiebe <getdata@ketiltrout.net> svn:652
* configure.ac: Figure out the directory separator (ie. '/' on POSIX).
* src/open.c (_GD_CreateDirfile): Handle DIRSEP.
* src/internal.h (_GD_Root): Added.
* src/common.c (_GD_CanonicalPath): Handle WIN32/DOS paths.
* src/open.c (gd_cbopen): Temporarily store the full path in D->name so that
_GD_CreateDirfile can use it when needed.
* src/spf.c (_GD_GetSPF): De const-ify E.
* src/common.c (_GD_FindField): Fix buffer length calculation.
* test/file.c test/fragment_name.c bindings/cxx/test/big_test.cpp
bindings/f77/test/big_test.f bindings/f77/test/big_test95.f90: Handle DIRSEP.
* bindings/f77/test/test_getdata.f.in: Added.
2012-01-18 D. V. Wiebe <getdata@ketiltrout.net> svn:650
* src/getdata.h.in src/internal.h: Define GD_ENC_ZZSLIM GD_ZZSLIM_ENCODED.
* src/zzslim.c: Added.
* src/encoding.c: In the initialisation of _gd_ef, differentiate things
that are willing to use the Generic functions from those that aren't. Added
zzslim.
* src/common.c (_GD_CanonicalPath): Don't truncate on ENOENT.
* src/slim.c (_GD_SlimOpen): The slimdopen in slimlib-2.6.5 doesn't interact
well with slim's own zzip support, so let's ignore it for now.
* bindings/make_parameters.c: Convert F77 encoding parameters to the form
GDE_xx.
* configure.ac: zzslim tests. Always look for a C++ compiler.
* m4/encoding.m4: Separate LIBS from LDFLAGS; fix some underquoting.
2012-01-11 D. V. Wiebe <getdata@ketiltrout.net> svn:644
* src/getdata.h.in: Added GD_MPLEX_ENTRY. Updated gd_entry_t. Defined
GD_COUNT_MAX.
* src/legacy.c (CopyMplexEntry) src/getdata.c (_GD_MplexData _GD_DoMplex)
src/putdata.c (_GD_MplexOutData _GD_DoMplexOut) src/parse.c (_GD_ParseMplex)
src/add.c (gd_add_mplex gd_madd_mplex) src/mod.c (gd_alter_mplex): Added.
* src/internal.h: Define GD_MPLEX_LOOKBACK
* src/entry.c (_GD_FreeE _GD_CalculateEntry gd_entry gd_validate)
src/flush.c (_GD_Flush _GD_FieldSpec _GD_FindVersion) src/fpos.c
(_GD_GetFilePos _GD_WriteSeek) src/legacy.c (GetFormat) src/getdata.c
(_GD_DoField) src/name.c (_GD_InvalidateConst _GD_InvalidateVect)
src/native.c (_GD_NativeType) src/putdata.c (_GD_DoFieldOut) src/del.c
(_GD_ClearDerived _GD_DeReference) src/flimits.c (_GD_GetEOF _GD_GetBOF)
src/parse.c (_GD_ParseFieldSpec) src/add.c (_GD_Add) src/spf.c (_GD_GetSPF)
src/mod.c (_GD_Change): Handle MPLEX.
* src/fpos.c (_GD_Seek): De-statickify.
* src/legacy.c (CopyWindowEntry): Report as MPLEX.
* src/getdata_legacy.h: Fix mplex list in FormatType.
* src/errors.c: Rename GD_E_BAD_ENTRY_* suberrors to GD_E_ENTRY_* for
brevity. Added GD_E_FORMAT_MPLEXVAL, GD_E_ENTRY_CNTVAL, GD_E_ENTRY_CNTMAX.
* src/field_list.c (_GD_ListEntry): Move the alias check down so that hidden
and meta alias are handled properly.
* internal.h src/common.c (_GD_Malloc _GD_Realloc _GD_Strdup): Moved from
internal.h.
* bindings/make_parameters.c: Define MPLEX_ENTRY, E_FORMAT_MPLEXVAL,
COUNT_MAX.
* bindings/cxx/mplexentry.cpp bindings/cxx/getdata/mplexentry.h: Added.
* bindings/python/pyentry.c (gdpy_entry_getcountval gdpy_entry_setcountval
gdpy_entry_getcountmax gdpy_entry_setcountmax) bindings/cxx/getdata/entry.h
(Entry::CountVal Entry::CountMax) bindings/f77/getdata.f90.in (fgd_add_mplex
fgd_madd_mplex fgd_alter_mplex) bindings/f77/fgetdata.c (GDGEMX GDADMX
GDMDMX GDALMX) bindings/idl/getdata.c (gdidl_add_mplex gdidl_alter_mplex):
Added.
* bindings/python/pyentry.c (gdpy_set_entry_from_tuple
gdpy_set_entry_from_dict gdpy_entry_getinfields gdpy_entry_setinfields
gdpy_entry_getparms) bindings/cxx/entry.cpp (CheckIndex scalar_ok)
bindings/cxx/dirfile.cpp (Dirfile::Entry) bindings/cxx/getdata/dirfile.h
bindings/perl/GetData.xs (gdp_to_entry entry) bindings/f77/getdata.f90.in
(fgd_entry fgd_add fgd_madd) bindings/f77/fgetdata.c (GDASCA GDMDWD)
bindings/idl/getdata.c (gdidl_make_idl_entry gdidl_read_idl_entry): MPLEX
bindings.
* bindings/perl/simple_funcs.xsin: Add add_mplex, alter_mplex, madd_mplex.
* bindings/perl/simple_funcs.pl: Handle gd_count_t.
* bindings/python/test/big_test.py bindings/cxx/test/big_test.cpp
bindings/perl/t/big_test.t bindings/f77/test/big_test.f
bindings/f77/test/big_test95.f90 bindings/idl/test/big_test.pro: Add tests
228-231.
* bindings/cxx/windowentry.cpp bindings/cxx/getdata/windowentry.h
bindings/idl/getdata.c (gdidl_alter_window): Get rid of
Check stuff: just use Input, for consistency.
* test/add_mplex.c test/add_mplex_val.c test/alter_mplex.c
test/entry_mplex.c test/entry_mplex_scalar.c test/get_mplex.c
test/get_mplex_lb.c test/madd_mplex.c test/parse_mplex.c
test/parse_mplex_ncols.c test/parse_mplex_scalar.c test/put_mplex.c: Added.
2011-12-31 D. V. Wiebe <getdata@ketiltrout.net> svn:643
* bindings/python/pyentry.c (gdpy_set_entry_from_dict): Add missing INCREF.
2011-12-29 D. V. Wiebe <getdata@ketiltrout.net> svn:641
* src/internal.h src/encoding.c (_GD_GenericName): Added fragment->enc_data.
Pass enc_data to gd_ef->name. Flag encodings that use enc_data with
GD_EF_EDAT.
* src/parse.c (_GD_ParseDirective): Allow an optional second parameter to
/ENCODING of encoding-specific data.
* src/entry.c (_GD_ResolveEncoding): Pass in enc_data.
* src/zzip.c (_GD_ZzipName): Use enc_data to specify archive name.
2011-12-29 D. V. Wiebe <getdata@ketiltrout.net> svn:640
* configure.ac: zzip encoding check.
* src/getdata.h.in src/internal.h: GD_ZZIP_ENCODED / GD_ENC_ZZIP; Added name
to encoding_t.
* src/zzip.c: Added.
* src/encoding.c: Add Zzip encoding; gd_ef_name_t.
* src/encoding.c (_GD_GenericName): Renamed from _GD_SetEncodedName and
pushed down into the encoding framework.
* src/encoding.c (_GD_MissingFramework): Handle GD_EF_NAME.
* src/encoding.c (_GD_ResolveEncoding): Handle external name functions.
* src/entry.c (gd_raw_filename) src/encoding.c (_GD_InitRawIO
_GD_RecodeFragment) src/move.c (_GD_MogrifyFile) src/name.c (_GD_Rename)
src/del.c (_GD_Delete) src/flimits.c (_GD_GetEOF): Call _gd_ef->name.
* test/zzip_get.c test/zzip_get_get.c test/zzip_nframes.c: Added.
2011-12-27 D. V. Wiebe <getdata@ketiltrout.net> svn:639
* src/add.c (gd_madd_lincom gd_madd_clincom gd_madd_linterp gd_madd_bit
gd_madd_sbit gd_madd_multiply gd_madd_phase gd_madd_polynom gd_madd_cpolynom
gd_madd_string gd_madd_const gd_madd_carray): Zero entry before
initialisation.
* src/fragment.c (gd_alter_affixes): Allow {pre,suf}fix == NULL to indicate
no change.
* src/entry.c (_GD_FreeE): Handle aliases.
* src/close.c (_GD_FreeD): Free fragment affixes.
* src/debug.c (gd_colnil gd_coladd gd_colsub): Export debugging symbols.
* src/field_list.c (_GD_ListEntry): Added.
* src/field_list.c (gd_constants gd_carrays gd_strings gd_field_list_by_type
gd_vector_list gd_field_list) src/meta_list.c (gd_mconstants gd_mcarrays
gd_mstrings gd_mfield_list_by_type gd_mvector_list gd_mfield_list): Call
_GD_ListEntry.
* bindings/python/pyentry.c bindings/python/pyfragment.c
bindings/python/pydirfile.c: Update for DSV9.
* bindings/cxx/fragment.cpp bindings/cxx/entry.cpp bindings/cxx/dirfile.cpp
bindings/cxx/getdata/entry.h bindings/cxx/getdata/dirfile.h: Update for
DSV9.
* bindings/cxx/windowentry.cpp bindings/cxx/getdata/windowentry.h: Added.
* bindings/perl/GetData.xs bindings/perl/simple_funcs.xsin: Update for DSV9.
* bindings/f77/fgetdata.c bindings/f77/getdata.f90.in: Update for DSV9.
* bindings/idl/getdata.c: Update for DSV9. Removed most of the function
aliases.
* bindings/make_parameters.c: Update for DSV9. Add missing
GD_E_UNKNWON_ENCODING.
* bindings/python/pygetdata.c (initpygetdata): Handle gaps in
gdpy_exception_list. Fix exception list.
* bindings/python/pyentry.c (gdpy_entry_settable): Set correct parameter.
* test/vlist_alias.c: Added.
2011-12-20 D. V. Wiebe <getdata@ketiltrout.net> svn:638
* src/entry.c (_GD_GetScalar _GD_CalculateEntry) src/common.c (_GD_GetRepr
_GD_BadInput _GD_FindFieldAndRepr: Optionally prohibit setting errors (for
use by the post-rename update stuff).
* src/errors.c: Added GD_E_FORMAT_ALIAS, GD_E_DEL_ALIAS.
* src/flush.c (_GD_FieldSpec): Write aliases. Also tweaked to allow slashed
metafield specification with DSV7.
* src/del.c (_GD_ClearDerived): Handle aliases.
* src/parse.c (_GD_CheckParent _GD_ParseAlias _GD_ResolveAlias
_GD_UpdateAliases) src/add.c (_GD_AddAlias gd_add_alias gd_madd_alias): Added.
* src/parse.c (_GD_ParseFieldSpec): Call _GD_CheckParent.
* src/parse.c (_GD_ParseDirective): Use a switch to reduce the number of
strcmps done. Handle /ALIAS.
* src/parse.c (_GD_ParseFragment): Optionally call _GD_UpdateAliases to
resolve aliases.
* src/add.c (_GD_Add gd_madd_spec gd_add_spec): Update aliases after addition.
* src/common.c (_GD_FindField): Optionally dealias names.
* src/del.c (_GD_Delete): Renamed from gd_delete().
* src/del.c (gd_delete gd_delete_alias): Added.
* src/name.c (_GD_UpdateScalar _GD_InvalidateConst _GD_UpdateInField
_GD_InvalidateVect): Added.
* src/name.c (_GD_Rename): Renamed from gd_rename(). Handle cleaning up
after the rename.
* src/move.c (_GD_Move): Renamed from gd_move().
* src/name.c (_GD_ValidateField): Permit is_dot = NULL.
* src/entry.c (gd_alias_target gd_aliases gd_naliases gd_hidden) src/move.c
(gd_move gd_move_alias) src/name.c (gd_rename gd_rename_alias): Added.
* src/alias.c (gd_fragment_index gd_hide gd_unhide): Call _GD_FindField
instead of _GD_FindFieldAndRepr to avoid resolving aliases. As a side effect,
these function will no long ignore representation suffices.
* src/flush.c (_GD_StringEscapeise): Handle writing slashed meta-fields.
* src/spf.c (_GD_GetSPF): Ensure return is zero on error.
* test/alias_num_missing.c alias_target_missing.c spf_alias_missing.c
alias_list.c del_derived_after.c madd_spec_resolv.c parse_alias_meta.c
entry_type_alias.c spf_alias.c name_after_const.c parse_malias_dup.c
add_alias.c alias_target.c alias_list_alias.c add_resolv.c spf_alias_meta.c
move_alias.c name_after.c parse_meta_jump.c parse_alias_missing.c
name_update_const.c madd_alias.c parse_alias_dup.c fragment_index_alias.c
add_spec_resolv.c alias_target_alias.c name_update.c hide_hidden.c
alias_num_alias.c parse_malias.c parse_alias_code.c parse_alias.c
alias_num.c parse_meta_malias.c parse_meta_alias.c alias_list_missing.c:
Added.
* test/fragment_parent.c: Renamed from test/parent.c.
* test/fragment_num.c: Renamed from test/nfragments.c.
* test/version_9_write.c: Update.
2011-12-13 D. V. Wiebe <getdata@ketiltrout.net> svn:637
* test/fragment_affix_alter2.c test/fragment_affix_alter.c
test/fragment_affix_dup.c test/fragment_affix.c test/include_affix.c: Added.
* src/move.c (_GD_StrCmpNull): Renamed from strcmpnull and de-statickified.
* src/name.c (_GD_MungeFromFrag): Added.
* src/name.c (_GD_MungeCode): Converted into a swiss army munger handling
both enmunging and demunging. Most old, simple, uses of this function now
call _GD_MungeFromFrag (which calls this) instead.
* src/flush.c (_GD_DeMungeCode): Deleted in favour of the new _GD_MungeCode.
* src/fragment.c (gd_fragment_affixes _GD_CheckAffixes _GD_ChangeAffixes
gd_alter_affixes): Added.
* src/include.c (gd_include_affix): Renamed from gd_include.
* src/include.c (gd_include): Added.
2011-12-11 D. V. Wiebe <getdata@ketiltrout.net> svn:635
* test/add_string_affix.c test/name_affix_bad.c test/move_affix.c
test/alter_entry_affix.c test/alter_entry_affix.c test/madd_affix.c
test/parse_meta_affix.c test/madd_index.c test/name_affix.c
test/alter_mspec_affix.c test/name_dup.c test/parse_meta_implicit_affix.c
test/add_affix.c test/alter_spec_affix.c: Added.
* test/version_9_strict.c test/version_9_write.c: Expanded.
* src/open.c (gd_cbopen): Set errors for _GD_CanonicalPath.
* src/errors.c: Distingish missing codes from invalid codes for
GD_E_BAD_CODE.
* src/name.c (gd_rename): Validate the new name first and then DeMunge it
if it's not a meta field.
* src/move.c (gd_move): Compose the new field name by remunging it for the
new fragment. Also compose the new names of all its metafield early, if
necessary.
* src/parse.c (_GD_ParseFieldSpec _GD_ParseDirective): Munge field codes
before lookup. Also munge the reference field.
* src/mod.c (gd_alter_spec gd_malter_spec): The parser will end up
reapplying affixes to the field name, so undo that.
* src/add.c (_GD_Add gd_add_string gd_add_const gd_add_const gd_madd_string
gd_madd_const gd_madd_carray): _GD_Add() returns the added entry on success.
This saves a field lookup in the others.
* src/add.c (_GD_Add): Munge field name earlier.
* src/name.c (gd_rename): Flag fragment as modified.
* src/flush.c (_GD_FieldSpec): Properly write /HIDDEN directives.
2011-12-09 D. V. Wiebe <getdata@ketiltrout.net> svn:634
* test/parse_include_preprefix.c test/version_9_strict.c test/version_9.c
test/parse_include_suffix.c test/parse_include_loop.c test/version_9_write.c
test/parse_include_sufsuffix.c test/parse_include_prefix.c
test/parse_include_prefix_dup.c test/get_phase_affix.c: Added.
* test/add_sort.c test/add_scalar_carray.c test/add_code.c test/add_type.c
test/add_invalid.c test/put_carray.c test/add_scalar.c test/madd.c
test/add_format.c: Remove dirfile before starting.
* test/version_8_strict.c: Fix initialisation.
* test/version_6_write.c: Test whitespace in field names.
* test/test.h: Armour plate macros.
* src/internal.h: Add prefix and suffix to gd_fragment_t.
* src/name.c (_GD_MungeCode) src/flush.c (_GD_DeMungeCode) src/include.c
(_GD_SetFieldAffixes): Added.
* src/flush.c (_GD_StringEscapeise): Handle null tokens. Escape spaces
rather than assuming the caller will quote the token (which it wasn't
doing).
* src/entry.c (_GD_GetScalar) src/name.c (gd_rename) src/add.c (_GD_Add)
src/commonc. (_GD_BadInput): Munge field code before use.
* src/flush.c (_GD_PadField): Demunge field code before writing.
* src/flush.c (_GD_WriteConst): Properly demunge and escapeise scalar names.
* src/name.c (_GD_ValidateField): This function no longer takes care of
malloc'ing. Modified to return integer true on error.
* src/name.c (_GD_FlushFragment): Add prefix and suffix to INCLUDE when
present.
* src/parse.c (_GD_ParseRaw _GD_ParseLincom _GD_ParseLinterp
_GD_ParseMultiply _GD_ParseRecip _GD_ParseLincom _GD_ParseWindow
_GD_ParseDivide _GD_ParseBit _GD_ParsePhase _GD_ParsePolynom _GD_ParseConst
_GD_ParseCarray _GD_ParseString): Munge field code on parsing.
* include.c (_GD_Include): Handle affixes.
* src/common.c (_GD_EntryCmp): Moved from src/internal.h and deinlined,
destatickified. Given that the only use of this function is to pass it to
qsort, making it static inline only ensured that it got replaced once per
translation unit that referred to it.
* include.c (_GD_Include): Replaced the old filename comparison stage with a
simple recursion counter.
* src/parse.c (_GD_Tokenise): Handle token-initial escaped character.
Handle "\[ux#]##\...".
* src/flush.c (_GD_FindVersion): Prefix or suffix implies DSV >= 9.
* src/parse.c (_GD_SetScalar): Handle bad malloc.
* src/name.c (_GD_FieldSpec): Properly escapeise input field codes.
* src/errors.c: Distinguish GD_E_RECURSE_CODE from GD_E_RECURSE_INCLUDE.
* src/internal.h (_GD_Malloc _GD_Realloc _GD_Strdup): Added.
* src/commonc. (_GD_MakeFullPath): Set error if requested.
* src/common.c (_GD_MakeFullPathOnly): Added. This is a wrapper around
_GD_MakeFullPath which ensures the DIRFILE is not modified. Used by the
compatibility functions and the slim encoding framework (ie. things that have
at best a tenuous connection to the DIRFILE object).
* src/internal.h: Define GD_MULTISTANDARD.
* src/include.c (_GD_Include): Set GD_MULTISTANDARD if moving into/out of
DSV >= 9.
* src/open.c (gd_cbopen): If the metadata contain multiple standards, figure
out a single one for the whole dirfile.
2011-12-08 D. V. Wiebe <getdata@ketiltrout.net> svn:633
* test/svlist_hidden.c test/svlist_meta_hidden.c test/hide.c
test/flist_hidden.c test/nfields_hidden.c test/parse_version_89.c
test/nmeta_type_hidden.c test/parse_version_98.c test/nmeta_vectors_hidden.c
test/nmeta_hidden.c test/alter_entry_hidden.c test/parse_version_p8.c
test/parse_version_p9.c test/hide_unhide.c test/cvlist_meta_hidden.c
test/nfields_type_hidden.c test/vlist_hidden.c test/flist_meta_hidden.c
test/vlist_meta_hidden.c test/flist_type_meta_hidden.c
test/parse_hidden_meta.c test/cvlist_array_hidden.c test/parse_meta_meta.c
test/nfields_vector_hidden.c test/parse_hidden.c test/parse_hidden_field.c
test/cvlist_hidden.c test/cvlist_array_meta_hidden.c
test/flist_type_hidden.c: Added.
* test/nfields_vector.c test/nfields_vector_invalid.c: Renamed from nvectors*
* src/parse.c (_GD_ParseDirective): Parse /HIDDEN directives.
* src/entry.c (gd_hide gd_unhide): Added.
* src/nmeta.c (gd_nmfields gd_nmvectors gd_nmfields_by_type) src/nfields.c
(gd_nfields gd_nvectors gd_nfields_by_type) src/field_list.c (gd_constants
gd_carrays gd_strings gd_field_list_by_type gd_vector_list gd_field_list)
src/meta_list (gd_mconstants gd_mcarrays gd_mstrings gd_mfield_list_by_type
gd_mvector_list gd_mfield_list): Compensate for hidden fields.
* src/flush.c (_GD_FieldSpec): Write /HIDDEN directives.
* src/flush.c (_GD_FindVersion): Consider hidden entries.
* src/mod.c (_GD_Change): Prohibit changing hiddenness via gd_alter_entry().
* src/parse.c (_GD_ParseDirective): Forbid a metafield code from appearing
as a parent in /META directives.
* src/internal.h: Record the number of each type of field, rather than just
for the scalar field types.
* src/internal.h (_GD_EntryIndex): Added.
* src/open.c (gd_cbopen): Initialise D->n[INDEX_ENTRY].
* src/nmeta.c (gd_nmvectors gd_nmfields_by_type) src/nfields.c (gd_nvectors
gd_nfields_by_type) src/field_list.c (gd_constants gd_carrays gd_strings
gd_field_list_by_type gd_vector_list) src/meta_list.c (gd_mconstants
gd_mcarrays gd_mstrings gd_mfield_list_by_type gd_mvector_list): Use type
counts.
* src/del.c (gd_delete) src/parse.c (_GD_ParseFieldSpec) src/include.c
(gd_uninclude) src/add.c (_GD_Add): Update type counts.
* src/field_list.c (_gd_entype_index): Deleted.
* src/include.c (_GD_Include): Remember incoming Standards Version and
parser mode, and restore them on exit if the new DSV >=9 or the old mode is
pedantic and the old DSV >= 9. This is an attempt to stave the "version
leak" problem experienced in earlier DSVs.
* src/internal.h: Renamed GD_E_FORMAT_NO_PARENT to GD_E_FORMAT_NO_FIELD.
2011-12-06 D. V. Wiebe <getdata@ketiltrout.net> svn:632
* test/get_window_ne.c test/get_window.c test/parse_window_scalar.c
test/alter_window.c test/parse_window.c test/madd_window.c
test/parse_window_ncols.c test/add_window.c test/put_window.c
test/get_window_set.c test/get_window_gt.c test/get_window_ge.c
test/parse_window_op.c test/entry_window.c test/entry_window_scalar.c
test/add_window_op.c test/get_window_lt.c test/get_window_clr.c
test/get_window_le.c: Added.
* test/madd_phase.c: Fix check.
* test/version_6.c test/version_7.c test/version_8.c: Update for Version 9.
* cmake/CMakeLists.txt configure.ac: Define gd_int64_t.
* src/getdata.h.in: Add GD_WINDOW_ENTRY, gd_windop_t, gd_triplet_t.
* src/entry.c (_GD_FreeE _GD_CalculateEntry gd_entry) legacy.c (GetFormat)
src/getdata.c (_GD_DoField) src/errors.c src/flush.c (_GD_Flush
_GD_FieldSpec) src/native.c (_GD_NativeType) src/spf.c (_GD_GetSPF)
src/putdata.c (_GD_DoFieldOut) src/del.c (_GD_ClearDerived _GD_DeReference)
src/flimits.c (_GD_GetEOF _GD_GetBOF) src/fpos.c (_GD_GetFilePos _GD_Seek)
src/parse.c (_GD_ParseFieldSpec) src/field_list.c src/mod.c (_GD_Change)
src/add.c (_GD_Add): Update for WINDOW.
* src/legacy.c (CopyWindowEntry) src/getdata.c (_GD_WindowData _GD_DoWindow)
src/flush.c (_GD_WindopName) src/parse.c (_GD_WindOp _GD_ParseWindow)
src/mod.c (gd_alter_window) src/internal.h (_GD_BadWindop) src/add.c
(gd_add_window gd_madd_window): Added.
* src/flush.c (_GD_WriteConst): Write GD_UINT64.
* src/flush.c (_GD_WriteConst): Fix writing of RECIP fields.
* src/parse.c (_GD_ParseRecip _GD_ParsePhase): Fail if SetScalar fails.
* src/parse.c (_GD_SetScalar): Don't bother trying to decode an imaginary
part before failing if we're not interested in complex numbers.
* src/parse.c (_GD_SetScalar): Call strto[u]ll with base=0 for Version >= 9 to
allow automatic parsing of 0x[hex] and 0[octal] numbers in format files.
* src/getdata.h.in: Increment GD_DIRFILE_STANDARDS_VERSION.
* src/flush.c (_GD_FindVersion): Update for Version 9.
2011-12-05 D. V. Wiebe <getdata@ketiltrout.net> svn:630
* python/test/callback.pl python/test/big_test.py cxx/test/big_test.cpp
f77/test/big_test.f f77/test/big_test95.f90: Fix path checks.
* f77/test/big_test.f f77/test/big_test95.f90: Use check functions.
* src/flush.c (_GD_Flush): Don't call sync on a file opened read-only.
* configure.ac: Look for Availability.h
* src/internal.h: Fix lstat64 on OS X 10.6+
* src/common.c (_GD_CanonicalPath): Don't run past the end of the work
buffer.
2011-12-03 D. V. Wiebe <getdata@ketiltrout.net> svn:629
* test/test.h (CHECKEOS): Added.
* test/file.c test/fragment_name.c: Only check the end of the returned
string since we don't know what the full path is.
* src/internal.h: Define PATH_MAX, if necessary.
* src/common.c (_GD_CanonicalPath): Added.
* src/open.c (gd_cbopen): Canonicalise filedir.
* src/common.c (_GD_MakeFullPath): Canonicalise path. Handle dirfd < 0.
* src/common.c (_GD_GrabDir): Let _GD_MakeFullPath hande canonicalising
absolute paths.
* configure.ac: Check for lstat(3).
* src/compat.c (gd_StatAt): Don't use lstat if the platform doesn't have it.
* src/internal.h: Move library includes into header.
2011-12-01 D. V. Wiebe <getdata@ketiltrout.net> svn:628
* src/flush.c (_GD_FlushFragment): Write "/PROTECT data" when appropriate.
Bug report from Alexandra Rahlin.
2011-11-13 D. V. Wiebe <getdata@ketiltrout.net> svn:626
* src/entry.c (gd_raw_filename): Revert r613 changes.
* src/gzip.c: Move OOP code out of gzip layer.
* src/encoding.c (_GD_FiniRawIO _GD_InitRawIO) src/fpos.c (_GD_WriteSeek):
Handle OOP writes.
* src/encoding.c (_GD_WriteOut): Added.
* src/mod.c (_GD_Change) src/putdata.c (_GD_DoRawOut): Call _GD_WriteSeek and
_GD_WriteOut
* src/putdata.c (_GD_DoRawOut): Correctly handle write errors.
* configure.ac: Fix x86_64 host check.
2011-11-10 D. V. Wiebe <getdata@ketiltrout.net> svn:622
* configure.ac: Figure out whether unaligned memory access will work.
* src/internal.h: Deal with UNALIGNED_ACCESS_OK
* src/sie.c (_GD_SampIndWrite): Handle unaligned memory access.
2011-11-08 D. V. Wiebe <getdata@ketiltrout.net> svn:615
* test/add_scalar_carray.c: Added.
* src/add.c (_GD_Add): Copy scalar_ind when copying scalars. Patch from
S. J. Benton.
2011-11-08 D. V. Wiebe <getdata@ketiltrout.net> svn:614
* test/gzip_put_get.c test/gzip_move_to.c test/gzip_add.c
test/gzip_get_put.c test/gzip_put.c: Handle TEST_GZIP && !USE_GZIP.
* src/encoding.c (_GD_FiniRawIO): Don't change error code if already set.
* src/sie.c (_GD_SampIndSize): Fix descriptor leak.
2011-11-05 D. V. Wiebe <getdata@ketiltrout.net> svn:610
* test/gzip_put_get.c test/ascii_add.c test/get_rofs.c test/gzip_move_to.c
test/gzip_add.c test/endian_alter_sie.c test/gzip_get_put.c: Added.
* test/gzip_put.c: Update.
* m4/encoding.m4: Add a AC_CHECK_FUNCS call.
* src/slim.c (_GD_SlimOpen): Update for the (non-existant) slimdopen().
* src/getdata.h.in: Renamed GD_SEEK_PAD to GD_SEEK_WRITE to better reflect
its purpose.
* bindings/idl/getdata.c (gdidl_seek): Update keywords for same.
* src/flush.c (_GD_Flush): Add a third parameter, clo, to distinguish
sync from sync-and-close.
* src/flush.c (_GD_SyncOrClose): Renamed from gd_flush.
* src/flush.c (gd_sync gd_flush): Added.
* src/internal.h: Added _gd_raw_file.mode. Replaced encoding_t.ecor with
encoding_t.flags;
* src/encoding.c: Deleted touch, topen, tmove, tunlink from the encoding
framework. Changed signature of open and seek.
* src/encoding.c (_GD_MoveOver): Renamed from _GD_GenericTMove.
* src/encoding.c (_GD_FiniRawIO) src/fpos.c (_GD_WriteSeek): Added.
* src/gzip.c (_GD_GzipOpen _GD_GzipSeek _GD_GzipClose) src/encoding.c
(_GD_InitRawIO): Update for out-of-place writes.
* src/endian.c (_GD_ByteSwapFragment) src/name.c (gd_rename) src/flush.c
(_GD_Flush) src/encoding.c (_GD_RecodeFragment) src/del.c (gd_delete)
src/flimits.c (_GD_ShiftFragment): Use _GD_FiniRawIO to clean up.
* src/encoding.c (_GD_GenericTouch) src/ascii.c (_GD_AsciiTOpen
_GD_AsciiTUnlink) src/sie.c (_GD_SampIndTOpen _GD_SampIndTUnlink) src/raw.c
(_GD_RawTOpen _GD_RawTUnlink): Deleted.
* src/move.c (_GD_MogrifyFile) src/mod.c (_GD_Change): Use _GD_FiniRawIO and
_GD_InitRawIO.
* src/parse.c (_GD_ParseFieldSpec) add.c (_GD_Add): Use _GD_InitRawIO for
touch.
* src/gzip.c (_GD_GzipOpen) src/ascii.c (_GD_AsciiOpen) src/sie.c
(_GD_SampIndDoOpen _GD_SampIndOpen) src/raw.c (_GD_RawOpen): Handle temp file
opens.
* src/putdata.c (_GD_DoRawOut) src/fpos.c (_GD_Seek): Use _GD_WriteSeek.
* src/fpos.c (_GD_GetFilePos): Only try to open the file if necessary.
* src/gzip.c (_GD_GzipWrite _GD_GzipSync): Added.
2011-10-20 D. V. Wiebe <getdata@ketiltrout.net> svn:609
* test/get_here_foffs.c test/seek_foffs.c: Added.
* src/getdata.c (_GD_DoRaw): Update file->pos after calling FillZero.
* src/fpos.c (_GD_GetFilePos): Adjust for SPF.
* src/fpos.c (_GD_Seek): If seeking before FRAMEOFFSET, set file->pos < 0.
* bindings/python/pydirfile.c (gdpy_dirfile_seek): Fix type of frame_num,
sample_num.
* bindings/perl/typemap: off64_t is signed.
* bindings/f77/fgetdata.c (GDCONS GDMCOS GDSTRS GDMSTS GDSTRX GDMSTX):
Added.
* bindings/f77/getdata.f90.in (fgd_constants_i1 fgd_constants_i2
fgd_constants_i4 fgd_constants_i8 fgd_constants_r4 fgd_constants_r8
fgd_constants_c8 fgd_constants_c16 fgd_mconstants_i1 fgd_mconstants_i2
fgd_mconstants_i4 fgd_mconstants_i8 fgd_mconstants_r4 fgd_mconstants_r8
fgd_mconstants_c8 fgd_mconstants_c16 fgd_string_value_max fgd_strings
fgd_mstring_value_max fgd_mstrings): Added.
* bindings/idl/getdata.c (gdidl_getdata gdidl_putdata): Add /HERE.
* bindings/python/test/big_test.py bindings/cxx/test/big_test.cpp
bindings/perl/t/big_test.t bindings/f77/test/big_test.f
bindings/f77/test/big_test95.f90 bindings/idl/test/big_test.pro: Added tests
183-204.
2011-10-18 D. V. Wiebe <getdata@ketiltrout.net> svn:607
* man/gd_seek.3 man/gd_tell.3: Added.
* src/spf.c (gd_spf): Throw GD_E_DIMENSION on scalar field specified per
documentation.
* src/fpos.c (gd_tell64 gd_seek64): Ditto.
* src/putdata.c (_GD_DoFieldOut): Don't return on error from _GD_GetFilePos;
a better error will be generated later.
* bindings/make_parameters.c: Add GD_E_ARGUMENT, GD_SEEK_*, GD_HERE.
* bindings/python/pydirfile.c (gdpy_dirfile_seek gdpy_dirfile_tell)
bindings/cxx/dirfile.cpp (Dirfile::Seek Dirfile::Tell)
bindings/perl/simple_funcs.xsin (seek tell) bindings/f77/fgetdata.c (GDSEEK
GDTELL) bindings/f77/getdata.f90.in (fgd_seek fgd_tell)
bindings/idl/getdata.c (gdidl_seek gdidl_tell): Added.
2011-10-13 D. V. Wiebe <getdata@ketiltrout.net> svn:606
* test/entry_divide.c test/entry_recip.c test/get_here.c test/get_heres.c
test/put_here.c test/put_heres.c test/seek64.c test/seek_cur.c test/seek_end.c
test/seek_set.c test/tell.c test/tell64.c: Added.
* test/legacy_put.c test/put_complex128.c test/put_complex64.c
test/put_float32.c test/put_float64.c test/put_ff.c test/put_foffs.c
test/put_fs.c test/put_int16.c test/put_int32.c test/put_int64.c
test/put_int8.c test/put_lincom1.c test/put_linterp.c
test/put_linterp_reverse.c test/put_off64.c test/put_phase.c
test/put_polynom1.c test/put_recip.c test/put_sf.c test/put_ss.c
test/put_uint16.c test/put_uint32.c test/put_uint64.c: Don't perform
unnecessary tests in the event the data file wasn't created.
* src/getdata.h.in: Combine GD_E_BAD_ENDIANNESS and GD_E_BAD_PROTECTION into
GD_ARGUMENT. The former are kept as aliases of the new symbol.
* src/endian.c (gd_alter_endianness) src/errors.c src/protect.c
(gd_alter_protection): Update for GD_E_ARGUMENT.
* src/internal.h: Add .pos to _gd_raw_file. Add .u.index_pos to
_gd_private_entry.
* src/ascii.c (_GD_AsciiOpen _GD_AsciiSeek _GD_AsciiRead _GD_AsciiTOpen
_GD_AsciiTUnlink) src/gzip.c (_GD_GzipOpen _GD_GzipSeek _GD_GzipRead)
src/lzma.c (_GD_LzmaOpen _GD_LzmaSeek _GD_LzmaRead) src/sie.c
(_GD_SampIndOpen _GD_SampIndSeek _GD_SampIndRead _GD_SampIndWrite
_GD_SampIndTOpen) src/raw.c (_GD_RawOpen _GD_RawSeek _GD_RawRead
_GD_RawWrite _GD_RawTOpen): Track file position.
* src/encoding.c (_GD_InitRawIO): Added.
* src/getdata.c (_GD_DoRaw) src/putdata.c (_GD_DoRawOut): Call _GD_InitRawIO.
* src/fpos.c: Added.
* src/flimits.c (_GD_GetEOF): Publicise.
* src/getdata.c (gd_getdata64) src/putdata.c (gd_putdata64): Regularise use of
GD_HERE. Also, only call _GD_GetSPF when necessary.
* src/getdata.c (_GD_DoField) src/putdata.c (_GD_DoFieldOut): Resolve
instances of GD_HERE.
* bindings/python/Makefile.am bindings/cxx/Makefile.am
bindings/f77/Makefile.am: Remove some unnecessary linking.
* bindings/idl/package/Makefile.am: Add $(DEFS) to the make_parameters rule
to ensure it builds properly.
2011-08-23 D. V. Wiebe <getdata@ketiltrout.net> svn:600
* test/error_error.c: Simplify test.
* test/test.h (CHECKSp): Added.
* src/errors.c src/internal.h: Added GD_E_CREAT_OPEN.
* src/open.c (_GD_CreateDirfile): Distinguish GD_E_CREAT_DIR from
GD_E_CREAT_OPEN.
* src/internal.h: When linking to the MSVCRT, define GD_NO_DIR_OPEN to
indicate that the MSVCRT's open() prohibits openind directories. (This is
referred to as "the non-POSIX case".
* src/open.c (_GD_CreateDirfile): Take dirfile, a malloc'd copy instead of
filedir itself. In the non-POSIX case, this has the full pathname. Also,
handle non-POSIX computation of dirfd.
* src/open.c (gd_cbopen): In the non-POSIX case, prepend the CWD to filedir
if it's not absolute, and pass that string to _GD_CreateDirfile. Also need
to stat the directory in this case, in lieu of trying to open it.
* src/close.c (_GD_ShutdownDirfile): Don't try to close the dirfds in the
non-POSIX case.
* src/common.c (_GD_DirName): In the non-POSIX case, the dirfd parameter
simply contains the index into the dir array, so no need to search.
* src/common.c (_GD_GrabDir _GD_ReleaseDir): In the non-POSIX case, don't
try to open or close the directory: it just contains the index into dir, so
no need to search for it either.
* src/compat.c (gd_OpenAt): Or flags with O_BINARY for operation on Win32.
* src/open.c (gd_cbopen): Close dirfd on error.
* src/bzip.c (_GD_Bzip2Seek): Return -1 on error.
* src/internal.h (_GD_AbsPath): Added.
* src/internal.h (gd_swap64): Fix doubled backslashes.
* configure.ac: Fix perl check to properly exclude the bindings when
necessary.
2011-08-20 D. V. Wiebe <getdata@ketiltrout.net> svn:599
* src/open.c (gd_cbopen): Properly initialise bname; also check for malloc
errors.
* sie/sie.c (_GD_SampIndWrite): Update the current record to reflect the
updated position of the file pointer.
2011-08-20 D. V. Wiebe <getdata@ketiltrout.net> svn:597
* src/internal.h: Added bname to fragment struct holding the basename of the
file.
* src/open.c (gd_cbopen) src/include.c (_GD_Include): Initialise
fragment->bname.
* src/close.c (_GD_FreeD) src/include.c (gd_uninclude): Deallocate
fragment->bname.
2011-08-19 D. V. Wiebe <getdata@ketiltrout.net> svn:596
* src/open.c (gd_invalid_dirfile gd_cbopen): If allocating the DIRFILE
itself fails, return NULL instead of segfaulting.
* src/nmeta.c (gd_nmfields_by_type): Throw GD_E_BAD_ENTRY on encountering
GD_NO_ENTRY.
* src/index.c (gd_framenum_subset64): Throw GD_E_DIMENSION if the caller
supplies the field code for a scalar.
* src/errors.c: Added GD_E_BOUNDS and GD_E_LINE_TOO_LONG.
* src/encoding.c (_GD_ResolveEncoding): Don't segfault on malloc error.
* src/flimits.c (_GD_GetBOF): Throw GD_INTERNAL_ERROR instead of
GD_E_BAD_FIELD_TYPE when encountering GD_NO_ENTRY.
* src/parse.c (_GD_UTF8Encode): Renamed from utf8encode for consistency.
* src/sie.c (_GD_SampIndTUnlink) src/include.c (gd_uninclude): Use
gd_UnlinkAt instead of bare unlink().
* man/make_html.pl: Handle multiparagraph .TPs.
2011-08-11 D. V. Wiebe <getdata@ketiltrout.net> svn:595
* src/internal.h: In cases where no explicitly 64-bit stat struct can be
found, don't bother trying to use explicitly 64-bit stat functions.
2011-08-11 D. V. Wiebe <getdata@ketiltrout.net> svn:594
* test/sie_nframes_big.c test/sie_get_big.c test/sie_get_little.c
test/sie_nframes_little.c test/sie_move_to.c test/sie_put_little.c
test/sie_move_from.c test/sie_put_big.c: Added.
* configure.ac src/internal.h: Handle missing fstat64, ftruncate64, and byte
swapping routines.
* src/internal.h src/errors.c: Differentiate GD_E_UNKNOWN_ENCODING errors
arising from existing, unknown encodings on disk from errors arising from
attempts to convert to an unknown encoding.
* src/endian.c (_GD_FixEndianness): Use standard system byte-swapping
routines, where possible, with the assumption that they're not slower than
our old implementation.
* src/encoding.c: Redo the way _gd_ef is initialised to try and make it
a little easier to maintain.
* src/internal.h: In struct _gd_raw_file, rename .fp to .idata and .encoding
to .subenc to reduce code obfuscation.
* src/encoding.c: Added SIE encoding hooks.
* src/sie.c: Added.
* src/internal.h (_GD_FileSwapBytes): Added.
* src/internal.h: _gd_ef->open(), ->size(), ->touch(), and ->topen() now take
a "swap" parameter, indicating whether bytes are opposite-endian.
* src/internal.h: Split _gd_ef->temp() into ->topen, ->tmove, and ->tunlink.
Also typedef all the framework method prototypes.
* src/ascii.c (_GD_AsciiTOpen _GD_AsciiTUnlink) src/raw.c (_GD_RawTOpen
_GD_RawTUnlink): Added.
* src/ascii.c (_GD_AsciiTemp) src/raw.c (_GD_RawTemp): Deleted.
* src/encoding.c (_GD_GenericTMove): Added.
* src/endian.c (_GD_ByteSwapFragment) src/encoding.c (_GD_MissingFramework
_GD_RecodeFragment) src/move.c (_GD_MogrifyFile) src/flimits.c
(_GD_ShiftFragment) src/mod.c (_GD_Change): Replace _gd_ef->temp() calls with
t{open|move|unlink} calls.
* src/move.c (_GD_MogrifyFile) src/mod.c (_GD_Change): Call _GD_MakeTempFile
before calling _gd_ef->topen.
2011-08-10 D. V. Wiebe <getdata@ketiltrout.net> svn:593
* bindings/perl/t/big_test.t: Convert to TAP.
2011-06-13 D. V. Wiebe <getdata@ketiltrout.net> svn:588
* src/errors.c: Don't append strerror to the GD_E_CREAT_EXCL message.
* m4/perl.m4: Fix perl CFLAGS.
2011-05-05 D. V. Wiebe <getdata@ketiltrout.net> svn:587
* src/open.c (_GD_CreateDirfile): Handle missing fdopendir.
2011-05-05 D. V. Wiebe <getdata@ketiltrout.net> svn:586
* src/internal.h: The encoding framework has changed: open, touch, size,
move, unlink, and temp now all take the dirfd. Furthermore, to allow
operation on non-POSIX.1-2008 systems, we hide the DIRFILE pointer in
_gd_raw_file, so callback can be made to the compatibility layer. All
framework callers have been updated to pass dirfds. fragment->sname is no
longer malloc'd and is now marked const; also, fragments now carry their
dirfd. D->dir and D->ndir added.
* src/encoding.c (gd_MakeTempFile) src/compat.c (gd_OpenAt gd_RenameAt
gd_StatAt gd_StatAt64 gd_UnlinkAt) src/common.c (_GD_DirName
_GD_MakeFullPath _GD_GrabDir _GD_ReleaseDir): Added.
* src/open.c (gd_cbopen): Open the dirfile directory as soon as possible,
then work as much as possible with the descriptor instead of the path
itself.
* src/open.c (_GD_CreateDirfile): Use the dirfd produced by cb_open()
instead of relying on the pathname except with GD_CREAT. As a side effect,
no longer need to compute fullname when truncating.
* src/entry.c (_GD_FreeE): Release LUT directory. This requires passing the
DIRFILE to this function.
* src/close.c (_GD_FreeD): Don't free fragment->sname (it's no longer
malloc'd). Free D->dir.
* src/close.c (_GD_ShutdownDirfile): Close all open directories.
* src/flush.c (_GD_FlushFragment): Call gd_MakeTempFile instead of mkstemp.
* src/encoding.c (_GD_SetEncodedName): set file->D to the DIRFILE pointer,
so the encoding framework has access to it.
* src/encoding.c (_GD_ResolveEncoding): Take dirfd for I/O purposes.
* src/move.c (_GD_MogrifyFile): Consider changes in dirfd.
* src/parse.c (_GD_ParseRaw): E->e->u.raw.filebase is a copy of E->field
now, (and could be removed, except we'll need it shortly). The fragment
index (me) is no longer needed in this function.
* src/mod.c (_GD_Change): Release the LUT directory if it changes.
* src/include.c (_GD_Include): Open the grab the included fragment's
directory and store it in fragment->dirfd. fragment->sname is now just the
value returned by _GD_DirName, and not malloc'd.
* src/include.c (gd_uninclude): Release the directory.
* src/compat.c (mkstemp _GD_Rename): Removed.
* src/common.c (_GD_SetTablePath): Open the directory. table_path is
replaced with table_file.
* src/encoding.c (_GD_GenericTouch _GD_GenericUnlink _GD_GenericMove)
src/slim.c (_GD_SlimOpen _GD_SlimSize) src/gzip.c (_GD_GzipOpen _GD_GzipSize)
src/ascii.c (_GD_AsciiOpen _GD_AsciiSize _GD_AsciiTemp) src/lzma.c
(_GD_LzmaOpen _GD_LzmaSize) src/bzip.c (_GD_Bzip2Open _GD_Bzip2Size): Update
for changes in the encoding framework.
* src/slim.c (_GD_SlimOpen _GD_SlimSize): Slimlib doesn't accept file
descriptors, so compute the full path before calling it. This has the
potential for breakage.
* src/gzip.c (_GD_GzipOpen _GD_GzipSize): Use gzdopen instead of gzopen.
* src/lzma.c (_GD_LzmaDoOpen) src/bzip.c (_GD_Bzip2DoOpen): Use dirfd to
create stream.
* src/legacy.c (_GD_GetDirfile) src/name.c (gd_rename) src/encoding.c
(_GD_MissingFramework _GD_ResolveEncoding) src/move.c (gd_move)
src/include.c (_GD_Include) src/add.c (_GD_Add): Remove the FILENAME_MAX
crutch.
* src/add.c (_GD_Add): Fix memory leak of new_ref.
* src/entry.c (gd_raw_filename): Return a malloc'd string.
* configure.ac: Fix am__fastdepCXX_* for --disable-cplusplus. This is
presumably a autotools bug. Look for ...at() functions.
2011-04-21 D. V. Wiebe <getdata@ketiltrout.net> svn:581
* bindings/python/pydirfile.c (gdpy_dirfile_geterrorcount): Added.
* bindings/cxx/dirfile.cpp (Dirfile::ErrorCount): Added.
* bindings/f77/fgetdata.c (GDECNT): Added.
* bindings/f77/fgetdata.f90.in (fgd_error_count): Added.
* bindings/idl/getdata.c (gdidl_error_count): Added.
* bindings/perl/GetData.xs (gdp_to_entry): Fix initialisation of n for
LINCOM and POLYNOM.
* bindings/perl/GetData.pm.in: add constants and functions export tags.
* bindings/make_parameters.c (Perl): Don't insert unnecessary newlines.
* bindings/perl/Makefile.am: Use perl to generate funclist.sed.
2011-04-20 D. V. Wiebe <getdata@ketiltrout.net> svn:580
* test/error_num.c: Added.
* src/errors.c (gd_error_count): Added.
* man/gd_error_count.3: Added.
2011-04-06 D. V. Wiebe <getdata@ketiltrout.net> svn:574
* test/: Remove the unnecessarily baroque (rococo?) __TEST__ macro.
Add rmdirfile() to the top of each test before creating the test
dirfile. Shift definitions to the top of the files for C89 compliance.
A few other minor fixes.
* cmake/test/CMakeLists.txt: Remove __TEST__ (and __TEST_SLASH__?);
no longer needed.
* src/mod.c (gd_alter_crecip89): Accept cdividend=NULL for cdividend=(0,0)
2011-04-05 D. V. Wiebe <getdata@ketiltrout.net> svn:573
Merge in updates from 0.7 branch, r512 and subsequent:
* test/alter_crecip_zero.c test/alter_recip_zero.c: Added.
* src/mod.c (_GD_Change): If [c]dividend is zero, don't change it, per
documentation.
* src/encoding.c (_GD_MissingFramework): Properly compute the module path.
* src/flush.c (_GD_FieldSpec): For Standards Version >= 8, use new-style
metafield syntax.
* src/entry.c (gd_raw_filename): Clear dirfile error on entry.
* test/move_data_enc_ar.c test/entry_phase.c test/get_ss.c
test/alter_raw_type.c: Actually fail on error.
* m4/version.m4 configure.ac: Fix library soversion defines.
* m4/python.m4: Use the BSD `jot' if the Linux/Plan 9 `seq' is not found.
Also, look for python2.7. Added --with-python-module-dir.
* src/add.c (_GD_Add): strdup ref_name when propagating upwards to prevent
double-free when _GD_FreeD() is called.
* test/add_raw_include.c: Added.
* src/include.c (gd_include): If GD_CREAT is specified, but no encoding,
inherit encoding from parent.
* test/test.h: Explicitly use long long format types in the checks. Write
paths properly under WIN32/WIN64.
* src/legacy.c (GetFormat): Fix memset call.
* src/common.c (_GD_GetLine): Remove unused first_char.
* src/raw.c (_GD_RawSeek): nread is a ssize_t.
* bindings/python/pydirfile.c (gdpy_dirfile_putcarray): Remove unused ns.
* bindings/f77/test/big_test.f bindings/f77/test/big_test95.f90
bindings/f77/test/gdcopn.f bindings/f77/getdata.f90.in: Explicity specify
constant kinds to stop the ridiculous complaints from Fedora's gfortran.
* bindings/idl/Makefile.am: Don't needlessly rebuild sublist.c.
* src/getdata.h.in: Replace #undefs with @DEFINE_...@ tokens. Define
gd_off64_t instead of polluting the namespace. Remove MSCRT specal casing
for the gd_*int*_t types.
* configure.ac: Update for changes to getdata.h.in. Run getdata.h.in
through config.status twice, first as an AC_CONFIG_FILE to replace all the
@DEFINE...@s, second as an AC_CONFIG_HEADER as a NOP, just to get the change
check.
* cmake/CMakeLists.txt: Add DEFINE_... variables.
* configure.ac: Check for _strtoi64() and _strtoui64()
* src/internal.h: Use MSCRT's _strto[u]i64 for strto[u]ll when found.
* cmake/CMakeLists.txt: Add -DHAVE__STRTOI64 -DHAVE__STRTOUI64
* test/parse_include_absrel.c test/parse_include_relabs.c
test/parse_include_absolute.c: Free cwd.
* configure.ac: check for "slimdata" in addition to "slim", which is what
the binary is called under Fedora.
* m4/encoding.m4 (GD_CHECK_ENCODING): Handle multiple binary names in $5 and
$6.
* src/parse.c (_GD_ParseFieldSpec): Fix GD_E_FORMAT_DUPLICATE error data.
* src/internal.h: Define S_ISREG and S_ISDIR if missing.
* test/parse_include_absolute.c test/parse_include_absrel.c
test/parse_include_relabs.c test/parse_include_relrel.c: Added.
* src/include.c (_GD_Include): Handle absolute paths in /INCLUDE directives.
The sname now contains D->name when appropriate.
* src/add.c (_GD_Add) src/parse.c (_GD_ParseRaw) src/move.c (gd_move): Fix
computation of filebase for new sname.
2011-03-25 D. V. Wiebe <getdata@ketiltrout.net> svn:566
* src/perl.m4: Added.
* configure.ac: Perl tests.
* bindings/make_parameters.c (Perl): Added.
* Bindings/perl: Added.
2011-03-25 D. V. Wiebe <getdata@ketiltrout.net> svn:561
* util/checkdirfile.c: Zero-terminate option list. Patch from Matthew
Truch.
2011-03-22 Peter Kümmel <syntheticpp@gmx.net> svn:538
* merge from 0.7 branch strtoll/strtoull replacement with gd_* functions
2011-03-17 Peter Kümmel <syntheticpp@gmx.net>
* use _stat64 and struct _stat64 with msvc
* fix tests by removing the content of dirfile
* guard definitions of macros in C++ binding
* build tests with C89 API
2011-03-03 D. V. Wiebe <getdata@ketiltrout.net> svn:510
* m4/idl.m4: Munge IDL_LIBS to convert "-m <arg>" into "-m<arg>" since
libtool seems to delete <arg> if that's not the case.
* m4/version.m4: Added.
* bindings/idl/package: Added.
* bindings/idl/Makefile.am bindings/idl/getdata.c: Update for external build.
* configure.ac: Shipped version stuff off into m4/version.m4
* Makefile.am: Add rules for making idl_getdata package.
* bindings/idl/makedlm.sh.in: Handle missing keyword "KEYWORD" better.
2011-02-26 D. V. Wiebe <getdata@ketiltrout.net> svn:507
* m4/python.m4 m4/encoding.m4 m4/idl.m4 configure.ac: Fix double quoting
of brackets.
* m4/win32.m4 m4/idl.m4: Fix some non-critical errors for OS X 10.5.
* src/configure.ac: Added --with-module-dir.
* src/Makefile.am: Install modules in $moduledir. -DGETDATA_MODULEDIR.
* src/encoding.c (_GD_MissingFramework): Look for modules in
GETDATA_MODULEDIR, but fall back to the default searchpath if that fails.
Also removed support for unversioned modules.
* bindings/python/test/big_test.py: Instead of whining, just delete the
dirfile at the end.
* src/encoding.c (_GD_MissingFramework): Release the mutex and zero
_gd_ef[].provides on failure to find a module.
2010-12-13 Peter Kümmel <syntheticpp@gmx.net> svn 499 - 504
* cmake folder: CMake build system for Windows using MinGW or MS Visual Studio
* src/msvc: files not available in MSVC, patched MinGW files
* src/getdata.h.in: patches for MinGW and MSVC
2010-12-08 D. V. Wiebe <getdata@ketiltrout.net> svn:498
* src/getdata.h.in: Add meaningless stuff after #undef's to appease msys's
config.status.
2010-12-08 D. V. Wiebe <getdata@ketiltrout.net> svn:497
* m4/encoding.m4: Replace TEST_<foo> AM_CONDITIONALs with a preprocessor
symbols.
* test/Makefile.am: Remove TEST_<foo> conditionals.
* test/gzip_move_from.c test/bzip_get_get.c test/gzip_get_get.c
test/gzip_get.c test/xz_nframes.c test/slim_nframes.c test/lzma_nframes.c
test/slim_get.c test/lzma_get.c test/bzip_move_from.c test/xz_get.c: If
helper binaries are unavailable, just skip these tests.
* test/test.h: MSVC mkdir() patch from Peter Kümmel.
2010-12-07 D. V. Wiebe <getdata@ketiltrout.net> svn:494
MSVC fixes from Peter:
* test/*.c: Remove unistd.h include. (It will be included in internal.h
when needed.)
* src/flush.c: No need to make the GD_VERS_* macros long longs.
* src/putdata.c (_GD_DoConstOut): Cast to char* before performing pointer
arithmetic.
* src/mod.c (_gd_max): Renamed from max for better encapsulation.
* src/internal.h: Conditionalise inclusion of non-ANSI unistd.h and stdint.h.
Various _MSC_VER specific code. Also, define gd_stat64 and gd_stat64_t to
plausibly useful things by default.
* src/getdata.h.in: Remove unistd.h. Add math.h and some _MSC_VER specific
code. (There are still unresolved MSVC issues with this file.)
* bindings/cxx/*.cpp: Fix constructor inhertiance.
* configure.ac: Check for unistd.h and stdint.h.
2010-12-06 D. V. Wiebe <getdata@ketiltrout.net> svn:493
GetData-0.7.1 released.
2010-11-30 D. V. Wiebe <getdata@ketiltrout.net> svn:488
GetData-0.7.1rc1:
* src/del.c (gd_delete): Fix order of tests to avoid accessing out-of-bounds
memory.
* src/parse.c (_GD_ParseDirective): Don't update the version list if
_GD_Include failed.
* src/common.c (_GD_GetRepr): Don't attempt to find a representation suffix
on field codes which are too short to contain them.
* src/add.c (_GD_Add): Zero memory allocated for a CARRAY or CONST so
behaviour is deterministic when creating these fields via gd_[m]add().
2010-11-28 D. V. Wiebe <getdata@ketiltrout.net> svn:487
* src/ test/ bindings/: Separate declarations from statements;
* src/common.c (_GD_SetTablePath): Don't use fixed length buffers.
2010-11-27 D. V. Wiebe <getdata@ketiltrout.net> svn:486
* bindings/cxx/test/big_test.cpp: Delete stuff.
2010-11-27 D. V. Wiebe <getdata@ketiltrout.net> svn:485
* test/alter_polynom_coeff.c test/include_ignore.c test/alter_entry.c
test/entry_linterp.c test/entry_multiply.c test/move_data_enc_ar.c
test/gzip_move_from.c test/include_ref.c test/global_name.c
test/entry_phase.c test/move_data_foffs.c test/entry_raw_scalar.c
test/alter_entry_scalar3.c test/move_data_endian.c test/move.c
test/entry_raw.c test/move_data_nop.c test/alter_entry_scalar4.c
test/entry_polynom_scalar.c test/move_index.c test/header_complex.c
test/alter_entry_recode.c test/entry_bit_scalar.c test/entry_scalar_repr.c
test/entry_polynom.c test/file.c test/entry_lincom.c test/name_move.c
test/fragment_name.c test/move_data_enc_ra.c test/move_protect.c
test/alter_entry_scalar2n.c test/move_subdir.c test/entry_lincom_scalar.c
test/entry_phase_scalar.c test/alter_crecip89.c test/bzip_move_from.c
test/move_meta.c test/name.c test/entry_bit.c test/alter_entry_scalar2a.c
test/alter_linterp.c test/global_ref_set.c test/global_ref.c
test/include_auto.c: Free strings.
* test/trunc_rofs.c test/open_notdirfile.c test/open_nonexistent.c: Close
dirfiles.
* src/entry.c (_GD_FreeE): Free LUT.
* src/open.c (_GD_CreateDirfile): Close DIR after truncation.
* src/close.c (_GD_FreeD): Free dot list.
* src/getdata.c (_GD_DoRaw) src/putdata.c (_GD_DoRawOut): Free databuffer on
error.
* src/lzma.c (_GD_LzmaSize) src/bzip.c (_GD_Bzip2Size): Close file.
* src/move.c (_GD_MogrifyFile): Free new_filebase if necessary.
* src/parse.c (_GD_ParseFieldSpec): Free entry on duplicate field name.
* src/mod.c (_GD_Change): Transfer the old file structure to the new entry
in the case of RAW fields. Don't forget to free the old CONST storage, if
necessary.
* src/include.c (gd_include): Always free ref_name.
* src/raw.c (_GD_RawTemp): Call the right close function on error.
* src/mod.c (gd_alter_crecip89): For some reason, intialise scalar_ind[0].
* src/parse.c (_GD_ParseFragment _GD_ParseFieldSpec): Handle GD_IGNORE_DUPS
inside _GD_ParseFieldSpec, which eliminates the spurious error message if
GD_VERBOSE is given.
2010-11-26 D. V. Wiebe <getdata@ketiltrout.net> svn:484
* test/ascii_get_get.c: Added.
* src/ascii.c (_GD_AsciiRead): Update fp as necessary so we don't get lost.
* bindings/python/pygetdata.c (gdpy_convert_from_pylist): Don't type-pun
the return array into a gdpy_quadruple_value.
* src/open.c (gd_cbopen): Don't allocate error string buffers.
* src/errors.c (_GD_SetError): Use strdup to copy error strings.
* bindings/f77/fgetdata.c (GDASCA): Clean-up.
* src/del.c (gd_delete): Alloc the correct del_list for metafields.
* src/common.c (_GD_GetLine): Deallocate the line before returning NULL.
* src/entry.c (_GD_FreeE): Free p.meta_entry when appropriate.
* src/nan.h: Added.
* src/internal.h: Removed NAN code.
* util/dirfile2ascii.c: Add missing -u option. Allow cart-before-horse
arguments (ie. "dirfile2ascii -e field dirfile"). Handle running past the
end-of-field nicelier (added -z option). Complain on no dirfile.
2010-11-22 D. V. Wiebe <getdata@ketiltrout.net> svn:480
GetData 0.7.0 released.
2010-11-20 D. V. Wiebe <getdata@ketiltrout.net> svn:478
* bindings/idl/getdata.c: Properly terminate IDL keyword lists.
2010-11-17 D. V. Wiebe <getdata@ketiltrout.net> svn:476
* bindings/python/pydirfile.c (gdpy_dirfile_init)
bindings/cxx/getdata/dirfile.h: Open dirfiles read-only by default (for
compatibility with the C API.
2010-11-16 D. V. Wiebe <getdata@ketiltrout.net> svn:475
* bindings/python/pydirfile.c (gdpy_dirfile_getdata): If neither num_samples
or num_frames are specified, raise ValueError.
2010-11-06 D. V. Wiebe <getdata@ketiltrout.net> svn:473
GetData-0.7.0rc4:
* src/errors.c (_GD_SetError): Rename variable.o
* bindings/python/pygetdata.c (gdpy_type_from_npytype): Explicitly cast the
computed types.
2010-11-06 D. V. Wiebe <getdata@ketiltrout.net> svn:472
* src/ascii.c (_GD_AsciiOpen _GD_AsciiSize _GD_AsciiTemp) src/common.c
(_GD_ReadLinterpFile): Open text files in binary mode.
* src/internal.h: Define EOVERFLOW if necessary. Also handle missing
fseeko64 and ftello64.
* src/compat.c (getdelim): Work around the bizarre behaviour of MSVCRT's
standard I/O.
2010-11-06 D. V. Wiebe <getdata@ketiltrout.net> svn:470
* src/getdata.h.in: Rename 'cons' to 'scalar' in the unified entry struct.
* src/internal.h: Remove GD_ANON from the private entry struct.
2010-11-06 D. V. Wiebe <getdata@ketiltrout.net> svn:469
* bindings/python/test/big_test.py bindings/cxx/test/big_test.cpp
bindings/f77/test/big_test.f bindings/f77/test/big_test95.f90
bindings/idl/test/big_test.pro: Added tests 158 through 181.
* test/put_carray_slice.c test/cvlist_array_meta.c test/del_carray.c
test/get_carray_slice.c test/cvlist_array.c test/del_carray_deref.c
test/nmeta_vectors_del.c test/get_carray.c test/parse_carray.c
test/madd_carray.c test/add_carray.c test/put_carray.c test/get_carray_len.c
test/parse_carray_long.c test/alter_carray_len.c test/alter_carray_type.c:
Added.
* test/madd.c: Remove gd_get_constant call.
* test/parse_const.c: Actually test what is advertised.
* bindings/python/pydirfile.c (gdpy_dirfile_getcarray gdpy_dirfile_carraylen
gdpy_dirfile_carrays gdpy_dirfile_mcarrays gdpy_dirfile_putcarray)
bindings/python/pyentry.c (gdpy_entry_getarraylen gdpy_entry_setarraylen):
Added.
* bindings/python/pyentry.c (gdpy_set_entry_from_tuple
gdpy_set_entry_from_dict gdpy_entry_getinfields gdpy_entry_getdatatypename
gdpy_entry_getdatatype): Update for CARRAY.
* bindings/cxx/bitentry.cpp (BitEntry::ScalarIndex) bindings/cxx/entry.cpp
(scalar_ok Entry::ScalarIndex Entry::SetScalar) bindings/cxx/lincomentry.cpp
(LincomEntry::ScalarIndex) bindings/cxx/dirfile.cpp (Dirfile::Carrays
Dirfile::CarrayLen Dirfile::MCarrays Dirfile::GetCarray Dirfile::PutCarray)
bindings/cxx/polynomentry.cpp (PolynomEntry::ScalarIndex)
bindings/cxx/sbitentry.cpp (SBitEntry::ScalarIndex)
bindings/cxx/getdata/rawentry.h (ScalarIndex)
bindings/cxx/getdata/recipentry.h (ScalarIndex): Added.
* bindings/cxx/bitentry.cpp (BitEntry::SetFirstBit BitEntry::SetNumBits)
bindings/cxx/lincomentry.cpp (LincomEntry::SetScale LincomEntry::SetOffset)
bindings/cxx/polynomentry.cpp (PolynomEntry::SetCoefficient)
bindings/cxx/phaseentry.cpp (PhaseEntry::SetShift)
bindings/cxx/sbitentry.cpp (SBitEntry::SetFirstBit SBitEntry::SetNumBits)
bindings/cxx/recipentry.cpp (RecipEntry::SetDividend):
Call Entry::SetScalar.
* bindings/cxx/entry.cpp (Entry::Scalar): Call scalar_ok.
* bindings/cxx/carrayentry.cpp bindings/cxx/getdata/carrayentry.h: Added.
* bindings/cxx/dirfile.cpp (Dirfile::ErrorString): Let the C library malloc
the string. Also added a prototype with no parameters.
* bindings/f77/fgetdata.c (GDGECA GDADCA GDGTCA GDGCAS GDCALN GDPTCA GDPCAS
GDALCA):
* bindings/f77/fgetdata.c (GDGTCO GDPTCO): Removed the returned integer.
* bindings/f77/fgetdata.c (GDGSCA GDASCA): Deal with scalar index.
* bindings/f77/getdata.f90.in (fgd_get_constant_n fgd_get_constant_i1
fgd_get_constant_i2 fgd_get_constant_i4 fgd_get_constant_i8
fgd_get_constant_r4 fgd_get_constant_r8 fgd_get_constant_c8
fgd_get_constant_c16 fgd_put_constant_i1 fgd_put_constant_i2
fgd_put_constant_i4 fgd_put_constant_i8 fgd_put_constant_r4
fgd_put_constant_r8 fgd_put_constant_c8 fgd_put_constant_c16): Convert to
subroutines.
* bindings/f77/getdata.f90.in (fgd_entry fgd_add fgd_madd fgd_alter_entry):
Update for CARRAY.
* bindings/f77/getdata.f90.in (fgd_get_carray_n fgd_get_carray_i1
fgd_get_carray_i2 fgd_get_carray_i4 fgd_get_carray_i8 fgd_get_carray_c16
fgd_put_carray_i1 fgd_put_carray_i2 fgd_put_carray_i4 fgd_put_carray_i8
fgd_put_carray_r4 fgd_put_carray_r8 fgd_put_carray_c8 fgd_put_carray_c16
fgd_carray_len fgd_add_carray fgd_madd_carray fgd_alter_carray): Added.
* bindings/idl/getdata.c (gdidl_make_idl_entry): Update for CARRAY.
* bindings/idl/getdata.c (gdidl_add_const): fix handling of data values
* bindings/idl/getdata.c (gdidl_add_carray gdidl_alter_carray
gdidl_get_carray gdidl_carray_len gdidl_put_carray): Added.
* bindings/idl/getdata.c (gdidl_getdata): Free data on error.
* bindings/idl/getdata.c (gdidl_get_constant): Free data on return.
* src/interna.h: Replace the const data union with a void pointer.
* src/getdata.h.in: Define GD_MAX_CARRAY_LENGTH.
* src/common.c (_GD_GetLine): Call getdelim. Return string length not
string itself.
* src/parse.c (_GD_ParseFragment): Handle n_cols < 2. Raise
GD_E_LINE_TOO_LONG on overflow.
* src/parse.c (_GD_ParseFragment) mod.c (gd_alter_spec gd_malter_spec)
src/add.c (gd_add_spec gd_madd_spec): Don't provide buffers for instring and
outstring: they will be malloc'd by others.
* src/parse.c (_GD_Tokenise): Dynamically allocate outstring. Also,
remember position, so tokenising can resume.
* src/parse.c (_GD_ParseFieldSpec _GD_ParseDirective): Pass through tok_pos
and outstring.
* src/compat.c (getdelim): Added.
* src/parse.c (_GD_ParseFragment): Permit the parser callback to re-malloc
pdata.line. Also pass it the current length of pdata.line.
* src/entry.c (_GD_FreeE) src/nmeta.c (gd_nmvectors gd_nmfields_by_type)
src/close.c (_GD_FreeD) src/flush.c (_GD_FieldSpec) src/nfields.c
(gd_nvectors gd_nfields_by_type) src/native.c (_GD_NativeType) src/del.c
(gd_delete) src/parse.c (_GD_ParseFieldSpec) src/mod.c (_GD_Change)
src/add.c (_GD_Add): Update for CARRAY.
* src/getdata.c (_GD_DoConst) src/putdata.c (_GD_DoConstOut) src/flush.c
(_GD_WriteConst): Handle both CONST and CARRAY.
* src/constant.c (gd_get_carray_slice gd_get_carray gd_carray_len
gd_put_carray_slice gd_put_carray) src/parse.c (_GD_ConstType
_GD_ParseCarray) gd_field_lists (gd_carrays) src/mod.c (gd_alter_carray)
src/meta_list.c (gd_mcarrays) src/add.c (gd_add_carray gd_madd_carray): Added.
* src/parse.c (_GD_ParseConst): Storage for constant value is now dynamic.
* src/del.c (gd_delete): Update parent when deleting a metafield.
* src/ascii.c (_GD_AsciiSize) src/common.c (_GD_ReadLinterpFile): Call
getdelim.
* src/flush.c (_GD_FlushFragment): Skip writing and /ENCODING directive if
not known.
* src/errors.c (gd_error_string): malloc a suitably sized buffer for the
string if passed buffer=NULL.
* src/name.c (gd_rename) src/del.c (gd_delete) src/include.c (gd_uninclude):
Invalidate the field lists.
* src/flush.c (_GD_StringEscapeise _GD_PadField) _GD_FieldSpec: Write directly
to the stream, rathen than an intermediate buffer.
* src/entry.c (_GD_GetScalar) parse.c (_GD_SetScalar) src/mod.c
(_GD_AlterScalar): Handle the scalar index.
* src/legacy.c (_GD_CopyGlobalError): Dynamically handle error strings, rather
than using _GD_GlobalErrorString and _GD_GlobalErrorFile.
2010-10-28 D. V. Wiebe <getdata@ketiltrout.net> svn:468
* src/legacy.c (GetFormat): Fix counting of POLYNOM fields.
2010-10-22 D. V. Wiebe <getdata@ketiltrout.net> svn:463
GetData-0.7.0rc3:
* src/parse.c (_GD_ParseDirective): Update passed flags, not D->flags after
/INCLUDE.
* src/common.c (lutcmp): Don't rely on typecasting to retain the -0+
distiction.
2010-10-22 D. V. Wiebe <getdata@ketiltrout.net> svn:462
* configure.ac m4/encoding.m4: Compute PRIVATE_LIBS
* src/getdata.pc: Correct private libs.
2010-10-22 D. V. Wiebe <getdata@ketiltrout.net> svn:461
* bindings/python/test/big_test.py bindings/cxx/test/big_test.cpp
bindings/f77/test/big_test.f bindings/f77/test/big_test95.f90
bindings/idl/test/big_test.pro: Added tests 156 and 157.
* bindings/python/pydirfile.c (gdpy_dirfile_init): Allow name=None to create
an invalid dirfile.
* bindings/python/pydirfile.c (gdpy_dirfile_close gdpy_dirfile_discard):
Don't check dirfile error on success.
* bindings/python/pygetdata.c: Add missing exceptions.
* bindings/python/pydirfile.c bindings/python/pyfragment.c: Update docs.
* bindings/make_parameters.c: GD_ARM_ENDIAN and GD_NOT_ARM_ENDIAN are type 2
constants. Exclude unnecessary constants in Python and IDL. GD_VERSION_*
added.
* bindings/cxx/dirfile.cpp (Dirfile::Dirfile): Create the invalid dirfile
using gd_invalid_dirfile().
* bindings/python/pydirfile.c (gdpy_dirfile_getstandards
gdpy_dirfile_setstandards) bindings/f77/fgetdata.c (GDINVD GDSTDV)
bindings/f77/getdata.f90.in (fgd_invalid_dirfile fgd_dirfile_standards)
bindings/idl/getdata.c (gdidl_invalid_dirfile gdidl_dirfile_standards)
bindings/cxx/dirfile.cpp (Dirfile::Standards): Added.
* bindings/idl/getdata.c: Fix for GD_NOT_ARM_ENDIAN.
2010-10-21 D. V. Wiebe <getdata@ketiltrout.net> svn:460
* test/endian_get.c: Test ARM endianness.
* bindings/python/test/big_test.py bindings/cxx/test/big_test.cpp
bindings/f77/test/big_test.f bindings/f77/test/big_test95.f90
bindings/idl/test/big_test.pro: Fix test 79 on middle-ended platforms.
* src/getdata.h.in: Added GD_NOT_ARM_ENDIAN and conditionally figure out
whether it or GD_ARM_ENDIAN should be zero.
* bindings/make_parameters.c: Added GD_NOT_ARM_ENDIAN.
* src/internal.h: compute GD_ARM_FLAG.
* src/endian.c (_GD_ByteSwapFragment) src/open.c (gd_cbopen) src/getdata.c
(_GD_DoRaw) src/flush.c (_GD_FlushFragment) src/putdata.c (_GD_DoRawOut)
src/parse.c (_GD_ParseDirective): Fix handling of ARM flag.
* src/move.c (_GD_MogrifyFile): Only apply the ARM fix to double precision
data. Also fixed the count in byte swapping calls.
* src/flush.c (_GD_FindVersion): Fix logic for ARM endianness. Fix ordering
of fragment metadata tests.
* src/flush.c (_GD_FindVersion) src/errors.c: Better script for
GD_E_BAD_VERSION. Differentiate between a non-conformant dirfile and an
invalid version number.
2010-10-20 D. V. Wiebe <getdata@ketiltrout.net> svn:459
* test/version_5.c: Fix for WORDS_BIGENDIAN.
* src/getdata.c (_GD_DoRaw) src/putdata.c (_GD_DoRawOut): Fix
_GD_FixEndianness test.
* src/flush.c (_GD_FindVersion): Native byte sex is assumed in early versions.
2010-10-19 D. V. Wiebe <getdata@ketiltrout.net> svn:457
* legacy.c (_GD_GetDirfile): On error, set *error_code (now passed as a
parameter), copy the error, discard the bad dirfile, and return NULL.
2010-10-18 D. V. Wiebe <getdata@ketiltrout.net> svn:456
GetData-0.7.0rc2:
* encoding.c (_GD_ResolveSymbol _GD_MissingFramework): Fix types for
USE_MODULES.
2010-10-17 D. V. Wiebe <getdata@ketiltrout.net> svn:455
GetData-0.7.0rc1:
* configure.ac: update library interface numbers. Removed
--disable-checkdirfile.
* MEWS: Update.
2010-10-16 D. V. Wiebe <getdata@ketiltrout.net> svn:453
* configure.ac: Generate Makefiles even for bindings we're not using (so we
can still run maintainer tasks on them.)
2010-10-16 D. V. Wiebe <getdata@ketiltrout.net> svn:452
* src/getdata.h.in: Keep anonymous structs and unions in C99-mode.
* src/internal.h: Helper macros for C99/C89 differences.
* test/ src/ bindings/: Update for changes.
2010-09-18 D. V. Wiebe <getdata@ketiltrout.net> svn:448
* bindings/python/pydirfile.c (gdpy_dirfile_close gdpy_dirfile_discard)
bindings/cxx/dirfile.cpp (Dirfile::Discard Dirfile::Close)
bindings/f77/fgetdata.c (_GDF_InitDirfiles) bindings/idl/getdata.c
(gdidl_init_dirfile): Call gd_invalid_dirfile() instead of using
GetData C internals.
* src/open.c (gd_invalid_dirfile): Added.
* bindings/cxx/: Declare const member functions.
* configure.ac: Fix mkdir check for C++ compilers masquerading as C
compilers.
* src/legacy.c: Humanely initialise _GD_GlobalErrors when possible.
2010-09-17 D. V. Wiebe <getdata@ketiltrout.net> svn:447
* test/Makefile.am src/Makefile.am bindings/python/Makefile.am
bindings/cxx/Makefile.am bindings/f77/test/Makefile.am
bindings/f77/Makefile.am bindings/idl/Makefile.am util/Makefile.am: Remove
hardcoded -Wall.
* m4/compiler.m4 (GD_PROG_CC_WALL GD_PROG_CXX_WALL GD_PROG_FC_WALL
GD_PROG_F77_WALL): Added.
* configure.ac: Check whether the compilers accept -Wall
* bindings/cxx/big_test.cpp: Fix for renamed functions.
2010-09-15 D. V. Wiebe <getdata@ketiltrout.net> svn:446
* bindings/cxx/dirfile.cpp (Dirfile::EoF Dirfile::BoF): Renamed.
2010-09-11 D. V. Wiebe <getdata@ketiltrout.net> svn:445
* bindings/f77/fgetdata.c (GDFNSS): Don't call the explicitly 64-bit
version of gd_framenum_subset.
* util/dirfile2ascii.c: Unroll type_data initialisation some more.
2010-09-11 D. V. Wiebe <getdata@ketiltrout.net> svn:444
* test/ src/ bindings/ util/: ANSI-C-ify.
* src/getdata.h.in: Define GD_NO_C99_API when the C99-compliant API has been
disabled at build time.
* src/getdata.h.in src/internal.h: ANSI C does not permit anonymous union
and structures, so name all the sub-bits of gd_entry_t and gd_private_entry.
* src/getdata.h.in: Encompass everything in an extern "C" block
for C++ compilers.
* src/: include gd_throw in definition of functions.
* src/debug.c src/common.c src/Makefile.am: Move gd_col_count and
gd_debug_col to common.c to remove the need for GDLIB.
* test/legacy_get_rofs.c test/legacy_get.c test/legacy_nonexistent.c
test/legacy_put.c: Fix skip test.
* test/flush_spec.c: Skip the blank line.
* test/slim_nframes.c: Add missing r.
* bindings/idl/test/Makefile.am: Use DL_LIBRARY_PATH in TESTS_ENVIRONMENT.
* configure.ac: Add --enable-ansi-c, which will disable Python and IDL.
A fail of AC_PROG_CC_C99 will also cause this to be asserted.
* configure.ac: Fix lfs_transitional_api check.
2010-08-10 D. V. Wiebe <getdata@ketiltrout.net> svn:443
* src/common.c (_GD_BadInput): Check the propper entry for scalarness.
2010-08-10 D. V. Wiebe <getdata@ketiltrout.net> svn:442
* bindings/cxx/getdata/linterpentry.h bindings/cxx/getdata/bitentry.h
bindings/cxx/getdata/entry.h bindings/cxx/getdata/sbitentry.h: Remove
__gd_unused.
* src/endian.c (_GD_ByteSwapFragment) src/encoding.c (_GD_RecodeFragment)
src/move.c (gd_move) src/flimits.c (_GD_ShiftFragment) src/mod.c
(_GD_Change) src/globals.c (gd_reference) src/add.c (_GD_Add gd_madd_spec
gd_add_spec): Clear GD_HAVE_VERSION.
* src/mod.c (gd_alter_spec gd_malter_spec): Use the standards version of the
open dirfile rather than GD_DIRFILE_STANDARDS_VERSION.
* src/include.c (gd_include): Calculate the opend dirfile's version if
necessary, and use this instead of GD_DIRFILE_STANDARDS_VERSION. Clear
GD_HAVE_VERSION at the end.
* src/getdata.c (gd_getdata64) src/putdata.c (gd_putdata64) src/flimits.c
(_GD_GetEOF _GD_GetBOF): Return GD_E_DIMENSION instead of GD_E_BAD_FIELD_TYPE
on scalar field.
* src/errors.c: Add GD_E_DIMENSION errors.
* src/internal.h: Add GD_E_DIMENSION suberrors.
* src/getdata.h.in src/errors.c: Rename GD_E_OPEN_INCLUDE to
GD_E_OPEN_FRAGMENT.
* bindings/make_parameters.c: Add GD_E_OPEN_FRAGMENT (in addition to the
legacy GD_E_OPEN_INCLUDE, which remains).
* src/getdata.h.in configure.ac: Rename GETDATA_LEGACY_API,
NO_GETDATA_LEGACY_API, GETDATA_C89_API, GETDATA_FUNCTION_ALIASES,
DIRFILE_STANDARDS_VERSION to GD_LEGACY_API, GD_NO_LEGACY_API, GD_C89_API,
GD_FUNCTION_ALIASES, GD_DIRFILE_STANDARDS_VERSION.
* util/checkdirfile.c: Fix pluralisations.
2010-07-20 D. V. Wiebe <getdata@ketiltrout.net> svn:441
* src/flush.c (_GD_FlushMeta gd_metaflush gd_rewrite_fragment): Return error
on read-only dirfile.
2010-07-20 D. V. Wiebe <getdata@ketiltrout.net> svn:440
* util/checkdirfile.c: Fix reporting of conformant Standards Versions.
2010-07-20 D. V. Wiebe <getdata@ketiltrout.net> svn:439
* test/version_0_write.c test/version_1_write.c test/version_2_write.c
test/version_3_write.c test/version_4_write.c test/version_5_write.c
test/version_6_write.c test/version_7_write.c test/version_8_write.c: Added.
* bindings/python/test/big_test.py bindings/cxx/test/big_test.cpp
bindings/f77/test/big_test95.f90 bindings/f77/test/big_test.f
bindings/idl/test/big_test.pro: Add test 155.
* bindings/python/pyfragment.c (gdpy_fragment_rewrite): Added.
* bindings/cxx/fragment.cpp (Fragment::ReWrite): Added.
* bindings/f77/fgetdata.c (GDRFRG): Added.
* bindings/f77/getdata.f90.in (fgd_rewrite_fragment): Added.
* bindings/idl/getdata.c (gdidl_gd_rewrite_fragment): Added.
* src/flush.c (_GD_OldTypeName): Added
* src/flush.c (_GD_StringEscapeise _GD_PadField): Avoid escaping on early
versions.
* src/flush.c (_GD_FieldSpec _GD_FlushFragment): Write the specified version
metadata.
* src/flush.c (_GD_FlushMeta): Add force parameter.
* src/flush.c (gd_rewrite_fragment): Added.
* src/flush.c (_GD_FindVersion): Remove the REFERENCE check: it can be
wrong.
2010-07-17 D. V. Wiebe <getdata@ketiltrout.net> svn:438
* test/version_0.c test/version_1.c test/version_2.c
test/version_3.ctest/version_4.c: Weed out version 8.
* test/add_spec_directive.c: The test works again in version 8, so try it in
version 7.
* test/version_8_strict.c: Test syntax removed in version 8.
* bindings/idl/getdata.c (gdidl_gd_alter_endianness gdidl_gd_include
gdidl_gd_open): Handle ARM_ENDIAN and PERMISSIVE.
* bindings/make_parameters.c: Add GD_ARM_ENDIAN and GD_PERMISSIVE.
* src/add.c (gd_madd_spec gd_add_spec): Use the current version rather than
DIRFILE_STANDARDS_VERSION when calling the parser.
* src/name.c (_GD_ValidateField): Allow directives as field names in version 8
* src/endian.c (_GD_ByteSwapFragment) src/move.c (_GD_MogrifyFile): Handle ARM
ended floats.
* src/flush.c (_GD_FindVersion): Directives are permitted as field names in
version 8.
* src/parse.c (_GD_RawType): Single character types aren't permitted in
version 8.
* src/parse.c (_GD_ParseDirective): Slash is mandatory in version 8.
* src/open.c (gd_cbopen) getdata.c (_GD_DoRaw) putdata.c (_GD_DoRawOut: Merge
byte_sex and float_sex.
* src/flush.c (_GD_FlushFragment) src/parse.c (_GD_ParseDirective): Allow only
"arm" as float sex in format.
2010-07-15 D. V. Wiebe <getdata@ketiltrout.net> svn:436
* bindings/f77/test/big_test.f: Added tests 143-154
* bindings/f77/test/big_test95.f90: Added tests 143, 145-154
* bindings/cxx/test/big_test.cpp: Added tests 143, 145-148, 152, 153
* bindings/idl/test/big_test.pro: Added tests 143, 145, 146, 148, 152, 153
* bindings/python/test/big_test.py: Added tests 143, 145, 146, 149, 151
* bindings/f77/fgetdata.c (GDGEDV GDGERC GDGECR GDADDV GDADRC GDADCR GDMDDV
GDMDRC GDMDCR GDALDV GDALRC GDALCR): Added.
* bindings/f77/fgetdata.c (GDGSCA GDASCA): Update for DIVIDE and RECIP.
* bindings/f77/getdata.f90.in (fgd_entry fgd_add fgd_madd fgd_alter_entry):
Update for DIVIDE and RECIP.
* bindings/f77/getdata.f90.in (fgd_add_divide fgd_add_recip fgd_add_crecip
fgd_madd_divide fgd_madd_recip fgd_madd_crecip):
Added.
* bindings/cxx/entry.cpp (Entry::CheckIndex Entry::Scalar)
bindings/cxx/dirfile.cpp (Dirfile::Entry) bindings/cxx/getdata/entry.h:
Update for DIVIDE and RECIP.
* bindings/cxx/entry.cpp (Entry::Scalar): Don't reject valid indicies.
* bindings/cxx/recipentry.cpp bindings/cxx/divideentry.cpp
bindings/cxx/getdata/recipentry.h bindings/cxx/getdata/divideentry.h: Added.
* bindings/python/pyentry.c (gdpy_entry_getdividend gdpy_entry_setdividend):
Added.
* bindings/python/pyentry.c (gdpy_set_entry_from_tuple
gdpy_set_entry_from_dict gdpy_entry_getinfields gdpy_entry_setinfields
gdpy_entry_getparms): Update for DIVIDE and RECIP.
* bindings/idl/getdata.c (gdidl_make_idl_entry gdidl_read_idl_entry): Update
for DIVIDE and RECIP.
* bindings/idl/getdata.c (gdidl_gd_add_divide gdidl_gd_add_recip
gdidl_gd_alter_divide gdidl_gd_alter_recip): Added.
* bindings/python/pydirfile.c: Doc updates.
* bindings/python/pyentry.c (gdpy_entry_getshift): Properly handle
non-literal scalar fields.
* bindings/make_parameters.c: Update.
* test/dfes_recip.c test/get_recip.c test/parse_recip.c test/alter_recip.c
test/put_recip.c test/spf_recip.c test/version_8.c test/get_recip_const.c
test/alter_crecip89.c test/alter_crecip.c: Update for swapped parameters.
* src/parse.c (_GD_ParseRecip): Swap order of parameters in spec line to
agree with other derived fields. Initalise comp_scal.
* src/debug.c: Export the shift buffer.
2010-07-11 D. V. Wiebe <getdata@ketiltrout.net> svn:435
The Great Renaming, part 2: removed get_ from many public function names.
2010-07-10 D. V. Wiebe <getdata@ketiltrout.net> svn:434
* test/madd_crecip.c test/add_recip.c test/add_crecip.c test/dfes_recip.c
test/get_recip.c test/spf_divide.c test/parse_recip.c test/alter_recip.c
test/put_recip.c test/spf_recip.c test/version_8.c test/madd_recip.c
test/madd_crecip89.c test/dfes_divide.c test/get_recip_const.c
test/alter_crecip89.c test/get_divide.c test/parse_divide.c
test/version_8_strict.c test/add_divide_invalid.c test/madd_divide.c
test/add_divide.c test/put_divide.c test/add_crecip89.c test/alter_crecip.c:
Added.
* src/entry.c (_GD_FreeE _GD_CalculateEntry gd_get_entry gd_validate)
src/getdata.c (_GD_DoField) src/native.c (_GD_NativeType) src/spf.c
(_GD_GetSPF) src/putdata.c (_GD_DoFieldOut) src/del.c (_GD_DeReference
_GD_ClearDerived) src/flimits.c (_GD_GetEOF _GD_GetBOF) src/mod.c (_GD_Change)
src/add.c (_GD_Add): Split RECIP from DIVIDE.
* src/legacy.c (CopyMultDivEntry CopyMultiplyEntry): Renamed
CopyMultiplyEntry to CopyMultDivEntry.
* src/getdata.c (_GD_DoRecip) src/parse.c (_GD_ParseRecip _GD_ParseDivide)
src/mod.c (gd_alter_recip gd_alter_crecip gd_alter_crecip89 gd_alter_divide)
src/add.c (gd_add_divide gd_add_recip gd_add_crecip gd_add_crecip89
gd_madd_divide gd_madd_recip gd_madd_crecip gd_madd_crecip89): Added.
* src/getdata.h.in: Bump standards version to Version 8. Add
GD_RECIP_ENTRY. Fix unified entry struct for RECIP.
* src/parse.c (_GD_ParseFieldSpec): Recognise DIVIDE and RECIP.
* src/flush.c (_GD_FindVersion): Add Version 8.
* src/putdata.c (_GD_DoDivideOut _GD_DoRecipOut): Renamed _GD_DoDivideOut to
_GD_DoRecipOut.
* src/getdata.c (DIVIDE): Swap divisor and dividend in entry struct.
* test/version_6.c test/version_7.c: Update for Standards Version 8.
* test/convert_float64_int8.c test/eof_lincom.c: Delete the test dirfile.
* configure.ac m4/encoding.m4: Add --without-external-libraries switch.
2010-07-08 D. V. Wiebe <getdata@ketiltrout.net> svn:433
* test/alter_lincom_32.c: Added.
* src/native.c (_GD_NativeType): Fix computation of MULTIPLY.
* src/mod.c (_GD_Change): Fix memory leaks in LINCOM.
* src/putdata.c (_GD_DoLincomOut): Remove unnecessary error check.
* src/entry.c (_GD_FreeE _GD_CalculateEntry gd_get_entry gd_validate)
src/getdata.c (_GD_DoField) src/native.c (_GD_NativeType) src/spf.c
(_GD_GetSPF) src/putdata.c (_GD_DoFieldOut) src/del.c (_GD_DeReference
_GD_ClearDerived) src/flimits.c (_GD_GetEOF _GD_GetBOF) src/mod.c (_GD_Change)
src/add.c (_GD_Add): Handle DIVIDE.
* src/getdata.c (_GD_DivideData _GD_CDivideData _GD_DoDivide) src/putdata.c
(_GD_DoDivideOut) src/common.c (_GD_InvertData _GD_CInvertData): Added.
* src/nfields.c (gd_get_nfields_by_type): Use a default case.
* src/getdata.h.in: Add GD_DIVIDE_ENTRY and DIVIDE entries to the entry
struct.
* src/legacy.c (CopyReciprocalEntry): Added.
* src/legacy.c (GetFormat): Store DIVIDEs as LINCOMs or MULTIPLYs.
* src/getdata.c: Combine MULTIPLY() and CMULTIPLY() macros.
2010-07-07 D. V. Wiebe <getdata@ketiltrout.net> svn:432
* src/common.c (_GD_ReadLinterpFile): Only sort if necessary.
2010-07-07 D. V. Wiebe <getdata@ketiltrout.net> svn:431
* test/get_linterp_notab.c: Test for dummy linterp creation.
* src/common.c (_GD_MakeDummyLinterp): Deleted.
* src/common.c (_GD_ReadLinterpFile): Don't make a dummy LUT on error.
2010-07-07 D. V. Wiebe <getdata@ketiltrout.net> svn:430
* test/bof_lincom.c: Fix.
* test/get_linterp_sort.c test/put_linterp_reverse.c
test/put_linterp_nomono.c: Added.
* src/getdata.c (_GD_DoLinterp): Update call to _GD_LinterpData.
* src/putdata.c (_GD_DoLinterpOut): Reject non-monotonic LUTs. Update for
new LUT struct.
* src/common.c (_GD_LinterpData): Handle both complex and real tables.
* src/common.c (_GD_CLinterpData): Deleted.
* src/common.c (_GD_ReadLinterpFile): Sort the LUT.
* src/internal.h: GD_E_DOMAIN_ANTITONIC added. Define new LUT struct.
* src/common.c (_GD_ReadLinterpFile): Don't read the file twice, instead
dynamically resize the LUT buffer.
* src/common.c (_GD_GetLine): Abort early on EOF.
* src/flimits.c (_GD_GetEOF): Fix INDEX check in PHASE.
2010-07-07 D. V. Wiebe <getdata@ketiltrout.net> svn:428
* bindings/cxx/test/addentry.cpp bindings/cxx/test/getdata.cpp
bindings/cxx/test/nframes.cpp bindings/cxx/test/spf.cpp
bindings/cxx/test/putdata.cpp: Deleted; coverage duplicated by big_test.
2010-07-06 D. V. Wiebe <getdata@ketiltrout.net> svn:427
* test/eof_phase.c test/eof.c test/eof_lincom.c test/eof_index.c: Renamed
from nsamples*.c
* test/bof.c test/bof_lincom.c test/bof_phase.c: Added.
* bindings/python/test/big_test.py bindings/cxx/test/big_test.cpp
bindings/f77/test/big_test.f bindings/f77/test/big_test95.f90
bindings/idl/test/big_test.pro: Add a new test 86 and also add test 142.
* bindings/cxx/dirfile.cpp (Dirfile::EOF Dirfile::BOF): Added.
* bindings/python/pydirfile.c (gdpy_dirfile_getbof gdpy_dirfile_geteof):
Added.
* bindings/f77/fgetdata.c (GDGBOF GDGEOF): Added.
* bindings/f77/getdata.f90.in (fgd_get_bof fgd_get_eof): Added.
* bindings/idl/getdata.c (gdidl_get_bof gdidl_get_eof): Added.
* bindings/idl/makedlm.sh.in: Sort the subroutine list.
* src/flimits.c (gd_get_bof gd_get_bof64 _GD_GetBOF): Added.
* src/flimits.c (gd_get_eof gd_get_eof64 _GD_GetEOF): Renamed. Proper INDEX
handling added.
* src/foffs.c src/flimits.c src/nsamples.c: foffs.c and nsamples.c merged
and renamed flimits.c.
2010-06-30 D. V. Wiebe <getdata@ketiltrout.net> svn:425 svn:426
* test/nsamples.c test/nsamples_index.c test/nsamples_lincom.c
test/nsamples_phase.c: Added.
* src/nsamples.c: Added.
2010-06-30 D. V. Wiebe <getdata@ketiltrout.net> svn:420
* src/errors.c: Update for GD_E_BAD_VERSION and GD_E_FLUSH.
* src/flush.c (_GD_FlushFragment): Replace GD_E_OPEN_INCLUDE errors with
GD_E_FLUSH for more sensical error reporting.
* src/getdata.h.in: Added GD_E_FLUSH.
* src/internal.h: Added GD_E_FLUSH suberrors.
2010-06-30 D. V. Wiebe <getdata@ketiltrout.net> svn:419
* src/mod.c (_GD_SPFConvert): _GD_AddData is only used by _GD_Change to
convert SPFs, so pare it down and rename.
* src/common.c (_GD_AddData): Moved to src/mod.c and renamed _GD_SPFConvert.
2010-06-29 D. V. Wiebe <getdata@ketiltrout.net> svn:418
* m4/compiler.m4 (GD_CHECK_LFS_TYPE): Added.
* configure.ac: Better tests for LFS Transitional API types. Don't rely on
the `complex' macro when checking types. Move the MSVCRT test back to the
proper place.
2010-06-28 D. V. Wiebe <getdata@ketiltrout.net> svn:414
Merged in changes from the ARM branch, revision 385:
* bindings/make_parameters.c: Don't include the legacy API.
* test/put_endian_float32_big.c test/put_endian_float64_big.c
test/put_endian_complex64_little.c test/put_endian_float32_arm.c
test/put_endian_float64_arm.c test/get_endian_complex64_big.c
test/put_endian_float32_little.c test/put_endian_complex64_big.c
test/endian_get.c test/get_endian_complex64_arm.c
test/put_endian_complex64_arm.c test/put_endian_complex128_big.c
test/get_endian_float32_little.c test/put_endian_complex128_arm.c
test/get_endian_complex128_big.c test/get_endian_float32_big.c
test/get_endian_float64_big.c test/get_endian_complex128_little.c
test/get_endian_complex128_arm.c test/get_endian_float32_arm.c
test/get_endian_float64_arm.c test/get_endian_complex64_little.c
test/put_endian_float64_little.c test/put_endian_complex128_little.c
test/get_endian_float64_little.c: Added.
* test/put_endian_float32.c test/get_endian_float64.c
test/put_endian_complex128.c test/put_endian_complex64.c
test/put_endian_float64.c test/get_endian_complex64.c
test/get_endian_complex128.c test/get_endian_float32.c: Removed.
* src/parse.c (_GD_ParseDirective): Handle missing second parameter to
/ENDIAN.
* m4/python.m4: Don't specify -L unless needed.
* bindings/idl/getdata.c (gdidl_read_idl_entry): Fix compiler warning.
* configure.ac: Calculate BUILDCC
* bindings/Makefile.am: use BUILDCC
* bindings/make_parameters.c (main): Return zero.
* src/open.c (dirfile_cbopen): Fix default float_sex.
* test/endian_get.c: Test both sexes.
* configure.ac: Calculate BUILDCC
* bindings/Makefile.am: use BUILDCC
* configure.ac: Call GD_C_FLOATORDERING.
* m4/compiler.m4 (GD_C_FLOATORDERING): Added.
* configure.ac bindings/f77/Makefile.am: Handle missing diff gracefully.
* src/getdata.c (_GD_DoRaw) src/putdata.c (_GD_DoRawOut): Call
_GD_ArmEndianise when appropriate. Check float_sex when appropriate.
* src/endian.c (_GD_ArmEndianise): Added.
* bindings/cxx/Makefile.am bindings/cxx/test/Makefile.am
bindings/f77/Makefile.am bindings/f77/test/Makefile.am src/Makefile.am
test/Makefile.am util/Makefile.am: use *_WEXTRA conditionals.
* configure.ac: Call GD_PROG_CC_WEXTRA, GD_PROG_CXX_WEXTRA,
GD_PROG_F77_WEXTRA, GD_PROG_FC_WEXTRA; don't bother checking compilers we
aren't going to use.
* compiler.m4: Renamed from intel.m4.
* compiler.m4 (GD_PROG_CC_WEXTRA GD_PROG_CXX_WEXTRA GD_PROG_F77_WEXTRA
GD_PROG_FC_WEXTRA): Added.
2010-06-27 D. V. Wiebe <getdata@ketiltrout.net> svn:410
* src/internal.h: Only use the MSVCRT aliases when appropriate. Handle no
complex.h, but with complex support in GCC (for Cygwin). Deal with Cygwin
64-bit stat.
* src/getdata.h.in: Define LFS transitional functions under Cygwin.
* configure.ac: Disable Python and IDL tests for both Cygwin and MinGW.
Only conditionally define _LARGEFILE64_SOURCE.
2010-06-26 D. V. Wiebe <getdata@ketiltrout.net> svn:409
* configure.ac: Fix test for struct stat64. Restore accidentally deleted
AC_SUBST.
2010-06-25 D. V. Wiebe <getdata@ketiltrout.net> svn:408
* test/: Include O_BINARY in open() calls. Write "#\n" instead of "\n" in
empty fragments.
* test/test.h (gd_system): Added. Use PRIxxx codes for format specifiers.
* test/trunc_rofs.c test/open_eaccess.c: Skip the test if the FS doesn't
honour access permissions.
* test/ascii_put.c: Read data as ints.
* test/legacy_put.c: Skip the stat() check.
* src/open.c (_GD_CreateDirfile): Use mode "rb" in fopen() call.
* src/gzip.c (_GD_GzipSize) src/encoding.c (_GD_GenericTouch) src/include.c
(_GD_Include) src/raw.c (_GD_RawOpen): Include O_BINARY in open() calls.
* src/errors.c (gd_error_string): Handle STRERROR_R_CHAR_P.
* src/flush.c (_GD_FlushFragment): Skip fchmod() call unless HAVE_FCHMOD
defined.
* src/flush.c (_GD_FlushFragment) src/mod.c (_GD_Change) src/encoding.c
(_GD_GenericMove) src/raw.c (_GD_RawTemp): Replaced rename() with
_GD_Rename().
* src/encoding.c (_GD_ResolveEncoding) src/raw.c (_GD_RawSize): Use
gd_stat64_t and gd_stat64().
* src/ascii.c (_GD_AsciiOpen _GD_AsciiSize _GD_AsciiTemp): Use O_TEXT in open
call.
* src/ascii.c (_GD_ScanFormat _GD_AsciiRead): Handle NO_8BIT_INT_PREFIX.
* src/internal.h: Include <io.h> for Win32. Define O_BINARY, O_TEXT if
necessary. Define NO_8BIT_INT_PREFIX when appropriate. Handle Win32
function aliases.
* src/compat.c: Added.
* src/common.c (GD_ReadLinterpFile): Call fopen() with FOPEN_TEXT.
* bindings/cxx/test/big_test.cpp bindings/cxx/test/putdata.cpp
bindings/cxx/test/spf.cpp bindings/cxx/test/getdata.cpp
bindings/cxx/test/nframes.cpp: Handle Win32 stuff.
* configure.ac: Call GD_MSYS_SHELL. Add various Win32 checks.
* m4/win32.m4: Added.
2010-05-22 D. V. Wiebe <getdata@ketiltrout.net> svn:401 svn:402 svn:403
The Great Renaming:
* test/: Update for new function names. Modernise error reporting.
* test/test.h: Added.
* test/add_many.h test/global_ref_get.c: Deleted.
* util/dirfile2ascii.c util/checkdirfile.c: Update for new function names.
* util/checkdirfile.c: Report standards version compliance.
* bindings/python/test/big_test.py bindings/cxx/test/big_test.cpp
bindings/f77/test/big_test.f bindings/f77/test/big_test95.f90
bindings/idl/test/big_test.pro: Remove test 86.
* bindings/python/*.c: Update for new function names.
* bindings/cxx/*.cxx: Ditto.
* bindigns/f77/fgetdata.c: Ditto.
* bindings/f77/getdata.f90.in: Ditto.
* bindings/idl/getdata.c: Ditto.
* src/: Use the gd_ namespace for all public functions.
* src/getdata.h.in: Add function aliases.
* src/legacy.c: Fix lengths of global error buffers.
* src/getdata_legacy.h src/getdata.h.in: Fix function attributes to work
with gcc but a non-gnu libc.
* bindings/cxx/fragment.cpp: Remove dependence on the LFS transitional API.
* src/configure.ac: Remove obsolete Darwin check.
* src/globals.c (get_reference): Deleted.
2010-05-17 D. V. Wiebe <getdata@ketiltrout.net> svn:400
* src/flush.c (_GD_FlushFragment): malloc temp_file.
* src/internal.h: Fix handling of !defined(HAVE_OFF64_T).
* src/getdata.h.in: __APPLE__ specifics.
* configure.ac: Set DL_LIBRARY_PATH based on $host.
* bindings/python/test/Makefile.am: Use DL_LIBRARY_PATH
* bindings/python/pydirfile.c bindings/python/pyfragment.c: De-LFSise.
* bindings/python/pydirfile.h: Define _FILE_OFFSET_BITS.
* bindings/cxx/fragment.cpp: De-LFSise.
* bindings/cxx/getdata/indexentry.h bindings/cxx/getdata/rawentry.h
bindings/cxx/getdata/dirfile.h bindings/cxx/getdata/linterpentry.h
bindings/cxx/getdata/polynomentry.h bindings/cxx/getdata/bitentry.h
bindings/cxx/getdata/entry.h bindings/cxx/getdata/multiplyentry.h
bindings/cxx/getdata/phaseentry.h bindings/cxx/getdata/fragment.h
bindings/cxx/getdata/lincomentry.h bindings/cxx/getdata/sbitentry.h
bindings/cxx/getdata/constentry.h bindings/cxx/getdata/stringentry.h: Define
_FILE_OFFSET_BITS.
* util/dirfile2ascii.c: Define off64_t if not present.
2010-04-24 D. V. Wiebe <getdata@ketiltrout.net> svn:390
* bindings/python/pydirfile.c (gdpy_dirfile_getdata): Use numpy to allocate
the data buffer, instead of doing it ourselves, to avoid memory hassles.
Also, only retrieve spf when needed.
* bindings/python/pygetdata.c (gdpy_type_from_npytype): Fix debug message.
* bindings/python/pygetdata.h: Undef Python's SIZEOF_OFF_T.
* bindings/make_parameters.c (main): Don't fall off the end.
2010-03-17 D. V. Wiebe <getdata@ketiltrout.net> svn:387
* configure.ac src/getdata.h.in: Disable LFS transitional API on Darwin.
* bindings/f77/Makefile.am: Change order of sed arguments to work with Darwin
sed.
2010-03-05 D. V. Wiebe <getdata@ketiltrout.net> svn:386
* test/version_0.c test/version_1.c test/version_2.c test/version_3.c
test/version_4.c test/version_5.c test/version_6.c test/version_7.c: Call
dirfile_standards().
* test/parse_version_include.c: Use GD_PERMISSIVE.
* src/internal.h: Add GD_HAVE_VERSION.
* src/getdata.h.in: Add GD_E_BAD_VERSION, GD_VERSION_*
* src/flush.c (_GD_FindVersion dirfile_standards): Added.
* src/open.c (dirfile_cbopen): Clear GD_PERMISSIVE if GD_PEDANTIC is set.
Clear GD_IGNORE_REFS if set. If necessary, determine the standards
conformance of the dirfile.
* src/parse.c (_GD_ParseDirective): Set proper flags when calling
_GD_Include. Propagate pedantry back up. Enumerate fragment versions.
* src/include.c (_GD_Include): Take a pointer to the flags, to permit
propagation of pedantry. Enumerate fragment versions.
* src/parse.c (_GD_ParseFragment): Take a pointer to the flags, to permit
propagation of pedantry.
* src/name.c (_GD_ValidateField): Prohibit characters < 0x20 in field names.
* src/parse.c (_GD_ParseDirective): Remove unnecessary first_fragment
parameter.
2010-03-02 D. V. Wiebe <getdata@ketiltrout.net> svn:380
* test/version_0.c test/version_1.c test/version_2.c test/version_6_strict.c
test/version_3.c test/version_4.c test/version_5.c test/version_6.c
test/parse_version_permissive.c test/version_7_strict.c test/version_7.c
test/version_5_strict.c: Added.
* test/parse_version_pedantic.c: Removed.
* test/parse_name.c: Update.
* test/put_foffs.c test/parse_version.c test/parse_version_slash.c
test/get_bad_code.c test/parse_name_ext.c: Better error reporting.
* src/getdata.h.in: Add GD_PERMISSIVE.
* src/name.c src/internal.h: move entry_cmp() to header as a static inline.
* src/internal.h: Add n_dot, dot_list, standards to _GD_DIRFILE.
* src/common.c (_GD_FindField): Pass the list and count as parameters. If
looking for FILEFRAM in early versions, look for INDEX instead.
* src/common.c (_GD_FindFieldAndRepr): Added.
* src/entry.c (_GD_GetScalar get_entry get_entry_type get_fragment_index
dirfile_validate): Call _GD_FindFieldAndRepr instead of _GD_GetRepr and
_GD_FindField.
* src/index.c (get_framenum_subset64): Ditto.
* src/getdata.c (getdata64): Ditto.
* src/flush.c (dirfile_flush): Ditto.
* src/native.c (get_native_type): Ditto.
* src/spf.c (get_spf): Ditto.
* src/constant.c (get_constant put_constant): Ditto.
* src/putdata.c (putdata64): Ditto.
* src/del.c (dirfile_delete): Ditto.
* src/entry.c (get_raw_filename): Remove the representation from the input by
calling _GD_FindFieldAndRepr.
* src/name.c (_GD_ValidateField): Behave differently with different
versions. Also set *is_dot on permitted '.' in field name.
* src/parse.c (_GD_RawType _GD_ParseRaw _GD_ParseLincom _GD_ParseLinterp
_GD_ParseMultiply _GD_ParseBit _GD_ParsePhase _GD_ParsePolynom
_GD_ParseConst _GD_ParseString _GD_ParseFragment): Behave differently with
different versions.
* src/parse.c (_GD_ParseFieldSpec): Behave differently with different
versions. Make FILEFRAM a reserved field name in early versions.
* src/parse.c (_GD_ParseDirective): Behave differently with different
versions. Try to allow fields with directive names when it wouldn't confuse
us, and not in pedantic mode. Set GD_PEDANTIC on encountering a VERSION
directive unless GD_PERMISSIVE was specified.
* src/name.c (dirfile_rename): Update the dot list when necessary.
* src/add.c (_GD_Add): Ditto.
* src/open.c (dirfile_cbopen): Initialise D->standards.
2010-03-02 D. V. Wiebe <getdata@ketiltrout.net> svn:379
* util/dirfile2ascii.c: Fix missing break statement per Matthew Truch.
2010-02-19 D. V. Wiebe <getdata@ketiltrout.net> svn:377
* util/dirfile2ascii.c: Add -a, -A, -F, -u. Read UINT64 when appropriate.
Add --version and other long options. Increase BUF_LEN to
GD_MAX_LINE_LENGTH. Turn off default verbose. Make ff an off64_t.
* m4/python.m4 m4/idl.m4: Fix typos in help strings.
2010-02-17 D. V. Wiebe <getdata@ketiltrout.net> svn:375
Merged in changes from the 0.6 branch, revision 373:
* src/ascii.c (_GD_AsciiSize): Don't trample on the file name.
* test/ascii_nframes.c: Update to test for same.
2010-02-15 D. V. Wiebe <getdata@ketiltrout.net> svn:362
* util/dirfile2ascii.c: Added Matthew Truch's ASCII conversion utility.
2010-02-12 D. V. Wiebe <getdata@ketiltrout.net> svn:361
GetData 0.6.1 released.
2010-02-09 D. V. Wiebe <getdata@ketiltrout.net> svn:358
GetData-0.6.1rc2:
* src/legacy.c: Fix length of global error string buffers.
* configure.ac: Bump GETDATA_IMPL_REVISION.
* configure.ac: Fix diff check.
* man/get_native_type.3 man/put_string.3: Typos.
2010-02-04 D. V. Wiebe <getdata@ketiltrout.net> svn:349
* bindings/cxx/test/getdata.cpp: Also fix the mkdir() bug here.
2010-02-03 D. V. Wiebe <getdata@ketiltrout.net> svn:346
GetData-0.6.1rc1:
* test/convert_complex128_float64.c test/add_cpolynom.c
test/convert_float32_complex128.c test/get_const_complex.c
test/get_complex128.c test/convert_float64_complex128.c test/repr_uint64.c
test/repr_real_m.c test/convert_complex64_uint64.c test/add_clincom.c
test/repr_float32.c test/convert_int16_complex64.c test/repr_i.c
test/get_complex64.c test/repr_int32.c test/put_complex128.c
test/convert_uint8_complex64.c test/get_cpolynom.c test/repr_int16.c
test/convert_float64_complex64.c test/convert_complex64_complex128.c
test/convert_float32_complex64.c test/repr_real_a.c test/repr_int64.c
test/convert_complex128_int64.c test/convert_complex64_int64.c
test/put_endian_complex128.c test/put_endian_complex64.c test/repr_a.c
test/convert_uint16_complex128.c test/repr_m.c test/put_complex64.c
test/convert_uint16_complex64.c test/repr_real_r.c test/repr_int8.c
test/convert_int64_complex64.c test/get_endian_complex64.c test/repr_uint8.c
test/convert_int32_complex64.c test/convert_int8_complex128.c
test/convert_int16_complex128.c test/madd_clincom.c test/repr_float64.c
test/convert_complex128_complex64.c test/convert_int8_complex64.c
test/convert_complex128_uint64.c test/convert_uint32_complex128.c
test/repr_uint32.c test/get_endian_complex128.c test/madd_cpolynom.c
test/convert_uint64_complex64.c test/repr_uint16.c
test/convert_int32_complex128.c test/get_clincom.c
test/convert_uint32_complex64.c test/convert_uint8_complex128.c
test/repr_r.c test/alter_cpolynom.c test/convert_uint64_complex128.c
test/get_const_repr.c test/convert_complex64_float64.c test/repr_real_i.c
test/convert_int64_complex128.c: Include complex.h.
* m4/encoding.m4 (GD_HIDE_LTDL_SYM): Removed.
* m4/ltdl.m4: Removed.
* src/gd_ltdl.c src/gd_ltdl.h: Removed.
* configure.ac: Update for libtool 2.x. Remove support for the internal
ltdl.
* bindings/f77/test/Makefile.am bindings/f77/Makefile.am: Removed the
libtool 1.5.x hack.
* bindings/idl/getdata.c (gdidl_dirfile_alter_entry gdidl_dirfile_move
gdidl_dirfile_rename gdidl_dirfile_uninclude): Initialise kw.error and
kw.estr.
* bindings/cxx/test/big_test.cpp: Include headers to declare mkdir(). Bug
report from Matthew Truch.
2009-11-13 D. V. Wiebe <getdata@ketiltrout.net> svn:345
* src/getdata.h.in: Don't include <complex.h>; use _Complex directly.
2009-11-03 D. V. Wiebe <getdata@ketiltrout.net> svn:340
GetData 0.6.0 released.
2009-11-01 D. V. Wiebe <getdata@ketiltrout.net> svn:334
GetData-0.6.0rc4:
* test/header_complex.c: Added.
* test/repr_real_m.c test/repr_i.c test/repr_real_a.c test/repr_m.c
test/repr_real_r.c test/repr_a.c test/repr_real_i.c: Replaced M_PI with a
literal.
* configure.ac: Determine types for gd_bit_t, gd_spf_t, and gd_shift_t. Fix
NumPy test.
* m4/intel.m4: Better tests for Fortran compilers.
* src/getdata.h.in: Export a C-89 compliant API if GETDATA_C89_API is set.
Include <complex.h> only if needed. typedef gd_bit_t, gd_spf_t, gd_shift_t,
and use them in the public API.
* src/entry.c (_GD_GetScalar): Use correct types in call to _GD_DoField.
* src/entry.c (_GD_CalculateEntry): Use correct types in call to
_GD_GetScalar.
* src/flush.c (_GD_WriteConst _GD_FieldSpec): Use correct types and C-99
printf codes.
* src/del.c (_GD_DeReference): Use correct types in call to
_GD_DeReferenceOne.
* src/parse.c (_GD_ParseRaw _GD_ParseBit _GD_ParsePhase): Remove unnecessary
periphrasis in calls to _GD_SetScalar.
* bindings/python/pyentry.c (gdpy_set_scalar_from_pyobj): Use proper types.
* bindings/cxx/bitentry.cpp (BitEntry::SetFirstBit BitEntry::SetNumBits):
Remove periphrasis in calls to get_constant.
* bindings/cxx/rawentry.cpp (RawEntry::SetSamplesPerFrame): Remove periphrasis
in call to get_constant.
* bindings/cxx/phaseentry.cpp (PhaseEntry::SetShift): Remove periphrasis in
call to get_constant.
* bindings/cxx/sbitentry.cpp (SBitEntry::SetFirstBit SBitEntry::SetNumBits):
Remove periphrasis in calls to get_constant.
* src/index.c (_GD_GetIndex): Explicit typecast.
* src/getdata.c (EXTRACT_REPR MULTIPLY): Explicit typecasts.
* src/getdata.c (CMULTIPLY): Added.
* src/native.c (_GD_NativeType): Return GD_UNKNOWN on recursion error.
* src/add.c (_GD_Add): Properly set comp_scal for POLYNOM.
* src/getdata.c (_GD_DoBit): Remove unnecessary call to _GD_GetSPF.
* bindings/python/pydirfile.c: Allow compilation without NumPy.
* bindings/cxx/lincomentry.cpp bindings/cxx/polynomentry.cpp: Use C++ complex
class.
* bindings/cxx/tests/big_test.cpp: Use C++ complex class.
* bindings/cxx/getdata/indexentry.h bindings/cxx/getdata/rawentry.h
bindings/cxx/getdata/dirfile.hbindings/cxx/getdata/linterpentry.h
bindings/cxx/getdata/polynomentry.h bindings/cxx/getdata/bitentry.h
bindings/cxx/getdata/entry.h bindings/cxx/getdata/multiplyentry.h
bindings/cxx/getdata/phaseentry.h bindings/cxx/getdata/fragment.h
bindings/cxx/getdata/lincomentry.h bindings/cxx/getdata/sbitentry.h
bindings/cxx/getdata/constentry.h bindings/cxx/getdata/stringentry.h: Use the
C-89 GetData API.
* bindings/f77/test/Makefile.am: If using ifort, pass -assume byterecl
* bindings/f77/test/big_test95.f90: replace realpart() and imagpart() with
real(real()) and real(aimag())
2009-10-29 D. V. Wiebe <getdata@ketiltrout.net> svn:332
* bindings/cxx/test/addentry.cpp bindings/cxx/test/big_test.cpp
bindings/cxx/test/getdata.cpp bindings/cxx/test/nframes.cpp
bindings/cxx/test/putdata.cpp bindings/cxx/test/spf.cpp: Fix dirfile
initialisation.
2009-10-29 D. V. Wiebe <getdata@keiltrout.net> svn:331
* src/entry.c (_GD_FreeE): Free E->e->filebase. Reported by CBN.
* bindings/cxx/dirfile.cpp (Dirfile::~Dirfile): Fix call to
dirfile_close(). Previously it only called dirfile_close() on NULL
pointers. Reported by CBN.
2009-10-29 D. V. Wiebe <getdata@keiltrout.net> svn:329
* bindings/python/test/big_test.py: NumPy tests.
* configure.ac: Detect NumPy.
* bindings/python/pygetdata.h: #include <numpy/arrayobject.h>
* bindings/python/pygetdata.c (gdpy_type_from_npytype
gdpy_npytype_from_type): Added.
* bindings/python/pygetdata.c (initpygetdata): Call import_array(). Add
"__numpy_supported__" to Python module.
* bindings/python/pydirfile.c (gdpy_dirfile_getdata): Add "as_list"
parameter. Return NumPy array.
* bindings/python/pydirfile.c (gdpy_dirfile_putdata): Handle NumPy arrays.
2009-10-23 D. V. Wiebe <getdata@keiltrout.net> svn:327
* test/entry_scalar_repr.c: Added.
* test/put_endian_complex128.c test/put_endian_complex64.c
test/get_endian_complex64.c test/get_endian_complex128.c: Fix checks.o
* src/entry.c (_GD_GetScalar): Handle representations: call _GD_DoField
instead of _GD_DoConst
* src/del.c (_GD_DeReferenceOne): Added.
* src/del.c (_GD_DeReference): Handle representations: call _GD_DoField.
* src/getdata.c (_GD_DoConst): Make static. Callers should use _GD_DoField
so that the representation is properly handled.
* src/flush.c (_GD_StringEscapeise): Preprocessor check for unsigned char.
* src/flush.c (_GD_WriteConst): Handle long int for PHASE shift.
* src/parse.c (_GD_SetScalar): Don't convert everything willy-nilly to
double first. Properly handle types.
* src/parse.c (_GD_ParseRaw _GD_ParseBit _GD_ParsePhase): Call _GD_SetScalar
with an intermediary.
* src/parse.c (_GD_ParseConst): Call _GD_SetScalar with the right type code.
* bindings/python/pydirfile.c (gdpy_dirfile_getdata): Use correct integer
types and codes in PyArg_ParseTupleAndKeywords call.
* bindings/python/pyentry.c (gdpy_set_scalar_from_pyobj): Fix type for PHASE
shift.
* bindings/f77/fgetdata.c (GDASCA): Fix scalar_l type. Reject index = 0.
* bindings/f77/test/Makefile.am bindings/python/Makefile.am
bindings/Makefile.am man/Makefile.am: noinst_ flag built files.
2009-10-19 D. V. Wiebe <getdata@ketiltrout.net> svn:325
GetData-0.6.0rc3:
* test/repr_real_m.c test/repr_i.c test/repr_real_a.c test/repr_m.c
test/repr_real_r.c test/repr_a.c test/repr_r.c test/repr_real_i.c: Made more
rigorous.
* src/getdata.c (_GD_ExtractRepr): Work with any input data type.
* src/getdata.c (_GD_DoField): Properly handle representations of real data.
* src/flush.c (_GD_Flush): Remove third argument by moving the E == NULL
test to dirfile_flush().
* src/flush.c (dirfile_flush): Discard representation.
* src/encoding.c: Add missing punctuation.
* bindings/python/pygetdata.c bindings/python/pydirfile.c
bindings/python/pyentry.c: Add module documentation.
* bindings/python/pydirfile.c (gdpy_dirfile_alter): Require field_code, like
the C API.
* bindings/python/pydirfile.c (gdpy_dirfile_delentry): Make flags optional.
* bindings/python/pydirfile.c (gdpy_dirfile_getfieldlist
gdpy_dirfile_getfieldlistbytype): Combine.
* bindings/python/pydirfile.c (gdpy_dirfile_getmfieldlist
gdpy_dirfile_getmfieldlistbytype): Combine.
* bindings/python/pydirfile.c (gdpy_dirfile_getnfields
gdpy_dirfile_getnfieldsbytype): Combine.
* bindings/python/pydirfile.c (gdpy_dirfile_getnmfields
gdpy_dirfile_getnmfieldsbytype): Combine.
* bindings/python/pyentry.c (gdpy_entry_getscalars): Deleted.
* bindings/make_parameters.c: Add E_FORMAT_LITERAL (=GDF_LT).
* bindings/idl/getdata.c: Make SHIFT long.
* bindings/idl/getdata.c (gdidl_dirfile_alter_encoding
gdidl_dirfile_alter_endianness gdidl_dirfile_alter_frameoffset
gdidl_dirfile_protect): fragment_index is GD_ALL_FRAGMENTS by default.
* doc/README.f77 doc/README.f95 doc/README.cxx doc/README.python: Update.
* doc/README.idl: Added.
* man/get_native_type.3 man/dirfile_alter_entry.3 man/get_framenum_subset.3
man/put_string.3 man/get_string.3 man/getdata.3 man/put_constant.3
man/get_fragment_index.3 man/get_entry_type.3 man/putdata.3
man/dirfile_alter_bit.3 man/dirfile_move.3 man/dirfile_rename.3
man/get_spf.3 man/get_raw_filename.3 man/dirfile_reference.3
man/dirfile_delete.3 man/dirfile-format.5 man/dirfile_flush.3
man/dirfile_validate.3 NEWS: Update.
* man/get_framenum_subset64.3: Added.
2009-10-17 D. V. Wiebe <getdata@ketiltrout.net> svn:324
* src/entry.c (_GD_Calculate): Memory leak.
* src/entry.c (get_entry get_entry_type get_fragment_index
dirfile_validate): Throw GD_E_BAD_REPR when necessary.
* src/native.c (_GD_NativeType): Only calculate the entry if needed.
Properly calculate LINTERP and MULTIPLY native types.
* man/get_native_type.3 man/get_framenum_subset.3 man/dirfile_validate.3:
Added.
2009-10-16 D. V. Wiebe <getdata@ketiltrout.net> svn:323
* src/internal.h: Fix spelling of GD_E_FORMAT_LITERAL.
* src/errors.c src/parse.c: Ditto.
* src/putdata.c: Don't assume size_t is signed.
2009-10-16 D. V. Wiebe <getdata@ketiltrout.net> svn:322
* test/madd.c: Properly initialise E.
* src/getdata.c (_GD_DoRaw): Don't assume size_t is signed.
* src/flush.c (_GD_FlushFragment): Don't justify field names if they're very
long.
* bindings/f77/test/big_test95.f90: Use fixed width strings in array
initialisations.
* man/dirfile_alter_entry.3 man/dirfile_add_bit.3
man/get_mfield_list_by_type.3 man/get_entry_type.3 man/get_nvectors.3
man/dirfile_alter_bit.3 man/dirfile_cbopen.3 man/dirfile_rename.3
man/dirfile_include.3 man/dirfile_add.3 man/dirfile-format.5
man/get_field_list_by_type.3 man/get_mvector_list.3 man/dirfile_flush.3
man/get_vector_list.3 man/get_entry.3 man/dirfile_madd_bit.3
man/dirfile-encoding.5: Update.
2009-10-14 D. V. Wiebe <getdata@ketiltrout.net> svn:321
* internal.h: Add .ffname member to encoding_t.
* parse.c (_GD_ParseDirective): Run through _gd_ef instead of hard-coding
encoding names.
2009-10-14 D. V. Wiebe <getdata@ketiltrout.net> svn:319
GetData-0.6.0rc2:
* bindings/f77/test/big_test.f: Fix typos.
* bindings/idl/test/big_test.pro: Add scalar members to structure
initialisations in tests 125 and 126.
* bindings/idl/Makefile.am: Make sure .libs exists.
2009-10-13 D. V. Wiebe <getdata@ketiltrout.net> svn:318
* test/alter_polynom_coeff.c test/entry_raw_scalar.c
test/entry_polynom_scalar.c test/entry_bit_scalar.c test/add.c
test/entry_lincom_scalar.c test/entry_phase_scalar.c test/entry_bit.c:
Update for scalar[] in gd_entry_t.
* test/add_phase.c test/madd_phase.c test/get_phase.c: Update for long
shift.
* test/add_scalar.c alter_entry_scalar3.c alter_entry_scalar4.c
alter_entry_scalar2n.c alter_entry_scalar2a.c: Added.
* src/getdata.h.in: Use long int for phase shift in gd_entry_t.
* src/parse.c (_GD_SetScalar): Use INT64 for shift internally.
* src/internal.h src/getdata.h.in: Make scalar[] array public: moved from
_gd_private_entry to gd_entry_t.
* src/entry.c (_GD_FreeE _GD_CalculateEntry): Update for above.
* src/del.c (_GD_DeReference): Ditto.
* src/parse.c (_GD_SetScalar _GD_ParseLincom _GD_ParseBit _GD_ParsePhase
_GD_ParsePolynom _GD_ParseRaw): Ditto.
* src/mod.c (dirfile_alter_raw dirfile_alter_lincom dirfile_alter_clincom
dirfile_alter_linterp dirfile_alter_bit dirfile_alter_sbit
dirfile_alter_phase dirfile_alter_polynom dirfile_alter_cpolynom):
Initialise E.scalar[].
* src/add.c (_GD_Add): Allow adding of non-literal scalars via dirfile_add.
* src/mod.c (_GD_AlterScalar): Added.
* src/mod.c (_GD_Change): Call _GD_AlterScalar to allow scalar
modifications.
* src/entry.c (_GD_GetScalar): Assume 16 bit integers for int types.
* src/internal.h: Encodings and byte_sex are unsigned longs.
* src/getdata.h.in: Renumber some open flags.
* src/encoding.c (_GD_ResolveEncoding): Return unsigned long.
* src/move.c (_GD_MogrifyFile): Parameters encoding and bye_sex are unsigned
longs.
* src/parse.c (_GD_ParseDirective _GD_ParseFragment): Parameter flags is
unsigned long.
* src/internal.h: typedef unsigned int as _gd_spf_t for use as internal
representation for SPFs. In the external API, unsigned int is still
explicitly used.
* src/index.c (get_framenum_subset64): Use _gd_spf_t.
* src/getdata.c (_GD_MultiplyData _GD_CMultiplyData _GD_DoLincom
_GD_DoMultiply getdata64): Use _gd_spf_t internally.
* src/spf.c (_GD_GetSPF get_spf): Use _gd_spf_t internally.
* src/putdata.c (putdata64): Use _gd_spf_t internally.
* src/common.c (_GD_AddData _GD_LincomData _GD_CLincomData): Use _gd_spf_t.
* src/getdata.h.in: Added GD_PRETTY_PRINT.
* src/flush.c (_GD_PadField): Added.
* src/flush.c (_GD_FieldSpec): Pad field specs if requested.
* src/flush.c (_GD_FlushFragment): Compute max and mean field lengths if
pretty printing.
* bindings/make_parameters.c: Add GD_PRETTY_PRINT.
* src/getdata.h.in: Bump standards version.
* src/globals.c (dirfilename dirfile_reference): Clear error on success.
* bindings/python/test/big_test.py: Test adding/modifying scalars.
* bindings/python/pyentry.c (gdpy_set_scalar_from_pyobj
gdpy_entry_getscalars): Added.
* bindings/python/pyentry.c (gdpy_set_entry_from_tuple): Update for
scalar[].
* bindings/python/pyentry.c (gdpy_entry_setspf gdpy_entry_setm
gdpy_entry_setb gdpy_entry_setbitnum gdpy_entry_setnumbits
gdpy_entry_setshift gdpy_entry_seta): Allow non-literal CONST names.
* bindings/python/pyentry.c (gdpy_entry_getspf gdpy_entry_getm
gdpy_entry_getb gdpy_entry_getbitnum gdpy_entry_getnumbits
gdpy_entry_getshift gdpy_entry_geta): Return non-literal CONST names.
* bindings/cxx/bitentry.cpp (BitEntry::Scalar): Added.
* bindings/cxx/bitentry.cpp (BitEntry::SetFirstBit BitEntry::SetNumBits):
Add CONST name versions.
* bindings/cxx/sbitentry.cpp (SBitEntry::Scalar): Added.
* bindings/cxx/sbitentry.cpp (SBitEntry::SetFirstBit BitEntry::SetNumBits):
Add CONST name versions.
* bindings/cxx/entry.cpp (Entry::Scalar): Added.
* bindings/cxx/lincomentry.cpp (LincomEntry::SetScale
LincomEntry::SetOffset): Add CONST name versions.
* bindings/cxx/lincomentry.cpp (LincomEntry::Scalar): Added.
* bindings/cxx/rawentry.cpp (RawEntry::SetSamplesPerFrame): Add CONST name
version.
* bindings/cxx/polynomentry.cpp (PolynomEntry::SetCoefficient): Add CONST
name version.
* bindings/cxx/phaseentry.cpp (PhaseEntry::SetShift): Add CONST name version.
* bindings/cxx/getdata/rawentry.h (Scalar): Added.
* bindings/cxx/getdata/phaseentry.h (Scalar): Added.
* bindings/cxx/phaseentry.cpp (PhaseEntry::SetShift): shift is long int.
* bindings/cxx/getdata/entry.h (PhaseEntry::Shift): shift is long int.
* bindings/cxx/getdata/phaseentry.h (PhaseEntry::Shift): shift is long int.
* bindings/cxx/dirfile.cpp (Dirfile::Dirfile Dirfile::Include): Flags is
unsigned long.
* bindings/f77/fgetdata.c (GDCLOS GDDSCD): Don't close dirfile unit #0.
* bindings/f77/fgetdata.c (GDGSCA GDASCA): Added.
* bindings/f77/test/big_test.f: Test GDGSCA and GDASCA.
* bindings/f77/getdata.f90.in: Add scalar member. to gd_entry.
* bindings/f77/getdata.f90.in (fget_entry): Call GDGSCA to fill scalar
members.
* bindings/idl/getdata.c: Add SCALAR to GD_ENTRY structure.
* bindings/idl/getdata.c (gdidl_make_idl_entry gdidl_read_idl_entry): Copy
SCALAR members.
* bindings/idl/getdata.c (gdidl_dirfile_close): Don't close dirfile unit #0.
2009-10-07 D. V. Wiebe <getdata@ketiltrout.net> svn:316
* configure.ac: Update interface version info.
* m4/python.m4: Fix no Python assignment.
* configure.ac: Don't compute BUILD_DATE if it's not needed.
* bindings/f77/test/big_test.f: Use constant length strings in array
constructors.
2009-10-06 D. V. Wiebe <getdata@ketiltrout.net> svn:315
GetData-0.6.0rc1:
* test/move_meta.c: Added.
* m4/idl.m4: Add --with-idl-dlm-dir argument; needed by distcheck.
* src/ascii.c: Explicitly cast edata to (FILE*) to fix compiler warnings.
Reported by Josh Netterfield.
* src/move.c (dirfile_move): Update metafield entries on parent move.
* src/mod.c (dirfile_malter_spec): Fix "filename" in _GD_Tokenise call.
* bindings/python/pygetdata.c: Add GETDATA_VERSION_SUFFIX to version tuple.
* bindings/f77/fgetdata.c (_GDF_Callback): Fix debug message.
* bindings/make_parameters.c: Moved from f77 subdir, and updated to handle
both IDL and Python bindings as well.
* bindings/python/pyconstants.c: Removed; now automatically generated by
make_parameters.
* bindings/python/test/callback.py: Clean-up after test.o
* bindings/python/test/Makefile.am: Fix for rpath builds.
* bindings/idl/test: Added.
* bindings/idl/getdata.c (gdidl_clear_dirfile gdidl_cmp_to_c99
gdidl_get_frameoffset gdidl_get_string): Added.
* bindings/idl/getdata.c (gdidl_make_idl_entry): Initialise N_FIELDS and
POLY_ORD. Fix initialisation of CM, CB, CA.
* bindings/idl/getdata.c (gdidl_read_idl_entry): Allow proper use for
dirfile_alter, by conditionally handling missing structure elements.
* bindings/idl/getdata.c (gdidl_convert_encoding): If the encoding is
numeric, assume it's a proper GD_<foo>_ENCODED value.
* bindings/idl/getdata.c (gdidl_dirfile_add_bit gdidl_dirfile_add_const
gdidl_dirfile_add_lincom gdidl_dirfile_add_linterp gdidl_dirfile_add_multiply
gdidl_dirfile_add_phase gdidl_dirfile_add_polynom gdidl_dirfile_add_sbit
gdidl_dirfile_add_string): Fix dirfile_madd_<foo>() calls.
* bindings/idl/getdata.c: IDL 6 appears to be adding INT type keyword
paramters to the existing value, instead of replacing them. Fix the
bindings to allow for this.
* bindings/idl/getdata.c (gdidl_dirfile_alter_lincom
gdidl_dirfile_alter_polynom): Initialise n_fields/poly_ord if necessary.
Fix complex data conversion.
* bindings/idl/getdata.c (gdidl_dirfile_close): Add the "/DISCARD" keyword
to call dirfile_discard(). Remove the dirfile from the internal list on
success.
* bindings/idl/getdata.c (gdidl_dirfile_discard): Removed.
* bindings/idl/getdata.c (gdidl_get_entry): Handle look-up failure.
* bindings/idl/getdata.c (IDL_Load): Initialise the GD_CONSTANTS structure.
* configure.ac: Add getdata_extra macro.o
* man/dirfile_alter_encoding.3.in man/dirfile_alter_entry.3 man/getdata.3
man/dirfile_add_bit.3 man/dirfile_alter_bit.3 man/dirfile_cbopen.3
man/dirfile_add.3 man/dirfile-format.5 man/dirfile.5 man/get_constant.3
man/dirfile_add_spec.3 man/dirfile_madd_bit.3 man/dirfile-encoding.5: Update.
* man/dirfile-complex.5: Added.
2009-09-30 D. V. Wiebe <getdata@ketiltrout.net> svn:314
* test/convert_complex128_float64.c test/get_const_complex.c
test/madd_lincom.c test/madd_polynom.c test/repr_real_m.c test/repr_i.c
test/put_repr.c test/repr_real_a.c test/repr_m.c test/repr_real_r.c
test/get_const.c test/madd_string.c test/add_string.c test/repr_a.c
test/convert_complex128_complex64.c test/repr_r.c test/get_const_repr.c
test/convert_complex64_float64.c test/repr_real_i.c: Clean compiler
warnings.
* src/open.c (dirfile_parser_callback): Changed the parser callback protoype
again. This is hopefully less likely to break things in the future.
* src/getdata.h.in: Define two new types: gd_parser_data_t, a structure
of getdata data passed to the callback function, and gd_parser_callback_t,
the callback function itself.
* src/parse.c (_GD_ParseFragment): Call the new parser callback.
* test/open_cb_invalid.c test/include_cb.c test/open_cb_rescan.c
test/open_cb_ignore.c test/include_pc.c test/open_cb_cont.c
test/open_cb_abort.c bindings/python/test/callback.py
bindings/python/pydirfile.c bindings/cxx/dirfile.cpp
bindings/cxx/getdata/dirfile.h bindings/f77/fgetdata.c: Update for new
callback prototype.
* configure.ac: Attempt to compile a minimal F90 program with a .f90
extension. This should tip us off to any old G77s which are pretending to
be "Fortran" compilers.
* util/checkdirfile.c: A significant overhaul to add more functionality:
reports all the lines with syntax errors, calls dirfile_validate() on all
fields.
2009-09-29 D. V. Wiebe <getdata@ketiltrout.net> svn:313
* test/madd_spec.c test/madd_polynom.c test/get_polynom.c
test/entry_polynom.c test/entry_lincom.c test/add_string.c test/madd_phase.c
test/madd_sbit.c test/madd_linterp.c test/alter_linterp.c
test/madd_multiply.c: Make tests more rigorous.
* test/convert_complex128_float64.c test/parse_meta_implicit.c
test/convert_float32_complex128.c test/parse_meta_implicit2.c
test/get_const_complex.c test/get_complex128.c test/alter_spec_meta.c
test/convert_float64_complex128.c test/repr_uint64.c test/repr_real_m.c
test/convert_complex64_uint64.c test/repr_float32.c
test/convert_int16_complex64.c test/repr_i.c test/get_complex64.c
test/repr_int32.c test/put_complex128.c test/convert_uint8_complex64.c
test/alter_lincom_23.c test/get_cpolynom.c test/repr_int16.c
test/convert_float64_complex64.c test/put_repr.c
test/convert_complex64_complex128.c test/convert_float32_complex64.c
test/repr_real_a.c test/convert_complex128_int64.c
test/convert_complex64_int64.c test/put_endian_complex128.c
test/put_endian_complex64.c test/convert_uint16_complex128.c test/repr_m.c
test/convert_uint16_complex64.c test/repr_real_r.c
test/convert_int64_complex64.c test/get_const.c test/parse_meta_index2.c
test/get_endian_complex64.c test/repr_uint8.c test/convert_int32_complex64.c
test/convert_int8_complex128.c test/convert_int16_complex128.c
test/madd_string.c test/repr_float64.c test/convert_complex128_complex64.c
test/convert_int8_complex64.c test/repr_int64.c
test/convert_complex128_uint64.c test/convert_uint32_complex128.c
test/repr_a.c test/put_complex64.c test/repr_int8.c test/repr_uint32.c
test/get_endian_complex128.c test/madd_cpolynom.c
test/convert_uint64_complex64.c test/add_spec_meta.c test/repr_uint16.c
test/convert_int32_complex128.c test/get_clincom.c
test/convert_uint32_complex64.c test/convert_uint8_complex128.c test/repr_r.c
test/alter_cpolynom.c test/convert_uint64_complex128.c test/get_const_repr.c
test/convert_complex64_float64.c test/repr_real_i.c
test/convert_int64_complex128.c: Added.
* bindings/python/test/big_test.py: Added.
* bindings/python/test/tst_getdata.py: Deleted.
* bindings/cxx/test/big_test.cpp: Added.
* bindings/cxx/test/entry.cpp: Deleted.
* bindings/f77/test/big_test95.f90: Added.
* bindings/f77/test/big_test.f: Completed.
* bindings/f77/test/fget_field_list.f90 bindings/f77/test/fget_entry.f90
bindings/f77/test/gdfget.f bindings/f77/test/fgetdata.f90: Deleted.
* index.c (get_framenum_subset64): Multiply user-supplied frame limits by
spf.
* getdata.c (_GD_DoField): Don't pass the user-supplie represenation when
calculating the native type.
* errors.c: Fix error strings for GD_E_DELETE.
* encoding.c (_GD_EncodingUnderstood): Add GD_LZMA_ENCODED.
* constant.c (get_constant): specify num_samp=1 in _GD_DoField call to
ensure correct repr handling.
* putdata.c (_GD_DoRawOut): Properly handle byte swapping for complex data.
* putdata.c (putdata64): Remove spurious free().
* parse.c: Remove bogus const specifier from in_cols.
* internal.h: Add table_len to private entry struct.
* parse.c (_GD_ParseLinterp): Don't store the computed path in E->table.
* mod.c (_GD_Change): ditto. Reset Qe.table_path instead. Furthermore, if
moving the table, recompute table_path, first.
* common.c (_GD_SetTablePath): Added.
* common.c (_GD_ReadLinterpFile): Update for table_path.
* common.c (_GD_ReadLinterpFile): Close the file after reading it.
* mod.c (_GD_Change): Fix the limits on the scalar free.
* mod.c (dirfile_alter_cpolynom): Move invariant code out of the loop.
* parse.c (_GD_ParseFieldSpec): Parse a "Barth"-style meta field
specification.
* parse.c (_GD_ParseFieldSpec): Allow "INDEX" as a metafield name.
* mod.c (_GD_Change): Recompute comp_scal, instead of just using the input.
* add.c (_GD_Add): ditto.
* add.c (dirfile_madd_string): Search for the correct field code.
* common.c (_GD_Alloc): Return early on n=0.
* bindings/python: Renamed module to pygetdata.
* bindings/python/pydirfile.c (gdpy_dirfile_alter
gdpy_dirfile_getfragmentindex gdpy_dirfile_getrawfilename gdpy_dirfile_move
gdpy_dirfile_rename): Added.
* bindings/python/pyentry.c (gdpy_set_entry_from_tuple): Fix initialisation
of PHASE->shift.
* bindings/python/pyentry.c (gdpy_set_entry_from_dict): Fix RAW keys.
* bindings/python/pyentry.c (gdpy_entry_init): Make the parameter list
optional for STRING entries.
* bindings/python/pyentry.c (gdpy_entry_getbitnum gdpy_entry_setbitnum
gdpy_entry_getshift gdpy_entry_setshift): Fix field_type check.
* bindings/cxx/entry.cpp (Entry::Rename): Properly handle renaming
metafields.
* bindings/cxx/entry.cpp (Entry::SetName Entry::SetFragmentIndex): Added.
* bindings/cxx/getdata/entry.h (Entry::Associated Entry::Dissociate
Entry::Name Entry::ComplexScalars Entry::ConstType): Added.
* bindings/cxx/fragment.cpp (Fragment::SetEncoding): Fix
dirfile_alter_encoding call.
* bindings/cxx/lincomentry.cpp (LincomEntry::SetScale
LincomEntry::SetOffset): Add complex versions.
* bindings/cxx/polynomentry.cpp (PolynomEntry::SetCoefficient): ditto.
* bindings/cxx/dirfile.cpp (Dirfile::Dirfile): Add empty constructor.
* bindings/cxx/dirfile.cpp (Dirfile::FragmentIndex Dirfile::Name): Added.
* bindings/cxx/getdata/rawentry.h bindings/cxx/getdata/linterpentry.h
bindings/cxx/getdata/polynomentry.h bindings/cxx/getdata/bitentry.h
bindings/cxx/getdata/multiplyentry.h bindings/cxx/getdata/phaseentry.h
bindings/cxx/getdata/lincomentry.h bindings/cxx/getdata/sbitentry.h
bindings/cxx/getdata/constentry.h bindings/cxx/getdata/stringentry.h: Added
empty constructors.
* bindings/cxx/getdata/dirfile.h: Include all the other headers.
* bindings/cxx/getdata.entry.h (Entry::Coefficient Entry::CCoefficient
Entry::Input): Fix calls for POLYNOM entries.
* bindigns/f77/fgetdata.c (_GDF_CString): Return a empty string instead of
NULL on l=0.
* bindings/f77/fgetdata.c (_GDF_GetDirfile): Don't crash on index out of
range.
* bindings/f77/fgetdata.c (gdgtst gdptst): Report a length one less than the
C API.
* bindings/f77/getdata.f90.in: Don't overload gd_entry%n_fields: use
gd_entry%poly_ord when necessary.
* bindings/f77/getdata.f90.in (fget_nmfields): Call the right F77 function.
* bindings/f77/getdata.f90.in (fget_mvector_list): Fix gdmven call.
* bindings/f77/getdata.f90.in (fget_entry): Call the right F77 function for
PHASE entries.
* bindings/f77/getdata.f90.in (fdirfile_add_multiply fdirfile_add_phase
fdirfile_madd_multiply fdirfile_madd_phase fdirfile_alter_multiply
fdirfile_alter_phase): Fix name.
* bindings/f77/getdata.f90.in (fdirfile_madd_sbit fdirfilename): Added.
2009-09-26 D. V. Wiebe <getdata@ketiltrout.net> svn:312
* bindings/idl/getdata.c: Fixed typo in DLM magic for
gdidl_get_raw_filename.
* configure.ac: Remove spurious AC_SUBST.
2009-09-21 D. V. Wiebe <getdata@ketiltrout.net> svn:311
* src/getdata.h.in: complex_scalars member shortened to comp_scal.
* test/add_cpolynom.c test/add_clincom.c test/index.c test/index_range.c
test/madd_clincom.c test/index_domain.c test/madd_const.c: Added.
* test/madd_bit.c test/madd_lincom.c test/add_lincom.c test/add_phase.c
test/add_multiply.c test/add_bit.c test/add_const.c test/add_linterp.c
test/add.c test/add_sbit.c test/madd.c test/add_raw.c test/add_polynom.c
test/add_spec.c: Make more rigourous tests for success.
* src/entry.c (dirfile_validate): Added.
* src/getdata.c (_GD_DoField): removed the largely unnecessary field_code
argument. All callers changed.
* src/putdata.c (_GD_DoFieldOut): ditto.
* src/legacy.c (CopyPolynomEntry GetFormat): Report POLYNOMs and LINCOMs.
Similarly, report SBITs as BITs.
* src/index.c: Added.
* src/getdata.c (_GD_DoLincom _GD_DoPolynom): Select complex versions of the
calculation functions based on E->comp_scal, not the native type.
* src/errors.c (get_error_string): Properly report success.
* src/getdata.c src/internal.h: Moved the NAN() function to the header.
* src/getdata.h.in: Removed a number of GNUisms.
* src/add.c (_GD_Add): Set E->comp_scal for LINCOMs and POLYNOMs. Fix
copying of POLYNOM parameters.
* src/add.c (dirfile_madd_clincom): Set comp_scal correctly.
* src/add.c (dirfile_madd_const): Search for the correct field code.
* bindings/python/test/callback.py bindings/python/test/tst_getdata.py:
Added.
* bindings/python/pygetdata.c bindings/python/pyconstants.c
bindings/python/pydirfile.c bindings/python/pygetdata.h
bindings/python/pyentry.c: Update for get_framenum() and complex values.
* bindings/cxx/dirfile.cpp (Dirfile::NativeType Dirfile::Validate
Dirfile::FrameNum): Added.
* bindings/cxx/lincomentry.cpp bindings/cxx/polynomentry.cpp
bindings/cxx/getdata/polynomentry.h: Update for complex values.
* bindings/f77/test/big_test.f: Added.
* bindings/f77/fgetdata.c (_GDF_FString): Don't unnecessarily cut of the
last character of the string. Also, don't corrupt memory.
* bindings/f77/fgetdata.c (GDFLDN GDMFDN): Check for field_num < 0.
* bindings/f77/fgetdata.c (GDESTR): Properly space-pad the string.
* bindings/f77/fgetdata.c (GDGERW GDGELC GDGEPN GDGECP GDGEBT GDGESB GDGEMT
GDGEPH GDGECO): Fix crash-on-error due to indiscriminate use of
dirfile_free_entry_strings().
* bindings/f77/fgetdata.c (GDGEPN): Fix multiple bugs resulting from
improper translationg from GDGELC.
* bindings/f77/fgetdata.c (GDGECL GDGECP GDADCL GDADCP GDMDCL GDMDCP GDALCL
GDALCP GDNTYP GDCSCL GDVLDT GDFNUM GDFNSS): Added.
* bindings/f77/getdata.f90.in (fgetdata_c8 fgetdata_c16 fget_constant_c8
fget_constant_c16 fputdata_c8 fputdata_c16 fput_constant_c8
fput_constant_c16 fdirfile_add_clincom fdirfile_add_cpolynom
fdirfile_madd_clincom fdirfile_madd_cpolynom fdirfile_alter_clincom
fdirfile_alter_cpolynom fget_native_type fdirfile_validate fget_framenum
fget_framenum_subset): Added.
* bindings/idl/getdata.c: Update.
2009-09-21 D. V. Wiebe <getdata@ketiltrout.net> svn:309
* src/meta_list.c (get_mstrings): Properly terminate the list. Bug
report from Matthew Truch.
* test/svlist_meta.c: Be more verbose.
2009-09-03 D. V. Wiebe <getdata@ketiltrout.net> svn:308
* test/put_sbit.c: Ensure data is signed.
* src/internal.h: Add repr, complex_table, cy, cconst to _gd_private_entry;
added representation stuff.
* src/getdata.h.in: Add GD_E_BAD_REPR, GD_E_FORMAT_LITTERAL, GD_COMPLEX64,
GD_COMPLEX128. Add complex_scalars, cm, cb, ca to _gd_unified_entry.
* src/entry.c (_GD_GetScalar): Set complex_scalars.
* src/entry.c (_GD_CalculateEntry): Retrieve all scalars as GD_COMPLEX, and
then realify back down.
* src/types.c (_GD_ConvertType): Handle complex types.
* src/getdata.c (_GD_FillFileFrame _GD_PolynomData _GD_MultiplyData): Handle
complex types.
* src/getdata.c (_GD_DoRaw): Handle complex data endianness correction
properly.
* src/getdata.c (_GD_CPolynomData _GD_CMultiplyData): Added.
* src/getdata.c (_GD_DoMultiply _GD_DoPolynom): Handle complex input fields.
* src/getdata.c (_GD_DoLinterp): Permit complex y-valued LUTs.
* src/getdata.c (_GD_DoConst): Handle complex valued scalars.
* src/flush.c (_GD_TypeName): Add GD_COMPLEX64 and GD_COMPLEX128.
* src/flush.c (_GD_WriteConst): Write a complex literal.
* src/flush.c (_GD_FieldSpec): Handle complex valued literals.
* src/ascii.c (_GD_ScanFormat _GD_AsciiRead _GD_AsciiWrite): Handle complex
data.
* src/putdata.c (_GD_DoLinterpOut _GD_DoLincomOut _GD_DoPolynomOut
_GD_DoConstOut): Handle complex writes.
* src/del.c (_GD_DeReference): Handle complex scalars.
* src/parse.c (_GD_RawType): Add GD_COMPLEX64 and GD_COMPLEX128.
* src/parse.c (_GD_SetScalar): Handle complex literals. This may now
through the FORMAT suberror GD_E_FORMAT_LITTERAL. Callers updated.
* src/parse.c (_GD_ParseLincom _GD_ParsePolynom _GD_ParseConst): Handle
complex literals.
* src/mod.c (_GD_Change): Handle complex scalars.
* src/mod.c (dirfile_alter_clincom dirfile_alter_cpolynom): Added.
* src/add.c (_GD_Add): Handle complex scalars.
* src/add.c (dirfile_add_clincom dirfile_add_cpolynom dirfile_madd_clincom
dirfile_madd_cpolynom): Added.
* src/common.c (_GD_ReadLinterpFile): Allow complex y-values.
* src/common.c (_GD_LinterpData): Handle complex return types.
* src/common.c (_GD_CLinterpData): Added.
* src/native.c: Added.
* src/entry.c (get_entry get_entry_type get_fragment_index): Discard any
represenation in the input field code.
* src/getdata.c (_GD_ExtractRepr): Added.
* src/getdata.c (_GD_DoField): Handle represenations for both complex and
real types.
* src/getdata.c (getdata64): Decode the input representation.
* src/name.c (_GD_ValidateField): Don't allow representation suffixes in
field names.
* src/spf.c (get_spf): Discard any represenation in the input field code.
* src/constant.c (get_constant put_constant): Handle representations.
* src/putdata.c (_GD_DoFieldOut): Complain on getting a representation.
* src/putdata.c (putdata64): Decode the input representation.
* src/common.c (_GD_GetRepr): Added.
* src/errors.c: Add errors for GD_E_FORMAT_LITTERAL and GD_E_BAD_REPRs.
* src/legacy.c: Add GD_E_BAD_REPR to GD_ERROR_CODES.
* src/getdata.c (_GD_FillZero): Let the caller deal with s0.
* src/getdata.c (_GD_DoLincom _GD_DoMultiply _GD_DoBit _GD_DoPhase
_GD_DoLinterp _GD_DoPolynom): Use _GD_BadInput.
* src/spf.c (_GD_GetSPF): Use _GD_BadInput.
* src/common.c (_GD_BadInput): Added.
* src/constant.c (put_constant): Return -1 on error.
* src/getdata.c (_GD_DoLincom): Rewrote for better optimisation. Includes
Matthew Truch's m=1 b=0 short circuit.
* src/common.c (_GD_ScaleData): Deleted.
* src/commonc. (_GD_LincomData _GD_CLincomData): Added.
* src/common.c (_GD_Alloc): Throw GD_E_ALLOC on malloc error.
* src/flush.c (_GD_FlushFragment): Add the missing encoding types, and write
something to the file on an unhandled type.
* src/putdata.c (_GD_DoRawOut): Check malloc return.
* src/getdata.c (_GD_DoRaw _GD_DoLincom _GD_DoMultiply _GD_DoBit _GD_DoPhase
_GD_DoLinterp _GD_DoPolynom _GD_DoField getdata64): Only the user cares about
first_frame, and num_frames. Convert to pure samples early in getdata64().
* src/putdata.c (_GD_DoRawOut _GD_DoLincomOut _GD_DoBitOut _GD_DoPhaseOut
_GD_DoLinterpOut _GD_DoPolynomOut _GD_DoFieldOut putdata64): Ditto in
putdata64().
2009-08-17 D. V. Wiebe <getdata@ketiltrout.net> svn:306
* src/getdata.c (_GD_DoMultiply): Load the second field as GD_DOUBLE.
* src/getdata.c (_GD_MultiplyData): Compute MULTIPLYs in double precision,
rather than the return_type.
2009-08-13 D. V. Wiebe <getdata@ketiltrout.net> svn:305
GetData license changed to GNU LGPLv2.1+. All documentation updated.
2009-08-04 D. V. Wiebe <getdata@ketiltrout.net> svn:304
* m4/ax_compare_version.m4 m4/idl.m4: Added.
* m4/idl.m4: Added.
* bindings/idl: Added.
* src/getdata.h.in: Renamed GD_MAX_POLYNOM to GD_MAX_POLYORD to remove
confusion as to what this actually is.
* bindings/f77/fgetdata.c: Ensure the f77dirfiles array is initialised
before we try to read from it, even if the caller hasn't opened a dirfile
yet.
2009-07-20 D. V. Wiebe <getdata@ketiltrout.net> svn:302
* test/open_cb_invalid.c test/include_cb.c test/open_cb_rescan.c
test/open_cb_ignore.c test/include_pc.c test/open_cb_cont.c
test/open_cb_abort.c: Update for new sehandler.
* test/flush_spec.c: Fix compiler warinings.
2009-07-20 D. V. Wiebe <getdata@ketiltrout.net> svn:301
* util/: moved from bin/
* test/flush_spec.c: Added.
* src/flush.c (_GD_StringEscapeise): Properly handle bytex 0x80-0xFF.
* src/flush.c (_GD_WriteConst): Added.
* src/flush.c (_GD_FieldSpec): Write CONST field parameters, where
appropriate.
* src/parse.c (_GD_ParseBit): Fix check for CONST field in error checks for
numbits and bitnum.
* m4/python.m4: Added.
* bindings/python/: Added.
* configure.ac: Python tests.
* src/open.c (dirfile_parser_callback dirfile_cbopen): Pass an opaque
pointer as a fourth argument to the parser callback handler.
* src/parse.c (_GD_ParseFragment): Pass the fourth, opaque pointer to the
callback.
* bindings/cxx/dirfile.cpp: Update for fourth argument to callback.
* bindings/f77/fgetdata.c: Use fourth argument to callback to support
per-dirfile callback functions. Removed _gdf_f77_callback global.
* src/mod.c (_GD_Change): Fix _GD_SetError calls for GD_E_BAD_TYPE errors.
* src/add.c (_GD_Add): Ditto.
* src/add.c (dirfile_add_spec dirfile_madd_spec): Flag fragment as modified
on parser success.
* src/foffs.c: Remove spurious newlines from debugging trace messages.
* src/types.c (_GD_ConvertType): return propper error on bad out_type
* src/getdata.h.in: Changed the value of GD_SCALAR_ENTRY
* bindings/cxx/entry.cpp bindings/cxx/dirfile.cpp
bindings/cxx/getdata/dirfile.h bindings/cxx/getdata/entry.h: Update for SBIT
and POLYNOM.
* bindings/cxx/polynomentry.cpp bindings/cxx/sbitentry.cpp
bindings/cxx/getdata/polynomentry.h bindings/cxx/getdata/sbitentry.h: Added.
* bindings/f77/fgetdata.c (GDGEPN GDGESB GDADPN GDADSB GDMDPN GDMDSB GDALSB
GDALPN): Added.
* bindings/f77/make_parameters.c: Added GD_LZMA_ENCODED GD_POLYNOM_ENTRY
GD_SBIT_ENTRY.
* bindings/f77/getdata.f90.in (fget_entry fdirfile_add fdirfile_madd
fdirfile_alter_entry): Update for SBIT and POLYNOM.
* bindings/f77/getdata.f90.in (fdirfile_add_sbit fdirfile_add_polynom
fdirfile_madd_polynom fdirfile_alter_sbit fdirfile_alter_polynom): Added.
* bindings/cxx/test/fragment.h: Add the Index() method.
* bindings/cxx/lincomentry.cpp (LincomEntry::SetNFields): Fix initialisation
of new terms.
* man/dirfile_uninclude.3 man/dirfile_include.3 man/get_entry.3: Typoes.
2009-06-23 D. V. Wiebe <getdata@ketiltrout.net> svn:298
* test/get_sbit.c test/parse_sbit.c test/add_sbit.c test/put_sbit.c
test/madd_sbit.c: Added.
* src/getdata.h.in: define GD_SBIT_ENTRY.
* src/entry.c (_GD_FreeE _GD_CalculateEntry get_entry): Update for SBIT.
* src/getdata.c (_GD_DoBit): Add is_signed parameter and calculates signed
bitfields when needed.
* src/getdata.c (_GD_DoField): Update for SBIT.
* src/flush.c (_GD_FieldSpec _GD_Flush): Update for SBIT.
* src/nfields.c (get_nfields_by_type): Update for SBIT.
* src/putdata.c (_GD_DoFieldOut): Update for SBIT.
* src/del.c (_GD_ClearDerived _GD_DeReference): Update for SBIT.
* src/parse.c (_GD_ParseBit): Add is_signed parameter and parse SBIT.
* src/parse.c (_GD_ParseFieldSpec): Update for SBIT.
* src/field_list.c: Add GD_SBIT_ENTRY to _gd_entype_index.
* src/mod.c (dirfile_alter_sbit): Added.
* src/mod.c (_GD_Change): Update for SBIT.
* src/add.c (_GD_Add): Update for SBIT.
* src/add.c (dirfile_add_sbit dirfile_madd_sbit): Added.
2009-06-18 D. V. Wiebe <getdata@ketiltrout.net> svn:297
* configure.ac: Move AM_CONDITIONALS to a block near the end to avoid
testing them too soon.
2009-06-16 D. V. Wiebe <getdata@ketiltrout.net> svn:295
* test/xz_nframes.c test/lzma_nframes.c test/lzma_get.c test/xz_get.c:
Added.
* m4/encoding.m4 (GD_CHECK_ENCODING): Fix to allow an empty 6th parameter.
* configure.ac: Add LZMA/xz encoding framework check.
* src/lzma.c: Added.
* src/encoding.c: Add entries to _gd_ef for the LZMA schemes.
* src/internal.h: Add GD_ENC_LZMA_RAW and GD_ENC_XZ_RAW.
* src/getdata.h.in: Add GD_LZMA_ENCODED.
* src/bzip.c (_GD_Bzip2Read): Fix length count.
2009-06-11 D. V. Wiebe <getdata@ketiltrout.net> svn:292
* test/get_lincom_non.c test/parse_lincom_non_ncols.c
test/parse_lincom_non.c: Added.
* src/parse.c (_GD_ParseLincom): Make <n> optional.
2009-06-11 D. V. Wiebe <getdata@ketiltrout.net> svn:291
* test/alter_polynom_coeff.c test/get_polynom_noin.c
test/parse_polynom_scalar.c test/put_polynom1.c test/alter_polynom_input.c
test/put_polynom2.c test/madd_polynom.c test/entry_polynom_scalar.c
test/parse_polynom_ncols1.c test/parse_polynom.c test/add_polynom.c
test/spf_polynom.c test/parse_polynom_ncols2.c test/put_polynom_noin.c
test/alter_polynom_ord.c test/get_polynom.c test/entry_polynom.c: Added.
* src/getdata.c (_GD_DoField): Fix call to _GD_DoPolynom.
* src/parse.c (_GD_ParsePolynom): Fix off-by-one error.
* src/mod.c (_GD_Change): Handle poly_ord = 0 properly.
* src/mod.c (dirfile_alter_polynom): Fix off-by-one error.
* src/getdata.h.in: Declare polynom API.
* src/add.c (_GD_Add): Only copy the first polynom in_field.
2009-06-09 D. V. Wiebe <getdata@ketiltrout.net> svn:290
* src/internal.h: Add GD_E_BAD_ENTRY_POLYORD.
* src/getdata.h.in: Define GD_MAX_POLYNOM and GD_POLYNOM_ENTRY. Increment
GD_N_ENTYPES. Add POLYNOM struct to the entry struct.
* src/entry.c (_GD_FreeE _GD_CalculateEntry get_entry): Add case for
GD_POLYNOM_ENTRY.
* src/getdata.c (_GD_DoField): Add case for GD_POLYNOM_ENTRY.
* src/flush.c (_GD_Flush _GD_FieldSpec): Add case for GD_POLYNOM_ENTRY.
* src/nfields.c (get_nfields_by_type): Add case for GD_POLYNOM_ENTRY.
* src/spf.c (_GD_GetSPF): Add case for GD_POLYNOM_ENTRY.
* src/putdata.c (_GD_DoFieldOut): Add case for GD_POLYNOM_ENTRY.
* src/del.c (_GD_ClearDerived _GD_DeReference): Add case for GD_POLYNOM_ENTRY.
* src/mod.c (_GD_Change): Add case for GD_POLYNOM_ENTRY.
* src/add.c (_GD_Add): Add case for GD_POLYNOM_ENTRY.
* src/getdata.c (_GD_PolynomData _GD_DoPolynom): Added.
* src/putdata.c (_GD_DoPolynomOut): Added.
* src/parse.c (_GD_ParsePolynom): Added.
* src/mod.c (dirfile_alter_polynom): Added.
* src/add.c (dirfile_add_polynom dirfile_madd_polynom): Added.
* src/entry.c (_GD_FreeE): GD_MAX_LINCOM -> GD_MAX_POLYNOM in limits.
* src/mod.c (_GD_Change): GD_MAX_LINCOM -> GD_MAX_POLYNOM in limits.
* src/internal.h: GD_MAX_LINCOM -> GD_MAX_POLYNOM in limits.
* src/parse.c (_GD_ParseFieldSpec): Handle POLYNOM field type.
* src/errors.c: Add GD_E_BAD_ENTRY_POLYORD suberror under GD_E_BAD_ENTRY.
* src/field_list.c: Add GD_POLYNOM_ENTRY to _gd_entype_index.
* src/mod.c (dirfile_alter_entry): For POLYNOM, also set move.
* src/mod.c (_GD_Change): Fix scalar_free flags for LINCOM.
* src/mod.c (dirfile_alter_lincom): Rename "move" to "flags" to avoid
obfuscating the purpose of this variable.
* src/mod.c (dirfile_alter_lincom): Check validity of n_fields before use.
* src/add.c (_GD_Add dirfile_add_lincom dirfile_madd_lincom): Check validity
of n_fields before use.
2009-01-16 D. V. Wiebe <getdata@ketiltrout.net> svn:285
GetData 0.5.0 released.
2009-01-13 D. V. Wiebe <getdata@ketiltrout.net> svn:283
GetData-0.5.0rc4:
* test/endian_move.c test/encode_move.c test/endian_alter.c: Fix more
big-endian errors reported by Matthew Truch.
* bindings/f77/fgetdata.c (gdcopn gdclbk): Properly check the callback
parameter for NULL. Reported by Matthew Truch.
* bindings/f77/fgetdata.c bindings/f77/Makefile.am: Add debugging tracing.
2009-01-09 D. V. Wiebe <getdata@ketiltrout.net> svn:281
GetData-0.5.0rc3:
* test/encode_move.c test/move_data_endian.c test/endian_get.c
test/endian_alter.c: Fix for correct operation on big endian architectures.
* src/gzip.c (_GD_GzipSize): Byte swap size on big endian machines.
* src/flush.c (_GD_FlushFragment): Static.
* bindings/cxx/dirfile.cpp (Dirfile::Add Dirfile::MAdd): Don't return before
setting the dirfile for the entry.
* bindings/f77/fgetdata.c (_GDF_Callback): Static.
* bindings/f77/fgetdata.h: Fix function names.
2009-01-08 D. V. Wiebe <getdata@ketiltrout.net> svn:279
GetData-0.5.0rc2:
* src/encoding.c src/endian.c src/foffs.c src/getdata.c src/name.c
src/flush.c src/encoding.c src/putdata.c src/del.c src/move.c src/parse.c
src/mod.c src/internal.h src/nframes.c: Hide internal symbols.
* src/internal.h src/Makefile.am Makefile.am configure.ac: Use an embeded ltdl
if no system ltdl is found.
* m4/encdoing.m4: Hide ltdl symbols.
* m4/ltdl.m4 src/gd_ltdl.c src/gd_ltdl.h: Added. These are taken unmodified
from the libtool distribution.
2008-12-23 D. V. Wiebe <getdata@ketiltrout.net> svn:277
GetData-0.5.0rc1:
* NEWS README: Updated.
* src/slim.c (_GD_SlimOpen _GD_SlimSize): Remove filebase stuff.
2008-12-21 D. V. Wiebe <getdata@ketiltrout.net> svn:276
* bindings/cxx/linterpentry.cpp bindings/cxx/bitentry.cpp
bindings/cxx/multiplyentry.cpp bindings/cxx/lincomentry.cpp
bindings/cxx/fragment.cpp bindings/cxx/constentry.cpp
bindings/cxx/rawentry.cpp bindings/cxx/phaseentry.cpp
bindings/cxx/getdata/indexentry.h bindings/cxx/getdata/getdata/rawentry.h
bindigns/cxx/getdata/linterpentry.h bindings/cxx/getdata/bitentry.h
bindings/cxx/getdata/multiplyentry.h bindings/cxx/getdata/phaseentry.h
bindings/cxx/getdata/lincomentry.h bindings/cxx/getdata/fragment.h
bindings/cxx/getdata/constentry.h bindings/cxx/getdata/stringentry.h
bindings/cxx/stringentry.cpp bindings/cxx/indexentry.cpp: Added.
* bindings/cxx/dirfile.cpp bindings/cxx/getdata/dirfile.h
bindings/cxx/entry.cpp bindings/cxx/getdata/entry.h: Updated C++ bindings
for the new functions.
* bindings/f77/fgetdata.c bindings/f77/getdata.f.in
bindings/f77/getdata.f90.in: Update for get_entry_type and get_fragment_index.
* test/fragment_index.c test/entry_type.c: Added.
* src/entry.c (get_entry_type get_fragment_index): Added.
* src/name.c (dirfile_rename): Prohibit renaming INDEX.
* src/move.c (dirfile_move): Prohibit moving INDEX.
2008-12-19 D. V. Wiebe <getdata@ketiltrout.net> svn:274
* bindings/f77/getdata.f90.in doc/README.F95: Add Fortran 95 bindings for new
functions, and for the dirfile_[m]add_<field_type> functions.
* bindings/f77/getdata.f90.in: Fix call to gdadsp and gdmdsp
2008-12-19 D. V. Wiebe <getdata@ketiltrout.net> svn:273
* src/protect.c (dirfile_protect): Swap order of arguments for consistency
with the dirfile_alter_<metadata> functions.
* bindings/f77/fgetdata.c (_GDF_CString _GDF_FString): Use Fortran string
length = 0 as a proxy for a C NULL pointer.
* bindings/f77/fgetdata.c bindings/f77/fgetdata.h bindings/f77/getdata.f.in
doc/README.f77: Add Fortran 77 bindings for new functions.
2008-12-18 D. V. Wiebe <getdata@ketiltrout.net> svn:272
* test/include_pc.c test/include_cb.c test/include_syntax.c: Added.
* src/open.c (dirfile_parser_callback): Added.
2008-12-18 D. V. Wiebe <getdata@ketiltrout.net> svn:270
* test/global_ref_get.c: Added.
* src/globals.c (get_reference): Added.
* bindings/f77/test/gdcopn.f: Added.
* bindings/f77/fgetdata.c (_GDF_ClearDirfile): Let caller close dirfile.
* bindings/f77/fgetdata.c (_GDF_FString): Fix off-by-one error.
* bindings/f77/fgetdata.c (_GDF_Callback): Added.
* bindings/f77/fgetdata.c: Add bindings for dirfile_cbopen and
dirfile_discard.
* bindings/f77/make_parameters.c: Add delete flags, protect levels,
callback actions, syntax suberrors, GD_MAX_LINE_LENGTH, GD_ALL_FRAGMENTS,
DIRFILE_STANDARDS_VERSION.
2008-12-18 D. V. Wiebe <getdata@ketiltrout.net> svn:269
* bindings/f77/make_parameters.c: Update for GD_E_BAD_PROTECTION and
GD_E_UNCLEAN_DB.
* bindings/f77/fgetdata.c bindings/f77/getdata.f.in bindings/f77/fgetdata.h
bindings/f77/getdata.f90.in README.f77 bindings/f77/test/gdfget.f: Convert
all Fortran-77 function names from GDFxxx to GDxxxx.
* test/alter_mspec.c test/alter_spec.c: Added.
* src/mod.c (dirfile_alter_spec dirfile_malter_spec): Call
_GD_ParseFieldSpec with creat = 0.
2008-12-17 D. V. Wiebe <getdata@ketiltrout.net> svn:267
* test/name_move.c test/protect_alter.c test/move_subdir.c test/file_code.c
test/protect_get.c test/name.c test/unclude_del.c test/unclude.c
test/file_type.c test/parent.c test/file.c test/unclude_move.c: Added.
* doc/unclean_database_recovery.txt: Added.
* COPYING.DOC: Added.
* man/dirfile_alter_encoding.3.in man/dirfile_alter_endianness.3.in
man/dirfile_alter_frameoffset.3in configure.ac: Build mans with paths.
* src/getdata.h.in src/error.c: Added GD_E_UNCLEAN_DB.
* src/endian.c (_GD_ByteSwapFragment) src/foffs.c (_GD_ShiftFragment)
src/encoding.c (_GD_RecodeFragment): Return the dreaded GD_E_UNCLEAN_DB if
finalisation fails.
* src/entry.c (get_raw_filename): Call _GD_SetEncodedName.
* src/flush.c (_GD_FlushFragment): Added.
* src/flush.c (_GD_FlushMeta): Call _GD_FlushFragment.
* src/internal.h: Add parent field to private entry.
* src/parse.c (_GD_ParseFieldSpec): Record parent.
* src/parse.c (_GD_Tokenise): Gracefully handle lines without terminating
newlines.
* src/include.c (dirfile_uninclude _GD_CollectFragments
_GD_ContainsFragment): Added.
* src/parse.c src/open.c: Split open.c
* src/move.c (_GD_MogrifyFile dirfile_move): Perform mogrification if filebase
has changed.
* src/move.c (strcmpnull): Added.
* src/fragment.c (get_parent_fragment): Added.
* src/fragment.c: Prperly clear error in public functions.
* src/fragment.c: Renamed from format_list.c
* src/name.c (_GD_ValidateField): Moved from encoding.c.
* src/name.c src/protect.c: Added.
* src/getdata.h.in src/error.c: Added GD_E_BAD_PROTECTION.
* src/getdata.h.in src/internal.h: Move GD_PROTECT macros to public header.
* src/encoding.c src/internal.h: Add move method to encoding framework.
* src/encoding.c (_GD_GenericMove): Added.
2008-12-10 D. V. Wiebe <getdata@ketiltrout.net> svn:266
* bindings/cxx/dirfile.cpp (Dirfile::ReferenceFilename): Added.
2008-12-10 D. V. Wiebe <getdata@ketiltrout.net> svn:265
* src/encoding.c (_GD_EncodingUnderstood): Understand GD_TEXT_ENCODED.
* src/encoding.c (_GD_RecodeFragment): Properly handle moving the temporary
file and deleting the old file.
* src/encoding.c (get_encoding): Determine encoding if needed. Report
GD_ENC_UNSUPPORTED if encoding is not understood.
2008-12-09 D. V. Wiebe <getdata@ketiltrout.net> svn:264
* test/endian_move.c test/endian_get.c test/endian_alter.c: Added.
* src/endian.c: Use unsigned long for byte_sex parameters.
* src/endian.c (_GD_ByteSwapFragment) src/open.c (dirfile_cbopen)
src/include.c (_GD_Include): Canonicalise byte sex as soon as possible.
* src/ascii.c (_GD_AsciiTemp) src/raw.c (_GD_RawTemp): Check for valid
field name before trying move.
* src/endian.c (_GD_ByteSwapFragment): Don't bother checking encoding ecor
before calling _GD_Mogrify.
* src/endian.c (get_endianness): Return unsigned long and 0 on error.
2008-12-08 D. V. Wiebe <getdata@ketiltrout.net> svn:263
* test/foffs_move.c test/foffs_get.c test/foffs_alter.c: Added.
2008-12-08 D. V. Wiebe <getdata@ketiltrout.net> svn:261
* test/alter_multiply.c test/alter_entry.c test/alter_phase.c
test/alter_linterp_move.c test/alter_lincom_input.c
test/alter_lincom_slope.c test/alter_linterp.c test/alter_const.c
test/alter_raw_type.c test/alter_entry_recode.c test/alter_bit_bitnum.c
test/alter_raw_spf.c test/alter_bit_numbits.c test/alter_lincom_offset.c:
Added.
* src/flush.c (_GD_FlushMeta): Preserve access mode for fragments.
* src/ascii.c (_GD_AsciiTemp) src/raw.c (_GD_RawTemp): Preserve access mode.
* src/mod.c (_GD_Change): Don't initialise enc until subencoding is
determined. Fully determine LUT table paths. Type convert CONST data as
needed. Fix lincom argument handling.
* src/mod.c (dirfile_alter_raw): Swap order of spf and data type arguments
to correspond to dirfile_add_raw().
* src/mod.c (dirfile_alter_lincom): Set n_fields properly, potentially by
finding the field to be changed first. Fix checks for NULL arguments.
* src/mod.c (dirfile_alter_multiply): Set correct field type.
* src/mod.c (dirfile_malter_spec): Swap order of line and parent arguments
to correspond to dirfile_madd_spec().
2008-12-06 D. V. Wiebe <getdata@ketiltrout.net> svn:260
* src/endian.c (dirfile_alter_endianness): Renamed from put_endianness.
* src/foffs.c (dirfile_alter_frameoffset64 dirfile_alter_frameoffset):
Renamed from put_frameoffset64 and put_frameoffset.
* src/encoding.c (dirfile_alter_encoding): Renamed from put_encoding.
* src/mod.c (dirfile_alter_raw dirfile_alter_lincom dirfile_alter_linterp
dirfile_alter_bit dirfile_alter_multiply dirfile_alter_phase
dirfile_alter_const dirfile_alter_spec dirfile_malter_spec): Renamed from
dirfile_change_*.
* src/mod.c (dirfile_alter_entry): Renamed from dirfile_change.
2008-12-03 D. V. Wiebe <getdata@ketiltrout.net> svn:258
* src/open.c (_GD_ParseDirective): Handle bzip and gzip ENCODING directives.
* src/encoding.c: Fix bzip2 non-module framework.
* src/ascii.c (_GD_AsciiRead): Don't throw an error on EOF.
* src/ascii.c (_GD_AsciiTemp) src/raw.c (_GD_RawTemp): Don't overwrite the
main file.
* src/bzip.c (_GD_Bzip2Seek _GD_Bzip2Read): Intelligently handle EOF.
* src/move.c (_GD_MogrifyData): Handle new_filebase internally. Don't check
the input encoding before determining it. Always use temp files, even when
changing encodings. Error handling fixes.
* test/move_data_enc_ar.c test/gzip_move_from.c test/move_data_enc_ra.c
test/move_data_foffs.c test/move_data_endian.c test/bzip_move_from.c
test/move_data_nop.c: Added.
2008-12-03 D. V. Wiebe <getdata@ketiltrout.net> svn:254
* src/move.c (dirfile_move): Don't bother checking whether the encoding is
understood if we're not moving the data. Also, update the fragment index
for the field and mark both the old and new fragments as dirty.
* test/move.c test/move_protect.c test/move_index.c: Added.
2008-12-01 D. V. Wiebe <getdata@ketiltrout.net> svn:253
* src/ascii.c src/bzip.c src/encoding.c src/gzip.c src/raw.c: Initialise
filename in the library directly instead of passing that off on the encoding
framework.
* man/dirfile_move.3: Added.
* src/getdata.h.in: Add GD_IGNORE_REFS.
* src/include.c (dirfile_include): Handle both explicit and implicit
reference field declarations, along with GD_IGNORE_REFS.
* test/include_ignore.c test/include_ref.c test/include_auto.c: Added.
* man/dirfile_include.3: Update.
* test/global_ref_empty.c test/global_ref_set.c test/global_ref.c: Added.
* man/dirfile_reference.3: Added.
* add.c (_GD_Add): Don't modify the dirfile until we're sure to succeed.
* src/add.c (_GD_Add) src/entry.c (_GD_GetScalar) src/legacy.c
(_GD_GetDirfile GetFormat) src/open.c (_GD_ParseFieldSpec) src/globals.c
(dirfile_reference): Properly check realloc for error before use.
* src/slim.c src/encoding.c: Fix symbols for slim module.
* src/del.c (dirfile_delete): If the reference field is deleted, do
something sensible.
* src/open.c (dirfile_cbopen dirfile_open) src/include.c (dirfile_include):
Flags are long.
* m4/encoding.m4: Fix library check for extra prefix.
* src/common.c (_GD_FindField): index should be unsigned.
* bindings/f77/make_parameters.c README.f77: Update for new symbols.
2008-11-28 D. V. Wiebe <getdata@ketiltrout.net> svn:252
* man/dirfile_include.3: Updated for calback.
* man/dirfile_close.3: Updated for dirfile_discard.
* src/getdata.h.in: Sorted.
* src/Makefile.am: Correct flags for bzip2 module.
* src/globals.c (dirfile_reference): Renamed from put_reference and merged
with get_reference.
* test/close_discard.c: Added.
* src/encoding.c src/internal.h: Removed the per-dirfile encoding
frameworks. Renamed encoding_framework ef and made non static and non
const.
* src/encoding.c (_GD_InitialiseFramework): Reimplemented to initialise
global framework.
* src/open.c (dirfile_cbopen): Call _GD_InitialiseFramework to initialise
global framework.
* src/close.c (_GD_ShutdownDirfile): Don't call lt_dlexit();
* src/close.c (_GD_ShutdownDirfile): Renamed from dirfile_close and
added the flush_meta parameter.
* src/close.c (dirfile_close dirfile_discard): Added.
2008-11-28 D. V. Wiebe <getdata@ketiltrout.net> svn:251
* test/del.c test/del_meta.c test/del_meta_force.c test/del_const.c
test/del_const_deref.c test/del_const_force.c test/del_data.c
test/del_derived.c test/del_derived_force.c test/open_cb_invalid.c: Added.
* man/dirfile_delete.3: Added.
* src/spf.c (_GD_GetSPF): Calculate RAW fields, if requried.
* src/del.c (dirfile_delete): Multiple bug fixes.
* src/getdata.h.in: Remove GD_DEL_NONE
2008-11-27 D. V. Wiebe <getdata@ketiltrout.net> svn:250
* test/open_cb_ignore.c test/open_cb_cont.c test/open_cb_abort.c
test/open_cb_rescan.c: Added.
* src/open.c (_GD_ParseFragment): Properly ABORT or RESCAN.
* src/internal.h src/getdata.h.in: GD_SYNTAX_* macros should be public.
* src/getdata.h.in: dirfile_cbopen() forward declaration.
2008-11-27 D. V. Wiebe <getdata@ketiltrout.net> svn:248 svn:249
* test/global_name.c: Added.
* src/open.c (_GD_ParseFragment): Fail with GD_E_CALLBACK on invalid
callback response.
* src/open.c (dirfile_cbopen): Check malloc.
* man/dirfilename.3: Added.
2008-11-27 D. V. Wiebe <getdata@ketiltrout.net> svn:247
* test/bzip_put.c test/bzip_get_get.c test/bzip_nframes.c test/bzip_get.c:
Added.
* m4/encodings.m4: Always AC_SUBST the Makefile variables. Differentiate
between internal and external encodings.
* src/bzip.c: Added.
* src/encoding.c: Add bzip2 framework.
* src/gzip.c (_GD_GzipSeek): Return samples not bytes.
* src/configure.ac: Add --enable-modules with checks.
* src/Makefile.am: Add rules for USE_MODULES
* src/encoding.c: Initialise encoding framework for USE_MODULES
* src/open.c (dirfile_cbopen) src/close.c (dirfile_close) src/slim.c
src/gzip.c src/encoding.c: Wrap ltdl stuff in USE_MODULES
2008-11-25 D. V. Wiebe <getdata@ketiltrout.net> svn:246
* m4/encoding.m4: Check for executables needed for tests even if the
library isn't found.
* test/slim_nframes.c test/slim_get.c test/gzip_get_get.c test/gzip_get.c
test/gzip_nframes.c: Allow proper execution in the absence of the
corresponding encoding support.
2008-11-25 D. V. Wiebe <getdata@ketiltrout.net> svn:244
* configure.ac: Reduce code duplication with the introduction of the
GD_CHECK_ENCODING macro.
* m4/encoding.m4: Added.
* src/common.c: Replaced the only assert() in the library with an internal
library error.
* configure.ac src/internal.h: Removed assert-related checks.
2008-11-24 D. V. Wiebe <getdata@ketiltrout.net> svn:243
* configure.ac: Fix pthread check.
2008-11-24 D. V. Wiebe <getdata@ketiltrout.net> svn:242
* src/encoding.c (_GD_ValidateField): Moved from open.c because it needs the
global encoding framework array.
* src/internal.h: Add local encoding framework array to DIRFILE struct.
Most functions now use this. (GD_SetEncodedName is a notable exception.)
* src/encoding.c (_GD_InitialiseFramework): Added.
* test/gzip_get_get: Added.
* src/encoding.c (_GD_ResolveSymbol _GD_MissingFramework): Use ltdl to
dynamically load libraries instead of calling dlopen directly.
* src/gzip.c src/slim.c: Export ltdl symbols.
* src/open.c (dirfile_cbopen): Call lt_dlinit().
* src/close.c (dirfile_close): Call lt_dlexit().
* configure.ac: ltdl checks.
* Makefile.am: conditionally descend into libltdl.
* src/Makefile.am: Pass -export-dynamic -module and -dlopen to libtool as
appropriate.
* configure.ac: remove --disable-pkg-config.
* src/Makefile.am: always install getdata.pc.
* man/Makefile.am: Properly link to dirfile_madd_bit.3
2008-11-23 D. V. Wiebe <getdata@ketiltrout.net> svn:241
* src/add.c (_GD_Add) src/include.c (_GD_Include) open.c (_GD_ParseRaw):
Don't unnecessarily add "/./" to paths.
* src/gzip.c: Added.
* src/encoding.c src/getdata.h.in: Add GD_GZIP_ENCODING.
* test/gzip_get.c test/gzip_nframes.c test/gzip_put.c: Added.
* conigure.ac Makefile.am src/Makefile.am: Add gzip support.
* src/entry.c (_GD_FreeE): fix de-allocation of gd_raw_file objects.
* configure.ac: Check for -ldl.
* src/encoding.c (_GD_ResolveSymbol): Added.
* src/encoding.c (_GD_MissingFramework): dlopen an encoding sublibrary if
required. Made non-static.
* src/encoding.c (GD_SetEncodedName): Remove initial underscore to enable
exporting because sublibraries may need it.
* src/Makefile.am: Compile slim.c into a stand-alone "sublibrary"
libgetdataslim.la.
* src/raw.c (_GD_RawWrite): Return samples, not bytes.
* src/move.c (_GD_MogrifyFile): Add encoding recoding. Fix endianness
conversion calculation.
* src/encoding.c (_GD_RecodeFragment): Replaced the heavy lifting with a
call to _GD_MogrifyFile.
2008-11-21 D. V. Wiebe <getdata@ketiltrout.net> svn:240
* src/move.c: Added.
* src/foffs.c (_GD_ShiftFragment) src/endian.c (_GD_ByteSwapFragment): Call
_GD_MogrifyFile (in move.c) instead of handling the file translation
directly.
* src/encoding.c (_GD_RecodeFragment): Reset subencodings when not moving
files.
2008-11-21 D. V. Wiebe <getdata@ketiltrout.net> svn:239
* src/mod.c (dirfile_change_spec dirfile_mchange_spec): Added.
* src/open.c (_GD_ParseFieldSpec): Add insert parameter to indicate whether
the parsed entry should be inserted into the dirfile.
* sr/mod.c (_GD_Change): Remove unnecessary intermediate variables.
Properly handle scalars.
2008-11-21 D. V. Wiebe <getdata@ketiltrout.net> svn:238
* src/common.c (_GD_AddData): Moved from getdata.c and made non-static.
* src/mod.c: Added.
2008-11-20 D. V. Wiebe <getdata@ketiltrout.net> svn:237
* configure.ac: Use AC_PROG_CC_C99 again, bump AC_PREREQ to 2.63.
* m4/c99.m4: Removed.
2008-11-20 D. V. Wiebe <getdata@ketiltrout.net> svn:236
* src/endian.c (_GD_FixEndianness): Moved from types.c.
* src/endian.c: Added.
* src/encoding.c (_GD_RecodeFragment put_encoding get_encoding): Added.
* src/foffs.c (_GD_ShiftFragment): Check for GD_EF_SEEK. Only open the
input file if not already open. Check seek success. Seek on both files.
* src/getdata.h.in legacy.c: Add GD_E_BAD_ENDIANNESS.
* src/putdata.c (_GD_DoRawOut): Don't divide n_wrote by size.
* src/slim.c (_GD_SlimSeek) src/raw.c (_GD_RawSeek): Return samples, not
bytes.
* src/getdata.c (_GD_DoRaw) src/putdata.c (_GD_DoRawOut): Check seek
success.
* src/internal.h: Split the unnecessarily difficult fragment->flags into
fragment->encoding and fragment->byte_sex.
2008-11-18 D. V. Wiebe <getdata@ketiltrout.net> svn:232
* src/open.c (_GD_ParseFragment): Added GD_IGNORE_DUPS flags.
* test/parse_duplicate_ignore.c: Added.
* src/internal.h src/getdata.h.in: Moved gd_entry_t->size to
_gd_private_entry.
* src/foffs.c (_GD_ShiftFragment): Do the move and cleanup.
* src/ascii.c (_GD_AsciiTemp) src/raw.c (_GD_RawTemp): Added.
* src/foffs.c (put_frameoffset64): Check offset parameter for range.
* src/encoding.c (_GD_SetEncodedName): Added.
* src/slim.c (_GD_SlimUnlink) src/ascii.c (_GD_AsciiUnlink) src/raw.c
(_GD_RawUnlink): Removed and replaced by _GD_GenericUnlink.
* src/ascii.c (_GD_AsciiTouch) src/raw.c (_GD_RawTouch): Removed and replaced
by _GD_GenericTouch.
* src/internal.h: Created the _gd_raw_file object. Renamed
_gd_private_entry->file to _gd_private_entry->filebase.
* src/encoding.c: Encoding framework updated to work on _gd_raw_file
objects.
* src/entry.c (get_raw_filename): Use cached filename.
2008-11-18 D. V. Wiebe <getdata@ketiltrout.net> svn:228
Merged in changes from the 0.4.x branch, revision 223:
* src/flush.c (_GD_Flush): Fix SEGV.
* src/getdata.c (_GD_DoRaw): don't divide samples_read by data size.
* src/raw.c (_GD_RawRead): divide nread by data size.
* test/slim_get.c test/slim_nframes.c: Test with uint16_t to check for
above bug. Invoke slim binary with -k (force).
* src/legacy.c (GetFormat): Remove const from return
* src/getdata_legacy.h: wrap all function declarations in extern "C"
* src/legacy.c: Trace function calls.
* src/Makefile.am: add symbolic link getdata_struct.h -> getdata.h for
better legacy API support.
* src/include.c (_GD_Include) src/open.c (dirfile_open): Initialise
protection level for fragments.
2008-11-17 D. V. Wiebe <getdata@ketiltrout.net> svn:224
* src/getdata.h.in src/internal.h: Rename MAX_LINE_LENGTH to
GD_MAX_LINE_LENGTH and move to public header.
* src/getdata.h.in src/internal.h: Clean up GD_E_FORMAT_* suberrors and move
to public header. GD_E_FORMAT_N_COLS renamed to GD_E_FORMAT_N_TOK.
GD_E_FORMAT_MAX_I, GD_E_FORMAT_N_RAW, removed. All codes renumbered.
* src/internal.h: _gd_private_entry->stream renamed to edata.
* src/entry.c (_GD_GetScalar): Call _GD_DoConst() directly instead of
_GD_DoField().
* src/getdata.c (_GD_DoConst): No longer static.
* src/errors.c: Correct typo in GD_E_FORMAT:GD_E_FORMAT_CHARACTER string.
* src/entry.c (get_raw_filename): Added.
* src/encoding.c (_GD_Supports): Added.
* src/encoding.c (_GD_ResolveEncoding): Make static.
* src/open.c (_GD_ParseFieldSpec) src/putdata.c (_GD_DoRawOut) src/getdata.c
(_GD_DoRaw) src/add.c (_GD_Add) src/nframes.c (get_nframes64): Replace
encoding checks with _GD_Supports call.
* src/common.c (_GD_FindField): Rename argument next to index.
* src/encoding.c (_GD_GenericUnlink _GD_GenericTouch): Added.
* src/slim.c (_GD_SlimUnlink) src/ascii.c (_GD_AsciiUnlink) src/raw.c
(_GD_RawUnlink): Added.
* src/ascii.c (_GD_AsciiTouch) src/raw.c (_GD_RawTouch): Call
_GD_GenericTouch().
* src/open.c (dirfile_cbopen): Renamed from dirfile_open
* src/open.c (dirfile_open): Added.
* src/open.c (_GD_ParseFragment): Call sehandler.
* src/slim.c: Trace.
* src/foffs.c: Added.
* src/del.c: Added.
* src/globals.c: Added.
* src/encoding.c: Split from getdata.c.
2008-11-14 D. V. Wiebe <getdata@ketiltrout.net> svn:216
Fork GetData-0.4.
2008-11-07 D. V. Wiebe <getdata@ketiltrout.net> svn:211
* src/open.c (_GD_ValidateField _GD_Tokeniser): Replace slow strchr calls
with explicit tests.
* src/open.c (_GD_ValidateField): Conditionally allow "." in field names,
but prohibit encoding extensions in this case.
* test/parse_name_dot.c test/parse_name_ext.c test/parse_name_pedantic.c:
Added.
* src/open.c (_GD_ParseRaw): Don't set fragment->ref_name: it will be done
later.
* src/entry.c (_GD_FreeE): Free the file string for RAW fields.
* src/close.c (_GD_FreeD): Call _GD_FreeE instead of de-allocating entries
explicitly. A few other missing free calls added.
* src/getdata.c src/internal.h src/ascii.c: Add _GD_AsciiTouch.
2008-10-31 D. V. Wiebe <getdata@ketiltrout.net> svn:206
GetData-0.4.0 released.
2008-10-28 D. V. Wiebe <getdata@ketiltrout.net> svn:204
GetData-0.4.0rc4:
* src/nframes.c (get_nframes): Don't divide by the datatype size twice.
* bindings/cxx/test/entry.cpp bindings/cxx/test/putdata.cpp
bindings/cxx/test/spf.cpp bindings/cxx/test/getdata.cpp
bindings/cxx/test/addentry.cp bindings/cxx/test/nframes.cpp: Update for new
header locations.
2008-10-28 D. V. Wiebe <getdata@ketiltrout.net> svn:200
GetData-0.4.0rc3:
* src/field_list.c (get_field_list get_vector_list get_field_list_by_type
get_strings) src/meta_list.c (get_mfield_list get_mvector_list
get_mfield_list_by_type get_mstrings): Return a valid list even if there
are zero elements.
* src/field_list.c (get_mfield_list_by_type): Return the correct list in all
cases.
2008-10-22 D. V. Wiebe <getdata@ketiltrout.net> svn:197
GetData-0.4.0rc2:
* src/putdata.c (_GD_DoRawOut): Figure out the encoding scheme before
attempting to check whether idem needs byte-swapping. Bug report from
Matthew Truch.
2008-10-21 D. V. Wiebe <getdata@ketiltrout.net> svn:185
GetData-0.4.0rc1:
* src/include.c: Remove duplicate accessmode check.
2008-10-21 D. V. Wiebe <getdata@ketiltrout.net> svn:184
* src/open.c: Fix PROTECT parsing.
* src/putdata.c: Check protection for STRING, not PHASE.
* src/putdata.c (_GD_DoStringOut): Don't de-allocate old string until
new string is successful.
* src/internal.h: Don't mix CONST data and client list.
* src/flush.c (_GD_FlushMeta): Don't write INDEX.
* src/add.c (_GD_Add): Split format and data protection checks.
2008-10-21 D. V. Wiebe <getdata@ketiltrout.net> svn:180
* src/internal.h: Add protection, ref_name, and frame_offset to
gd_fragment_t. Remove first_field, first_fragment from same. Remove
frame_offset from DIRFILE.
* src/open.c (_GD_DoRaw): Set the first field stuff after attempting to
create the new file.
* src/open.c (_GD_ParseDirective): FRAMEOFFSET is fragment local. Parse
PROTECT.
* src/open.c (_GD_ParseFragment): Set reference name.
* src/flush.c (_GD_FlushMeta): Write PROTECT, REFERENCE, FRAMEOFFSET. Don't
worry about first fields any more.
* src/add.c (_GD_Add dirfile_add_spec dirfile_madd_spec) src/putdata.c
(_GD_DoRawOut _GD_DoConstOut _GD_DoStringOut): Check protection.
* src/getdata.c (_GD_DoRaw _GD_DoRawOut): frame_offset is fragment local.
* src/include.c (dirfile_include): check access mode and protection.
2008-10-21 D. V. Wiebe <getdata@ketiltrout.net> svn:179
* src/internal.h: Renamed D->include_list, D->n_include, and D->first_field to
D->fragment, D->n_fragment, and D->reference_field. Also removed
E->e->first and D->fragment[].first and added D->fragment[].first_field and
D->fragment[].first_fragment.
* src/getdata.h.in bindings/f77/make_parameters.c: Added GD_E_BAD_REFERENCE.
* src/open.c (_GD_ParseFieldSpec): Return a pointer to the gd_entry_t just
created if it's a RAW field (or else NULL). Also, it no longer gets
passed &have_first.
* src/open.c (_GD_ParseDirective): Update ref_name instead of have_first.
Parse REFERENCE directive.
* src/open.c (_GD_ParseFragment): Renamed from _GD_ParseFormatFile. Returns
the ref_name. Sets fragment->first_fragment and fragment->first_raw.
* src/flush.c (_GD_FlushMeta): Updated for new first field stuff.
* src/include.c (_GD_Include): Accept and return ref_name to caller.
* src/include.c (dirfile_include) open.c (dirfile_open): Resolve REFERENCE
after parsing completes.
* man/dirfile_include.3 man/dirfile_open.3 dirfile-format.5: Update for
REFERENCE.
* src/flush.c (_GD_FlushMeta): Write global metadata at the end so it will
take precedence.
* src/flush.c (_GD_FieldSpec): String escapeise the field name.
2008-10-19 D. V. Wiebe <getdata@ketiltrout.net> svn:173
* src/errors.c (_GD_SetError) src/getdata.h.in: Added GD_VERBOSE flag.
* src/flush.c (_GD_Flush): Use encoding framework to flush and close raw
files.
* src/open.c (_GD_Tokenise): Properly handle trailing backslash.
* test/parse_eol.c test/parse_quote_mismatch.c: Added.
2008-10-17 D. V. Wiebe <getdata@ketiltrout.net> svn:169
* src/getdata.c (_GD_DoRaw) src/putdata.c (_GD_DoRawOut): Some encodings
need no endianness correction.
2008-10-17 D. V. Wiebe <getdata@ketiltrout.net> svn:165
* src/nmeta.c: Renamed get_nmetafields, get_nmetavectors, and
get_nmetafields_by_type to get_nmfields, get_nmvectors, and
get_nmfields_by_type.
* src/field_list.c: Renamed get_constant_values and get_string_values to
get_constants and get_strings.
* src/flush.c: Renamed dirfile_flush_metadata to dirfile_metaflush
* src/meta_list.c: Renamed get_metaconstant_values, get_metastring_values,
get_metafield_list_by_type, get_metavector_list, and get_metafield_list to
get_mconstants, get_mstrings, get_mfield_list_by_type, get_mvector_list, and
get_mfield_list.
* src/add.c: Renamed dirfile_add_metaspec, dirfile_add_meta,
dirfile_add_metalincom, dirfile_add_metalinterp, dirfile_add_metabit,
dirfile_add_metamultiply, dirfile_add_metaphase, dirfile_add_metastring, and
dirfile_add_metaconst to dirfile_madd_spec, dirfile_madd,
dirfile_madd_lincom, dirfile_madd_linterp, dirfile_madd_bit,
dirfile_madd_multiply, dirfile_madd_phase, dirfile_madd_string, and
dirfile_madd_const.
* bindings/cxx/dirfile.cpp bindings/cxx/dirfile.h: Updated C++ bindings
accordingly.
* bindings/f77/fgetdata.c bindings/f77/getdata.f.in bindings/f77/fgetdata.h
bindings/f77/getdata.f90.in: Updated Fortran 77 and 95 bindings accordingly.
* test/add_meta_linterp_invalid.c test/add_meta_lincom_invalid.c
test/add_meta_phase_invalid.c test/add_meta_phase.c test/add_meta_multiply.c
test/add_meta_spec_invalid.c test/add_meta_spec.c test/add_meta_linterp.c
test/add_meta_lincom.c test/add_meta_spec_directive.c
test/add_meta_bit_invalid.c test/add_meta_bit.c test/add_meta.c
test/add_meta_multiply_invalid.c: Removed.
* test/madd_bit.c test/madd_lincom_invalid.c test/madd_lincom.c
test/madd_spec.c test/madd_phase.c test/madd.c test/madd_linterp_invalid.c
test/madd_bit_invalid.c test/madd_linterp.c test/madd_spec_invalid.c
test/madd_spec_directive.c test/madd_multiply_invalid.c test/madd_multiply.c
test/madd_phase_invalid.c: Added.
* test/nmeta_type.c test/vlist_meta.c test/cvlist_invalid.c
test/nmeta_vectors_parent.c test/svlist_invalid.c test/cvlist.c
test/svlist.c test/nmeta_parent.c test/nmeta_vectors.c
test/cvlist_meta_invalid.c test/flist_meta_invalid.c
test/svlist_meta_invalid.c test/cvlist_meta.c test/nmeta_type_invalid.c
test/vlist_meta_invalid.c test/flush_meta.c test/svlist_meta.c
test/nmeta_invalid.c test/nmeta.c test/flist_type_meta_invalid.c
test/flist_type_meta.c test/nmeta_vectors_invalid.c test/nmeta_type_parent.c
test/flist_meta.c: Updated.
2008-10-17 D. V. Wiebe <getdata@ketiltrout.net> svn:164
* src/open.c src/putdata.c src/getdata.c src/flush.c src/getdata.h.in
src/add.c src/nframes.c: Rename format_file in gd_entry_t to fragment_index,
also similar function parameters.
* bindings/cxx/entry.cpp bindings/cxx/entry.h bindings/f77/fgetdata.c
bindings/f77/getdata.f.in bindings/f77/fgetdata.h
bindings/f77/getdata.f90.in: Update bindings to match.
* test/add_rdonly.c test/add_invalid.ca test/add.c test/add_code.c
test/add_duplicate.c test/add_type.c test/add_meta.c test/add_format.c:
Updated.
* src/open.c (_GD_ParseRaw): Use me instead of E->fragment_index, since the
latter hasn't been initialised yet.
* test/format_filename.c test/nformats.c test/format_filename_oor.c:
Removed.
* test/fragmentname.c test/nfragments.c test/fragmentname_oor.c: Added.
2008-10-17 D. V. Wiebe <getdata@ketiltrout.net> svn:163
* src/getdata.c (_GD_DoString) src/string.c (get_string): Add one to string
length to account for terminating NUL.
* src/putdata.c (_GD_DoStringOut) src/string.c (put_string): Return string
length.
* src/format_list.c: Renamed get_format_filename to get_fragmentname and
get_nformats to get_nfragments. Bindings changed.
* src/constant.c (get_constant put_constant): Reutrn -1 on error.
2008-10-16 D. V. Wiebe <getdata@ketiltrout.net> svn:161
* src/meta_list.c src/nmeta.c: Fail if the specified parent is itself a
metafield.
2008-10-16 D. V. Wiebe <getdata@ketiltrout.net> svn:155
* src/open.c: Moved meta field enumeration to _GD_ParseFieldSpec from
_GD_ParseDirective to allow dirfile_add_metaspec to benefit seamlessly.
* src/add.c (dirfile_add_metaspec dirfile_add_spec): Reversed parameters.
It's better to keep the order consistent with the other dirfile_add
functions rather than having it consistent with the format file.
* bindings/cxx/dirfile.cpp bindings/cxx/dirfile.h bindings/f77/fgetdata.c
bindings/f77/fgetdata.h bindings/f77/getdata.f90.in README.cxx README.f95
README.f77: Ditto for bindings.
* src/add.c (dirfile_add_metaspec dirfile_add_spec): Fail on a read-only
dirfile or format_file out of range.
* src/add.c (dirfile_add_metaspec): Pass parent to _GD_ParseFieldSpec.
* test/add_meta_spec_invalid.c test/add_meta_spec.c
test/add_meta_spec_directive.c: Added.
2008-10-15 D. V. Wiebe <getdata@ketiltrout.net> svn:151
* src/add.c src/flush.c src/getdata.c src/include.c src/internal.h
src/nframes.c src/open.c src/putdata.c man/dirfile-format.5: Made endianness
fragment-local.
* man/dirfile_include.3: Added.
2008-10-15 D. V. Wiebe <getdata@ketiltrout.net> svn:148
* src/include.c (dirfile_include): Throw GD_E_ACCMODE if GD_CREAT or
GD_TRUNC are passed to a read-only dirfile.
* test/include.c test/include_invalid.c test/include_accmode.c
test/include_creat.c test/include_nonexistent.c: Added.
2008-10-15 D. V. Wiebe <getdata@ketiltrout.net> svn:147
* README.f77 bindings/f77/fgetdata.c bindings/f77/fgetdata.h
bindings/f77/getdata.f.in: Add more Fortran 77 bindings.
* README.f95 bindings/f77/fgetdata.f90.in: Added Fortran 95 bindings for the
new public functions.
2008-10-14 D. V. Wiebe <getdata@ketiltrout.net> svn:146
* bindings/f77/fgetdata.c bindings/f77/fgetdata.h
bindings/f77/getdata.f90.in: Renamed GDFNFT to GDFNFO.
* README.f77 bindings/f77/fgetdata.c bindings/f77/fgetdata.h
bindings/f77/getdata.f.in bindings/f77/make_parameters.c: Added Fortran 77
bindings for the new public functions.
2008-10-14 D. V. Wiebe <getdata@ketiltrout.net> svn:143
* test/nframes_empty.c: Correct for removal of GD_E_EMPTY.
* README.cxx bindings/cxx/dirfile.h bindings/cxx/dirfile.cpp
bindings/cxx/entry.h: Added C++ bindings for new public functions.
* src/constant.c: get_constant returns size_t, not ssize_t, like the other
get_<foo>() functions.
* src/getdata.h.in: Add some missing public prototypes.
* src/nfields.c src/nmeta.c: Removed the _ after nmeta in public function
names.
* test/nmeta_type.c test/nmeta_vectors_parent.c test/nmeta_parent.c
test/add_meta_phase.c test/add_meta_multiply.c test/nmeta_type_invalid.c
test/add_meta_linterp.c test/add_meta_lincom.c test/nmeta_invalid.c
test/nmeta.c test/nmeta_vectors_invalid.c test/add_meta_bit.c
test/add_meta.c test/nmeta_type_parent.c: Updated.
* src/close.c (_GD_FreeD) src/entry.c (_GD_FreeE) src/field_list.c
src/internal.h src/meta_list.c: Replaced get_constant_list() and
get_string_list() with get_field_list_by_type(), which reduces the amount of
duplicated code and provides a more flexible interface. Similarly with the
META versions.
* test/clist.c test/clist_invalid.c test/clist_meta.c
test/clist_meta_invalid.c test/slist.c test/slist_invalid.c test/slist_meta.c
test/slist_meta_invalid.c: Removed.
* test/flist_type.c test/flist_type_invalid.c test/flist_type_meta.c
test/flist_type_meta_invalid.c: Added.
* src/open.c: Reduce paranoia by not re-zeroing memory already memset to
zero.
2008-10-14 D. V. Wiebe <getdata@ketiltrout.net> svn:140
* src/legacy.c src/errors.c src/nframes.c (get_nframes64): GD_E_EMPTY is
no-longer an error. (Per discussion with Barth.)
* bindings/f77/make_parameters.c: Updated.
2008-10-14 D. V. Wiebe <getdata@ketiltrout.net> svn:139
* bindings/f77/test/fget_field_list.f90: Fix for new list and count function
behaviour.
* bindings/cxx/test/addentry.cpp: Fix for new get_nfields behaviour and
properly clean-up dirfile.
* src/entry.c (_GD_FreeE) src/internal.h: Add calculated and scalar[] array.
* src/open.c (_GD_SetScalar): Added.
* src/open.c (_GD_ParseRaw _GD_ParseLincom _GD_ParseLinterp
_GD_ParseMultiply _GD_ParseBit _GD_ParsePhase _GD_ParseConst
_GD_ParsePhase): Record non-numeric scalar tokens for deferred calculation.
Numeric tokens are detected using strtod().
* src/entry.c (_GD_GetScalar _GD_CalculateEntry): Added.
* src/entry.c (get_entry) src/getdata.c (_GD_DoField) src/putdata.c
(_GD_DoFieldOut): Call _GD_CalculateEntry when necessary.
* src/constant.c (put_constant): Reset clients after changing the constant.
* src/add.c (_GD_Add) src/open.c (_GD_ParseConst): Initialise client list.
* test/entry_bit_scalar.c test/entry_lincom_scalar.c
test/entry_phase_scalar.c test/entry_raw_scalar.c test/parse_bit_scalar.c
test/parse_lincom_scalar.c test/parse_phase_scalar.c
test/parse_raw_scalar.c test/entry_raw_scalar_code
test/entry_raw_scalar_type: Added.
2008-10-14 D. V. Wiebe <getdata@ketiltrout.net> svn:138
* src/field_list.c (get_string_values): Fix array out of bounds crash.
* src/internal.h: Remove errant ; on _GD_InternalError macro.
* src/open.c (dirfile_open): Gave INDEX it's own explicit entry. This
automatically allows defining /META fields for INDEX, per Barth's request.
This entry has the special type GD_INDEX_ENTRY. Some other
simplifications/complications result. First among these is that the list
functions and the counting functions now may include INDEX, as appropriate.
* test/add_lincom.c test/add_sort.c test/add_spec_directive.c
test/add_phase.c test/add_string.c test/add_multiply.c
test/add_bit_numbits.c test/add_bit_bitsize.c test/flist.c test/vlist.c
test/add_raw.c test/add_bit.c test/add_code.c test/add_duplicate.c
test/add_const.c test/nvectors.c test/add_type.c test/add_meta.c
test/parse_sort.c test/add_linterp.c test/add_format.c test/add_spec.c:
Update for new list and counting function behaviour.
* test/parse_meta_index.c: Added.
* src/common.c (_GD_GetEntry): Removed (no longer needed). Callers call
_GD_FindField directly now, and must throw their own errors.
* src/getdata.c (_GD_DoField) src/putdata.c (_GD_DoFieldOut) src/spf.c
(_Get_SPF): Replaced INDEX special-casing with GD_INDEX_ENTRY handling.
2008-10-13 D. V. Wiebe <getdata@ketiltrout.net> svn:137
* src/add.c (_GD_Add): Properly initialise the private entry after creating
it. Crash report from Matthew Truch.
* test/add_meta_linterp_invalid.c test/add_meta_lincom_invalid.c
test/add_raw_invalid.c test/nmeta_vectors_parent.c test/nmeta_parent.c
test/add_meta_phase_invalid.c test/add_invalid.c test/add_phase_invalid.c
test/add_string.c test/add_linterp_invalid.c test/add_bit_invalid.c
test/add_lincom_invalid.c test/add_meta_bit_invalid.c
test/add_multiply_invalid.c test/add_meta_multiply_invalid.c
test/add_spec_invalid.c test/nmeta_type_parent.c: Fix compiler warning.
* getdata.h.in: Add declarations for dirfile_add_string() and
dirfile_add_const().
2008-10-12 D. V. Wiebe <getdata@ketiltrout.net> svn:136
* src/add.c (_GD_Add): Prohibit declaring METAs in a fragment not containing
its parent.
* src/open.c (_GD_ParseDirective): Ditto.
* src/getdata.h.in: GD_FORMAT_AUTO is no longer needed.
* src/internal.h src/open.c: MAX_IN_COLS moved to header.
* src/add.c (dirfile_add_metaspec dirfile_add_spec): Added.
* src/internal.h: Store subdir (sname) in include list.
* src/close.c (_GD_FreeD): free sname.
* src/open.c (_GD_ParseRaw _GD_ParseFieldSpec _GD_ParseDirective): Derive
subdir and other relevant information from the include_list, where possible.
* src/open.c (_GD_Tokenise): Allow specification of the empty string as "".
* src/open.c (_GD_ValidateField): Prohibit reserved words and the empty
string.
* src/add.c (_GD_Add): Provide defaults for CONST and STRING; properly
enumerate types.
* src/add.c: Add GD_INVALID checks to all public functions.
* src/add.c (dirfile_add_metalincom dirfile_add_metalinterp
dirfile_add_metabit dirfile_add_metamultiply dirfile_add_metaphase): Put
parent parameter before field_code to mimic the field spec order.
* src/flush.c (_GD_FieldSpec _GD_FlushMeta): Properly handle META fields.
* src/getdata.h.in: dirfile_add_raw dirfile_add dirfile_add_spec
dirfile_add_metaspec may all potentially call I/O functions; ergo, don't
mark them with THROW.o
* test/Makefile.am: Re-organise tests.
* test/add_meta_linterp_invalid.c test/add_meta_lincom_invalid.c
test/vlist_invalid.c test/add_raw_invalid.c test/vlist_meta.c
test/cvlist_invalid.c test/svlist_invalid.c test/cvlist.c test/svlist.c
test/add_meta_phase_invalid.c test/add_invalid.c test/add_meta_phase.c
test/add_phase_invalid.c test/add_spec_directive.c test/add_string.c
test/clist_invalid.c test/add_linterp_invalid.c test/add_meta_multiply.c
test/slist_invalid.c test/clist.c test/cvlist_meta_invalid.c
test/flist_meta_invalid.c test/slist.c test/svlist_meta_invalid.c
test/cvlist_meta.c test/vlist_meta_invalid.c test/svlist_meta.c
test/parse_string_null.c test/add_meta_linterp.c test/add_meta_lincom.c
test/vlist.c test/add_bit_invalid.c test/add_lincom_invalid.c
test/add_meta_bit_invalid.c test/add_meta_bit.c test/add_multiply_invalid.c
test/add_const.c test/add_meta_multiply_invalid.c test/clist_meta_invalid.c
test/add_meta.c test/add_spec_invalid.c test/slist_meta_invalid.c
test/clist_meta.c test/add_spec.c test/slist_meta.c test/flist_meta.c: Added
tests for the list functions, add_spec, and add_meta.
* src/include.c (_GD_Include): Extracted include file handler from
_GD_ParseDirective in src/open.c.
* src/include.c (dirfile_include): Added.
* src/add.c (_GD_Add) src/getdata.c (_GD_DoRaw) src/include.c (_GD_Include)
src/nframes.c (get_nframes64) src/putdata.c (_GD_DoRawOut): Make encodings
fragment specific.
* src/flush.c (_GD_FlushMeta): Write /ENCODING.
2008-10-11 D. V. Wiebe <getdata@ketiltrout.net> svn:135
* src/open.c (_GD_Tokenise _GD_ParseDirective _GD_ParseFieldSpec
_GD_ParseFormatFile): Okay, the parser is now in three pieces: tokeniser,
directive parser (formerly _GD_ParseFormatLine), and field spec parser, all
called from _GD_ParseFormatFile, which handles looping through a format file.
This should be sufficiently functional for the upcoming features.
2008-10-11 D. V. Wiebe <getdata@ketiltrout.net> svn:133
* src/open.c (_GD_Tokenise _GD_ParseFormatLine): Split tokeniser from line
parser.
2008-10-10 D. V. Wiebe <getdata@ketiltrout.net> svn:132
* src/open.c (_GD_ParseFormatFile _GD_ParseFormatLine dirfile_open):
Properly propagate standards.
2008-10-10 D. V. Wiebe <getdata@ketiltrout.net> svn:131
* src/open.c (_GD_ParseFieldSpec): Properly propagate have_first to caller.
* src/open.c (_GD_ParseFormatFile _GD_ParseFormatLine): Split line
parsing (now in _GD_ParseFormatLine) from the format file loop (the little
bit remaining in _GD_ParseFormatFile).
* bindings/cxx/test/Makefile.am: Properly clean up after tests.
2008-10-10 D. V. Wiebe <getdata@ketiltrout.net> svn:130
* src/getdata.h.in: Incorporate a GD_SCALAR_ENTRY flag in gd_entype_t.
* src/field_list.c (get_nvectors) src/meta_list.c (get_nmeta_vectors):
Use GD_SCALAR_ENTRY.
* src/add.c (_GD_Add): Properly initialise the meta field lists in the private
entry to prevent crash on error. (Reported by Matthew Truch)
* src/raw.c (_GD_RawTouch): Add mode to open call (patch from Matthew
Truch).
* src/getdata.h.in: Add GD_E_DIMENSION
* src/getdata.c src/putdata.c src/spf.c: Detect and fail if a vector type
contains an input field that's a scalar.
* src/spf.c (_GD_GetSPF): Removed redundant field_code parameter.
* src/common.c (_GD_GetEntry): Removed FILEFRAM as an alias for INDEX per
discussion with Barth.
2008-10-10 D. V. Wiebe <getdata@ketiltrout.net> svn:128 svn:129
* src/entry.c (_GD_FreeE): Renamed from dirfile_free_entry_strings (for
which a new boilerplate function has been created). Separated cleaning up
internal and externally created entries. Internally, the library now
uses this function in all places where it used to call
dirfile_free_entry_strings.
* src/open.c (_GD_ParseRaw): n_meta should be zero.
* src/open.c (_GD_ParseFormatFile): fix duplicates check
* test/add_sort.c test/nfields_type.c test/nfields_type_invalid.c
test/nmeta.c test/nmeta_invalid.c test/nmeta_parent.c test/nmeta_type.c
test/nmeta_type_invalid.c test/nmeta_type_parent.c test/nmeta_vectors.c
test/nmeta_vectors_invalid.c test/nmeta_vectors_parent.c test/nvectors.c
test/nvectors_invalid.c test/parse_const.c test/parse_const_ncols.c
test/parse_duplicate.c test/parse_meta.c test/parse_meta_parent.c
test/parse_meta_raw.c test/parse_quote.c test/parse_sort.c
test/parse_string.c test/parse_string_ncols.c test/parse_whitespace.c:
Added.
* src/add.c (_GD_Add): Encapsulate the file creation with a call to an
encoding specific *touch() function.
* src/raw.c (_GD_RawTouch): Added. (Also used for the ASCII encoding).
* src/meta_list.c: Added (META version of field_list.c)
* src/field_list.c: Call _GD_ClearError in all public functions.
* src/nmeta.c: Added (META version of nfields.c)
* src/open.c (_GD_ParseFieldSpec): Moved some repeated code out of the
ParseFoo functions and into this one. Also, don't count META fields in
n_string or n_cost.
2008-10-09 D. V. Wiebe <getdata@ketiltrout.net> svn:127
* src/open.c (_GD_ValidateField): Now takes a pointer to the parent, rather
than the parent's name, and generates the "/" demarcation itself.
* src/open.c (_GD_ParseFormatFile): Determine META field's parent entry.
* src/open.c (_GD_ParseRaw _GD_ParseLincom _GD_ParseLinterp _GD_ParseBit
_GD_ParsePhase _GD_ParseConst _GD_ParseString _GD_ParseFieldSpec): Pass
around the parent's pointer, rather than its name.
* src/add.c (_GD_Add) src/open.c (_GD_ParseRaw): Remember the full path name.
* src/getdata.c (_GD_DoRaw) src/nframes.c (_GD_NFrames) src/putdata.c
(_GD_DoRawOut): No need to compose file name.
* src/open.c (_GD_ParseFieldSpec): Simplify the switch() code. Also, check
for duplicates.
* src/common.c (_GD_InsertSort): Added.
* src/open.c (_GD_ParseFormatFile): Automatically handle /u and /ooo out of
range.
* src/close.c (_GD_FreeD): Clean up include_list[0], too.
* src/close.c (dirfile_close): Call _GD_FlushMeta().
2008-10-08 D. V. Wiebe <getdata@ketiltrout.net> svn:125
* src/open.c (_GD_ParseRaw): Prohibit META RAW fields.
* src/add.c (_GD_Add): Ditto.
* src/add.c (dirfile_add_metaraw): Deleted.
2008-10-08 D. V. Wiebe <getdata@ketiltrout.net> svn:124
* src/open.c (_GD_ValidateField): Malloc one more byte for the terminating
NULL. Crash report from Matthew Truch.
* test/add_many.c: Add test-case for same (from Matthew Truch).
* src/internal.h: Removed all instances of ierror and user_error in the
DIRFILE struct.
* src/add.c (_GD_Add): Properly compose metafield codes. Always create
the empty binary file.
2008-10-08 D. V. Wiebe <getdata@ketiltrout.net> svn:123
* src/add.c: Fix debugging messages
2008-10-08 D. V. Wiebe <getdata@ketiltrout.net> svn:122
* man/Makefile.am: Fix install target (patch from Matthew Truch)
2008-10-08 D. V. Wiebe <getdata@ketiltrout.net> svn:121
* src/getdata.h.in: Add forward declarations for public functions.
2008-10-08 D. V. Wiebe <getdata@ketiltrout.net> svn:120
* src/putdata.c (putdata64): Fail if passed a CONST or STRING field code.
* src/string.c (put_string): Added.
* src/constant.c (put_constant): Added.
* src/add.c (_GD_Add): Renamed from dirfile_add, which is now a boilerplate
stub for this internal function. Added meta field support.
* src/add.c (dirfile_add_meta dirfile_add_metaraw dirfile_add_metalincom
dirfile_add_metalinterp dirfile_add_metabit dirfile_add_metamultiply
dirfile_add_metaphase dirfile_add_metastring dirfile_add_metaconst): Added.
* src/add.c (_GD_Add): create an empty raw file, when necessary.
2008-10-07 D. V. Wiebe <getdata@ketiltrout.net> svn:119
* src/add.c (dirfile_add_string dirfile_add_const): Added.
* man/dirfile_add_raw: Updated for dirfile_add_string and dirfile_add_const.
2008-10-07 D. V. Wiebe <getdata@ketiltrout.net> svn:118
* src/flush.c: Add hostname to comments at the top of the format file.
* src/nfields (get_nvectors get_nfields_by_type): Added.
* man/get_nvectors.3 man/get_nfields_by_type.3: Added.
2008-10-07 D. V. Wiebe <getdata@ketiltrout.net> svn:115
* src/open.c: Record whether a field is meta.
* src/open.c: Count strings, constants and meta fields.
* src/open.c (_GD_CreateDirfile): If creating (or truncating) a dirfile,
assume GD_UNENCODED if GD_AUTO_ENCODED was specified.
* src/putdata.c (_GD_DoRawOut): Set GD_E_UNKNOWN_ENCODING instead of
GD_UNSUPPORTED if the encoding can't be figured out.
* src/field_list.c (get_constant_values get_constant_list get_string_values
get_string_list get_vector_list): Added.
* src/field_list.c (get_field_list): Don't return meta fields in the list.
* src/nfields.c: Return the number of non-meta fields.
* src/constant.c: Renamed from src/get_constant.c
* src/string.c: Renamed from src/get_string.c
* src/getdata.c (_GD_DoString): If num_samp == 0 or data_out is NULL, don't
copy the string.
* src/errors.c (dirfile_user_error): Removed per discussion with Barth.
* man/get_constant.3 man/get_error.3 man/get_string.3: Added.
2008-10-06 D. V. Wiebe <getdata@ketiltrout.net> svn:114
* test/error_error.c: Added.
* test/flush_recurse.c: Removed. _GD_Flush no longer resolves input fields.
* src/common.c (_GD_GetEntry): Added a _GD_FindField wrapper that
properly handles INDEX/FILEFRAM.
* src/open.c (_GD_ValidateField): Add field prefix needed for META fields.
* src/open.c (_GD_ParseFieldSpec): Split from _GD_ParseFormatFile to handle
both META and regular field specs.
* src/open.c (_GD_ParseFormatFile): Add /META support.
* src/open.c (_GD_ParseFormatFile): Fix the parser bug introduced in svn:113.
* src/open.c (_GD_CreateDirfile): Report the dirfile path not the format
file path in error strings.
* src/flush.c src/getdata.c src/putdata.c src/spf.c: Use pre-cached entry
pointers.
* src/get_constant.c src/get_string.c: Added.
* src/getdata.c (getdata64): Prevent calling getdata() with CONST or STRING
fields.
* src/errors.c: Got rid of the positional parameter C99 desecration which
GCC 4.3 complains about. get_error_string() now builds the string itself.
* src/format_list.c (get_format_filename): make the index parameter unsigned.
2008-10-05 D. V. Wiebe <getdata@ketiltrout.net> svn:113
* src/add.c src/close.c src/entry.c src/flush.c src/getdata.c src/getdata.h.in
src/open.c src/putdata.: Add support for CONST, STRING, and ENCODING.
* src/common.c src/open.c: Added escape sequence and quoted token support.
* src/flush.c src/getdata.c src/putdata.c src/spf.c: Functions that check
recurse_level now also take care of incrementing and decrementing it.
* man/dirfile-format.5: Update for standards version six.
2008-10-02 D. V. Wiebe <getdata@ketiltrout.net> svn:112
* configure.ac: Locate `slim' and `unslim' binaries needed for slimlib
tests.
* test/Makefile.am test/ascii_get.c test/ascii_nframes.c test/ascii_put.c
test/slim_get.c test/slim_nframes.c test/slim_put.c: Add tests for ASCII
and slimlib encodings. (slim_put is currently always skipped.)
* src/ascii.c: Bug fixes.
2008-10-01 D. V. Wiebe <getdata@ketiltrout.net> svn:111
* src/entry.c: Properly initialise the private data in the gd_entry_t
object returned.
* bindings/cxx/test/putdata.cpp: Fix constructor call.
* bindings/f77/make_parameters.c: Add encoding framework parameters.
2008-10-01 D. V. Wiebe <getdata@ketiltrout.net> svn:110
* src/internal.h: Moved config.h inclusion to internal.h
* src/open.c: Added "." to the list of prohibited field code characters.
* src/getdata.h.in, src/internal.h: Hide dirfile implementation from the
public.
* src/errors.c: Added get_error() and dirfile_user_error()
* src/getdata.c src/internal.h src/nframes.c src/open.c src/putdata.c
src/raw.c: Added encoding framework.
* src/getdata.c src/slim.c: Add slimlib encoding.
* src/ascii.c src/getdata.c: Add ASCII encoding.
2008-09-28 D. V. Wiebe <getdata@ketiltrout.net> svn:109
* bindings/cxx/dirfile.cpp bindings/cxx/dirfile.h bindings/cxx/entry.cpp
bindings/cxx/entry.h test/Makefile.am test/addentry.cpp: Add C++ support
for dirfile_add(), dirfile_flush_metadata(), get_format_filename(), and
get_nformats().
* bindings/f77/fgetdata.c bindings/f77/fgetdata.h bindings/f77/getdata.f.in
bindings/f77/getdata.f90.in bindings/f77/make_parameters.c: Add F77 and F95
bindings for dirfile_add(), dirfile_flush_metadata(), get_format_filename(),
and get_nformats().
* src/add.c (dirfile_add_raw): swap spf and data_type to correspond to the
ordering in the format file.
2008-09-28 D. V. Wiebe <getdata@ketiltrout.net> svn:108
* man/dirfile_add.3 man/dirfile_add_raw.3: Added.
* man/Makefile.am: Install all the mans previously forgotten about. Also,
link to aliases.
* src/add.c (dirfile_add_lincom): Don't use a variadic function, since in
obfuscates data typing.
* src/add.c (dirfile_add): Add suberror codes for GD_E_BAD_ENTRY.
Initialise internal data. Initialise the first RAW field, if necessary.
* src/close.c src/flush.c src/open.c: Distinguish between "canonical"
format file names (i.e. the full path used to open the file) and
"external" names (i.e. the relative path written to the parent format file).
* src/errors.c: Add strings for dirfile_add().
* src/getdata.h.in: Move FILENAME_MAX stuff into internal.h since it doesn't
need to be public anymore.
* src/internal.h: Always define MAX_LINE_LENGTH to 4096.
* test/Makefile.am test/add.c test/add_bit.c test/add_bit.c
test/add_bit_bitnum.c test/add_bit_bitsize.c test/add_bit_numbits.c
test/add_code.c test/add_duplicate.c test/add_format.c test/add_lincom.c
test/add_lincom_nfields.c test/add_linterp.c test/add_multiply.c
test/add_phase.c test/add_raw.c test/add_raw_spf.c test/add_raw_type.c
test/add_rdonly.c test/add_type.c test/error.c test/error_short.c
test/flush_meta.c test/format_filename.c test/format_filename_oor.c
test/nformats.c: Added tests for dirfile_add() and alternates,
get_error_string(), dirfile_flush_metadata(), get_format_filename(), and
get_nformats().
* test/Makefile.am: test put_linterp_noin, which has been around for a
while, but missing from the Makefile.
* test/trunc_readonly.c: Deleted. (An old copy of trunc_rdonly.c)
2008-09-27 D. V. Wiebe <getdata@ketiltrout.net> svn:106
* src/flush.c (_GD_Flush): Don't call fsync on read-only dirfiles.
* src/open.c (_GD_ParseFormatFile dirfile_open): Don't find the first raw
field at the end, but rather do it as we're scanning raw fields. Also,
record some format file metadata: whether it contains the first raw field,
and whether it is modified.
* src/close.c (_GD_FreeD): free the include_list.
* src/internal.h: Minimum format file line length is 4096 characters.
* src/flish.c (_GD_FlushMeta dirfile_flush_metadata): flush metadata changes
to disk (i.e. write format files). Includes public function.
* src/add.c (dirfile_add): prevent adding to read-only dirfiles
2008-09-26 D. V. Wiebe <getdata@ketiltrout.net> svn:105
* man/get_entry.3 src/add.c src/getdata.h.in src/open.c: Expose include_list
to the public. Add include index to each entry.
* man/get_format_filename.3 man/get_nformats.3 src/format_list.c
src/getdata.h.in: Add public functions get_nformats() and
get_format_filename().
2008-09-25 D. V. Wiebe <getdata@ketiltrout.net> svn:103
* src/open.c (_GD_ParseRaw _GD_ParseLincom _GD_ParseLinterp
_GD_ParseMultiply _GD_ParseBit _GD_ParsePhase): Fixed memory leaks
* src/errors.c (_GD_ClearError): Replaced with a macro of the same name
defined in internal.h.
* src/add.c src/getdata.h.in: First part of dirfile_add(): input validation
and add to DIRFILE list.
2008-09-22 D. V. Wiebe <getdata@ketiltrout.net> svn:99
GetData-0.3.1 released.
2008-09-22 D. V. Wiebe <getdata@ketiltrout.net> svn:97
* configure.ac bindings/cxx/Makefile.am bindings/cxx/test/Makefile.am: Call
the C++ bindings libgetdata++ instead of libdirfile to be a little more
explicit about what it is. This also allows installation alongside TK's
libdirfile.
2008-09-22 D. V. Wiebe <getdata@ketiltrout.net> svn:94
* bindings/cxx/entry.cpp: Use <cstring> instead of <string>. Patch from
Matthew Truch.
2008-09-18 D. V. Wiebe <getdata@ketiltrout.net> svn:90
* src/legacy.c (_GD_GetDirfile) test/legacy_get_rofs.c test/legacy_get_put.c:
Open dirfiles read-only unless called via PutData(). Re-open read-only
dirfile read-write when necessary. Added two test-cases for same.
* test/Makefile.am: Conditionally compile legacy tests.
2008-09-15 D. V. Wiebe <getdata@ketiltrout.net> svn:86
* src/errors.c: Fix GD_E_RAW_IO error string.
2008-09-15 D. V. Wiebe <getdata@ketiltrout.net> svn:84
GetData-0.3.0 released.
2008-09-05 D. V. Wiebe <getdata@ketiltrout.net> svn:77
* m4/c99.m4 configure.ac Makefile.am: Re-implement AC_PROG_CC_C99 as
GD_PROG_CC_C99 to fix `deprecated -c99' warning with icc.
* bindings/cxx/dirfile.h bindings/cxx/entry.h bindings/cxx/test/getdata.cpp
bindings/cxx/test/putdata.cpp bindings/f77/fgetdata.h
test/convert_float32_float64.c test/convert_float32_int16.c
test/convert_float32_int32.c test/convert_float32_int64.c
test/convert_float32_int8.c test/convert_float32_uint16.c
test/convert_float32_uint32.c test/convert_float32_uint64.c
test/convert_float32_uint8.c test/convert_float64_float32.c
test/convert_int16_float32.c test/convert_int16_float64.c
test/convert_int16_int32.c test/convert_int16_int64.c
test/convert_int16_int8.c test/convert_int16_uint16.c
test/convert_int16_uint32.c test/convert_int16_uint64.c
test/convert_int16_uint8.c test/convert_int32_float32.c
test/convert_int32_float64.c test/convert_int64_float32.c
test/convert_int64_float64.c test/convert_int8_float32.c
test/convert_int8_float64.c test/convert_int8_int16.c
test/convert_int8_int32.c test/convert_int8_int64.c
test/convert_int8_uint16.c test/convert_int8_uint32.c
test/convert_int8_uint64.c test/convert_int8_uint8.c
test/convert_uint16_float32.c test/convert_uint16_float64.c
test/convert_uint16_int16.c test/convert_uint16_int32.c
test/convert_uint16_int64.c test/convert_uint16_int8.c
test/convert_uint16_uint32.c test/convert_uint16_uint64.c
test/convert_uint16_uint8.c test/convert_uint32_float32.c
test/convert_uint32_float64.c test/convert_uint64_float32.c
test/convert_uint64_float64.c test/convert_uint8_float32.c
test/convert_uint8_float64.c test/convert_uint8_int16.c
test/convert_uint8_int32.c test/convert_uint8_int64.c
test/convert_uint8_int8.c test/convert_uint8_uint16.c
test/convert_uint8_uint32.c test/convert_uint8_uint64.c test/dfes_phase.c
test/dfes_raw.c test/flush.c test/flush_all.c test/get64.c test/get_bit.c
test/get_char.c test/get_endian16.c test/get_endian32.c test/get_endian64.c
test/get_endian8.c test/get_endian_float32.c test/get_endian_float64.c
test/get_ff.c test/get_float32.c test/get_float64.c test/get_foffs.c
test/get_fs.c test/get_int16.c test/get_int8.c test/get_lincom1.c
test/get_lincom2.c test/get_lincom3.c test/get_linterp.c
test/get_linterp_noin.c test/get_linterp_notab.c test/get_multiply.c
test/get_multiply_noin.c test/get_nonexistent.c test/get_null.c
test/get_off64.c test/get_phase.c test/get_sf.c test/get_ss.c
test/get_type.c test/get_uint16.c test/legacy_get.c test/legacy_put.c
test/nframes_spf.c test/put64.c test/put_bit.c test/put_char.c
test/put_endian16.c test/put_endian32.c test/put_endian64.c
test/put_endian8.c test/put_endian_float32.c test/put_endian_float64.c
test/put_ff.c test/put_float32.c test/put_float64.c test/put_foffs.c
test/put_fs.c test/put_int16.c test/put_int8.c test/put_lincom1.c
test/put_lincom2.c test/put_lincom_noin.c test/put_linterp.c
test/put_linterp_noin.c test/put_linterp_notab.c test/put_multiply.c
test/put_off64.c test/put_phase.c test/put_phase_noin.c test/put_sf.c
test/put_ss.c test/put_uint16.c: Fix compiler warnings
2008-09-05 D. V. Wiebe <getdata@ketiltrout.net> svn:75
* man/get_field_list.3 src/field_list.c: NULL terminate the list.
* src/field_list.c (get_field_list): Return GD_E_ALLOC on malloc error.
2008-09-04 D. V. Wiebe <getdata@ketiltrout.net> svn:73
* bindings/cxx/entry.h (Entry::Scale Entry::Offset): fix return.
* src/flush.c (_GD_Flush): Handle GD_NO_ENTRY in switch
* test/dfes_bit.c test/dfes_linterp test/dfes_lincom test/dfes_multiply
test/dfes_phase test/dfes_raw test/flist test/flush_invalid
test/flush_bad_code test/flush_recurse: Remove unused variables
* test/entry_lincom: Include math.h
2008-09-04 D. V. Wiebe <getdata@ketiltrout.net> svn:68
* src/getdata_legacy.h src/legacy.c: Go through all the bother to
reconstruct the former FormatType for callers who use GetFormat()
* src/close.c (_GD_FreeD): Handle GD_NO_ENTRY in switch
* configure.ac: Use modern AM_INIT_AUTOMAKE invocation so as not to have
to repeat package name and package version.
* Makefile.am: Require automake 1.6
* NEWS: added
2008-09-04 D. V. Wiebe <getdata@ketiltrout.net> svn:67
* bindings/cxx/Makefile.am: Fix include dir
* bindings/f77/fgetdata.c (GDFELC): Return nfield = 0 on error
* bindings/f77/getdata.f90.in: Make field an array
* Makefile.am: Add ChangeLog to dist.
* README.cxx README.f77 README.f95: Update for get_entry() bindings
2008-09-04 D. V. Wiebe <getdata@ketiltrout.net> svn:66
* test/Makefile.am test/dfes_bit.c test/dfes_lincom.c test/dfes_linterp.c
test/dfes_multiply.c test/dfes_null.c test/dfes_phase.c test/dfes_raw.c
test/dfes_zero.c test/entry_bad_code.c test/entry_bit.c test/entry_invalid.c
test/entry_lincom.c test/entry_linterp.c test/entry_multiply.c
test/entry_phase.c test/entry_raw.c: Add test suite for
dirfile_free_entry_strings() and get_entry()
* bindings/cxx/entry.h bindings/cxx/test/entry.cpp bindings/f77/fgetdata.c
bindings/f77/getdata.f90.in bindings/f77/test/fget_entry.f90 man/get_entry.3
src/entry.c src/getdata.h.in: RAW filename should be internal
* bindings/f77/make_parameters.c: Fix parentheses around F77 parameters
* man/Makefile.am: install get_entry.3
2008-09-03 D. V. Wiebe <getdata@ketiltrout.net> svn:64 svn:65
* src/entry.c (dirfile_free_entry_strings): Fix double free
* bindings/cxx/dirfile.cpp bindings/cxx/dirfile.h: Use the GetData namespace
* bindings/cxx/Makefile.am bindings/cxx/dirfile.cpp bindings/cxx/dirfile.h
bindings/cxx/entry.cpp bindings/cxx/entry.h bindings/cxx/test/Makefile.am
bindings/cxx/test/entry.cpp: Add GetData::Entry class to abstractise
gd_entry_t as well as C++ bindings for get_entry().
* bindings/f77/fgetdata.c bindings/f77/getdata.f.in
bindings/f77/getdata.f90.in bindings/f77/make_parameters.c
bindings/f77/test/fget_entry.f90: Add Fortran bindings for get_entry()
2008-09-03 D. V. Wiebe <getdata@ketiltrout.net> svn:63
* src/getdata.h.in: add a GD_NO_ENTRY entry type
* man/dirfile_free_entry_strings man/get_entry.3 src/entry.c src/getdata.h.in:
add dirfile_free_entry_strings()
2008-09-02 D. V. Wiebe <getdata@ketiltrout.net> svn:62
* bindings/f77/test/Makefile.am: fix include directory
* src/getdata.h.in src/close.c src/common.c src/getdata.c src/nframes.c
src/open.c src/putdata.c src/spf.c: re-organised gd_entry_t again
* src/getdata.c (_GD_DoLincom): ensure we return 0 on error
* src/close.c (dirfile_close): return -1 instead of 1 on error
* src/entry.c (get_entry): instead of returning the library's internal
gd_entry_t, copy the relevant bits to a caller supplied object. This should
be significantly more bullet proof against unintentional metadata corruption
* man/get_entry.3: update
* test/Makefile.am: clean up after tests
2009-09-02 D. V. Wiebe <getdata@ketiltrout.net> svn:61
* man/get_entry.3 src/Makefile.am src/entry.c src/getdata.h.in: added
get_entry()
* src/close.c src/flush.c: Split flush.c from close.c
* src/field_list.c src/nfields.c: Split nfields.c from field_list.c
* src/common.c src/open.c: Moved _GD_GetLine to common.c
* src/Makefile.am: Don't export internal symbols
2009-09-02 D. V. Wiebe <getdata@ketiltrout.net> svn:60
* README src/getdata.h.in: Add NO_GETDATA_LEGACY_API to getdata.h to permit
callers to not include the legacy API.
2009-09-02 D. V. Wiebe <getdata@ketiltrout.net> svn:59
* configure.ac: disable all Fortran bindings with one option. Rename
the bindings options.
2008-09-01 D. V. Wiebe <getdata@ketiltrout.net> svn:58
* src/getdata_legacy.c src/legacy.c: Re-implement GetFormat();
* src/getdata.h.in: store frame offset as off64_t
* man/dirfile_flush.3: added
* man/dirfile_close.3: corrected for changes made in revision 57
2008-09-01 D. V. Wiebe <getdata@ketiltrout.net> svn:57
* man/get_error_string.3 src/errors.c: Renamed getdata_error_string to
get_error_string so people don't think its relevance is exclusive to getdata()
* src/internal.h: Suberror codes may not = 0.
* README.cxx README.f77 README.f95 bindings/cxx/dirfile.cpp
bindings/cxx/dirfile.h bindings/f77/fgetdata.c bindings/f77/getdata.f.in
bindings/f77/getdata.f90.in man/Makefile.am man/dirfile_close.3 src/close.c
src/getdata.h.in test/Makefile.am test/close.c test/close_bad.c
test/close_null.c test/flush.c test/flush_all.c test/flush_bad_code.c
test/flush_invalid.c test/flush_recurse.c: Added public function
dirfile_flush() along with corresponding C++, F77 and F95 bindings.
dirfile_close calls dirfile_flush and might now fail (if fsync(2) or
close(2) returns with an error); ergo, it now returns an integer success
value, since D->error can't be checked if the call was successful.
* src/close.c (dirfile_close): per the man page, now always succeeds when
passed NULL.
* man/dirfile-format.5 src/open.c test/Makefile.am test/parse_endian_slash.c
test/parse_foffs_slash.c test/parse_include_slash.c
test/parse_version_slash.c: reserved words in the format file may now have
an initial '/' to ensure they're treated as such.
* man/dirfile-format.5 src/errors.c src/open.c test/Makefile.am
test/parse_name.c: prohibit / \ < > # & | ; in field names. Of these, /
would confuse the filesystem (and is now used to optionally demarcate reserved
words), # is already cast out by GetLine(). We reserve the others for future
use. Most of these are bash(1) metacharacters; ( and ) are the other
non-whitespace metacharacters in bash, but GetData allows them in field names.
2008-09-01 D. V. Wiebe <getdata@ketiltrout.net> svn:56
* src/open.c src/close.c: split up dirfile_open.c
* src/getdata.c src/types.c src/common.c: split up getdata.c
2008-08-30 D. V. Wiebe <getdata@ketiltrout.net> svn:54
* field_list.c: renamed get_n_fields() to get_nfields()
* nframes.c: renamed get_n_frames() to get_nframes()
* spf.c: renamed get_samples_per_frame() to get_spf()
2008-08-30 D. V. Wiebe <getdata@ketiltrout.net> svn:52 svn:53
* bindings/f77/Makefile.am bindings/f77/getdata.f90.in
bindings/f77/test/Makefile.am bindings/f77/test/fget_field_list.f90
bindings/f77/test/fgetdata.f90: Use .f90 instead of .f95 for free-form
Fortran source code
2008-08-29 D. V. Wiebe <getdata@ketiltrout.net> svn:51
* man/README.cxx man/README.f77 bindings/cxx/dirfile.cpp
bindings/cxx/dirfile.h bindings/f77/fgetdata.c bindings/f77/getdata.f: added
get_n_fields and get_field_list to C++ and F77 bindings.
* bindings/f77/Makefile.am bindings/f77/getdata.f.in
bindings/f77/make_parameters.c : automatically generate parameters
* README.f95 bindings/f77/Makefile.am bindings/f77/getdata.f95.in
bindings/f77/test/Makefile.am bindings/f77/test/fget_field_list.f95
bindings/f77/test/fgetdata.f95 configure.ac: Added Fortran 95 bindings
2008-08-29 D. V. Wiebe <getdata@ketiltrout.net> svn:50
* man/dirfile-format.5: Fix a rather egregious omission
2008-08-29 D. V. Wiebe <getdata@ketiltrout.net> svn:49
* src/getdata.h.in: Change GD_UNKNOWN
2008-08-26 D. V. Wiebe <getdata@ketiltrout.net> svn:47 svn:48
* man/Makefile.am man/get_field_list.3 man/get_n_fields.3 src/Makefile.am
src/dirfile_open.c src/field_list.c src/getdata.h.in test/Makefile.am
test/flist.c test/flist_invalid.c test/nfields.c test/nfields_invalid.c: Add
get_n_fields and get_field_list functions
* man/dirfile_open.3: Add BUGS section
2008-08-25 D. V. Wiebe <getdata@ketiltrout.net> svn:45
* configure.ac src/Makefile.am src/debug.c src/dirfile_open.c src/errors.c
src/getdata.c src/internal.h src/nframes.c src/putdata.c src/spf.c: tracing
in debug mode
2008-08-25 D. V. Wiebe <getdata@ketiltrout.net> svn:41 svn:42 svn:43 svn:44
* src/getdata_internal.h: renamed to internal.h
* README.cxx README.f77: add
2008-08-25 D. V. Wiebe <getdata@ketiltrout.net> svn:40
* src/errors.c (getdata_error_string): Rewrote to get rid of the nested
switches and to collect the strings.
* src/errors.c src/getdata.h.in src/getdata_legacy.h src/legacy.c: Move
GD_ERROR_CODES to legacy.c and deprecate.
* src/dirfile_open.c src/getdata.c src/nframes.c src/putdata.c: Cleaned up
error reporting code
2008-08-25 D. V. Wiebe <getdata@ketiltrout.net> svn:38
* src/dirfile_open.c src/getdata.c src/getdata.h.in src/getdata_internal.h
nframes.c putdata.c spf.c: Replace the various different EntryType structs
with a single, unified one. This also gets rid of the ENTRY() craziness.
2008-08-25 D. V. Wiebe <getdata@ketiltrout.net> svn:36 svn:37
* src/getdata.c src/getdata_internal.h src/putdata.c src/spf.c: Add
_GD_InternalError()
* src/errors.c: Rename _GD_SetGetDataError and _GD_ClearGetDataError to
_GD_SetError and _GD_ClearError
2008-08-25 D. V. Wiebe <getdata@ketiltrout.net> svn:35
* bindings/f77/fgetdata.c (_GDF_ClearDirfile): Don't accidentally close
dirfile unit zero
2008-08-21 D. V. Wiebe <getdata@ketiltrout.net> svn:34
* bindings/f77/fgetdata.c configure.ac src/dirfile_open.c src/getdata.c
src/getdata.h.in src/getdata_internal.h src/getdata_legacy.h src/putdata.c:
Fixes for compilation with icc, mostly concerning type casting.
* configure.ac: AC_PREREQ([2.60])
* Makefile.am: don't include getdata.h in the tarball
2008-08-21 D. V. Wiebe <getdata@ketiltrout.net> svn:33
* src/getdata.h.in: Be less clever defining stuff.
2008-08-20 D. V. Wiebe <getdata@ketiltrout.net> svn:32
* bindings/f77/getdata.f: Add EXTERNAL function declarations
2008-08-19 D. V. Wiebe <getdata@ketiltrout.net> svn:30
* bindings/f77/test/gdfget.f: Remove references to TRIM
2008-08-19 D. V. Wiebe <getdata@ketiltrout.net> svn:26 svn:27
* README: add
* Makefile.am: Remove explicit -lm
2008-08-19 D. V. Wiebe <getdata@ketiltrout.net> svn:25
* test/: Fix test suite for VPATH builds
2008-08-18 D. V. Wiebe <getdata@ketiltrout.net> svn:24
* Makefile.am configure.ac bindings/: Add C++ and Fortran 77 bindings.
2008-08-17 D. V. Wiebe <getdata@ketiltrout.net> svn:20 svn:21
* configure.ac getdata.h.in: Use AC_CONFIG_HEADERS with getdata.h
* INSTALL: This is the generic autoconf/libtool INSTALL document.
2008-08-17 D. V. Wiebe <getdata@ketiltrout.net> svn:19
* Makefile.am configure.ac bin/Makefile.am bin/checkdirfile.c: add
checkdirfile util
2008-08-17 D. V. Wiebe <getdata@ketiltrout.net> svn:18
* getdata_internal.h: If FILENAME_MAX is unreasonably small, still permit
roomy format file lines.
2008-08-17 D. V. Wiebe <getdata@ketiltrout.net> svn:16
* Makefile.am test/: added test suite
* man/get_n_frames64.3 man/getdata64.3 man/putdata.3 man/putdata64.3: added
* man/getdata.3: Added .SH LIMITATIONS
* src/dirfile_open.c src/errors.c src/getdata.c src/nframes.c src/spf.c:
split getdata.c into smaller pieces
* src/putdata.c (putdata): add support for access mode and frame offset
2008-08-12 D. V. Wiebe <getdata@ketiltrout.net> svn:13
* src/getdata.c src/getdata.h.in: rm unused error codes
2008-08-12 D. V. Wiebe <getdata@ketiltrout.net> svn:10 svn:11 svn:12
* configure.ac man/getdata.3 man/get_n_frames.3 src/getdata.c
src/getdata.h.in src/getdata_internal.h src/legacy.c src/putdata.c: LFS
support
2008-08-12 D. V. Wiebe <getdata@ketiltrout.net> svn:8
* src/getdata.c src/getdata.h.in: remove GD_E_ENDIAN_ERROR
* src/putdata.c (_GD_DoBitOut): Multibit putdata
2008-08-12 D. V. Wiebe <getdata@ketiltrout.net> svn:7
* man/dirfile_open.3: modern symbol
2008-08-12 D. V. Wiebe <getdata@ketiltrout.net> svn:6
* src/getdata.c (_GD_SetGetDataError): don't crash on NULL
* src/putdata.c (_GD_DoPhaseOut): add
2008-08-12 D. V. Wiebe <getdata@ketiltrout.net> svn:5
* src/legacy.c: Don't SEGV on bad dirfiles
* src/getdata.c src/getdata_internal.h src/putdata.c: Check for invalid
DIRFILEs
2008-08-12 D. V. Wiebe <getdata@ketiltrout.net> svn:4
* configure.ac: --enable-debug
* src/getdata.c src/legacy.c src/putdata.c: rename DIRFILE_DEBUG to
GETDATA_DEBUG
2008-08-12 D. V. Wiebe <getdata@ketiltrout.net> svn:2
* AUTHORS COPYING Makefile.am configure.ac man/Makefile.am
man/dirfile-format.5 man/dirfile.5 man/dirfile_close.3 man/dirfile_open.3
get_n_frames.3 man/get_samples_per_frame.3 man/getdata.3
man/getdata_error_string.3 src/Makefile.am src/getdata.c src/getdata.h.in
src/getdata_internal.h src/getdata_legacy.h src/legacy.c src/putdata.c:
Initial import of getdata for sourceforge.net. Previous history for getdata
can be found in the KDE subversion repository, for the kst project.
|