summaryrefslogtreecommitdiffstats
path: root/doc/case.n
blob: 63ad7e13b19b2eb3b4f00cb9af7959686be6218b (plain)
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
'\"
'\" Copyright (c) 1993 The Regents of the University of California.
'\" Copyright (c) 1994-1996 Sun Microsystems, Inc.
'\"
'\" See the file "license.terms" for information on usage and redistribution
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
'\" 
'\" RCS: @(#) $Id: case.n,v 1.3 2000/09/07 14:27:46 poenitz Exp $
'\" 
.so man.macros
.TH case n 7.0 Tcl "Tcl Built-In Commands"
.BS
'\" Note:  do not modify the .SH NAME line immediately below!
.SH NAME
case \- Evaluate one of several scripts, depending on a given value
.SH SYNOPSIS
\fBcase\fI string \fR?\fBin\fR? \fIpatList body \fR?\fIpatList body \fR...?
.sp
\fBcase\fI string \fR?\fBin\fR? {\fIpatList body \fR?\fIpatList body \fR...?}
.BE

.SH DESCRIPTION
.PP
\fINote: the \fBcase\fI command is obsolete and is supported only
for backward compatibility.  At some point in the future it may be
removed entirely.  You should use the \fBswitch\fI command instead.\fR
.PP
The \fBcase\fR command matches \fIstring\fR against each of
the \fIpatList\fR arguments in order.
Each \fIpatList\fR argument is a list of one or
more patterns.  If any of these patterns matches \fIstring\fR then
\fBcase\fR evaluates the following \fIbody\fR argument
by passing it recursively to the Tcl interpreter and returns the result
of that evaluation.
Each \fIpatList\fR argument consists of a single
pattern or list of patterns.  Each pattern may contain any of the wild-cards
described under \fBstring match\fR.  If a \fIpatList\fR
argument is \fBdefault\fR, the corresponding body will be evaluated
if no \fIpatList\fR matches \fIstring\fR.  If no \fIpatList\fR argument
matches \fIstring\fR and no default is given, then the \fBcase\fR
command returns an empty string.
.PP
Two syntaxes are provided for the \fIpatList\fR and \fIbody\fR arguments.
The first uses a separate argument for each of the patterns and commands;
this form is convenient if substitutions are desired on some of the
patterns or commands.
The second form places all of the patterns and commands together into
a single argument; the argument must have proper list structure, with
the elements of the list being the patterns and commands.
The second form makes it easy to construct multi-line case commands,
since the braces around the whole list make it unnecessary to include a
backslash at the end of each line.
Since the \fIpatList\fR arguments are in braces in the second form,
no command or variable substitutions are performed on them;  this makes
the behavior of the second form different than the first form in some
cases.

.SH "SEE ALSO"
switch(n)

.SH KEYWORDS
case, match, regular expression
838' href='#n838'>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
This file summarizes all changes made to Tk since version 1.0 was
released on March 13, 1991.  Changes that aren't backward compatible
are marked specially.

RCS: @(#) $Id: changes,v 1.37 1999/08/13 18:30:40 redman Exp $

3/16/91 (bug fix) Modified tkWindow.c to remove Tk's Tcl commands from
the interpreter when the main window is deleted (otherwise there will
be dangling pointers to the non-existent window).

3/16/91 (bug fix) Modified tkColor.c not to free black or white colors:
some X servers get upset at this.

3/18/91 (bug fix) Modified tkShare.c to fix bug causing "DeleteGroup
couldn't find group on shareList" panic.

3/18/91 (bug fix) Several changes to tkListbox.c and tkScrollbar.c to
handle listboxes (and scrollbars) with zero total entries in them.

3/22/91 (bug fix) Fixed a few ='s in tkListbox.c that should be ==.

3/22/91 (bug fix) Fixed error in main.c that caused BadWindow errors
in some cases where wish scripts invoke "destroy .".

3/23/91 (new feature) Added Tk_CancelIdleCall to remove Tk_DoWhenIdle
handler.

3/23/91 (bug fix and new feature) Added -name option to main.c, made
it more clever about choosing name (was always using the name "wish"
on most Unix systems).

3/23/91 (new feature) Added TK_CONFIG_STRING option to Tk_ConfigureWidget,
used it to malloc strings for various widget options that used to be
Tk_Uid's (e.g. button text, message strings, etc.).  Eliminates core
leaks when values change in continuous non-repeating fashion.

3/29/91 (new feature) Added Tk_Preserve, Tk_Release, and
Tk_EventuallyFree procedures to help manage widget records and avoid
premature memory free-ing.

4/4/91 (bug fix) Fixed problem in tkWm.c where top-level window geometry
wasn't tracking correctly when wm-induced size change also changed window
position (e.g. menus wouldn't be displayed at the right places).

4/5/91 (new feature) Added "invoke" option to widget command for buttons,
check buttons, and radio buttons.

4/5/91 (new feature) Added "unpack" option to "pack" command.

4/5/91 (bug fix) Changed tkPack.c to use new Tk_Preserve code and be
more careful about window deletions that occur while repacking is in
progress.

4/6/91 (bug fix) Major overhaul of deletion code in all widgets to use
Tk_Preserve and Tk_Release.  Should fix many problems.

4/6/91 (bug fix) Changed "winfo children" to generate correct lists
when child names have embedded spaces.

4/6/91 (new feature) Added "screenheight" and "screenwidth" options to
"winfo".

4/18/91 (bug fix) Binding mechanism didn't correctly handle very long
%-substitutions in commands (e.g. long path names) and caused memory
to be overwritten.  Modified tkBind.c to fix.

---------------------- Release 1.1, 4/18/91 -------------------------

4/19/91 (bug fix) Inconsistent ICCCM handling of coordinates of reparented
windows causes windows to gradually walk south when moved or resized.
Fixed tkWm.c to patch around the problem.

---------------------- Release 1.2, 4/24/91 -------------------------

4/26/91 (new feature) Added -geometry and -display switches to wish.
Also wrote wish manual entry.

5/3/91 (bug fix) Fixed bug in tkListbox.c that caused garbage to appear
at right edge of window when strings were to large to fit in window.

5/3/91 (bug fix) Fixed bug in tkListbox.c where topIndex wasn't getting
updated when elements were deleted:  tended to cause errors in
communication with scrollbars.

5/16/91 (bug fix) Fixed bug in tk3d.c, which caused core dumps when
consecutive points in a polygon were the same (happened with some
configurations of radio buttons, for example).

5/16/91 (bug fix) Fixed main.c to allow stdin to be redirected.

6/1/91 (bug fix) Make sure that pointers are never used after being
freed.

6/15/91 (bug fix) Fixed bug in tkBind.c that caused current binding
values to not always be printed correctly.

6/15/91 (bug fix) Make sure that interpreters are always unregistered
when their main windows are deleted, and make wish delete the main
window before exiting.

8/21/91 (misfeature correction)  Automatically set source of window
position to "user" in "wm geometry" command, unless it has been
explicitly set to "program".

9/5/91 (bug fix) Modified option code to accept '#' as a comment
character in .Xdefaults files, in addition to '!'.

9/10/91 (misfeature correction) Changed binding mechanism so that
numeric %-sequences are output in decimal instead of hex.

9/19/91 (bug fix) Fixed bug in Tk_DoOneEvent(1) where it wasn't
checking files and X connections properly so it missed events.

10/6/91 (new feature) Reorganized tkBind.c to provide generic "binding
table" structure, which can be used to create bindings on items in
canvases as well as windows.

10/6/91 (new feature) Upgraded buttons and menus to use new tracing
code in Tcl 6.0.  Allows radio buttons and check buttons to both set
and clear themselves when associated variable changes.

10/17/91 (bug fix) Fixed 2 bugs in listboxes: accidentally advanced the
selection when new entries were inserted in the listbox after the location
of the selected item(s), and goofed up on redisplay if selected item
was deleted and then selection was immediately lost.

10/27/91 (bug fix) "pack unpack" wasn't telling Tk that it no longer
manages window;  this led to core dumps in some situations.

10/31/91 (reorganization) Renamed manual entries so that they are no
more than 14 characters in length.

10/31/91 (reorganization) Changed tk.h and tkInt.h so that tkInt.h
doesn't needed to be included by tk.h.

11/3/91 (portability improvement) Eliminated use of "class" as a variable
name, since it's a reserved word in C++.

11/7/91 (reorganization) Many changes to upgrade for Tcl 6.1 including
use of Tcl hash tables instead of separate "Hash_" module.  The "lib"
subdirectory is no longer needed in Tk.

---------------------- Release 1.3, 11/7/91 -------------------------

11/24/91 (bug fix) Fixed bug causing occasional errors if existing bindings
are modified (FindSequence in tkBind.c forget to set *maskPtr).

11/24/91 (bug fix) Used wrong hash table in Tk_GetColorByValue.  Could
cause new entries to get created unnecessarily.

12/2/91 (bug fix) Changed "bind" code to put backslashes in front of
special characters (e.g. [ or \) that appear in %-replacements, so that
they can be parsed cleanly.

12/10/91 (bug fix) Manual entries had first lines that caused "man" program
to try weird preprocessor.  Added blank comment lines to fix problem.

1/2/92 (documentation cleanup) Changed manual entries for Tk_GetBitmap
and the like to make it more clear that the argument must be a Tk_Uid
and not a string.

1/2/92 (bug fix) Fixed problem where scrollbars that were very short or
very narrow (too small to hold both arrows) could cause negative values
in calls to XClearArea, which crashed some servers.

1/2/92 (bug fix) Fixed bug in TkMeasureChars occurring when maxChars
is 0.  Occasionally affected things like message window geometry.

1/3/92 (new feature) Added procedures Tk_GetJustify, Tk_GetAnchor,
Tk_GetCapStyle, and Tk_GetJoinStyle, plus support for these things
in Tk_ConfigureWidget.

---------------------- Release 1.4, 1/10/92 -------------------------

1/12/92 (bug fix) TkMenubutton.c wasn't cleaning up mbPtr->varName
properly during menubutton cleanup if an error occurred during
menubutton creation.

1/19/92 (bug fix) Fixed off-by-one bug in tkListbox.c that caused
scrollbars to display a slider that was too large.

2/10/92 (bug fix) Tk_CreateFileHandler didn't correctly handle case
where new mask was specified for existing handler.

2/13/92 (bug fix) Tk_DeleteAllBindings wasn't correctly removing
bindings from the pattern table:  only did the removal for the
first pattern in a pattern list.

2/15/92 (new feature) Added procedures Tk_DefineBitmap and
Tk_SizeOfBitmap.  Tk_GetBitmapFromData is now considered obsolete
and probably shouldn't be used anymore.  Tk_GetBitmapFromData
is now implemented by calling Tk_DefineBitmap and Tk_GetBitmap.

2/15/92 (new feature) Added "curselection" and "select clear" options
to widget command for listboxes.

2/15/92 (new feature) Added Tk_3DBorderColor procedure.

2/17/92 (relaxed limitations) Changed scrollbars so they no longer limit
the slider position to lie within the object's range:  can scroll off the
end of an object, if the object permits it.  Changed listboxes and
entries to explicitly prevent viewing off the ends.  Also relaxed
listbox index checks so that out-of-range indices are automatically
adjust to fit within the listbox range.

2/19/92 (bug fix) tkWindow.c tended to leave half-created windows around
if a new window's name was found to be in use already.  Fixed to clean
them up.

2/22/92 (new feature) Added -anchor, -bitmap, -height, -textvariable,
-width options to labels, buttons, check buttons, menu buttons, and radio
buttons.  This means that (a) size can be controlled better, (b) bitmaps
can be displayed in any buttons, (c) the position of the text within the
button can be controlled, and (d) a button can be made to display the value
of a variable, continuously updating itself.  Also changed -selector option
so that if it's specified as an empty string then no selector is drawn
for the button.

2/22/92 (new feature) Changed menus to support bitmaps in menu entries:
added new -bitmap option for entries.

2/26/92 (bug fix) "after" command, when invoked with just one argument,
called Tk_Sleep rather than registering a timer handler and looping on
Tk_DoOneEvent.  As a result, it caused the application to become non-
responsive to X events during the sleep.  Changed to use a Tk_DoOneEvent
loop so that it is responsive.

2/26/92 (bug fix) Tk's main program didn't map the main window until
after the startup script returned.  Changed to map the window as a
do-when-idle handler, so that scripts can cause the window to be
mapped immediately with a call to "update" or "after".

2/28/92 (bug fix) "wm withdraw" wasn't working if invoked before window
was originally mapped:  window got mapped anyway.  Fixed so that the
window doesn't get mapped as long as it's withdrawn.

2/29/92 (new feature) Can use "focus none" to clear input focus.

2/29/92 (bug fix) Fixed tkEvent.c to generate SubstructureNotify events
properly.  These weren't being generated previously.

2/29/92 (bug fix) Fixed entries so that newline characters can be properly
displayed (as `\x0a').  Had to change interface to TkDisplayChars in order
to do this (added flags argument).

2/29/92 (bug fix) Change Tk not to update size and position of top-level
windows directly during calls like Tk_ResizeWindow.  Instead, wait until
actual event is received.  This makes updates happen at same time as
callbacks.

3/6/92 (bug fix) TkMenubutton.c was dumping core when a menubutton was
pressed at a time when there was no associated menu for the button.

3/6/92 (new feature) Added Tk script library directory with official
Tk initialization file "tk.tcl".  Other procedures used by Tk are in
other files.  Tk procedures and variables all have names starting
with "tk_".  Also added Wish startup script "wish.tcl", which sources
both the Tk and Tcl startup scripts.  This means that things like
auto-loading and abbreviation expansion are now available in wish.
Added new variables tk_library, tk_priv, and tk_version.

3/6/92 (new feature) It's now possible to set bindings for whole
classes by using the class name in the bind command.  For example,
"bind Button <Enter> {puts stdout Hi!}" will cause a message to be
printed whenever any mouse button is entered.  Can also use "all"
to set bindings for all widgets.  Widget-specific bindings override
class bindings which override "all" bindings.

3/6/92 (reorganization) Changed buttons (all flavors) and listboxes to
eliminate all hard-wired behavior.  Instead, default behavior is set
by class bindings in tk.tcl.  Also set up class bindings for menus,
menubuttons, and entries, which previously had no default behavior at
all.  Scrollbars and scales still have hard-wired behavior that can't
be overridden.

3/7/92 (look-and-feel change) Changed listboxes and entries and menus
to use button 2 for scanning instead of button 3.  This is more consistent
with the official Motif use of button 2 for dragging.

3/10/92 (new features) Added more options to "winfo" command:  screencells,
screendepth, screenmmheight, screenmmwidth, and screenvisual.

3/13/92 (bug fix) Event sharing mechanism (tkShare.c) wasn't checking
to see whether window was mapped before sharing events with it.

3/16/92 (bug fix) Tk_SetInternalBorderWidth was passing wrong window to
geometry-management procedures, causing core-dumps when menu buttons
had their border widths changed.

3/16/92 (bug fix) Menus were setting their geometry directory rather
than using Tk_GeometryRequest mechanism.

3/17/92 (new feature) Added -cursor option to all widgets to set the
active cursor for the widget.  Also added TK_CONFIG_ACTIVE_CURSOR
configure type.

3/18/92 (new feature) Implemented generalized screen coordinates to
allow resolution-independent specification in many cases (but pixel-
based coordinates are still OK).  Added Tk_GetScreenMM(),
Tk_GetPixels(), new configure types TK_CONFIG_SCREEN_MM and
TK_CONFIG_PIXELS.  Changed widgets to use this new configure types
wherever possible (a few of the more complex cases still haven't
been taken care of yet).  Added "pixels" and "fpixels" options to
"winfo" command.

3/18/92 (new feature) First cut at canvas widgets is done and part of
the official Tk now.  Canvases display text and structured graphics,
and allow you to bind commands to events related to the text and
graphics.

3/21/92 (new feature) Added new "place" command.  It implements a
new geometry manager that provides fixed placement, rubber-sheet
placement, and combinations of the two.  Eliminated the commands
"move", "resize", and "map" that were provided by main.c but never
officially supported;  the placer provides all of this functionality.

3/23/92 (bug fix) Fixed bug in tkWm.c where top-level windows were
occasionally not being given the right size.  The problem occurred
when a string of resizes happened all in a row (such as deleting all
the windows in an application and then recreating them).

3/23/92 (new feature) Added Tk_CoordsToWindow procedure and
"winfo containing" command.  These may be used to locate the window
containing a given point.

3/28/92 (new feature) Added "-exportselection" option to listboxes,
so that listbox selection need not necessarily be the X selection.

4/12/92 (bug fix) Changed menu buttons to store name of menubutton
in the associated variable, rather than the name of the menu.  This
is necessary in order to allow several menu buttons to share the
same menu.
*** POTENTIAL INCOMPATIBILITY ***

4/12/92 (bug fix) Fixed core dump that occurred in tkError.c when
removing the first error record from the error list.

4/15/92 (bug fix) Fixed bug in tkBind.c that prevented <KeyPress-1>
event specifications from being processed correctly:  the "1" was
treated as a button name rather than a keysym.

4/18/92 (new feature) Added Tk_DefineCursor and Tk_UndefineCursor
procedures.

4/18/92 (new feature) Major revision to listboxes.  Can now scroll and
scan in both x and y, plus -exportselection option allows selection not
to be exported.  The "view" widget command has been replaced by "xview"
and "yview", and the "scan" widget command has a new syntax.
*** POTENTIAL INCOMPATIBILITY ***

4/18/92 (new feature) Added -exportselection option to entries, so you
can select whether you want the entry selection to be the X selection
or not.

4/24/92 (new features) Added TK_CONFIG_CUSTOM type to Tk_ConfigureWidget,
plus added new flags TK_CONFIG_NULL_OK, TK_CONFIG_DONT_SET_DEFAULT,
and TK_CONFIG_OPTION_SPECIFIED.  Several other new types, such as
TK_CONFIG_CAP_STYLE, were also added as part of implementing canvases.

4/29/92 (bug fix) Changed "-selector" default for menus to have separate
values for mono and color.

4/30/92 (bug fix) Fixed bug in tkListbox.c where it occasionally generated
bogus scroll commands (last index less than first).

4/30/92 (reorganization) Moved demos directory to "library/demos".

---------------------- Release 2.0, 5/1/92 -------------------------

5/2/92 (bug fix) Fixed problem in tkListbox.c where it was doing too many
redisplays after repeated insertions.  Also reduced number of invocations
of scrollbar commands.

5/7/92 (portability improvement) Changed main.c not to use TK_EXCEPTION
flag;  it isn't needed and it causes problems on some systems.

5/9/92 (bug fix) Plugged core leaks in tkListbox.c and tkBind.c

5/9/92 (bug fix) TkBind.c was accidentally deleting bindings during
attempts to print non-existent bindings.

5/11/92 (bug fix) Maximum name length for applications (name used in
"send" commands) was too short (only 20);  increased to 1000.  Also
fixed bug related to over-long names that caused core dumps.

5/13/92 (bug fix) tkShare.c was using a dangling pointer if a share
group was deleted as a side-effect of a shared event.

5/13/92 (bug fix) Various initialization and core leak problems in
tkGC.c, tkSend.c, tkMenu.c, tkEvent.c, tkCanvas.c, tkCanvPoly.c,
tkCanvLine.c, tkListbox.c, tkEntry.c.

5/13/92 (bug fix) Empty entries could be scanned off the left edge,
displaying a garbage character.

5/13/92 (bug fix) Fixed a few problems with window manager interactions,
such as tendency for windows to spontaneously shrink in size.  By no
means are all of the problems fixed, though.

5/13/92 (performance optimization) Changed Tk_GeometryRequest not to
invoke geometry manager unless requested size has changed.

---------------------- Release 2.1, 5/14/92 -------------------------

5/1/92 (new features) Added flags like TK_IDLE_EVENTS to Tk_DoWhenIdle,
plus added "idletasks" option to "update" command.  Tk_DoWhenIdle arguments
look different now, but the change should be upward-compatible.

5/17/92 (new feature/bug fix) Added support for VisibilityNotify events
to the "bind" command.  For some reason they weren't supported previously.

5/17/92 (new feature) Added "tkwait" command.

5/17/92 (new feature) Added "grab" command.

5/17/92 (new feature) Added "-width" option to messages.  Also changed
messages to use the computed (i.e. desired) line length when displaying,
not the actual width of the window.

5/17/92 (bug fixes) Did some more fiddling with tkWm.c in the hopes
of improving window manager interactions.  Now there won't be more than
one configure request outstanding to the wm at a time.

5/17/92 (bug fix) Arrowheads on canvas lines weren't being translated
or scaled correctly.

5/20/92 (bug fix) Page-mode scrolling didn't work correctly for canvases
(wrong windowUnits was passed to scrollbars).

5/20/92 (bug fix) Changed scrollbars not to lose highlight when pointer
leaves window with button down.  Also changed redisplay to double-buffer
for smoother redraws.

5/21/92 (new feature) Added "gray50" and "gray25" as predefined bitmaps.

5/22/92 (new feature) Buttons can now be disabled using the "-state" and
"-disabledforeground configuration options.  The "activate" and "deactivate"
widget commands for buttons are now obsolete and will go away soon.
Please change Tcl scripts not to use them.

5/23/92 (new feature) Entries can now be disabled using the "-state"
config option.  Also improved class bindings for entries to keep the
cursor visible in the window when operations occur.  Also made slight
improvements in the way redisplay is done.

5/23/92 (new feature) Added "-textvariable" option to entries so that
the text in an entry can be tied to the value of a global variable in
a fashion similar to buttons.

5/27/92 (new feature) Added "-textvariable" and "-anchor" options to
messages.

5/28/92 (new feature) Added "-padx" and "-pady" and "-underline" options
to menubuttons.

5/28/92 (feature change) Changed "-width" and "-height" options on
all flavors of buttons and menubuttons so that they are orthogonal
to "-padx" and "-pady".  It used to be that -width overrode -padx
(no padding).  Now they accumulate.

5/29/92 (new feature) Added "-disabledforeground" option to menus and
all flavors of buttons (can specify color for disabled things rather
than just using stipple to gray out).

5/29/92 (new features) Added many new options to menu entries:
-activebackground, -background, -font, -state, -underline.  The
"disable" and "enable" widget commands for menus are now obsolete
and will go away soon.  Please change Tcl scripts not to use them.

5/29/92 (new features) Added "atom" and "atomname" options to "winfo"
command.

5/29/92 (new feature) Wrote tk_listboxSingleSelect procedure, which
can be used to change listbox behavior so that only a single item is
selected at once.

6/1/92 (new feature) Added new modifier names "Meta" and "Alt" for
"bind" command.

6/3/92 (new feature) Added "winfo toplevel" command.

6/3/92 (new feature) Made several changes for greater Motif compliance,
including:
    - menu retention if you click and release in the menu button,
    - keyboard traversal of menus (see traversal.man)
    - no widget flashing if you set $tk_strictMotif to 1

6/15/92 (bug fix) Fixed problem in tkBind.c where command string for a
binding could get reallocated while the command was being executed (e.g.
bindings that delete or change themselves).

6/15/92 (bug fix) Don't allow "tabWidth" field to become zero in tkFont.c:
can cause core dumps for fonts that don't enough information to compute
tab widths.

6/19/92 (bug fix) Fixed bug in binding mechanism that caused structure-
related events to be reported both to the correct window and its parent.

7/14/92 (bug fix) Changed tkColor.c not to free colors for visual types
StaticGray or StaticColor.

7/15/92 (new feature) Text widgets now exist.  They display any number of
lines of text with a variety of display formats, and include hypertext
facilities.  See the manual page for details.

7/20/92 (bug fix) If a top-level window was put in the iconic state to
begin with, it could be deiconified with "wm deiconify .foo" until it had
first been deiconified by hand from the window manager.  Tk was getting
confused and thought the window was mapped when it wasn't.

7/29/92 (bug fix) Don't permit rectangles or ovals to have zero-sized
dimensions.  Round up to at least one pixel.

7/29/92 (new features) Major upgrade to canvases:
    - new item types: arc, window, bitmap
    - added Bezier spline support for lines and polygons
    - rectangles and ovals now center their outlines on the shape,
      rather than drawing them entirely inside the shape
    - new "coords" and "bbox" widget commands
    - new "-tags" option for all item types.
    - new "-confine" option to prevent scrolling off edge of canvas.

8/6/92 (new feature) Added "-width" and "-height" options to frames.
The "-geometry" option is now obsolete and should be removed from Tcl
scripts:  it may go away in the future.

8/7/92 (bug fix) Error messages in Tk_ParseArgv were sometimes including
the option name where they should have included its value.

---------------------- Release 2.2, 8/7/92 -------------------------

8/7/92 (bug fix) Changed tkCanvas.c to be more conservative in the area
it passes to XCopyArea.

8/8/92 (bug fix) Fixed bug in tkTextDisp.c that sometimes caused core
dumps when text views changed (e.g. typing return on last line of screen).

8/8/92 (bug fix) Fixed bug in menu.tcl that caused errors when using
keyboard to traverse over separator menu entries.

8/10/92 (bug fix) Changed to use OPEN_MAX instead of MAX_FD to compute
maximum # of open files.

8/10/92 (bug fix) Canvases weren't updating scrollbars on window size
changes.  They also weren't recentering canvases on window size changes.

8/10/92 (bug fix) There were still a few places where commands were being
invoked at local level instead of global level (e.g. commands associated
with buttons and menu entries).

8/10/92 (bug fix) TkBind.c used to ignore explicit shift modifiers for
all keys (i.e. <Shift-Tab> was treated the same as <Tab>).  Modified to
allow explicit request for shift modifier, like <Shift-Tab>.

8/13/92 (feature change) Changed default fonts to request "Adobe" fonts
explicitly.

8/16/92 (bug fixes) Modified tkCanvArc.c and tkTrig.c to increase slightly
the bounding boxes for arcs, in order to make sure that proper redisplay
occurs when arcs are moved (little turds were getting left behind).

8/16/92 (bug fix) Modified tkCanvas.c not to redraw at all if the redisplay
area is off the screen.  Also, only do a background clear for the portion
of the redraw area that is on-screen.  Also, reduced size of off-screen
pixmaps used for redisplaying, which speeds up redisplay in some cases.

8/19/92 (bug fix) Canvases that were taller than wide were not being
redisplayed properly.

8/20/92 (new feature) Added Tk_CreateGenericHandler procedure for trapping
all X events (useful for tracing, watching non-Tk windows, etc.).

8/21/92 (bug fix) Widgets weren't always being notified when they got
the focus back again (the problem had to do with grabs and menus in
particular).

8/21/92 (new feature) Added "-state" option to scale widgets.

8/22/92 (new feature) Changed tkBitmap.c to allow tilde-substitution
to occur in bitmap file names.

---------------------- Release 2.3, 8/24/92 -------------------------

8/27/92 (bug fix) Changes to -activebackground and -activeforeground options
for menubuttons were being lost.

8/27/92 (bug fix) Entries were selecting last character when a B1-drag
occurred past the right edge of the text.

8/28/92 (bug fix) Fixed bug in canvases where a grab during a button
press caused the canvas state to lock up so that it didn't select a
new current item.

9/7/92 (bug fix) Changed tkMenu.c to accept numerical menu indices that
are out of range;  now it just rounds them off to the nearest existing
entry.

9/7/92 (bug fix) Fixed bug in tkTextDisp.c that caused core dumps when
invoking "yview -pickplace" widget command on texts that are too small
to hold any lines at all.

9/11/92 (bug fix) Fixed bug in tkTextDisp.c that caused core dumps
when adding tags to non-existent lines.

9/11/92 (bug fix) Line items in canvases didn't permit an empty fill
color (i.e. couldn't make them transparent).

9/14/92 (reorganization) Changed manual entries to use .1, .3, and .n
extensions.  Added "install" target to Makefile to suggest how Tk should
be installed.

9/16/92 (bug fix) Changed tkSend.c to always specify the root window of
screen 0 rather than using DefaultRootWindow.  DefaultRootWindow doesn't
always go to screen 0 on displays with multiple screens, which can result
in send's not being possible between the screens.

9/18/92 (new feature) Added three new options to "wm" command: "protocol",
"client", and "command".  These provide support for window manager protocols
such as WM_DELETE_WINDOW and WM_TAKE_FOCUS, plus support for the
WM_CLIENT_MACHINE and WM_COMMAND properties.

9/30/92 (new feature) Implemented color model support, including
"tk colormodel" command and Tk_GetColorModel and Tk_SetColorModel
procedures.  These allow you to force mono operation even on a color
display.  Also changed color allocation not to give errors when colors
run out, but just to switch to a mono color model.

10/1/92 (bug fixes) Fixed two bugs in tkTextBTree.c that caused core dumps
during text deletion.

10/5/92 (bug work-around) Changed tkColor.c to ignore errors when freeing
colors.  This is needed to work around improper reference count management
for colormap entries under X11/NeWS.

10/7/92 (new feature) Added support for different visual types, including
procedures Tk_SetWindowVisual and Tk_SetWindowColormap, plus macros
Tk_Visual, Tk_Depth, and Tk_Colormap.  The code for this was contributed
by Paul Mackerras.

10/7/92 (new feature) Added Tk_IsTopLevel macro.

10/12/92 (bug fix) Fixed bug in tk.tcl that caused torn-off menus with
cascaded children not to track mouse motion correctly (the cascade
switched in response to mouse motions within the cascaded child).

10/12/92 (new feature) Major changes to focus handling:
(a) Tk watches FocusIn and FocusOut events for focus changes, not Enter
    and Leave, so it will work better with explicit-focus-model window
    managers (e.g. mwm in default mode).
(b) Tk generates FocusIn and FocusOut events for the focus window now.
    The old procedural interface (via Tk_CreateFocusHandler) is obsolete
    and is no longer used inside Tk.  It is still supported for
    compatibility, but won't be for long.  You should change your code
    to use FocusIn and FocusOut events instead.
(c) The model for FocusIn and FocusOut events is different than the
    one described in Xlib documentation.  See the "focus" manual entry
    for details.
(d) If there is no input focus then keyboard events are discarded.  They
    used to be directed to the mouse pointer window, although this wasn't
    documented.  The focus now defaults to the root window.
*** POTENTIAL INCOMPATIBILITY ***

10/15/92 (bug fix) Fixed text items in canvases where they didn't
display the insertion cursor if the item had no characters in it.

10/26/92 (bug fix) Fixed bug in tkSelect.c that occasionally caused
BadWindow X protocol errors when retrieving the selection.  Tk wasn't
making sure that a window existed before using it to retrieve the
selection.

10/30/92 (feature change) Changed canvases so that if the scroll region
is smaller than the window and -confine is on, the scroll region isn't
forced to be centered in the window;  it can be anywhere that meets the
confinement restrictions.

11/2/92 (new feature) Added "winfo exists" command.

11/5/92 (new feature) Changed DoWhenIdle handlers so that if a new
when-idle handler is created as a side-effect of another when-idle
handler, the new handler isn't invoked until Tk has first checked
for other events to process.

11/6/92 (bug fixes, new features) Major overhaul of window manager
interface:
(a) Tk should now work with virtual-root window managers;
(b) windows will now place more accurately on the screen and stay where
    they're supposed to;
(c) size changes handled more reliably;
(d) code now works robustly in the face of withdrawals followed
    immediately by deiconifications.
(e) Added new procedure Tk_GetVRootInfo and new options to "winfo" command:
    vrootx, vrooty, vrootwidth, vrootheight.
(f) Added "overrideredirect" option to "wm".
(g) Fixed bug where change in width-only via "wm geom" didn't always work
   (min and max window sizes weren't being set properly for the wm).

11/6/92 (bug fixes) Modified menus so that they work correctly with
virtual root window managers.  Also fixed bug where menus didn't move
along with their associated windows, so that the menu popped up at
the old location of the window rather than its new location.

11/9/92 (new constraint) Made it illegal to give windows names that
start with upper-case letters, since such names will goof up the
option database by appearing to be classes rather than names.
*** POTENTIAL INCOMPATIBILITY ***

11/10/92 (new feature) Added Postscript output to canvases.

11/13/92 (bug fix) Changed default for maximum size passed to window
manager from 1000000 (which causes some wm's to make windows too large
when "maximized") to the size of the display.

11/14/92 (feature change) Major overhaul of menubuttons and pull-down
menus.  Removed event-sharing code, including Tk_ShareEvents and
Tk_UnshareEvents.  The -variable option for menubuttons has been
removed,and the "post" and "unpost" widget commands for menubuttons
no longer exist.  The "post" widget command for menus no longer
allows a group option.  The procedure tk_menus has been replaced
with a new procedure, tk_menuBar, which has a slightly different
interface.
*** POTENTIAL INCOMPATIBILITY ***

11/20/92 (new features, feature changes) Major overhaul of grab
mechanism to produce more correct event streams.  Also changed Tcl
commands to require explicit window for grab releases (makes it
possible for grabs to work on multiple displays simultaneously).
The old "grab none" command no longer exists, but new options
have been added: "current", "release", "set", and "status".
*** POTENTIAL INCOMPATIBILITY ***

11/20/92 (new feature) Use TK_LIBRARY environment variable to set library
directory location, if it is defined.  Otherwise fall back on usual
compiled-in value.

11/25/92 (bug fix) "wm grid" command was using wrong window.

11/29/92 (bug fix) Fixed core dump that occurred when trying to use
placer on top-level windows: return error instead.

11/29/92 (bug fix) Selection retrieval wasn't making sure that the window
on whose behalf selection is being retrieved actually exists.

12/3/92 (new feature) Added support for Mode_switch key to support the
full ISO character set.  Also added event handlers for MappingNotify
events so that Tk updates itself in response to keycode and modifier
changes.

12/6/92 (bug fix) Ignore recursive attempts to destroy window.

12/9/92 (new demos) Added "tcolor" and "rmt" demos.

12/10/92 (new features) Added "yposition" widget command for menus,
changed "delete" widget command to take an optional second index,
and changed -command option for cascade entries so that it is
invoked when the entry is activated rather than when it is invoked.
*** POTENTIAL INCOMPATIBILITY ***

12/12/92 (implementation change)  Changed the procedures Tk_FreeBitmap,
Tk_NameOfBitmap, Tk_SizeOfBitmap, Tk_FreeCursor, Tk_NameOfCursor, and
Tk_FreeGC to require an addition Display argument.  This is needed for
Tk to function correctly when an application has windows on multiple
displays.
*** POTENTIAL INCOMPATIBILITY ***

12/12/92 (new feature) Started creating a test suite.  Right now it
only has a few tests.

12/12/92 (new feature) Modified the packer so that a window can be
packed in descendants of its parent (used to be restricted to the
parent alone).  This makes it possible to hide extra windows used
for geometry management.  Also, can use generalized screen distances
in the "pack" command.

12/16/92 (feature change) Boolean options such as -exportselection now
print as 0/1 rather than true/false (both the default and current values
print this way).  This makes it easier to use these values in expressions.
*** POTENTIAL INCOMPATIBILITY ***

12/16/92 (name change) The classes "RadioButton" and "CheckButton" have
been renamed "Radiobutton" and "Checkbutton" for consistency.  From now
on widget class names will have exactly one capital letter.
*** POTENTIAL INCOMPATIBILITY ***

12/16/92 (new feature) Added -setgrid option to listboxes.

12/16/92 (new feature) The "destroy" command, and the "delete" widget
command for canvases, now accept any number of arguments, including
zero.

12/16/92 (new feature) Changed internal TkBindError procedure to
Tk_BackgroundError and exported it to Tk clients.

12/16/92 (option name change) Changed the place command's "dependents"
option to "slaves" for better consistency with documentation.
*** POTENTIAL INCOMPATIBILITY ***

12/16/92 (name changes) Renamed the "cursor*" options in entries and
canvases to "insert*".  Also renamed the "cursor" index to "insert" and
the "cursor" widget command to "icursor".  This was done to avoid
confusion between the mouse cursor and the insertion cursor.
*** POTENTIAL INCOMPATIBILITY ***

---------------------- Release 3.0, 12/17/92 -------------------------

12/17/92 (bug fix) Fixed dangling-pointer bug in canvases that occurred
if a <LeaveNotify> binding deleted the current item.

12/18/92 (bug fix) Core dump occurred if "wm" invoked with no arguments.
Also, tkWm.c wasn't properly setting WM_CLASS property on application
startup.

12/18/92 (incorrect documentation) Updated manual entries for Tk_FreeGC,
Tk_FreeCursor, and Tk_FreeBitmap to reflect new interface that requires
"display" argument.

12/18/92 (missing documentation) Added documentation for the canvas
"postscript" command, which was missing in the 3.0 release.

12/21/92 (bug fixes) There were lots of problems with the new installation
targets in the Makefiles, such as using "cp -f" and not installing
prolog.ps.  Made several other miscellaneous improvements to Makefile.

12/21/92 (bug fix) Arrowheads on canvas line items weren't moving properly
after coordinate changes made with the "coords" widget command.

12/21/92 (bug fix) If top-level window was initially withdrawn, couldn't
ever deiconify it again.

12/21/92 (bug fix) Double-button event sequences didn't always trigger
properly when grabs were in effect.

12/22/92 (bug fix) The packer didn't display any top or bottom windows
after a left or right expanded window, and vice versa.  Also made the
distribution of space among expanded windows more even.

12/28/92 (new features) Several improvements to selection:
(a) Added procedures Tk_ClearSelection and Tk_DeleteSelHandler.
(b) Added "clear" and "own" options to "selection" command, extended
    "handle" option to delete handlers.
(c) Error returns from "selection handle" scripts are now turned into
    selection retrieval errors ("no such selection") rather than an
    empty selection.
(d) Tk responds automatically for targets APPLICATION (name of application,
    so you can "send" to it) and WINDOW_NAME (name of window within
    application.
(e) Added test file "select.test" to test suite.

12/28/92 (bug fix) Fixed problem with flashing menus that occurred
because menu.tcl was willing to unpost and then immediately repost
the same menu.

1/6/93 (bug fix) Test for UnmapNotify events in tkPack.c used = instead
of ==.

1/21/93 (bug fix) Changed many widgets to eliminate use of
DefaultVisualofScreen, DefaultColormap, etc. and use the visuals
and colormaps for the actual windows instead.  Also changed to
inherit colormaps and windows from parent by default.

1/21/93 (new features) Added new winfo options "cells", "depth", and
"visual".

1/23/93 (bug fix) Fixed problem with text display that could result
in negative XCopyArea heights being sent to X server.  This causes some
servers (e.g. some versions of OpenWindows) to crash.

1/25/93 (new feature) Added -postcommand option to menus, so that menus
can be reconfigured before each posting.

1/29/93 (feature change) Changed %X and %Y in bindings so that they
refer to the virtual root rather than the true root.  Although
potentially incompatible, this change should almost always "do the
right thing".
*** POTENTIAL INCOMPATIBILITY ***

1/31/93 (bug fix) Changed "send" code to grab server while updating
the registry property (before this fix, two programs could allocate
the same interpreter name if they started up simultaneously).  In
order to make this fix I had to change the code for reclaiming
names of dead interpreters in a way that sometimes allows dead
interpreters to persist in the registry.

2/1/93 (feature change) Changed entries to allow leftmost "visible"
character to be the end of the text (i.e. no characters actually visible).
This is needed so that the cursor can be displayed even if the last
actual character is too wide to fit in the window.

2/3/93 (bug fix) Fixed two bugs in tkFocus.c:  (a) FocusIn events
were getting lost in some cases because the focus window hadn't been
created yet (e.g. new top-level window pops up underneath the mouse);
(b) Tk was accidentally triggering FocusOut events when the mouse
moved from a top-level window to one of its children.

2/4/93 (new feature) Added "visibility" option to "tkwait" command to make
it easier to wait for a new window to appear on the screen.

---------------------- Release 3.1, 2/5/93 -------------------------

2/10/93 (installation improvements) Makefile improvements:  added RANLIB
variable for easier Sys-V installation, changed to use INCLUDE_DIR
properly, and added SHELL variable for SGI systems.

---------------------- Release 3.2, 2/11/93 -------------------------

2/11/93 (new feature) Added "wm state" command, and improved wm so that
the right thing will happen if you invoke "wm iconify" when a window is
withdrawn.

2/14/93 (bug fix) When -colormap option was used in generating Postscript
for canvases, Tk didn't add an extra space after the color command.

2/14/93 (new feature) Changed "extern" declarations in tk.h to "EXTERN",
which will use the definition of EXTERN from tcl.h and work correctly
in C++ programs.

2/18/93 (bug fix) Item-specific bindings weren't getting deleted from
canvas items when the items were deleted.  As a result, they could
suddenly re-appear for new items if the new items were allocated a
record at the same addresses as the old ones.

2/18/93 (feature reversal) Changed "after" back again, so that it sleeps
*without* responding to events when it is invoked with just one argument;
can always use tkwait plus after with additional arguments to achieve
the effect of responding to events.
*** POTENTIAL INCOMPATIBILITY ***

2/20/93 (bug fix) Fixed bug in tkWindow.c where colormaps weren't being
set correctly for new top-level windows on different screens than their
parents (the bug results in X protocol errors: "invalid Colormap
parameter").

2/22/93 (bug fix) Changed "#!/usr/local/wish" in demo scripts to
"#!/usr/local/bin/wish" to reflect new location of binary.

2/22/93 (new feature) Added new reliefs "groove" and "ridge".

2/25/93 (new feature) Added new built-in bitmaps:  "error", "hourglass",
"info", "question", "questhead", and "warning".  Also added new demo in
"widget" to display all of these (under the Miscellaneous menu).

2/25/93 (improved implementation) Changed DrawText procedure in
prolog for outputting Postscript from canvases to use stringwidth
instead of charpath+pathbbox:  avoids limitcheck problems with long
strings, and also properly includes space characters in calculation.

2/25/93 (bug fix) Fixed several bugs in library/menu.tcl that caused
menu traversal to mis-behave when menu had no entries.

2/26/93 (new feature) Added "wm frame" command.

3/6/93 (bug fix) Mwm in click-to-focus mode was goofing up grabs so that
pull-down menus were sometimes unresponsive.  Modified tk.tcl to ignore
the spurious B1-Enter events generated by mwm, plus modified tkGrab.c to
release simulated button grabs correctly.

3/8/93 (bug fix) Tk had wrong interpretation of "lbearing" font metric,
which caused text to be displayed at the wrong horizontal position in
several places (labels/buttons, listboxes, canvas text, scales).  This
change will cause slight changes in the way certain widgets are
displayed.

3/12/93 (bug fix) Fixed core dumps that occurred in tkEntry.c because of
zero values in entryPtr->avgWidth.

3/12/93 (bug fix) Tk_CoordsToWindow was using root coordinates always.
Changed to use virtual-root coordinates when a virtual-root window
manager is being used.  Before this fix, "winfo containing" didn't
return the correct window under virtual-root window managers.

3/18/93 (bug fix) Modified tkWm.c so that Tk doesn't fight with window
manager over position of window;  it just takes what the window manager
gives it.

3/21/93 (new feature) Changed menus to display cascade entries with
standard Motif arrows at right side.a

3/22/93 (bug fix) Fixed bug in tkPack.c that was causing memory to
get trashed with the integer value 1.

3/22/93 (bug fix) Canvas text didn't print correctly if it contained
an open paren (or other special character) immediately followed by
an octal digit.

3/22/93 (bug fix) Text widgets didn't redisplay properly in cases
where two or more groups of lines both got taller at the same time
(e.g. from tag changes), causing two separate bit copies where the
first bit copy's target area overlapped the source area for
the second bit copy.

4/1/93 (bug fix) Changed canvases to use ISO Latin-1 font encoding
if that's supported by the Postscript interpreter.  Also added workaround
for bug in NeWSprint related to stipple fills.

4/1/93 (bug fixes) Made various changes to focusing and grabs to
eliminate extraneous focus events and generally improve behavior.

4/2/93 (bug fix) Modified tkWm.c not to wait indefinitely for the window
manager to map or reconfigure a window:  this led to deadlock in some
situations, such as creating a new top-level window with a grab held.

4/19/93 (bug fix) Fixed another bug in tkWm.c that caused windows to walk
across the screen in some situations.  Also fixed problem where rapid
posting and unposting of cascaded submenus (or menus?) could cause Tk
to become confused about whether or not a window is mapped (added
TkWmUnmapWindow procedure to make top-level unmaps synchronous).

4/24/93 (feature change) Changed the "after" command to allow times
less than or equal to 0, and to use 0 whenever they occur.

4/26/93 (new feature) Implemented security check for "send" as proposed
by Bennett Todd: incoming sends are now rejected unless (a) xhost-style
access control is enabled and (b) the list of authorized hosts is
empty.  In other words, you have to use xauth to use send.  This feature
can be disabled by setting the TK_NO_SECURITY flag at compile-time.

5/15/93 (improvement) Switched to use Tcl_PrintDouble whenever returning
real values as Tcl results.  This potentially allows higher precision.
Switched to use %.15g whenever printing reals in Postscript files.
However, the change Tcl_PrintDouble causes incompatibilities.  For
now, it's disabled with a macro in tclInt.h that redefines Tcl_PrintDouble.
Tk 4.0 will delete the macro, and you can also delete it now if you
want the better (but incompatible) behavior.

5/19/93 (bug fix) Fixed divide-by-zero problem that could occur in
closeness calculations for canvas oval items.

5/30/93 (bug fix) PROP and CONFIG were accidentally #defined to the same
value in tkBind.c, which could cause incorrect %-substitutions in event
bindings in a few exotic cases.

6/4/93 (improvement) Changed to use GNU autoconfig for configuration.
Makefile format changed, and Tcl is no longer automatically included
in Tk releases.

6/7/93 (bug fix) Fixed off-by-one error in rounding negative coordinates
during redisplay of canvases.

6/9/93 (feature improvement) Modified default bindings for entries to
keep one character visible to the left of the cursor during backspaces.

6/18/93 (feature improvement) Added patchlevel.h, for use in coordinating
future patch releases, and also added tk_patchLevel variable to make the
patch level available in scripts.

6/26/93 (bug fix) Fixed numeric problems in scales that occurred with
very large scale values.

6/26/93 (bug fix) Polygon items in canvases could cause core dumps if
the "coords" widget command was used to add one new coordinate.

6/26/93 (bug fix) Changed canvases to handle large stipple patterns
gracefully (stipples used to jump around during redisplay and lose
coherency).

7/1/93 (syntax change, new feature) Implemented the new packer syntax
as described in the book.  For now the old syntax will continue to be
supported too.  Converting over is straightforward except (a) use
"-anchor" instead of "frame", and (b) padding is different (separate
internal and external padding, plus pad amounts are *on each side*
instead of total).  Also added "pack propagate" command for keeping
the packer from setting the master's requested size.

7/1/93 Changed copyright notices.  The effect is the same as with the
old notices, but the new notices more clearly disclaim liability.

7/7/93 (new feature) Added support for window stacking order.  Windows
will now stack in the order created (most recent on top), plus "raise"
and "lower" commands may be used to restack (Tk_RestackWindow procedure
is available from C level).

7/7/93 (reorganization) Moved main.c to tkMain.c, reorganized it to
call Tcl_AppInit just like tclsh does, and added argv0 variable to contain
application name, and added default Tcl_AppInit procedure for wish.
Also added tkTest.c to hold C code for testing.

7/7/93 (new feature) Added new Tk-specific "exit" command, which cleans
up properly before exiting.  It replaces the Tcl "exit" command, and
can be used in place of "destroy .".

7/9/93 (new features) Added tk_dialog library procedure that creates
dialogs with a bitmap, message, and any number of buttons.  Also changed
default tkerror procedure to use tk_dialog plus offer the user a chance
to see a Tcl stack trace.

-------------------- Release 3.3 Beta 1, 7/9/93 -------------------------

7/12/93 (configuration changes) Eliminated leading blank line in
configure script;  provided separate targets in Makefile for installing
binary and non-binary information; fixed -lnsl and -lsocket handling
in configure; added autoconf support for fd_set type; check for various
typedefs like mode_t and size_t, and provide substitutes if they
don't exist; don't include tkAppInit.o in libtk.a; try to locate the
X includes and library in all of the standard places for various systems.

7/14/93 (new feature) Modified tkMain.c so that it stores the value
of the -display command-line option into the DISPLAY environment
variable, if it is specified.

7/15/93 (feature removal) Removed auto-initialization feature from
Tk_ConfigureWidget, so that you must once again initialize all fields
of a widget record before calling Tk_ConfigureWidget.  This restores
the behavior back to what it was in Tk 3.2.

7/16/93 (bug fix) Modified tkBind.c to ignore the Caps Lock modifier
unless it is explicitly requested in a binding.  Without this fix,
buttons and menus and other things didn't work if the Caps Lock key
was active.

-------------------- Release 3.3 Beta 2, 7/21/93 -------------------------

7/21/93 (new feature) Change "make install" so that it will modify the
#! lines on demo scripts to reflect the place where the wish binary
is installed.

7/23/93 (new feature) Added Tk_MainWindow procedure that returns the
main window associated with a Tcl interpreter.  This is intended for
use by Tcl_AppInit and other initialization procedures.

7/24/93 (configuration improvements) Changed configure script not to
omplain about "fd_set" missing if it's defined in <sys/select.h>.

7/28/93 (bug fix) "Bad Match - parameter mismatch" errors were
sometimes occurring when several top-level windows got created
at the same time, due to wrong choice of sibling when stacking
windows.

8/14/93 (new feature) Added support for tcl_prompt1 and tcl_prompt2
to wish main program:  makes prompts user-settable.

8/19/93 (bug fix) Bindings to event sequences like "aD" never matched
because the Shift key has to be pressed before D.  Modified Tk to
ignore extraneous keypresses if they are for modifier keys.

8/26/93 (configuration changes) Added Tk_Init, modified Tcl_AppInit
procedures to use it and Tcl_Init.  Added support for .wishrc file.

8/28/93 (new feature) The main window is now a legitimate toplevel
widget.

-------------------- Release 3.3 Beta 3, 8/30/93 -------------------------

9/2/93 (bug fix) The packer wasn't always relaying out a master after
changes to some of the configuration options of its slaves.

9/2/93 (bug fix) The binding mechanism made it impossible for patterns
like <Double-ButtonRelease-1> to ever match.

9/2/93 (bug fix) Fixed core dump that occurred for bitmap canvas items
if Postscript is generated but no -bitmap option has been specified.

9/4/93 (enhancement) Slight improvements to menu traversal:  set menu
traversal bindings for menubar window in tk_menuBar, plus trigger
traversal on <Any-Alt-Keypress> instead of <Alt-Keypress>.

9/9/93 (bug fix) Changed tkBind.c so that the Num_Lock key doesn't
prevent events from triggering bindings.

9/9/93 (bug fix) Changed tkOption.c to always fetch RESOURCE_MANAGER
property from root window of screen 0, rather than using default
screen.

9/9/93 (bug fix) Entry widgets weren't allocating quite enough width
for themselves.  Fixed this and changed the size computation to match
what's done for buttons and texts.

9/16/93 (bug fix) Changed tkMain.c not to call exit C procedure directly;
instead always invoke "exit" Tcl command so that application can redefine
the command to do additional cleanup.

-------------------- Release 3.3, 9/29/93 -------------------------

9/30/93 (bug fix) Packer wasn't unmapping slaves when master got deleted.

9/30/93 (bug fix) Binding event sequences such as <Right> were being
misprinted as ASCII characters such as "S".

10/6/93 (bug fix) Canvases weren't unmapping window items when the canvas
got unmapped, which caused problems for window items whose windows weren't
descendants of the canvas (they got left on the screen).

10/7/93 (feature change) NULL proc arguments to Tk_CreateFileHandler used
to have a special undocumented meaning (fd was display);  eliminated this
special interpretation.

10/7/93 (configuration change) Eliminated dependency of tkMain.c on
tkInt.h and tkConfig.h, so that it's easier for people to copy the file
out of the source directory to make modified versions.

10/8/93 (bug fix) 3.0 introduced a bug where the class of the application
wasn't being set properly, so options based on the application class
weren't triggering.  Fixed by adding new argument to Tk_CreateMainWindow.

10/11/93 (bug fix) Fixed bug in tkTextBTree.c where some deletions would
cause core dumps due to halfwayLinePtr not getting set correctly.

10/18/93 (bug fix) Fixed a couple of bugs that made it hard to actually
display N characters in an entry with "-width N" (tended to scroll the
entry so that only N-1 characters were visible at once).

10/22/93 (bug fix) During configuration, XINCLUDE_DIR and XLIBRARY_DIR
weren't overriding xmkmf like they were supposed to.

10/23/93 (new feature) Allow negative scale factors in canvas "scale"
widget command.

10/23/93 (bug fix) Grabs weren't being cleaned up right if the grab
window was deleted, causing core-dumps in some cases.

10/23/93 (bug fix) tk_TextSelectTo wasn't checking to be sure that
the "anchor" mark exists.

10/27/93 (bug fix) Fixed core dump that could occur in a text widget if
the scroll command modifies the text.

11/1/93 (bug fix) Change texts so that the -yscrollcommand option is
invoked at display time, not when the window is re-layed out.  This
eliminated various core dumps that could occur if -yscrollcommand modified
the text.

-------------------- Release 3.4, 11/04/93 -------------------------

Note: there is no 3.5 release.  It was flawed and was thus withdrawn
shortly after it was released.

11/12/93 (bug fix) TkMain.c didn't compile on some systems because of
R_OK in call to "access".  Changed to eliminate call to "access".

-------------------- Release 3.6, 11/26/93 -------------------------

11/10/93 (bug fix) Packer and placer didn't always reposition a window
correctly if it was managed inside a neice or lower descendant (using
"-in" option) and the neice's parent moved.

11/24/93 (bug fix) Fixed time problem in selection (retrievals could
fail if retriever hasn't received any X events since selection was
made, so that time of retrieval appears to be older than time of
selection).  Selection code is now much less picky about times, both
on retrieving and supplying sides.

12/2/93 (new feature) Changed arrow-head drawing code for canvas
lines to draw a 0-width outline in addition to filling the area:
this produces much nicer, more symmetrical displays.

12/2/93 (bug fix) When colors ran out, Tk was invoking "tkerror"
when its state was internally inconsistent, which could cause
core dumps in some situations (e.g. if tkerror used the same color
that caused colors to run out).  Changed notification to occur
as a when-idle handler.

12/3/93 (bug fix) During a global grab, Tk wasn't including PointerMotion
in the list of grabbed events, so pointer motion couldn't be tracked
outside the grabbing application.

12/3/93 (bug fix) Canvases didn't handle smoothed lines correctly
when they only contained two points.

12/3/93 (bug fix) Fixed bug in tkWindow.c where certain kinds of
errors during window creation could cause Destroy events to be generated
for a window that was never completely initialized.

12/13/93 (bug fix) Fixed bug in tkTextDisp.c that resulted in core
dumps at line 1467 under exmh.  The exact situation is that a text
widget was being redisplayed at a time when it had a -yscrollcommand
option but hadn't yet been mapped onto the screen.

12/17/93 (bug fix) Fixed bug in tkWindow.c whereby new top-level windows
with non-default visuals still inherited border pixmap from parent (root),
which could cause visual clash and X error.

12/17/93 (bug fix) Fixed bug in tkTextDisp.c that caused round-off
error in the information passed to scroll commands.

12/18/93 (bug fix) Fixed bug in tkPack.c that caused core dumps in
some situations if a master with siblings packed "-in" it was deleted.

12/18/93 (bug fix) Added "compat" directory to distribution, since it's
referenced by tkConfig.h on some systems.

12/18/93 (performance improvement) Improved performance of appending to
a listbox, so that inserting N items doesn't take N**2 time.

12/20/93 (bug fix) Fixed bug in canvas ovals that caused the fill color
for the oval to stick out past the outline.

1/2/94 (fixed Xlib bug) Added code to reuse X resource identifiers so
that they won't run out in long running applications.  There are three
new library procedures: Tk_FreeXId, Tk_GetPixmap, and Tk_FreePixmap.
Modified all Tk code to use these procedures, so wish applications should
now be able to run forever without running out of identifiers.

1/10/94 (bug fix) tkCursor wasn't freeing pixmaps used to create
cursors, which caused memory leaks in programs that changed cursors
frequently.

1/21/94 (bug fix) Fixed bug in scales that caused them to loop
infinitely drawing tick-marks when -from and -to were the same.

2/2/94 (bug fix) Fixed problem where messages that contained tabs
didn't always compute the correct size, so that text spilled off
the right edge.  The fix adds an extra "tabOrigin" parameter to
the internal procedures TkMeasureChars, TkDisplayChars, and
TkUnderlineChars.

2/4/94 (bug fix) Fixed off-by-one problem in tkBind.c that caused
it to read past the initialized part of dispPtr->modKeyCodes.

2/7/94 (bug fix) Text widgets didn't handle grabs correctly, such
that the "current" character got stuck if a grab occurred while a
mouse button was down.  It would get unstuck until after the
next button press and release.

2/19/94 (bug fix) Fixed prolog.ps (prolog for Postscript printing from
canvases) so that it correctly prints all of the characters in the
ISO Latin-1 character set.

2/19/94 (bug fix) Modified tkBind.c to save and restore the interpreter's
result across the execution of binding scripts.  Otherwise if an event
triggers in the middle of some other script (e.g. a destroy event during
window creation, because there was an error in the creation command),
the intepreter's result gets lost.

2/19/94 (bug fix) Fixed bug in dealing with results of sent command
that could cause them to get lost in some situations.

2/21/94 (bug fix) Don't let user close a dialog window created by
tk_dialog, since this would cause tk_dialog to hang:  force the user
to select one of the dialog's buttons.

2/21/94 (bug fix) Fixed bug in canvas polygons whereby they didn't
correctly handle changes in the number of points (via "coords"
widget command).

2/23/94 (bug fix) Large bitmaps in canvases didn't print correctly
because they overflowed the 64-KB limit on strings in Postscript.
Changed canvas printing to split up large bitmaps into mutliple
smaller ones for printing.

2/25/94 (bug fix) The "." window was being set up with -width
and -height options, which interfered with geometry management (any
configuration change on "." causes the window to change size to
200x200, then change back again).

2/26/94 (bug fix) Fixed several bugs that occurred when a Destroy
event handler for a window deleted the window's parent.

3/3/94 (new features) Changes to binding mechanism:
    - The modifiers for "Alt", "Meta", and "M" are now computed by
      examining the modifier map, rather than being hardwired to
      M2, M1, and M1.
    - When processing events, one script is invoked for each object
      in the list passed to Tk_BindEvent, rather than stopping as
      soon as a script is invoked for some object.  The "break" and
      "continue" commands can be used within a script to abort all
      scripts for the event or the current one.
      *** POTENTIAL INCOMPATIBILITY ***
    - Added "bindtags" command so that new binding groups can be
      defined for widgets and the evaluation order can be changed.
    - When matching events to bindings, extra modifiers are now ignored,
      as if "Any" were specified for every event.  The "Any" modifier
      is still recognized, but it is ignored and is deprecated.
      *** POTENTIAL INCOMPATIBILITY ***
    - In % sequences that print window identifiers (e.g. %a and %S), print
      in hexadecimal rather than decimal, for consistence with "winfo id".
      *** POTENTIAL INCOMPATIBILITY ***
    - The "bind" command no longer supports the event types CirculateRequest,
      ConfigureRequest, MapRequest, or ResizeRequest.  These event types
      are somewhat dangerous, and they never worked anyway.

3/13/94 (bug fix) Fixed numerous problems with the "wm iconwindow" command.
It appears that this command never really worked at all, but it should
work OK now.

3/14/94 (feature changes) Removed several obsolete features:
    - Eliminated "enable" and "disable" widget commands for menus.
      *** POTENTIAL INCOMPATIBILITY ***
    - Eliminated "activate" and "deactivate" widget commands for buttons,
      checkbuttons, radiobuttons, and menubuttons.
      *** POTENTIAL INCOMPATIBILITY ***
    - Removed -geometry option for frames and toplevels:  it causes
      problems when .Xdefaults files contain entries like
      "*geometry: +0+0".  Must use -width and -height instead.
      *** POTENTIAL INCOMPATIBILITY ***
    - Desupported "tkVersion" variable: use "tk_version" instead.
      *** POTENTIAL INCOMPATIBILITY ***

3/16/94 (feature changes) Changes to listboxes:
    - Eliminated -geometry option (it causes problems when .Xdefaults
      files contain entries like "*geometry: +0+0").  Added -width
      and -height options to use instead.
      *** POTENTIAL INCOMPATIBILITY ***

3/21/94 (bug fix) Fixed bug in tkOption.c where the option cache wasn't
properly cleaned up after window deletion;  this could cause the wrong
value from the option database to be used under some conditions.

3/25/94 (new features) Changes to geometry management:
    - Added Tk_MaintainGeometry and Tk_UnmaintainGeometry procedures
      to solve problems with -in windows.  Modified the packer, the
      placer, and canvases to use them.
    - Changed 2nd argument to Tk_ManageGeometry from Tk_GeometryProc *
      to a pointer to a structure with additional information about
      the geometry manager, such as name and procedure to call when
      slaves are stolen.
      *** POTENTIAL INCOMPATIBILITY ***

3/28/94 (new feature) Overhauled event management:
    - Added "cancel" option to the "after" command so that you can
      cancel previously-scheduled commands.
    - Separated X-specific stuff from generic event management.  The
      file tkEvent.c can now be used stand-alone without the rest of Tk.
      See the manual entry for Tk_EventInit for information on which
      procedures are available this way.
    - Added Tk_CreateFileHandler2 procedure, which provides a lower-level
      and more powerful form of file event handler.
    - Fixed bug in Tk_DoOneEvent where an infinite loop could occur if
      the TK_FILE_EVENT and TK_DONT_WAIT flags were set simultaneously
      (there were bugs with several other combinations too;  all should
      be fixed now).

3/28/94 (new feature) Added "fileevent" command, which allows event-
driven I/O in the style of Mark Diekhans' "addinput" command.

4/11/94 (new feature) Better support for colormaps and visuals:
    - Added new -colormap and -visual options to toplevels and frames.
    - Added "winfo visualsavailable" command.
    - Added "wm colormapwindows" command, plus support for WM_COLORMAP_WINDOWS
      to Tk_SetWindowColormap.
    - Added new library procedures Tk_GetVisual, Tk_GetColormap,
      and Tk_FreeColormap.

4/11/94 (bug fix) Fixed core dump that used to occur when specifying
an iconwindow ("wm iconwindow") for a toplevel on a different screen
than the main window.

4/23/94 (new feature) Added support for images, including the following:
    - New "image" command for creating images.
    - Built-in image type: bitmap.
    - New "image" item type in canvases.
    - Labels, buttons, checkbuttons, radiobuttons, menubuttons, and
      menu entries now support a -image option for displaying images.
    - Tk_CreateImageType and Tk_ImageChanged procedures, for defining
      new types of images in C.
    - Tk_GetImage, Tk_FreeImage, Tk_RedrawImage, and Tk_SizeOfImage
      procedures, for using images in widgets.

5/1/94 (new features) Added new procedures Tk_3DVerticalBevel and
Tk_3DHorizontalBevel.

5/11/94 (new features) Major overhaul of text widgets:
    - Implemented embedded windows and "window" widget command.
    - Added new configuration options for tags: -justify, -lmargin1,
      -lmargin2, -rmargin, -offset, -spacing1, -spacing2, and -spacing3.
      See the "Display styles" widget demo for examples.
    - Added new configuration options for texts: -spacing1, -spacing2,
      and -spacing3.
    - Added "tagList" option to "insert" widget command to control
      tags on new text.  Made tagged regions so they aren't sticky on
      either side:  new characters get a tag only if the old chars. on
      both sides had it.
      *** POTENTIAL INCOMPATIBILITY ***
    - Added gravity for marks, and "mark gravity" widget command.
    - Added horizontal scrolling, "xview" widget command, -xscrollcommand
      option.  Changed "scan" widget commands to support horizontal
      scrolling.
      *** POTENTIAL INCOMPATIBILITY ***
    - Added "search" widget command for searching (either exact matches
      or regular expressions).
    - New widget commands: bbox, dlineinfo, and see.
    - Changed implementation of bindings so that Enter and Leave
      events are not generated unless the tag has just become present
      (or just ceased to be present) on the current character.  Also
      changed bindings to process separately for each tag, rather than
      having high-priority tags override low-priority ones.
    - The "end" index now refers to the character after the last newline
      rather than the newline itself.  You can now tag the final newline
      and set a mark after the final newline.
    - Deletions of the "sel" tag and the "insert" and "current" marks
      are now ignored silently, rather than generating errors.  This means
      you can do things like "eval .t tag delete [.t tag names]".

5/19/94 (bug fix) Canvases didn't generate proper Postscript for stippled
text.

5/20/94 (new feature) Added "bell" command to ring the display's bell.

5/20/94 (new feature) Incorporated "square" demonstration widget into
tktest application.

5/20/94 (new features) Changed wish application (tkMain.c):
    - wish no longer processes the -help option.
      *** POTENTIAL INCOMPATIBILITY ***
    - The wish main program is now called Tk_Main;  tkAppInit.c has a
      "main" procedure that calls Tk_Main.  This makes it easier to use
      Tk with C++ programs, which need their own main programs, and it
      also allows an application to prefilter the argument list before
      calling Tk_Main.
      *** POTENTIAL INCOMPATIBILITY ***
    - The application's class is now the same as its name (except the
      first letter is capitalized), instead of "Tk".
      *** POTENTIAL INCOMPATIBILITY ***
    - The -file keyword is no longer required:  the script file name can
      be provided as the first argument without being preceded by "-file",
      as in tclsh.  For backward compatibility the "-file" keyword is
      ignored if it is the first argument, but it is deprecated.

5/26/94 (feature removed) Removed support for "fill" justify mode from
Tk_GetJustify and from the TK_CONFIG_JUSTIFY configuration option.  None
of the built-in widgets ever supported this mode anyway.
*** POTENTIAL INCOMPATIBILITY ***

5/27/94 (feature change) Changed Tk to use Tk_PrintDouble everywhere
that it converts reals to strings.  This means that floating-point
values will be generated in some cases where integer-like values were
generated before.
*** POTENTIAL INCOMPATIBILITY ***

6/1/94 (feature change) Renamed "pack newinfo" command to "pack info".
The old "pack info" command is no longer available.
*** POTENTIAL INCOMPATIBILITY ***

6/20/94 (feature changes) Overhaul of entry widgets:
    - Added "-justify" option.
    - Added "-show" option to make entries easier to use for passwords.
    - Added "cget" widget command.
    - Added "selection range" and "selection present" widget commands.
    - Added "anchor" symbolic index.
    - Changed "-scrollcommand" option to "-xscrollcommand", "view"
      widget command to "xview", for compatibility with other widgets.
      *** POTENTIAL INCOMPATIBILITY ***
    - Changed sel.last to refer to character just *after* last one
      selected, again for compatibility with other widgets.
      *** POTENTIAL INCOMPATIBILITY ***
    - For "delete" widget command, second index now refers to character
      just *after* last one to delete.
      *** POTENTIAL INCOMPATIBILITY ***
    - Overhauled bindings to be more Motif-compatible and to include
      common Emacs bindings for editing.
    - Changed -width option:  if specified as 0, widget sizes to fit
      its current text.

6/11/94 (new features) Improved Motif compatibility:
    - Added "-highlightwidth" and "-highlightcolor" options to all widgets.

6/27/94 (bug fix) Postscript generation for text items in canvases was
not justifying the text properly when a -width was specified that was
longer than the longest line.

6/27/94 (bug fix) "winfo exists" used to report a window as existing
if it was in the process of being destroyed (i.e., a destroy handler
is in the middle of execution).  Changed to report it as non-existent
under these conditions.
*** POTENTIAL INCOMPATIBILITY ***

7/11/94 (bug fix) Selections claimed via "selection own" weren't always
being cleared properly when the selection was claimed away.  Also fixed
bug where Tk wasn't properly claiming the selection, if there haven't
been any recent X events at the time of the claim.

7/13/94 (feature changes) Overhaul of scrollbar widgets:
    - New widget commands: "activate", "cget", "fraction", and "identify".
    - New options: -activebackground, -activerelief, -highlightcolor,
      -jump, -highlightthickness, and -troughcolor.  What used to be
      -background is now -troughcolor, -foreground is now -background,
      and -activeforeground is now -activebackground.
      *** POTENTIAL INCOMPATIBILITY ***
    - Added new syntax for "set" command, "get" result, and generated
      commands.  Changed other widgets to use the new syntax.
    - Moved the bindings out of C and into Tcl scripts, using the new
      options and widget commands.  Added support for all Motif
      bindings, plus jump scrolling and cancelling of slider drags.

7/16/94 (bug fix) Canvases assumed that the Leave event for one item
didn't modify or delete the next current item;  this could cause core
dumps under some conditions.

7/23/94 (feature change) Modified Tk_BackgroundError so that tkerror
is invoked as an idle handler.  If tkerror generates a break exception
then all other queued reports are aborted.

8/14/94 (bug fix) "cursorOffTime" and "cursorOnTime" were confused in
canvases, resulting in the same time being used for both.

8/16/94 (bug fix) "tkwait variable" command didn't detect errors in
variable name, such as trying to wait for an entire array.

9/2/94 (new features) Overhaul of scale widgets:
    - Floating-point values are supported now, following Paul Mackerras'
      "fscale" widget.  Added "-resolution" and "-digits" options.
    - Added "-variable" option to link scale to variable, following
      Henning Schulzrinne's implementation.
    - Added focus highlight (-highlightthickness and -highlightcolor
      options).
    - Added new widget commands "cget",  "coords", "identify", plus
      improved "get";  removed wired-in bindings, added complete set
      of Motif bindings via Tcl scripts.
    - Changed -sliderforeground option to -background, -background to
      -troughColor, -activeforeground to -activebackground.
      *** POTENTIAL INCOMPATIBILITY ***
    - Moved value label from below horizontal scales to above the scale,
      for Motif compliance.

9/9/94 (bug fix) Fixed bug in tkWm.c that caused long delays in "raise"
command under some conditions (window already at the top of the stack).

9/10/94 (new features) Overhaul of label/button/checkbutton/radiobutton
widgets:
    - Added focus highlight (-highlightthickness and -highlightcolor
      options).
    - Added new widget command "cget".
    - Changed -selector option to -selectcolor, and changed its meaning
      too: empty no longer means don't draw the indicator;  it means
      don't use a special color when selected.
      *** POTENTIAL INCOMPATIBILITY ***
    - Added -indicatoron (controls whether indicator is displayed) and
      -selectimage (gives special image to display when selected) options.
    - Modified bindings to be more Motif-like, added binding for space
      key.
    - Changed padding defaults to give widgets correct Motif appearance
      by default.  Also, changed to ignore padding options when displaying
      an image or bitmap.
      *** POTENTIAL INCOMPATIBILITY ***
    - Can now display text on multiple lines:  newlines cause line breaks,
      and word wrapping can be requested with -wraplength option.  Also
      added -justify and -underline options.
    - The -value option for radiobuttons can now have an empty string as
      its value;  it no longer defaults to the name of the widget.
      *** POTENTIAL INCOMPATIBILITY ***

9/13/94 (new features) Modified both canvases and messages to support
-highlightthickness and -highlightcolor options plus "cget" widget
command.

9/19/94 (new features) Added Tk_UnsetGrid procedure, modified widgets
to use it.  Also changed Tk_SetGrid so that at most one window per
toplevel can have gridding enabled.

9/23/94 (new features) Major overhaul of listbox widgets:
    - Added focus highlight (-highlightthickness and -highlightcolor
      options).
    - Added new widget command "cget".
    - Revised selection commands to support single selections as well
      as multiple disjoint selections;  syntax of "selection" widget
      command has changed to support this.  Added new option -selectmode
      for specifying which mode to use.  Default is single selection;
      tk_listboxSingleSelect procedure no longer exists.  Selections
      now return as items separated by newlines instead of a list whose
      elements are the items.
      *** POTENTIAL INCOMPATIBILITY ***
    - Extended "get" widget command to allow many items to be retrieved
      at once.
    - Added "bbox" widget command for finding position of an element on
      screen.
    - Added "activate" command to mark element with traversal focus.
    - Extended index mechanism to support new types of indices:
      "active", "anchor", "@x,y".
    - Added "see" widget command.
    - Revised bindings to include all Motif features except for AddMode.
    - If -width or -height option is <= 0, the widget requests a size just
      large enough to hold all of its text.

10/6/94 (new features) Overhaul of menubuttons:
    - Added focus highlight (-highlightthickness and -highlightcolor
      options).
    - Added new widget command "cget".
    - Added -indicatoron option to display option menu indicator.
    - The -menu option must be a child of the menubutton.
      *** POTENTIAL INCOMPATIBILITY ***

10/6/94 (new features) Overhaul of menu widgets:
    - Added new widget commands "cget" and "entrycget".
    - Changed the implementation of tear-off menus to be more
      Motif-like;  added -tearoff option for specifying whether
      tearoff entry is displayed.
    - Changed interpretation of "@y" index:  it now returns the
      closest entry, rather than "none" if y is outside the menu's
      range.
      *** POTENTIAL INCOMPATIBILITY ***
    - The -menu option for a cascade entry must now be a child of
      the menu.
      *** POTENTIAL INCOMPATIBILITY ***
    - Added "type" widget command, so that you can query the type of
      an entry.
    - Added -foreground, -activeforeground, -selectcolor, -indicatoron,
      -image, and -selectimage options to menu entries.
    - Changed "selector" menu option to "selectColor" for Motif compliance.
      *** POTENTIAL INCOMPATIBILITY ***
    - Added -relief option for menus, just for consistency with other
      widgets (it was implicitly "raised" before).

10/6/94 (feature change) Completely overhauled the bindings for menus
and menubuttons.  They now fit better with other Tk 4.0 facilities,
such as the new binding mechanism, and they provide better Motif
compliance (e.g. keyboard traversal of submenus).  Also, the bindings
now support option menus, popup menus, and proper Motif tear-off
menus.

10/6/94 (obsolete features) The procedures tk_menuBar and
tk_bindForTraversal are no longer needed in Tk 4.0.  They still exist
for compability, but they do nothing.

10/6/94 (new procedures) Added "tk_popup" procedure for posting a
popup menu, and "tk_optionMenu" for creating an option menubutton
and its associated menu.

10/6/94 (change in name) The variable "tk_priv" has been renamed
to "tkPriv" to reflect that fact that it is private to Tk now.
This shouldn't cause any problems, since no-one except Tk should
have been using it before anyway (right?).

10/6/94 (bug fix) Fixed bug in texts where sometimes the text would
stop tracking mouse motion (the "current" item wouldn't get updated)
because the text widget missed a ButtonRelease event.

10/20/94 (new features) Overhauled selection code to support multiple
selections (primary, secondary, etc.) and multiple displays:
    - Changed "selection" command to support new options such as
      "-displayof" and "-selection".  Old command formats are still
      supported for compatibility, but they are no longer documented
      and are deprecated.
    - Changed procedures Tk_GetSelection, Tk_CreateSelHandler, and
      Tk_ClearSelection to take additional "selection" argument.
      *** POTENTIAL INCOMPATIBILITY ***
    - Selection targets APPLICATION and WINDOW_NAME have been replaced
      by TK_APPLICATION and TK_WINDOW.
      *** POTENTIAL INCOMPATIBILITY ***

10/20/94 (new features) Added support for clipboard:
    - New "clipboard" command.
    - C procedures Tk_ClipboardClear and Tk_ClipboardAppend.
    - Bindings for "cut", "paste", and "copy" for text and entry widgets,
      plus "copy" binding for listboxes.

10/24/94 (bug fix) Button widgets weren't checking for errors when
setting the values of associated variables.

11/3/94 (bug fix) Fixed bug whereby Tk would hang if "exit" was invoked
from inside a <Destroy> binding.

11/15/94 (new features) Overhaul of focus mechanism:
    - Added support for multiple displays:  separate focus windows are
      kept for each display.
    - Added support for keyboard traversal.
    - Changed focus model so Tk keeps track of a focus window for each
      top-level window and automatically sets the focus on Enter to the
      top-level.  Tk no longer synthesizes FocusIn and FocusOut events,
      but just uses the standard X mechanisms.  There is no "default"
      focus window anymore; the focus reverts to top-levels by default.
      *** POTENTIAL INCOMPATIBILITY ***
    - Changed focus command:  eliminated "focus default" and "focus none",
      added "-displayof" and "-lastfor" options.  An empty string is now
      used to signify "no focus" instead of "none".
      *** POTENTIAL INCOMPATIBILITY ***
    - Added library procedures tk_focusNext, tk_focusPrev, and
      tk_focusFollowsMouse.
    - Removed obsolete Tk_CreateFocusHandler:  must use FocusIn and
      FocusOut events now.
      *** POTENTIAL INCOMPATIBILITY ***

11/23/94 (new features) Overhaul of "send" command:
    - Added support for multiple displays: -displayof option to "send".
    - Added asynchronous sends: -async option to "send".
    - Eliminated fixed timeouts on sends:  as long as the target
      application appears to exist, the send will wait for it.
    - Stale entries get removed from the application registry now,
      so "winfo interps" should never return non-existent applications.
    - Can change the name of an application with "tk appname" command.
      This is also the preferred way of querying the application name
      now.
    - The errorCode and errorInfo variables are now propagated back to
      the sender now, so a full stack trace is available.
    - Tk checks display security on each send now, instead of just during
      initialization, so changes in the security status are seen immediately
      by all applications.
    - The above changes required changes to the data formats used for
      communication between source and target applications, so Tk 4.0
      applications cannot send to, or be sent from, Tk 3.6 applications.
      *** POTENTIAL INCOMPATIBILITY ***
    - The procedure Tk_RegisterInterp has been replaced with Tk_SetAppName.
      *** POTENTIAL INCOMPATIBILITY ***

12/6/94 (cleanup) Eliminated "interp" argument to Tk_GetColorByValue,
since it is no longer needed.
*** POTENTIAL INCOMPATIBILITY ***

12/7/94 (feature change) Changed the "wm" command so that top-level
windows are now resizable by default.  You can no longer specify
empty arguments to "wm maxsize" and "wm minsize".
*** POTENTIAL INCOMPATIBILITY ***

12/8/94 (new feature) Added new "photo" image type using code provided
by Paul Mackerras:  currently supports only PPM "P6" format images.

12/14/94 (new features) Canvas modifications:
    - Modified the interfaces between generic canvas code and the item
      types so that it's easy for people to write new item types outside
      of Tk.
    - Added support for transparent bitmap items:  just specify an
      empty string as the background color.
    - Changed the "xview" and "yview" commands for canvases to use the
      new scrolling syntax.
    - Eliminated -scrollincrement option.
      *** POTENTIAL INCOMPATIBILITY ***

12/14/94 (bug fix) Fixed bug where the dimensions of canvas arrowheads
scaled during a "scale" widget command, but the scaling was only
temporary and got lost on the next re-configure of the item.  The
correct behavior is for the arrowheads not to scale.

-------------------- Release 4.0b1, 12/23/94 -------------------------

12/26/94 (bug fix) Removed obsolete demos from Makefile (color, dialog,
size), fixed "install" target.

1/3/95 (bug fix) Fixed all procedure calls to explicitly cast arguments:
implicit conversions from prototypes don't work when compiling under
non-ANSI compilers.  Tk is now clean under gcc -Wconversion.

1/4/95 (bug fix) Used "screenX" without ever setting it in DisplayText
in tkCanvText.c:  caused tabs in canvas text items to get messed up.

1/4/95 (bug fix) Canvases forgot to register the built-in types if
Tk_CreateItemType was called before a canvas widget was created.

1/4/95 (bug fixes) Fixed glitches in various text bindings:
    - Up used to do nothing if the cursor was at 2.0.
    - Right used to make the cursor invisible if it was just before
      the final newline of the text.
    - Control-t didn't conform to Emacs;  made it conform to GNU Emacs.
    - Deleted Control-x binding, since it doesn't conform to anything and
      is confusing for Emacs users.

1/4/95 (bug fixes) Changed Control-t for entries just as for texts (see
above) an deleted Control-x for entries (see above).

1/4/95 (bug fix) The packer didn't map slaves unless the master was mapped;
this could cause slaves to get "lost" so that they weren't mapped until the
master resized.

1/5/95 (bug fix) Scrollbars weren't executing the proper code the first time
the mouse entered the widget;  this caused problems if tk_strictMotif was
set.

1/6/95 (bug fix) Fixed label/button/checkbutton/radiobutton/menubutton
widgets to allow arbitrary screen distances when specifying -width and
-height for an image or bitmap (the manual pages already documented this
but the code didn't implement it).

1/6/95 (new feature) Added very primitive support for input methods,
as suggested by Martin Forssen.  This should be enough for European
character sets (Compose key) but it isn't near enough for Asian
character sets.

1/8/95 (bug fix) Fixed problem in canvas "xview" and "yview" commands
where divide-by-zero errors could sometimes occur.

1/8/95 (bug fix) New event handler didn't properly handle files for
which both TK_READABLE and TK_WRITABLE were specified.

1/11/95 (bug fix) Fixed bug with text selections:  was returning count
too high for data, causing bogus garbage to appear when selection was
copied.

-------------------- Release 4.0b2, 1/12/95 -------------------------

1/27/95 (feature removal) Removed %D substitution from binding scripts:
wasn't portable, shouldn't be used anyway.
*** POTENTIAL INCOMPATIBILITY ***

1/27/95 (new features) Added -displayof options to the commands
"winfo atom", "winfo atomname", "winfo containing", "winfo interps",
and "winfo pathname".

1/27/95 (new feature) Added "idle" option to "after" command to run
scripts as idle handlers.

1/28/95 (new feature) Modified placer to make -x and -relx additive
if you specify both.  Same for -y and -rely, -width and -relwidth,
and -height and -relheight.  This makes it easy to make request such
as "make .a 2 pixels larger than .b".
*** POTENTIAL INCOMPATIBILITY ***

1/28/95 (new feature) Improved auto-grab mechanism in canvases (which
prevents current item from changing while a button is down):  changed
to report Enter and Leave events for the current item while a button
is down.  However, as before, no Enter events are reported for other
items until the button goes up.

1/28/95 (new feature) Bitmap images are now transparent if the -background
is specified as an empty string (-maskdata and -maskfile are ignored in
this case).  This is also the default.

1/28/95 (bug fix) Tk didn't support manufacturer- or site-specific keysyms
such as SunAudioMute.  Modified tkBind.c so that it uses XStringToKeysym
in addition to its own hash table, so that all keysyms are now available.

1/30/95 (feature change) Modified "clipboard append" so that it reclaims
the clipboard selection if it had been previously lost, rather than just
generating an error.  This handles certain race conditions more cleanly,
and also allows the use of programs like "xclipboard".

1/30/95 (new feature) Added -xscrollincrement and -yscrollincrement
options to canvases.

1/31/95 (bug fix) Geometry management was broken if a particular geometry
manager claimed a slave away from itself.

1/31/95 (bug fix) Fixed bug in tkVisual.c where a visual with fewer bits
than requested was being selected in preference to one with just the right
number of bits.

1/31/95 (bug fix) Texts weren't redisplaying the padding region properly
after changes in -padx or -pady.

1/31/95 (new features) More text improvements:
    - Extended "insert" widget command for texts to allow multiple
      text-tagList pairs in the same command.
    - Added -nocase option to "search" widget command.
    - Added -overstrike option to tags.
    - Added tab stops, via -tabs option for widget and for tags.

2/10/95 (bug fix) Modified all widgets to allow renaming of widget
commands.  Deleting a widget command will delete the widget.

2/11/95 (new feature) Added -highlightbackground option to all widgets.

2/14/95 (new feature) Added "insert" widget command for menus.

2/15/95 (new feature) Modified text display code (for all widgets) to
display well-known control characters like newline and backspace as
\n or \b instead of \xa.

2/15/95 (bug fix) Modified bitmap and photo image managers to delete
the image command when the image is deleted.  Also modified them to
allow renaming of the image command, and to delete the image if the
image command is deleted.

2/15/95 (bug fix) Fixed text widgets to allow horizontal scrolling
even if wrapping was enabled, if a line isn't entirely visible due to
a large character or embedded window.

2/16/95 (feature change) Added "postcascade" widget command to menus,
changed "invoke" and "activate" not to post or unpost submenus.  Also
fixed bug in redisplay that tended to leave bits of garbage on menu
when submenu unposted.
*** POTENTIAL INCOMPATIBILITY ***

2/16/95 (feature removal) Removed "snap back" behavior (slider
snaps back to old position if you move the mouse outside the widet
before releasing the button) from scrollbars and scales.

2/16/95 (bug fix) The last line of a listbox wasn't being displayed if
it was only partially visible.

2/16/95 (new features) Added support for "-resolution 0" (no rounding
of values) to scale widgets, plus smarter computation of how many digits
to display.

2/17/95 (bug fix) Fixed bug in text bindings for things like Shift-Left:
didn't properly set the anchor position.

2/20/95 (bug fix) Changed management of COLORMAP_WINDOWS property to
add the toplevel implicitly to the end of the list if it wasn't already
on the list somewhere.  Without this, some window managers implicitly
put it at the front of the list, so that colormaps in internal windows
are never used.

2/20/95 (bug fix) Changed to use separate command procedures for
button, checkbutton, label, and radiobutton commands.  This allows the
class commands to be renamed without breaking their behavior.

2/20/95 (removed feature) The "bind" command no longer supports
"Keymap" events;  they never worked anyway.

2/20/95 (bug fix) The text "search" widget command looped infinitely
when searching an empty text.

2/20/95 (bug fix) Canvases weren't redrawing their borders after
configuration changes.

2/20/95 (upgrade) Changed to use autoconf version 2.2.

2/21/95 (bug fix) Fixed several bug fixes in menu bindings that occur
when menus have no entries.

2/21/95 (bug fix) Fixed bug in geometry management that caused windows
packed -in siblings to not always be mapped and unmapped properly
(particularly when the toplevel got unmapped and mapped).

2/22/95 (bug fix) Fixed resource leak problem in tkTextDisp.c that
caused embedded windows not to be unmapped when off-screen.

2/23/95 (bug fix) "After cancel" dumped core when the script for an
after event cancelled itself.

2/24/95 (bug fix) Text and entry widgets weren't properly ignoring
Alt-, Control-, and Meta- keystrokes, so a widget-specific binding
for one of these resulted in the character also being inserted.

2/24/95 (bug fix) Several widgets accidentally performed unsigned
division on negative numbers, thereby losing the sign bit.  This
mostly affected the display of images and bitmaps in buttons,
menubuttons, and messages.

2/24/95 (feature reversal) Restored old behavior of %A so that it
returns non-printing characters as well as printing ones now.
*** POTENTIAL INCOMPATIBILITY with Tk 4.0b2, but not with Tk 3.6 ***

2/24/95 (bug fix) Duplicate "leave" events could occur for canvas
items under some conditions, due to recursive calls to PickCurrentItem.
Added code to detect and skip the nested calls.

2/24/95 (bug fix) Fixed bug where an error could occur during the first
keystroke in an application if its binding invoked "break".

2/25/95 (new feature) Modified syntax of "search" widget command for
texts.  The -nowrap switch and the "variable" final argument are no
longer supported.  Instead, there is a -count switch to replace
the final argument;  if the final argument is specified, it is now
a stopping index for the search.  The features of -nowrap can be
achieved now with the stopping index.
*** POTENTIAL INCOMPATIBILITY with Tk 4.0b2, but not with Tk 3.6 ***

2/27/95 (bug fix) Fixed problem that appears to prevent keyboard
input for working under IRIX:  tkBind.c was ignoring XmbLookupString
calls that returned a status of XLookupBoth.

2/27/95 (new feature) Added Tk_GetItemTypes procedure to return
information about available canvas item types.

2/27/95 (feature change) Changed Makefile to always use install-sh
for installations:  there's just too much variation among "install"
system programs, which makes installation flakey.

2/27/95 (bug fix) Fixed bug in tkSend.c that caused core dumps if
the app's main window was destroyed by a destroy handler on a
child.

3/5/95 (feature change) Change separator character used in "bind +..."
bindings from semi-colon to newline (permits bindings that are
comments, for what that's worth).

3/7/95 (bug fix/feature change) Overhauled focus code, both in C
and in Tcl:
    - Tk won't move the X focus in response to the "focus" command
      unless either the application already has the focus or the
      -force switch is specified.
    - Tk no longer sets the X focus to anything other than top-levels;
      it synthesizes events for FocusIn and FocusOut to children.
    - A window no longer has to be viewable when focussed to;  Tk will
      set the X focus later, when the window becomes viewable.
    - Added -takefocus option to all widgets.
    - Rewrote tk_focusPrev and tk_focusNext to use the -takefocus option.
      These procedures no longer set the focus;  they just return the
      next window in focus order.
      *** POTENTIAL INCOMPATIBILITY with Tk 4.0b2, but not with Tk 3.6 ***
    - Eliminated tk_focusContinue.
      *** POTENTIAL INCOMPATIBILITY with Tk 4.0b2, but not with Tk 3.6 ***

3/8/95 (new feature, bug fix) Added support for tk_strictMotif variable
in C:  Tk_StrictMotif library procedure.  Modified buttons, menubuttons,
menus to use it.  This fixes the problem with menus not supporting
tk_strictMotif properly in Tk4.0b1 and b2.

3/16/95 (feature overhaul) Overhauled color management:
    - Changed Tk so it never denies a color request because a colormap
      filled up.  Instead, it allocates the closest available color.
    - Eliminated "color model" mechanism.  The "tk colormodel" command
      is gone, as are the procedures Tk_GetColorModel and Tk_SetColorModel.
      *** POTENTIAL INCOMPATIBILITY ***
    - Changed 3D border implementation to allocate colors for shadows
      lazily, so they're never allocated if they're never used.  Also
      added new feature whereby stippling is used for borders when
      the colormap has run out of entries.  Changed arguments to many
      of Tk_3D C procedures to take a Tk_Window as argument instead of
      a (Display *).  This is needed to do lazy color allocation.
      *** POTENTIAL INCOMPATIBILITY ***
    - Eliminated colormap argument to Tk_GetColor, Tk_GetColorByValue,
      and Tk_Get3DBorder.
      *** POTENTIAL INCOMPATIBILITY ***

3/16/95 (feature change) Event bindings created from Tcl will now ignore
Enter, Leave, FocusIn, and FocusOut events with detail NotifyInferior.
This is done in anticipation of mega-widgets, so that the user of a
mega-widget can create Enter/Leave bindings on the mega-widget without
seeing spurious events as the mouse moves among the windows in the
mega-widget.
*** POTENTIAL INCOMPATIBILITY ***

3/17/95 (feature change) Changed C interfaces throughout Tk to use ints
instead of unsigneds:  the unsigneds turn out to cause subtle problems
with arithmetic in some places, and using ints everywhere is just
simpler.
*** POTENTIAL INCOMPATIBILITY ***

3/23/95 (bug fix) Selections longer than 4000 bytes were being
truncated to 4000 bytes.

-------------------- Release 4.0b3, 3/24/95 -------------------------

3/25/95 (bug fix) Changed "install" to "./install" in Makefile so that
"make install" will work even when "." isn't in the search path.

3/25/95 (bug fix) Modified Tk's selection mechanism to prevent core
dumps in other applications during retrievals of large selections
(this is actually a bug in the other apps, but I've patched Tk to
keep it from getting triggered).

3/25/95 (bug fix) Fixed bug where X window for "." wasn't being
deleted.

3/27/95 (bug fix) Fixed many bugs associated with having more than
one application in a single process.

3/28/95 (bug fix) The "search" widget command for texts didn't
return the correct index and count if there were embedded widgets
on the same line as the returned range but before the end of
the range.

3/28/95 (bug fix) Changed pasting via button 2 in text and entries
so that it inserts at the pointer location, not the location of
the insertion cursor.

3/28/95 (bug fix) Fixed several bugs related to <Destroy> bindings
that delete ancestors in the window hierarchy.  Also eliminated
extraneous calls to XDestroyWindow, which speeds up window deletion
by about 3x.

3/28/95 (bug fix) Several widgets (buttons, menubuttons, menus) didn't
properly handle image deletions that occurred while the widget was
being deleted (caused core dumps).

3/29/95 (bug fix) When retrieving long selections from text widgets,
parts of lines were getting duplicated in the selection information.

4/1/95 (bug fix) Fixed bug that caused infinite loop in horizontal
scales with 0 range.

4/1/95 (bug fix) Fixed problem with -command option for scrollbars and
-takefocus option that caused commands to be evaluated in the wrong
context.

4/1/95 (bug fix) Fixed problem with option database that caused it to
sometimes use the wrong option (wasn't flushing the database properly
after a change in a window's class).

4/1/95 (bug fix) If a line in a text widget just barely fit in the window,
Tk was allocating a second screen line just for the newline character.

4/1/95 (new feature) When backspacing in an entry widget, when you reach
the left edge of the widget, the insertion cursor gets recentered.

4/1/95 (new features) Added "winfo pointerx" and "winfo pointery" commands
to fetch the current pointer position.

4/6/95 (bug fix) If the last line of a text widget was only partially
visible, it was counted as visible for purposes of the scrollbar.  Now
it is treated as if it were off-screen for scrolling purposes.

4/6/95 (new feature) Modified "bell" command to reset screen saver as well.

4/6/95 (feature change) Modified menu scanning (where menus pull down
as you drag across their menubuttons) so it only works among menus
in the same toplevel;  it used to work for any menubuttons in the
application.

4/6/95 (bug fix) Canvas text items weren't allowing real numbers in
"@x,y" notation for specifying indices.

4/7/95 (bug fix) Menus didn't display correctly when -activeborderwidth
was large.

4/7/95 (bug fix) Changed "clipboard append" command to support -- option
and to always treat the last argument as data, even if it starts with
"-".

4/17/95 (new feature) Added -wrap option to text tags.

4/18/95 (bug fix) Listboxes and texts weren't updating their grid information
when -width or -height changed.

4/18/95 (bug fix) "Down" didn't work right in text widgets if the last
line was only partially visible in the window.

4/19/95 (bug fix) Listboxes didn't handle partially visible last lines
right:  couldn't scroll it into full visibility, for example.

4/20/95 (bug fix) If a toplevel was positioned with a command like
"wm geometry . -0-0", the window didn't reposition itself to maintain
that geometry after a size change.

4/21/95 (feature change) Changed order of binding tags so widget bindings
fire before class bindings.  New order is: widget, class, toplevel, all.
*** POTENTIAL INCOMPATIBILITY with Tk 4.0b3, but not with Tk 3.6 ***

4/23/95 (new feature) Added "winfo colormapfull" command.

4/23/95 (new feature) Buttons and radiobuttons and checkbuttons now
treat Return the same as Space, unless tk_strictMotif is set.

4/23/95 (bug fix) Modified menu tear-off procedure to duplicate the
binding tags and bindings of the original in the copy.

4/25/95 (bug fix and feature change) Modified mechanism for choosing
"best" visual to fix a bug where depth wasn't really getting highest
priority in all situations.

4/28/95 (bug fix) Failed text searches starting at "end" could result
in an infinite loop in Tk.

4/30/95 (new feature) Added "wm resizable" command to enable and
disable interactive resizing.

4/30/95 (new feature) Added "window names" widget command to texts:
returns a list of all embedded windows.

5/2/95 (feature change) Changed text searches so that forward searches
start at the given index, rather than the character just after the
given index.
*** POTENTIAL INCOMPATIBILITY with Tk 4.0b3, but not with Tk 3.6 ***

5/4/95 (bug fix) Default bit gravity for windows was wrong (it was
ForgetGravity) causing unnecessary flashing when windows were resized.

5/4/95 (feature change) Modified Tk_DoOneEvent so that it doesn't
sleep if there's nothing that will wake it up again (e.g. no file
or timer handlers).  Returns 0 immediately.

5/5/95 (configuration change) Changed to use BSDgettimeofday instead
of gettimeofday on systems like IRIX where BSDgettimeofday is
available.  This avoids compilation problems due to the different
interface to gettimeofday provided by IRIX.

5/5/95 (feature change) Changed binding mechanism so that all bindings
are created immediately at initialization time, rather than waiting
until the first FocusIn or Enter event for a class.

5/6/95 (feature change) Changed default text for labels, buttons,
checkbuttons, radiobuttons, menubuttons, and messages from " " to
"".

5/6/95 (bug fix) If the application was destroyed in the middle of
an "update" command, Tk would dump core.

5/6/95 (bug fix) Changed manual entries to use the standard .TH
macro instead of a custom .HS macro;  the .HS macro confuses index
generators like makewhatis.

5/6/95 (bug fix) Change "wm iconwindow" command to disable button
presses for the icon window.  This is needed so that the window
manager can get those events (X only allows button presses to go
to one client for a given window).

5/9/95 (new feature) When specifying visuals, can now use "best"
with a depth, e.g. "-visual {best 8}" to get the best 8-bit visual.

5/18/95 (bug fix) Fixed bug with -spacing* options for text widget:
screen distances weren't allowed, only integers.

5/20/95 (bug fix) Eliminated memory leaks in tkTextDisp.c and elsewhere.

5/22/95 (color change) Changed the Tk color palette to a gray scheme.
Also added a library procedure tk_setPalette that makes it easy to
change colors on the fly, and a procedure tk_bisque that restores the
previous light brown scheme.

5/28/95 (bug fix) Modified canvases so that the -width and -height
options refer to the space inside the borders, not the total widget
space.  Also changed "xview" and "yview" commands and scroll-increment
rounding to use the pixel just inside the borders, rather than (0,0).

5/28/95 (bug fix) Several widgets (e.g. entries, buttons, and menus)
didn't properly handle unsets of variables they were tracing, if the
variables were reference through upvars in procedures.

6/4/95 (bug fix) The placer wasn't rounding window widths right when
both -relx and -relwidth were specified (or -rely and -relheight) so
that rounding errors accumulated.

6/4/95 (feature improvement) Change parsing of text indices to handle
weird mark and tag names better (e.g. any string ending with ".first"
will now be parsed as a tag name, even if it contains embedded spaces,
etc.).

6/4/95 (feature change) If a font defines glyphs for control characters,
they are now displayed, instead of translating the character to a
backslash sequence (however, tabs and newlines are still treated
specially;  glyphs are not displayed for these characters).

6/4/95 (bug fix) Modify the implementation of "raise" and "lower" for
toplevels so that it now works under olwm and olvwm.  It didn't use to
work, and the problem is really in the window manager, but Tk now
patches around it.  However, only "total" raises and lowers work:
raising and lowering relative to a sibling still don't work under
olvwm and olwm.

6/4/95 (feature change) Modified tab code in texts so that a tab always
occupies at least as much space as a space character.

6/4/95 (bug fix) The "%t" substitution wasn't being made properly in
Enter and Leave event bindings.

6/7/95 (new feature) Added support for GIF images.  Unfortunately it's
a bit fragile:  certain kinds of badly formed images can cause core
dumps;  I don't know enough about the GIF reader (taken from giftoppm)
to figure this out.

6/7/95 (bug fix and feature change) Fixed PPM image reader to be more
flexible about header formats, and added support for PGM images.

6/7/95 (feature change) Added -outlinestipple option to canvas arc
items, changed "-style arc" to use -outline as the color instead of
-fill (the old approach was pretty quirky).
*** POTENTIAL INCOMPATIBILITY ***

6/8/95 (feature change) Modified interface to Tk_Main to pass in the
address of the application-specific initialization procedure.
Tcl_AppInit is no longer hardwired into Tk_Main.  This is needed
in order to make Tcl a shared library.

6/8/95 (feature change) Modified Makefile so that the installed versions
of wish and libtk.a have version number in them (e.g. wish4.0 and
libtk4.0.a) and the library directory name also has an embedded version
number (e.g., /usr/local/lib/tk4.0).  This should make it easier for
Tk 4.0 to coexist with earlier versions.

6/9/95 (new feature) Added -outline and -width options to canvas polygon
items.

6/9/95 (feature changed) Renamed -decimate in photo widget to -subsample
(decimate wasn't technically correct).
*** POTENTIAL INCOMPATIBILITY with Tk 4.0b3, but not with Tk 3.6 ***

-------------------- Release 4.0b4, 6/16/95 -------------------------

6/19/95 (bug fix) Colors weren't being rounded correctly in canvas
Postscript generation: caused "white" to appear slightly gray when
the display of the canvas used only 8 bits per color.

6/20/95 (bug fix) "bbox" widget command for texts didn't return
proper width for tabs.

6/20/95 (bug fix) Scrollbars didn't always work right for texts:
couldn't scroll all the way to the bottom of the text in a single
drag of the slider.

6/20/95 (new feature) Added "delta" widget command for scrollbars
(needed for above bug fix).

6/23/95 (bug fix) Listboxes weren't properly redisplaying their
borders when the were configured to a smaller size.

6/23/95 (new feature) Added "winfo server" command.

6/23/95 (bug fix) If a menu was posted, couldn't switch to another
menu with an Alt- key.

6/24/95 (new feature) Added "winfo pointerxy" command.

6/25/95 (bug fix) Tk_ParseArgv referenced beyond the end of 0-length
option names.

6/25/95 (bug fix) Fixed problem in tkOption.c where "cachedWindow"
could get garbage in it if the main window's class was changed by
calling Tk_SetClass.

6/25/95 (bug fix) Fixed two bugs in menus, one where errors in
variable traces weren't propagated correctly and one where "invoke"
was invoked at the wrong stack level, with the result that variable
traces didn't have access to the right variables.

6/27/95 (bug fix) tk3d.c wasn't using all the right information
when deciding whether or not to stipple borders, so it stippled
borders even on 16-bit true-color displays.

6/28/95 (bug fix) Page up and down operations in texts could cause
insertion cursor to drift to the right.  Changed tkTextScrollPages
to use upper-left corner of current character, rather than center
of character.

6/28/95 (bug fix) Changed text widget so that you can't put the
insertion cursor after the last newline in the text.

6/28/95 (bug fix) Bitmap images didn't allow ~'s in file names.

6/28/95 (bug fix) Fixed problem that could cause core dumps in the
text widget when dealing with embedded windows (there were problems
if the act of redisplaying caused the window layout to change, which
can happen with embedded windows).

6/28/95 (bug fix) Texts didn't handle indices with double negatives,
such as ".t mark set insert {insert + -20 chars}".

6/28/95 (bug fix) Fixed problem where focus didn't always revert to
its prior window after a dialog box was dismissed.

6/28/95 (bug fix) Fixed problem with "search" widget command returning
incorrect length on some backwards regexp searches.

6/28/95 (bug fix) Successive "wm iconbitmap . {}" commands could cause
a core dump.

6/29/95 (new feature) Added -elementborderwidth option for scrollbars
so the -borderwidth can be set to 0 without flattening the arrows and
slider.

-------------------- Release 4.0, 7/1/95 -------------------------

7/18/95 (bug fix) %t in event bindings didn't work properly for some
events (e.g. PropertyNotify).

7/18/95 (bug fix) Changed "exec wish" lines in demo scripts to
"exec wish4.0" to avoid version conflicts.

7/18/95 (bug fix) Fixed round-off errors in scrolling for texts,
canvases, listboxes, and entries.  The error could cause the view
to shift up in a command like "$w yview moveto [lindex [$w yview] 0]".

7/19/95 (bug fix) Canvases weren't always redrawing borders correctly
when they became unobscured.  There were also some problems with
improper refresh after size changes.

7/19/95 (bug fix) Fixed bug in text index processing that causes
tests textIndex-11.1 and textIndex12.1 to fail on some platforms.

7/19/95 (bug fix) Fixed bug where 2-second delays were ocurring during
"raise" and "lower" commands for toplevel windows under some window
managers (such as fvwm).

7/20/95 (bug fix) Text searches were misbehaving when there were embedded
windows on the starting line of the search.  The most common symptom is
that Tk would fail to find a match at the starting position for the
search.

7/22/95 (bug fix) Fixed core dump that could occur in menus if a checkbutton
entry's -variable option referred to an array (or couldn't be read
by the menu C code for some other reason).

7/22/95 (bug fix) Text widgets didn't update their scrollbars when
changes were made to information that was off-screen.

7/25/95 (bug fix) Fixed core-dump in tkListbox.c that used to happen
in the command ".l bbox end" if the listbox was empty.

7/25/95 (bug fix) Page-up and page-down bindings for listboxes didn't
move active element to remain on the screen.

7/25/95 (bug fix) Patched around H-P compiler problem that results in
core-dumps in tkImgPhoto.c during image handling.

7/25/95 (bug fix) Fixed bug in tkImgPhoto.c that caused core dumps
(during Tk self-tests and other image uses) on AIX and other machines
where "schar" in tkImgPhoto.c was being defined as "short" instead of
"char".

7/26/95 (bug fix) The PPM image reader couldn't handle maximum intensity
values other than 255.

7/26/95 (bug fix) Canvases didn't redraw their borders when the relief
changed from raised to flat.

7/27/95 (bug fix) Canvases didn't set the scrolling values correctly
when no scroll region was specified.

7/28/95 (bug fix) Modified menu and tk_dialog scripts to restore any
old grab that might have been in effect before a menu or dialog was
posted.

----------------- Released patch 4.0p1, 7/29/95 ----------------------

8/4/95 (bug fix) Calls to toupper and tolower weren't using the UCHAR
macro, so they didn't always work in non-U.S. locales. (JO)

8/14/95 (new feature) Added -tearoffcommand option for menus.

8/16/95 (bug fix) Canvases didn't generate proper Enter and Leave
events if the Leave handler for an item reconfigured the canvas in
a way that made the old current item the new current item again. (JO)

8/21/95 (bug fix/feature change) When -takefocus was a script, Tk
was allowing window viewability to override it.  Changed so that
viewability is now ignored when -takefocus is a script. (JO)

8/21/95 (bug fixes) Fixed memory leaks in tkSend.c, tkSelect.c, and
tkUnixWm.c (JO).

8/21/95 (bug fix) Text widgets didn't handle commands like
".t search -backwards foo end 1.0" properly:  never found foo. (JO)

8/23/95 (new feature) Added Makefile and configure.in support for
dynamic loading. (JO)

8/25/95 (bug fix) The "frame" and "toplevel" commands couldn't safely
be renamed, due to a kludgy way that they shared a single command
procedure.  Split into separate procedures. (JO)

8/25/95 (bug fix) Fixed bug in libary/menu.tcl that caused "grab
window not visible" errors for popup menus (and perhaps elsewhere?). (JO)

8/25/95 (bug fix / new feature) The "gray25" bitmap was really only
12.5% on, not 25%.  Added new "gray12" bitmap that is the same as the
old "gray25".  "Gray25" is still supported for compatibility, but its
use is deprecated. (JO)

8/25/95 (bug fix) Scrollbar bindings didn't properly handle case where
B2 is clicked while B1 is already down. (JO)

8/26/95 (bug fix) Menus were ignoring -activebackground if tk_strictMotif
was set, but not -activeforeground.  Changed to ignore both. (JO)

8/26/95 (bug fix) Scales and scrollbars didn't properly handle a
-repeatdelay value of 0 (they shouldn't auto-repeat in this case). (JO)

8/28/95 (bug fix) Tcl errors were occurring for tkPriv(oldGrab) when
clicking on a disabled option menu. (JO)

8/28/95 (bug fix) Changed event-handling code to use FD_SETSIZE instead
of OPEN_MAX, since OPEN_MAX is incorrect on some systems (e.g., IRIX). (JO)

8/28/95 (bug fix) Fixed bug in photo images that caused garbling of
image data in the "put" and "copy" commands if the source data had
only one scan line but had a width less than the width of the target
image. (JO)

8/29/95 (bug fix) Tk used to refuse to post menus if they had no
entries.  This made it impossible for a menu to fill itself the first
time it is posted.  Changed to allow menus with no entries to be
posted. (JO)

8/30/95 (bug fix) If there was extra space at the bottom of a menu,
it wasn't being redisplayed properly.

8/30/95 (new feature) Added -transient option to menus.

8/30/95 (new features) Added proper button 2 support to both scrollbars
and scales (it sets the slider position from the mouse position). (JO)

8/30/95 (bug fix) Fixed potential core dump that could occur in
photo images (ReadPPMFileHeader could overflow buffer under some bad
inputs, such as certain GIF images). (JO)

8/30/95 (bug fix) Errors of the form `syntax error in expression "!"'
could occasionally happen in tkScaleDrag. (JO)

8/31/95 (new feature) Changed man page installation (with "mkLinks"
script) to create additional links for manual pages corresponding to
each of the procedure and command names described in the pages. (JO)

9/1/95 (new feature) Added "after info" command.  Also added checks
so that one interpreter can't cancel another's "after" events. (JO)

9/8/95 (bug fix) Fixed bug that could cause memory corruption and core
dumps if a "fileevent" handler was deleted while the handler was
active. (JO)

9/11/95 Reorganized Tk sources for Windows and Mac ports.  All sources
are now in subdirectories:  "generic" contains sources that work on all
platforms, "windows", "mac", and "unix" directories contain platform-
specific sources.  (SS)

9/11/95 (new feature) Added new  "notifier" mechanism to allow multiple
implementations of the mechanisms for finding out about events.  This
change was necessary to support Mac and PC platforms, but it may also
allow other goodies such as combining Xt and Tk widgets in a single
application.  See the new manual entry Notifier.3 for details. (SS)

9/11/95 (feature change) Changed interface to Tk_RestrictProc so that
(a) it takes a clientData argument instead of display and arg, and
(b) it returns a value that can ask for the event to be discarded as well
as deferred or processed. (SS)
*** POTENTIAL INCOMPATIBILITY ***

9/11/95 (new feature) Added TK_WINDOW_EVENTS #define, which is equivalent
to TK_X_EVENTS but is now preferred, since it applies to all platforms. (SS)

9/11/95 (feature change) Can't export variables anymore because this doesn't
work under Windows DLLs.  Eliminated tk_NumMainWindows variable and replaced
with procedure Tk_GetNumMainWindows. (SS)
*** POTENTIAL INCOMPATIBILITY ***

9/11/95 (new feature) Added procedure Tk_PreserveColormap to increment
the reference count on colormaps.  Used in photo widgets. (SS)

----------------- Released patch 4.0p2, 9/15/95 ----------------------

----------------- Released 4.1a1, 9/15/95 ----------------------

9/22/95 (renamed files) Changed the names of the bitmap images in the
$tk_library/demos/images directory to use the .bmap file extension.  (RJ)

9/22/95 (bug fix) Fixed bug where text widgets could occasionally
display the insertion cursor both at the end of one line and the
beginning of the next. (JO)

9/25/95 (bug fix) Fixed bug that could cause core dumps when an
application uses multiple screens and a binding destroys the main
window (bind code was using MainInfo structure after it had been
freed). (JO)

9/25/95 (bug fix) Text widgets sometimes scrolled backwards on
occasion if you dragged down past the bottom of the scrollbar. (JO)

9/25/95 (bug fix) Fixed bug in menus where a cascaded submenu posted
from a torn-off menu could be left posted if mouse was pulled off the
end of the cascade and released. (JO)

9/25/95 (new feature) Added "--" switch to wish, so that you can
pass arguments like -n through to a script without having wish
interpret them. (JO)

9/25/95 (bug fix) Fixed core dump that could occur for radiobuttons
and selectbuttons if -selectcolor was an empty string. (JO)

9/26/95 (bug fix) Entries didn't used to notice if a trace procedure
on the -textvariable overrode a new value set by the entry.  This
could cause the variable to get out of sync with the contents of the
entry. (JO)

9/26/95 (new feature) Added -sliderrelief option to scales, changed
default bindings to change the slider's relief to sunken while it's
being dragged with the mouse. (JO)

9/26/95 (bug fix) TkColor.c wasn't computing colormap size correctly;
could result in X Protocol error for QueryColors when colormaps run
out of colors. (JO)

9/26/95 (bug fix) Wish couldn't handle script files with spaces in
their names. (JO)

9/27/95 (cosmetic clean-up) Removed extraneous spaces to make error
messages consistent: ":  should be" is now ": should be". (JO)

9/27/95 (feature change)  Modified tk_dialog so that it uses the
option database for the -wraplength option on the message.  This
allows the option to be overridden by the caller. (JO)

9/28/95 (bug fix) Wish incorrectly parsed the command line under
Windows, causing backslashes to be substituted. (SS)

9/28/95 (bug fix) Wish now sources wishrc.tcl instead of .wishrc. (SS)

9/28/95 (bug fix) Tk_DoOneEvent returned 0 under some circumstances
when it was possible to find more work to do.  For example, if a
signal interrupted select(), but no event handlers were triggered, it
would return 0 even though it could still detect events by reentering
select().  (SS)

9/29/95 (bug fix) "winfo interps" caused a crash under Windows. (SS)

10/1/95 (feature change) Eliminated Tk_NotifyIdle interface in favor of
Tk_IdlePending. (SS)

10/1/95 (bug fix) Turned motion event collapsing into an idle handler
so it will be easier to move the event loop into Tcl. (SS)

10/1/95 (bug fix) Fixed several problems with negative coordinates
in canvases.  One example:  dragging a canvas rectangle with a wide
border and fractional coordinates could leave junk on the screen
if the rectangle was in negative coordinate space. (JO)

10/2/95 (bug fix) Tk was improperly handling Enter/Leave events
during a button grab. (SS)

10/2/95 (new feature) Added support for the Macintosh do script
('dosc') event.  Available only on the Macintosh.  (RJ)

10/4/95 (new feature) Added support for compiling with VC++.
Resulting binaries work under Win32s through NT.

----------------- Released 4.1a2, 10/6/95 ----------------------

10/10/95 (new feature) Macintosh Tk now supports the complete set
of X cursors that Unix Tk supports. (RJ)

10/11/95 (bug fix) Tk now supports all of the X11 cursors under
Windows.  (SS)

10/11/95 (bug fix) The "wm resizable" command was missing from the
Windows version of Tk. (SS)

10/12/95 (bug fix) Macintosh Tk had problems with clipping toplevel
windows that children of any frame other than another toplevel. (RJ)

10/13/95 (bug fix) Eliminated dependency on MKS toolkit for generating
the tk.def file from Borland object files. (SS)

10/16/95 (bug fix) Fixed clipping and update problems relating to
the raising and lowering of overlapping windows on Mac. (RJ)

10/30/95 (bug fix) When focus-follows-mode (invoked via tk_focusFollowsMouse),
was focussing on windows even in situations where keyboard traversal would
skip the window.  Changed to use the tkFocusOK procedure so that the
criteria for focussing are the same in both modes. (JO)

11/2/95 (bug fix) Changed listbox bindings to ignore double-clicks.
This avoids errors that used to occur if a user defined a binding
for double-click that deleted the listbox. (JO)

11/3/95 (feature change) Moved most of the Tk event loop to Tcl.  Many
Tk_ names have become Tcl names now:

TK_READABLE =>		TCL_READABLE
TK_WRITABLE =>		TCL_WRITABLE
TK_EXCEPTION =>		TCL_EXCEPTION
TK_DONT_WAIT =>		TCL_DONT_WAIT
TK_WINDOW_EVENTS =>	TCL_WINDOW_EVENTS
TK_FILE_EVENTS =>	TCL_FILE_EVENTS
TK_TIMER_EVENTS =>	TCL_TIMER_EVENTS
TK_IDLE_EVENTS =>	TCL_IDLE_EVENTS
TK_ALL_EVENTS =>	TCL_ALL_EVENTS
Tk_IdleProc =>		Tcl_IdleProc
Tk_FileProc =>		Tcl_FileProc
Tk_TimerProc =>		Tcl_TimerProc
Tk_TimerToken =>	Tcl_TimerToken
Tk_BackgroundError =>	Tcl_BackgroundError
Tk_CancelIdleCall =>	Tcl_CancelIdleCall
Tk_CreateFileHandler =>	Tcl_CreateFileHandler
Tk_CreateTimerHandler =>Tcl_CreateTimerHandler
Tk_DeleteFileHandler =>	Tcl_DeleteFileHandler
Tk_DeleteTimerHandler =>Tk_DeleteTimerHandler
Tk_DoOneEvent =>	Tcl_DoOneEvent
Tk_DoWhenIdle =>	Tcl_DoWhenIdle
Tk_Sleep =>		Tcl_Sleep
tkerror =>		bgerror

Other than the name changes, the functions are the same.  In addition,
there are #defines in tk.h so that the old Tk names will still work.
tkerror and bgerror are specially hacked as synonyms, so it should be
safe to use either one.  You should switch to the new Tcl names ASAP,
though, since the old Tk names will eventually be desupported. (JO)

11/7/95 (features removed) As part of moving the event loop to Tcl,
the following procedures were deleted:
    - Tk_EventInit (the presence of the event loop in Tcl should
      make this unneccessary).
    - Tk_CreatFileHandler2 (you can get the same effect by using event
      sources in Tcl, but you have to modify your code to use the new
      Tcl APIs).
    - All of the stuff in the manual entries Notifer.3 and QueueEvent.3;
      this has changed because the notifier got reworked when it was
      moved to Tcl.
*** POTENTIAL INCOMPATIBILITY ***

11/7/95 (feature change)  Changed to use exit handler to cleanup windows
in Tk, so Tk no longer needs to have a private copy of the "exit" command.
(JO)

11/7/95 (bug fix) If wish was invoked with a command-line geometry and
a script file (e.g. "wish foo.tcl -geometry 30x20"), and if one of
the windows created by the script used the -setgrid option, then the
width and height from the command line were lost. (JO)

11/8/95 (bug fix) The "see" command didn't work quite right for texts:
if the window was small and you try to "see" a line just offscreen,
Tk centered the line (actually, mis-centered it) when it should have
aligned it at the top or bottom. (JO)

11/9/95 (bug fix) The "send" command crashed if you tried to send to
a different display with "-displayof". (JO)

11/9/95 (bug fix) The Symbol font didn't print right in Postscript
output, because of changes made to re-encode fonts to get proper
ISO Latin1 behavior.  Changed the code not to re-encode the Symbol
font. (JO)

11/13/95 (bug fix) Fixed Makefile.in and configure.in for UNIX so that
configure can be run from a clean directory separate from the Tcl source
tree, and compilations can be performed there. (JO)

11/17/95 (bug fix) If a window was gridded, Tk still computed the
default maximum dimensions in pixel units, which resulted in windows
that could grow much larger than the screen. (JO)

11/17/95 (bug fix) If a menus entries were all disabled, posting
the menu and typing Up or Down caused an infinite loop, locking
up the screen (JO).

11/19/95 (bug fix) The focus wasn't being restored properly after a
menu selection in a cascaded menu. (JO)

11/19/95 (bug fix) Menubutton's didn't stipple display their images
differently when disabled.  Change to have the same behavior as buttons:
the image is stippled over in the background color when the menubutton
is disabled. (JO)

11/21/95 (bug fix) Changes in display attributes such as font could
cause core dumps in the text widget under some circumstances involving
line wrapping. (JO)

11/22/95 (bug fix/new feature)  Changed both the placer and the packer
to ensure that slaves are unmapped whenever the master is unmapped.
This saves time that slaves might otherwise spend trying to redisplay
themselves when they're unmapped. (JO)

11/22/95 (bug fix) Space and return keys didn't work for menus if
they were posted via Alt-x keystrokes. (JO)

11/24/95 (bug fix) tk_dialog procedure had binding for <Return> that
always activated default binding, even if input focus was in some
other binding.  Removed this feature, since existing focus support
will already "do the right thing".  (JO)

11/24/95 (bug fix) Both canvases and texts could dump core if a binding
(such as ButtonRelease on an internal item) deleted the widget. (JO)

11/24/95 (feature change) Replaced "configInfo" file with tkConfig.sh,
which is more complete and uses slightly different names.  Also
arranged for tkConfig.sh to be installed in the platform-specific
library directory. (JO)

11/24/95 (bug fix) It was possible for a slave to be placed or packed
-in itself, with unpleasant consequences.  It is now an error for the
slave to be its own master for geometry management. (JO)

11/25/95 (bug fix) The -command option of scales was sometimes being
invoked spuriously (e.g. when the mouse moved in the scale without a
button down).  This was because the scale wasn't rounding properly
when setting the scale value from its associated variable. (JO)

----------------- Released patch 4.0p3, 11/28/95 ----------------------

12/18/95 (feature change) Moved Tk_Preserve, Tk_Release, and
Tk_EventuallyFree to Tcl, renamed to Tcl_Preserve etc.  Added #defines
to tk.h so that the old names still work.  (JO)

12/23/95 (bug fix) If a single process had > 1 Tk application, Tk
didn't guarantee that the application names were unique, which could
cause all sorts of confusion with "send".  (JO)

12/23/95 (feature change) Eliminated Tk_CreateMainWindow and moved
all of its functionality to Tk_Init.  All that you need to do now
to get Tk in an application is to call Tk_Init.  Improved Tk_Init
so that -colormap and -visual command-line arguments are now passed
through to TkCreateFrame.  Tk_Main is much simpler now, since a lot
of its functionality has moved to Tk_Init. (JO)
*** POTENTIAL INCOMPATIBILITY ***

12/23/95 (new feature) Added support for Tcl_StaticPackage so
that Tk can now be loaded into slave interpreters with the "load"
command to create new applications. (JO)

12/23/95 (new features) Added support for -colormap and -visual command-
line options for wish. (JO)

1/4/95 (bug fix) Fixed keyboard code to properly handle alt-key
sequences for international keyboards and menu-accelerators. (SS)

1/5/96 (bug fix) Scrollbar code sometimes generated errors on accesses
to tkPriv(relief) during control-clicks. (JO)

1/9/96 (new feature) added the "grid" command to provide a table based
geometry manager. (SU)

1/12/96 (performance optimization) Changed the way tag information is kept
in the text's Btree so the cost of adding and removing tag ranges is no longer
proportional to the number of unique tags in the text.  In the old system
the cost of adding N unique tags was O(N-squared).  The new implementation is
optimized for tags that only cover a small amount of text, measuring from
their earliest tag range to the end of their last range.  In the best case the
cost of adding a tag range is unrelated to the number of unique tags, so the
cost of adding N tags is only O(N).  In the worst case, where all tags
cover all the text, the cost is still O(N-squared) to add N such tags.
Deleting tags still has an O(N) cost (so deleting N tags is O(N-squared),
but it is now a factor of 2 faster than the old system. (BW)

1/12/96 (new feature) added the text "dump" operation that returns information
about all elements in a text widget: text, tags, marks, and windows. (BW)

1/12/96 (new feature) added the text "mark next" and "mark previous" operations
to search forward and backwards for the next (previous) mark in the text. (BW)

1/12/96 (new feature) added the text "tag prevrange" operation to search
backwards for the current or previous range of a tag. (BW)

1/16/96 (new feature) Added support for relative widget placement on
the "grid" command. (SU)

1/17/96 (new feature) Modified the Makefile/configure setup to support
compiling Tk as a shared library.  Use the --enable-shared option to
the "configure" script. (JO)

----------------- Released 4.1b1, 1/26/96 -----------------------

2/2/96 (bug fix) Frames were getting a default size of 200x200, whereas
there should be no default. (JO)

2/2/96 (bug fix) Argc wasn't getting reset properly after Tk removed
the arguments it understood from those on the command line. (JO)

2/6/96 (bug fix) Fixed off by one error in argument parsing code under
Windows. (SS)

2/6/96 (bug fix) "wm transient" now works under Windows.  The resulting
toplevel is created with a modal dialog box frame and will not appear
in the taskbar under Windows '95. (SS)

2/9/96 (bug fix) Changed Makefile.in to use -L and -l for Tcl and Tk
libraries so that shared libraries are more likely to be found correctly
on more platforms. (JO)

2/14/96 (feature change) Eliminated tk_CanvasTagsOption variable because
it can't be exported safely across DLL boundaries.  Instead, exported
Tk_CanvasTagsParseProc and Tk_CanvasTagsPrintProc procedures for
use by canvas type managers in creating their own custom options. (JO)
*** POTENTIAL INCOMPATIBILITY ***

2/14/96 (bug fix) "winfo pointerxy" when applied to a non-toplevel window
crashed wish.  (SS)

2/14/96 (bug fix) "tkwait visibility" would hang under Windows. (SS)

2/14/96 (bug fix) Cursors were not being updated until an enter event.
In cases where the cursor left the toplevel and reentered before Tk
noticed, the cursor would get "stuck" until the next enter event.
Similarly, if the cursor attribute of a window was updated while the
mouse was in the window, the cursor would not change until the next
time the mouse entered the window. (SS)

2/15/96 (bug fix) If a top-level was resizable in one direction
(e.g. "wm resizable . 0 1"), once the user resized it any changes
in the internally requested size (by the widgets) were ignored,
even for the non-resizable dimension.  Fixed to handle the two
dimensions totally independently, so the widget's requests are
honored as long as that dimension hasn't been set by the user. (JO)

2/17/96 (bug fix) If a text widget had very long lines (e.g. more than
32K pixels), integer overflow could occur, resulting in parts of the
line not being visible. (JO)

2/20/96 (feature change) Changed the -minsize option of grid to take
screen units instead of pixels. (SU)

2/20/96 (bug fix) grid row and column weights are compared against
MINWEIGHT (0.001) instead of 0.0 to guard against divide by zero errors
during weight normalization. (SU)

2/20/96 (bug fix) Menu commands were not being invoked sometimes.
There was a race condition that caused events to be processed while a
menu was being unposted. (SS)

----------------- Released 4.1b2, 2/23/96 -----------------------

2/23/96 (bug fix) Alt-keys invoked in torn-off and popped up menus
caused menus to be posted in the parent toplevel. (JO)

2/23/96 (bug fix) Canvases weren't always updating their scrollbars
when they should. (JO)

2/23/96 (bug fix) Fixed core dump that could occur if a WM_DELETE_PROTOCOL
handler generated an error. (JO)

2/24/96 (bug fix) Removed dependencies on Makefile in the UNIX Makefile:
this caused problems on some platforms (like Linux?). (JO)

2/24/96 (feature change) Changed text and entry widgets so that they
set the insertion cursor before inserting during a button-2 click.
Also made optional bindings check for tk_strictMotif at the time of
the event, rather than at the time the bindings are created. (JO)

2/24/96 (bug fix) Tk tended to crash with an X error when unsetting
an icon window (e.g. "wm iconwindow . {}"). (JO)

2/25/96 (bug fix) Wasn't removing windows from the WM_COLORMAP_WINDOWS
property when they were deleted.  (JO)

3/1/96 (new feature) Added new "bbox" widget command for entries.
Also modified mouse bindings for entries and texts so that the
mouse position rounds to the nearest inter-character gap, rather
than the left edge of the character under the mouse.  This provides
more natural selection behavior. (JO)

3/1/96 (bug fix) Fixed core dump that could occur in image code if an
image was deleted while in use in a widet, then re-used in another
widget while "deleted". (JO)

3/1/96 (bug fix) Calling wish with a single argument caused a crash
under Windows due to an off-by-one error in the argument parsing code. (SS)

3/1/96 (bug fix) Palette management was broken and resulted in
incorrect palette realization and refresh behavior.  Also, images were
being drawn incorrectly if they were attached to widgets that had a
private colormap. (SS)

3/2/96 (bug fix) It was possible to press the mouse button over an
option menu, drag to a pulldown menu, and have the pulldown menu
popup in place of the option menu.  Fixed this so that option menus
are isolated from each other and from pulldowns. (JO)

3/2/96 (bug fix) Fixed yet another bug that caused long delays when
raising toplevel windows. (JO)

3/2/96 (bug fix) Fixed bug in canvases where zero-sized rectangles
and ovals didn't always redisplay right (could leave trailing
garbage on screen when moved). (JO)

3/2/96 (bug fix) Entry widgets reset their insertion cursor, selection,
and view whenever the text variable changed, plus whenever a "configure"
widget command was invoked and there was a text variable for the
widget.  Fixed to preserve this information as much as possible. (JO)

3/5/96 (new feature) Added version suffix to shared library names so that
Tk will compile under NetBSD and FreeBSD (I hope).  (JO)

3/6/96 (bug fix) Changed the way certain configure & motion events are
reported.  This fixes several bugs in menus & "winfo rootx". (RJ)

3/7/96 (bug fix) Fixed tag remove bug that showed up when draging out a
selection.  If you had dragged left, then tried to drag back right, the
left edge of the selection wasn't being updated because the tag remove
wasn't doing anything. (BW)

3/7/96 (bug fix) Fixed the boundary conditions of tag prevrange.  The second
index argument wasn't effecting in stopping the search if it fell within
a range.  The second index has to come at or before the start of a range
for the range to be found by tag prevrange. (BW)

3/7/96 (bug fix) "puts" to stdout or stderr when running from a script
caused wish41.exe to exit silently.  Now the output is silently
discarded without generating an error.  (SS)

3/7/96 (bug fix) Fixed bug where wish was treating empty lines in the input
as end of input, if the input came from stdin. This would cause it to
complain about missing closing braces etc. (JL)

----------------- Released 4.1b3, 3/8/96 -----------------------

3/9/96 (bug fix) Fixed bug in text.tcl that could cause errors in text
widgets of the form 'can't use non-numeric string as operand of "-"'. (JO)

3/12/96 (feature improvement) Modified startup script to look in several
different places for the Tcl library directory.  This should allow tk
to find the libraries under all but the weirdest conditions, even without
the TK_LIBRARY environment variable being set. (JO)

3/14/96 (bug fix) "wish bogus_file_name" didn't print an error message. (JO)

3/14/96 (bug fix) Button-2 wasn't claiming the focus during paste
operations. (JO)

3/14/96 (bug fix) "tkwait visibility" use to hang forever if its window
was deleted.  Now it detects this condition and returns an error. (JO)

3/16/96 (bug fix) Changed configuration stuff to get dynamic loading and
shared libraries working under AIX. (JO)

3/16/96 (bug fix) Fixed core dumps that could occur when a slave interpreter
was deleted in the middle of executin bindings. (JO)

3/18/96 (new feature) Added support for Activate/Deactivate events.
Currently, these new X events will generated only on the Macintosh. (RJ/CS)

3/21/96 (bug fix) The "tag prevrange" command would fail to return the current
range if it began at 1.0 and the starting point of the search was within
the range. (BW)

3/21/96 (configuration improvement) Changed configure script so it
doesn't use version numbers (as in -ltk4.1 and libtk4.1.so) under
SunOS 4.1, where they don't work anyway.  (JO)

3/22/96 (bug fix) Made Tk more robust against interpreter deletion. Now it
should be safe to delete an interpreter with a Tk application inside it,
without first deleting the Tk application. (JL)

3/26/96 (bug fix) Tk now returns results from a "send" to an interpreter
in which the Tk application is destroyed, if the interpreter continues
computing after the Tk application is destroyed. Previously any results
computed after '.' was destroyed in the target interpreter were discarded
by the "send". (JL)

3/26/96 (new feature) Tk now provides a static Tktest package which is
present only in test versions of Tk; this allows the testing commands to
be loaded into new interpreters besides the main one. (JL)

3/28/96 (bug fix) Changed the tk_dialog procedure *not* to make the
dialog a transient for its parent.  The old behavior meant that the
dialog did not get posted if the parent was iconified. (JO)

4/5/96 (bug fix) Tk would occasionally crash when destroying toplevels
under Windows. (SS)

4/5/96 (bug fix) Fonts were not being properly deallocated, causing
GDI resources to be consumed and never released under Windows. (SS)

4/11/96 (bug fix) Toplevel windows with no specified geometry were
always appearing in the upper left corner of the screen under
Windows. (SS)

4/11/96 (bug fix) "wm minsize" did not properly report the minimum
size imposed by the Windows window manager. (SS)

4/13/96 (bug fix) Text widgets could dump core in some cases where
text was inserted on the top visible line. (JO)

4/16/96 (bug fix) Changed menu code to ignore errors that occur when
restoring a grab:  the old grab window might not be visible anymore. (JO)

----------------- Released 4.1, 4/21/96 -----------------------

5/1/96 (bug fix) "option readfile" did not handle files with CRLF
line termination. (SS)

5/1/96 (bug fix) Changed to install tkConfig.sh under "make install-binaries",
not "make install-libraries". (JO)

5/7/96 (bug fix) Moved initScript in tkUnixInit.c to writable memory to
avoid potential core dumps. (JO)

5/7/96 (bug fix) Changed tk_dialog back so that the dialog box is a
transient window again.  This is needed to make sure that the dialog
box doesn't get obscured.  Also changed it to return -1 if the dialog
window is deleted before the user presses a button. (JO)

5/16/96 (bug fix) Fixed bug that caused core-dumps if a text widget
with -setgrid 1 was deleted by removing its command. (JO)

5/16/96 (bug fix) Fixed bug that caused Tk initialization to use improperly
initialized variables left over from previous invocation of Tk_Init on
another interpreter. (JL)

5/16/96 (new feature) Implemented application embedding on Windows
platforms (only Tk inside another application, not the other way yet). (JL)

5/16/96 (new feature) Added C API Tk_SafeInit that adds Tk to a safe
interpreter. (JL)

5/16/96 (bug fix) Fixed bug that caused Tk initialization to use improperly
initialized variables left over from previous invocation of Tk_Init on
another interpreter. (JL)

5/16/96 (new feature) Implemented application embedding on Windows
platforms (only Tk inside another application, not the other way yet). (JL)

5/16/96 (new feature) Added C API Tk_SafeInit that adds Tk to a safe
interpreter. (JL)

5/22/96 (bug fix) Listboxes weren't properly ignoring double clicks on
button 1. (JO)

6/12/96 (bug fix) Focus was automatically placed on new toplevels.
This caused the titlebar to flash during menubar traversal. (SS)

6/12/96 (bug fix) Iconification of a window with a specified geometry
by using the minimize button would leave the window in an inconsistent
state.  When the window was deiconified using "wm deiconify", the
window would continue to display as an icon with the deiconified
geometry. (SS)

6/12/96 (bug fix) Fixed a resource leak where the text widget was not
freeing all of the TkRegions it created.  This fix affects all
platforms, but is particularly important for Win32s. (SS)

6/21/96 (configuration change) Added --enable-gcc switch to configure
script to make Tk just like Tcl.  Now Tk will not use gcc unless you
request it explicitly. (JO)

7/18/96 (bug fix) Changed "configure" script to add an extra -R switch
(or whatever is appropriate to the platform) if the X library is in a
nonstandard place.  This guarantees that the shared library can be
found at runtime without having to set the LD_LIBRARY_PATH variable. (JO)

7/19/96 (bug fix) Fixed bug in tkImgGIF.c that cause core dumps if a
GIF file contained multiple images. (JO)

7/20/96 (bug fix) Deadlock could occur if a recursive series of send
operations involved multiple displays. (JO)

7/23/96 (bug fix) Fixed a resource leak where deallocated XIDs were
taking up memory on Windows and Macintosh platforms. (SS)

7/30/96 (bug fix) A core dump could occur if a <Destroy> handler for
a window tried to create a child in the half-dead window.  Fixed by
making the window's name disappear from the name table once it starts
to be deleted. (JO)

----------------- Released patch 4.1p1, 8/2/96 -----------------------

4/30/96 (new feature) Added support for named virtual events. New "event"
command to define/destroy named virtual events and to programmatically
send both real and virtual events to Tk. (CS)

8/6/96 (bug fix) Entry widgets were invoking scrollbar update functions
too often. (JO)

8/9/96 (bug fix) 7/30 change above for <Destroy> handlers broke many
things by making window available during Destroy handler.  Reworked
fix for core dump to simply disallow creating children of half-dead
parents. (JO)

8/12/96 (bug fix) Fixed bug where using the Copy menu item on the
Macintosh would append a NULL character at the end of the text. (RJ)

8/15/96 (bug fix) Fixed Mac code so garbage wouldn't be printed in
text and entry widgets when function & other non-printing keys were
pressed. (RJ)

8/15/96 (configuration improvement) Changed the file patchlevel.h
to be tkPatch.h.  This avoids conflict with the Tcl file and is now
in 8.3 format on the Windows platform. (RJ)

8/19/96 (bug fix) Fixed a bug under Windows where the initial window
position for a toplevel window was reported as +0+0, regardless of the
actual position. (SS)

8/21/96 (bug fix) If the last character on a line in a text widget was
a space character that didn't completely fit, the text widget would
sometimes add an extra wrap line. (JO)

8/22/96 (feature change) Complete rewrite of the grid geometry manager.
There is a new layout algorithm that produces better (but different)
layouts in many common cases. (SU)

8/22/96 (new feature) There are two new options for the grid geometry
manager, "grid update" which forces an immediate layout calculation,
and a "-pad" option to rowconfigure and columnconfigure that allows for
extra space around widgets. (SU)

8/22/96 (feature change) The order in which the grid geometry manager
reports slaves is now last-managed first. (SU)

8/22/96 (feature change) The column and row weights in the grid
geometry manager are kept internally as integers, instead of floating
point values.  Floating point values are still accepted on the command line,
but are truncated to integers. (SU)

8/22/96 (new feature) There are four new commands for opening common
dialog boxes: tk_chooseColor, tk_getOpenFile, tk_getSaveFile and
tk_messageBox. Native dialog boxes are used wherever available. (IL)

8/22/96 (new demos) Added "fsbox", "msgbox" and "clrpick" demos. (IL)

8/23/96 (feature change) Invoking the edit menu on the Macintosh now
generates the following virtual events <<Cut>>, <<Copy>>, <<Paste>>,
and <<Clear>> instead of faking key events. (RJ)
*** POTENTIAL INCOMPATIBILITY ***

8/25/96 (bug fix)  Fixed a bug that would cause "grid x" to dump core. (SU)

8/26/96 (new feature) Added the "unsupported1" command to the
Macintosh version of Tk.  This command will allow you to set the style
of a new toplevel Window (much like overrideredirect).  You can use
this to get access to all of the Native Mac window styles.  This is to
hold you over until we get a more general solution added to the
toplevel command. (RJ)

8/26/96 (new feature) Added support to handle the zoom box on a
Macintosh window.  (Currently, you can only get a Tk window with a
zoom box by using the "unsupported1" command. (RJ)

8/27/96 (documentation change) Removed old change bars (for changes in
Tk 4.1 and earlier releases) from manual entries. (JO)

----------------- Released 4.2b1, 8/30/96 -----------------------

9/5/96 (bug fixes) Fixed several bugs in file dialogs: individual files
could be listed twice, if a long list of files were shown, and the view
scrolled to the right, and then a different file file was shown, the
scrollregion on the canvas wasn't being reset, so the file dialog was
broken from then on, added an update idletasks so that the watch
cursor was shown when the dialog was thinking. For the motif file 
dialog, fixed the weights for resizing.  On the clrpicker, fixed the
finalColor variable which caused problems when the OK button was
"clicked" before the dialog was mapped (in the test suite). Added Ioi's
last changes from before he left. For message boxes, if a single button
message box is shown (currently only 'ok'), it is set to be the default
even if not specified. (KC)

9/5/96 (bug fix) Fixed bug on Macintosh where menus would appear in a
seemingly random location.  (RJ)

9/5/96 (bug fix) Text widgets had rounding problems with the "yview"
command that caused them sometimes to round to the line before the
correct one. (JO)

9/5/96 (bug fix) Changed grab code to retry grabs after errors where
another application already has the grab.  This is needed to get
around race conditions with some window managers and will hopefully
solve the grab errors that people see occasionally. (JO)

9/6/96 (bug fix) Fixed x-y coordinate confusion problem with scaling
of window items in canvases. (JO)

9/11/96 (bug fix) The open and save file dialogs would change the
current working directory under Windows. (SS)

9/12/96 (bug fix) The Tk event system was delivering events to dead
windows, if the event handler got reentered during a Destroy event
handler.  This could cause core dumps and other problems. (JO)

9/20/96 (bug fix) In XFillRectangles under Windows, a brush was not
being deallocated. (SS)

9/20/96 (bug fix) The Mac window manager used to generate a mouseUp
event for a top level that was recently raised to the front/active
window which often caused a tk(priv) error.  The up event is no
longer generated with solves several problems. (RJ)

9/25/96 (bug fix) The font code under Windows was leaking memory
whenever a new font was referenced using the three part font names. (SS)

9/26/96 (bug fix) The tests for the common dialogs still used the 'testevent'
function.  I updated these calls in clrpick.test, msgbox.test, filebox.test
to use the new event gereating mechanism.

9/18/96 (bug fix) Long-standing bug in bind where <Button-1><Button-1> was
reported as <Double-Button-1>, but <Double-Key-a> was reported as "aa". (CS)

9/27/96 (bug fix) Bindings didn't work on 64-bit machines due to changes 
made for virtual events. (CS)

9/30/96 (feature change) Binding for new virtual events included both 
lower and upper-case, e.g., <<Copy>> was defined as <Control-c> and 
<Control-C>.  Previously, widgets were directly bound to only lower-case
bindings.  The upper-case binding caused incompatibility with some existing 
Tcl programs, so the upper case bindings for <<Cut>>, <<Copy>>, and <<Paste>>
were removed. (CS)

9/30/96 (bug fix) The postscript code in the canvas widget now uses
channels to get and write .ps files which fixed a bug on the Mac where
an output file would have mixed EOL characters.  In addition, I added
the ability for the prolog to come from the Tk shared library on the
Mac which makes it possible to have a standalone application. (RJ)

10/1/96 (feature change)  "grid forget" was renamed "grid remove".  A new
command "grid forget" was added whose semantics are the same as "pack forget"
(SAU)
*** POTENTIAL INCOMPATIBILITY ***

10/1/96 (feature change)  grid no longer accepts floating point values for
row or column weights, integers must be used.  (SAU)
*** POTENTIAL INCOMPATIBILITY ***

10/1/96 (feature change)  "grid {column,row}configure <master> <index>"
returns a list of option value pairs for all of the row or column
constraints. It used to return an error. (SAU)

10/1/96 (bug fix)  "The way grid handles '^' short-cuts was re-written
to eliminate core dumps. (SAU)

10/3/96 (feature change) A virtual event binding associated with a 
given physical event is now considered less specific than a binding for
that same physical event, all other things being equal. (CS).

10/3/96 (bug fix) Under Windows text placed on the clipboard did not
undergo CRLF translation when delivered to other applications. (SS)

10/3/96 (bug fix) Copying an image onto itself with a zoom factor that
caused the image to grow was accessing freed memory. (SS)

10/3/96 (bug fix) Under Windows, the image blank subcommand did not
work. (SS)

10/10/96 (bug fix) Under Windows & Macintosh, XSetFont and XChangeGC
were not implemented, and XSetLineAttributes did not correctly update
the GC. (SS)

10/10/96 (bug fix) Under Windows, 8-bit non-palette displays were not
handled properly. (SS)

10/10/96 (bug fix) Under Windows, images of depth other than 8 or 24
bits were not being rendered properly. (SS)

10/10/96 (bug fix) Under Windows, bitmap subimages were not correctly
displayed. (SS)

10/14/96 (bug fix) Under Window, wm resizable would constrain both
programatic resizes as well as user resizes. (SS)

----------------- Released 4.2, 10/16/96 -----------------------

10/17/96 (bug fix) XCopyPlane was broken under Windows and would cause
a crash when used with a clipping bitmap. (SS)

10/21/96 (bug fix) Added missing resources needed by tk_getOpenDialog
on the Macintosh to the shared library for Tk. (RJ)

10/22/96 (bug fix) Invoking a menu with an Alt key sequence caused an
error due to a misplaced common in library/menu.tcl. (JO)

10/23/96 (bug fix) Errors in files sourced by the Macintosh
"Source..." menu are now correctly reported via the background
error mechanism. (RJ)

10/23/96 (bug fix) Fixed a bug in the Mac subwindow implementation
that caused refreshes to not occur for canvases with embedded 
windows. (RJ)

10/24/96 (bug fix) Provided workaround for Apple bug that doesn't
handle zooming correctly for floating windows. (RJ)

10/24/96 (bug fix) Macintosh tearoff menus are now correctly 
displayed as Mac floating windows. (RJ)

11/1/96 (bug fix) Restored manual page for procedures like
Tk_CreateWindowFromPath and Tk_DestroyWindow; was accidentally deleted
when Tk_CreateMainWindow procedure was decommissioned. (JO)

11/19/96 (bug fix) Fixed bugs in postscript code that would cause the
prefix to not be included and the output file to have the wrong
permissions. (RJ)

12/2/96 (bug fix) Fixed problem with canvas lines where it didn't
compute bounding boxes correctly for zero-width lines: this could
potentially leave garbage on the screen when items were deleted or
moved. (JO)

12/5/96 (bug fix) Fixed the Macintosh implementation of pointer x/y
which was returning garbage. (RJ)

12/6/96 (bug fix) Fixed grid bug where the positioning of slaves was
incorrect for non-zero values of ipadx and ipady (SU)

12/6/96 (bug fix) Fixed grid bug where slaves got "lost" when an
already managed slave is re-managed in a different master. (SAU)

----------------- Released 4.2p1, 12/8/96 (Mac only) --------------

1/17/97 (bug fix) Fixed bug where the Tk clipboard was not in sync
with the Macintosh clipboard on start-up.  (RJ)

----------------- Released 4.2p2, 1/31/97 --------------

----------------------------------------------------------
Changes for Tk 4.2 go above this line.
Changes for Tk 4.3 go below this line.
----------------------------------------------------------

9/19/96 (improvement) Implemented table driven mechanism for deciding
whether a command is safe. If it is added by Tk_Init and it appears in the
table then it is kept, otherwise it is removed in a safe interpreter. (JL)

10/18/96 (new feature) Added support for application embedding:
    - Frame and toplevel widgets now have a -container option, which
      turns the widget into a container.
    - Toplevel widgets have a -use option for requesting that the
      widget be embedded in another application.
    - Wish also supports a -use command-line option.
Embedding is fully supported under Unix, but the implementation is
not complete under Windows or the Macintosh (it works just well
enough to support the Tcl/Tk plugin). (JO)

10/22/96 (bug fix) The commands "winfo rootx" and "winfo rooty" didn't
work for non-toplevel windows in embedded applications: they returned
the coordinates of the nearest toplevel. (JO)

12/02/96 (new feature) Implemented Safe Tk. Tk can now be loaded into a
safe interpreter that has been created with tcl_safeCreateInterp, by
calling load {} Tk interpname. (JL)

12/02/96 (new feature) A safe Tk interpreter can no longer generate
postscript output from a canvas. (JL)

12/02/96 (new feature) Added -channel option to photo command to allow
image data to be read from a channel. This is useful in safe Tk
interpreters where the data cannot be read directly from a file. (JL)

----------------------------------------------------------
Changes for Tk 4.3 go above this line.
Changes for Tk 8.0 go below this line.
----------------------------------------------------------

9/1/96 (new features) The font mechanism in Tk has been completely
reworked:
    - Font names need not be nasty X LFDs: more intuitive names like
      {Times 12 Bold} can also be used.  See the manual entry font.n
      for details.
    - Font requests always succeed now.  If the requested font is not
      available, Tk finds the closest available font and uses that one.
    - Tk now supports named fonts whose precise attributes can be
      changed dynamically.  If a named font is changed, any widget
      using that font updates itself to reflect the change.
    - There is a new command "font" for creating named fonts and querying
      various information about fonts.
    - There are now officially supported C APIs for measuring and
      displaying text.  If you use these APIs now, your code will
      automatically handle international text when internationalization
      is added to Tk in a future release.  See the manual entries
      MeasureChar.3, TextLayout.3, and FontId.3.
    - The old C procedures Tk_GetFontStruct, Tk_NameOfFontStruct, and
      Tk_FreeFontStruct have been replaced with more portable procedures
      Tk_GetFont, Tk_NameOfFont, and Tk_FreeFont.
      *** POTENTIAL INCOMPATIBILITY ***
(CS)

9/24/96 (bug fix) Under Windows, transient windows would be destroyed
if their master was destroyed, even if the transient window was not a
child of the master. (SS)

10/18/96 (new features) A -menu option has been added to the toplevel
widget command, which allows a menu to operate as a menubar. On the
Macintosh, the menubar is displayed accross the top of the main monitor,
just like with other applications. Under Windows and Unix, the menu is
attached to the toplevel window. Also, changed some semantics.  
Tearoff menus will now reflect changes to the menu it was 
torn off from, and are deleted when the master menu is
deleted. Tearoffs also reflect more look-and-feel of the 
platforms they are running on. (SRP)

10/31/96 (bug fix) Under Windows, missing system cursors would
generate an error instead of falling through to the Tk cursor of the
same name. (SS)

11/7/96 (feature change) Under Unix, default borderwidth is now 1 to
more closely approximate CDE.  (SS)
Note: this change was undone on 6/12/97, restoring the default border
width to 2 again.  (JO)

11/7/96 (new feature) The button widget now supports a -default option
that draws a platform specific default ring around the widget. (SS)

11/7/96 (feature change) Under Windows, buttons and scrollbars now
have native look and feel.  This affects the default class bindings
and the way the some configuration options are interpreted.  Refer to
the widget manual pages for more details. (SS)
*** POTENTIAL INCOMPATIBILITY ***

11/19/96 (bug fix) Under Windows, images were incorrectly drawn on
16-bit displays. (SS)

11/19/96 (bug fix) Under Windows, the class name for the main window
(.) was not properly generated from argv0. (SS)

11/20/96 (bug fix) Fixed a couple of bugs in the Canvas widget.  The
postscript file is now created with the correct permissions.  Also,
the prolog is now properly included in all cases. (RJ)

11/22/96 (bug fix) Under Windows, the initial directory and file names
were not properly translated before being passed to the system
open/save file dialogs.  So forward slashes were not converted to
backslashes, and tilde substitution was not performed.  (SS)

11/25/96 (feature change) Under Windows and Macintosh, the selection
highlight is now hidden whenever an entry or text widget loses focus.
Also, the previous selection information is not lost when a new
selection is made in a different widget. (SS)

11/26/96 (new feature) Added support for images as primitive types in
text widgets. (SU)

11/30/96 (configuration improvement) Modified configure.in to handle the
case where Tcl and Tk are installed in different places by including both