File: changes.html

package info (click to toggle)
xmhtml 1.1.7-7
  • links: PTS
  • area: main
  • in suites: woody
  • size: 6,104 kB
  • ctags: 8,347
  • sloc: ansic: 68,063; makefile: 496; sh: 161; perl: 36
file content (2532 lines) | stat: -rw-r--r-- 92,636 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
	<TITLE>XmHTML: Description of Changes</TITLE>
	<META HTTP-EQUIV="Keywords" CONTENT="XmHTML, HTML, Motif, Widget, eXode, XntHelp, Linux">
	<META HTTP-EQUIV="Reply-to" CONTENT="ripley@xs4all.nl">
	<META HTTP-EQUIV="Description" CONTENT="description of XmHTML development">
	<META NAME="Author" CONTENT="Koen D'Hondt">
	<META NAME="Copyright" content="1995-1997 by Ripley Software Development">
	<META NAME="Source" content="$Source$">
	<META NAME="Revision" content="$Revision$">
	<meta name="font" content="helvetica">
<!--
	<base href="http://www.xs4all.nl/~ripley/eXode/">
-->
	<link rev="made" href="mailto:ripley@xs4all.nl">
	<link rel="home" href="http://www.xs4all.nl/~ripley">
	<link rel="previous" href="XmHTML.html">
	<link rel="copyright" href="copyrights.html">
	<link rel="TOC" href="XmHTML.html#toc">
</HEAD>

<BODY BGCOLOR="#FFFFFF" text="#000000">

<h1>XmHTML Current State</h1>
This page is updated almost on a daily basis and describes changes, bugfixes,
personal frustrations and victories, milestones and release dates of past,
present and future XmHTML alpha versions.
<p>

The first entry dates back to november 12, 1996. While this may seem a long
time, <a href="mailto:ripley@xs4all.nl">I'm</a> doing the development
single-handed, making stupid mistakes, writing, rewriting and re-rewriting
code. XmHTML has come a long way since then and it's gaining more attention
every day. The XmHTML Developers mailing list currently contains about 120
subscribers, and it's still growing.
<p>

This document gives a fairly good description on how XmHTML is progressing,
and, most of all, it shows that XmHTML is a project that is <b>alive and
kicking!</b>

<p>
<a name="CurrentState"><IMG SRC="../Images/wood/bar.gif"></a>
<P>

<dl>
<dt>October 6
<dd>Hmm, I've been lazy updating this page. Here's what I've been doing
	during the past weeks:
	<p>

	<ul>
	<li>ToolkitAbstraction: been doing a few tests related to formatted
		text output. These tests went rather smooth: without too much trouble
		I have gotten XmHTML to render on an off-screen pixmap instead of
		the display. The next step is to start overriding the composing
		postscript versions of the various members of the ToolkitAbstraction.

		<p>
		<!--
			Here's a perfect example of the wonderfull magic of
			XmHTML's HTML parser: above is a single <p> without a closing
			equivalent *before* the next list element. Since the
			standard does not allow tags to be nested, the parser will
			add a closing <p> by itself before opening a new list
			item. XmHTML will thus render the following paragraph as a
			*real* paragraph, e.i., a newline will be present between
			the last sentence of the paragraph and the first sentence
			of the next list item. And this is exactly what is required
			by the spec! All other browsers *will* get this wrong....

			BTW: if you're reading this, your browser is getting confused by
			the presence of &lt;p&gt; (which should read &amp;gt;p&amp;lt;
			and not &lt;p&gt; or your browser is interpreting raw HTML
			source in addition to getting comments wrong!)
			in the above -- and this as well -->
			comment: you are being deceived by your browser. Use
			the source, Luke!
		-->

		I've been also working on making access to the ToolkitAbstraction
		structure possible so application programmers will be able to
		override or augment the default ToolkitAbstraction without
		having to access XmHTML's internals.
	<li>Made a beginning with I18N. <a href="mailto:Rob.Johnson@Eng.Sun.COM">
		Rob Johnson</a> has been working on patching XmHTML so it will render
		multibyte characters. His work will form the basis of XmHTML's I18N
		support. I am planning to extend his work much further to make
		XmHTML truly multilingual. This will require support for both the
		<a href="http://www.w3c.org/">HTML 4.0</a> <tt>lang</tt> and
		<tt>dir</tt> attributes and the addition of a resource that
		allows one to define a language-character set mapping.
		<p>

	<li>HTML4.0 events: <a href="mailto:belloer@gemse.fr">Eric Bello</a>
		reported a fundamental flaw in the event handling: processing
		of an event during the XmNeventCallback may result in the 
		current document being modified, which will lead to a bunch of
		FMR's and often a crash.
		<p>

		As a result, <b>a new field</b>, <tt>doc_modified</tt>, has been added
		to the <b>XmHTMLAnchorCallbackStruct, XmHTMLEventCallbackStruct</b>
		and <b>XmHTMLFormCallbackStruct</b> callback structures. If this
		field is set to <b>True</b>, XmHTML will no longer reference any
		data structures referring to the (now obsolete) document when the
		callback routine returns. With the exception of the <b>onLoad</b>
		and <b>onUnLoad</b> HTML4.0 events, document modification during
		anchor, event or form callback procedures should be properly
		supported.
	<li>XmHTML now fully supports the following HTML4.0 events:
		<p>

		<ol>
		<li>&lt;A&gt; element: onClick, onMouseDown, onMouseUp, onMouseOver,
			onMouseMove, and onMouseOut
		<li>&lt;BODY&gt; element: onLoad and onUnLoad.
		</ol>
		<p>

	<li>In some cases it could happen that a XmNtrackCallback callback
		procedure was not properly activated when moving from
		one anchor to another (anchors rendered close to each other, a
		user moving very fast from one anchor to another). This has
		been properly fixed.
		<p>

	<li>Fixed a bug in the parser: in some cases, the document repair routines
		could misbehave on nested elements (especially with tables). The
		rules employed by the parser to deal with this have been updated.
		<p>

	<li>Assorted bugfixes (including an important one in named anchor lookup
		and an equally important one in text justification) and minor code
		changes (typecasts to deal with strict c++ compilers) reported by a
		couple of XmHTML users.
	</ul>
	<p>

	In addition to the above, I've also been thinking about restructering
	the source tree and splitting the code in common and toolkit-dependent
	parts. XmHTML will be placed onto the GNOME CVS repository
	shortly which should speed up the development of the gtk-xmhtml port and
	XmHTML considerably . To keep a clean oversight and make life easier for
	the gtk-xmhtml developers and myself, a restructured source tree is very
	much desired.
<p>

<dt>September 11
<dd>Fixed a couple of serious bugs in the table layout algorithm with respect to nested
	tables. Not entirely perfect yet but things are looking much better.
	<p>

	I seem to have fixed the layout bug properly, although I still need to
	verify vertical positioning of images and make a few changes to the
	layout computation of preformatted text. Proper rendering of table
	borders is also much closer to the real thing.
	<p>

	A few problems still remaining: proper handling of getting and setting line
	numbers. This has been thrown of balance since the positions of all
	text-based objects has slightly changed. I have added a (temporary) fix which
	seems to work satisfactory for now.
	<p>

	Nevertheless, the <strong>long</strong> awaited <b>XmHTML/Beta Version 1.1.5</b>
	has been released as of today.
<p>

<dt>September 9
<dd>Added Setvalues support for the XmNenableIconEntities,
	XmNiconAlignment and XmNtabWidth resources.
	<p>

	Added support for the above resources to examples/example_2.
	<p>

	Fixed a bug in the parser: XmHTML could reference an invalid parser
	tree when a convenience routine was called from inside a
	XmNdocumentCallback callback function. This in could cause XmHTML
	to crash.
<p>

<dt>September 4
<dd>Added the XmNtabWidth resource: this resource allows one to adjust
	the width of a horizontal tab in preformatted text.
	<p>

	Fully incorporated support for W3C icon entities. Added the
	XmNenableIconEntities and XmNiconAlignment resources.
<p>

<dt>September 1
<dd>Updated the XmHTML manual page. I also seem the have the layout bug
	resolved properly.

<p>

<dt>August 31
<dd>Didn't get much to do on XmHTML since I spent almost the entire day
	trying to recover XmHTML's latest sources after one of my disks died
	a horrible, screeching death. I did manage to get the disk spinning again
	by messing with the hardware, only to find it was totally wasted.
	I won't bother you with further details, I'll suffice to say I had to wade
	through a dump of over 2gig to recover them...
	<p>

	As a result I transferred development to another system which supports
	full mirroring (an IBM 42T in case you're interested).
	<p>

	It was waaaay past midnight when I finally had everything up and running
	again.
<p>

<dt>August 30
<dd>Reworked the history mechanism in the examples, it works much better
	after I added two convenience functions that allow one to test the
	visibility state of a hyperlink: <tt>XmHTMLAnchorVisibleById</tt> and
	<tt>XmHTMLAnchorVisibleByName</tt>.
	<p>

	Fixed a few bugs here and there. Most importantly,
	<tt>XmHTMLAnchorScrollToId</tt> could cause a buffer overrun and
	subsequently bring XmHTML to a grinding halt.
<p>

<dt>August 27
<dd>Minor bug fixes, comment updates. Started to merge in code donated
	by Eric Bello (<a href="mailto:belloer@gemse.fr">belloer@gemse.fr</a>)
	for embedded object support.
<p>

<dt>August 25
<dd>Code review, I need to familiarize myself again with the code, it's
	been almost three months since I had a look at it...
	<p>

	Came a long way with fixing a fundamental flaw in the layout code.
<p>

<dt>August 24
<dd>I've finally recovered from back problems and a fractured wrist, so
	after a very long delay I've started working on XmHTML again.
	<p>

	<b>
	Target date for (the long overdue) XmHTML Beta 1.1.5 is set for
	Thursday, September 3, 1998.
	</b>
<p>

<dt>June 4
<dd>Made a start with updating and correcting the manual pages and
	other documentation.
	<p>

	Made a beginning with the implementation of support for embedded
	objects. This will allow programmers to dynamically add their own
	HTML extensions, create external widgets or start up applications and
	bring them under XmHTML's management. This <b>hugely</b> extends
	XmHTML capabilities! 
	<p>

	I also made some progress with further implementation of the 
	ToolkitAbstraction. Still needs some work though.
	<p>

	Played around with adding autoconf/automake support to the XmHTML
	source tree. This basically works but needs a lot of tweaking before
	this system is fully functional. Things that work are:
	<p>

	<ul>
	<li>automatic detection of the image libraries (including version checks);
	<li>static libXmHTML is successfully build on Linux 2.0.32 and AIX 4.1.5;
	<li>static libhttp is successfully build on Linux 2.0.32 and AIX 4.1.5;
	<li>all examples are successfully build;
	</ul>
	<p>

	Building shared libraries needs to be tested.
	<p>

	Things that don't work (yet) are:
	<p>

	<ul>
	<li>generating dependency information. This utterly fails;
	<li>installing the resulting libraries;
	<li>building the book, contrib and tools directories;
	<li>make clean and make distclean completely explode;
	<li>making distributions;
	<li>make includes is useless;
	<li>the current setup conflicts with the current Imakefile configuration.
	</ul>
	<p>

	I expect to solve these problems during the coming weekend. Stay tuned.
<p>

<dt>May 25
<dd>The scrolling problem reported by a number of people finally seems to be
	solved!
	<p>

	<a href="mailto:belloer@gemse.fr">Eric Bello</a> submitted an optimization
	for the scrolling which simply collapses all outstanding motion events.
	The entire chain of events caused by fast scrolling is now more or less
	handled synchronously and thus this (very important fix) should ensure
	that the screen is finally updated properly.
	<p>

	Since this approach <b>may</b> lead to jumpy scrolling on some systems,
	the XmNsmoothScrolling resource has been introduced. If <b>True</b>,
	XmHTML will use not collapse motion events and scrolling will always be
	smooth.
<p>

<dt>April 27
<dd><b>Released XmHTML/Beta Version 1.1.4.</b>

<p>

<dt>April 26
<dd>A day dedicated to bugtracking (with many thanks to
	<a href="mailto:ruff@comsys.dofn.de">Marcel Ruff</a> for keeping me
	busy...)
	<p>

	Modified the XmImageProc definition from:
	<pre>typedef XmImageInfo*(*XmImageProc)(Widget, String, XtPointer);
	</pre>
	to
	<pre>
typedef XmImageInfo*(*XmImageProc)(Widget, String, Dimension, Dimension, XtPointer);
	</pre>
	The new arguments are the width and height as specified by the
	<tt>width</tt> and <tt>height</tt> attributes on the <tt>&lt;IMG&gt;</tt>
	tag. 
	<p>

	This change offers more flexibility for external image caches and
	is consistent with the way XmHTML performs internal image caching:
	internally, XmHTML caches images on a per-document basis: before the
	XmNimageProc resource is called, XmHTML looks at the list of images
	already loaded for that document. If it finds an image with the
	same url <b>and</b> dimensions, that image is reused instead of reloaded.
	Previously, this could lead to inconsistency (images with incorrect
	dimensions or images not appearing at all) with external image caches
	that only use the filename or url of a loaded image. 
	<p>

	Several bugfixes:
	<ul>
	<li>document color handling: if a color was referenced multiple times
		in the same document, it never got properly freed. This could lead
		to pretty weird situations and in some cases an X protocol error;
	<li>image scaling for simple transparent images: the created clipmask was
		worthless because it used an incorrect reference value for the
		transparent pixel;
	<li>replacing/updating animations: when an animation was replaced or
		updated with a non-animated image, the data was freed properly but
		the animation flags were not properly reset. This lead to a crash
		because XmHTML was trying to render frames that were no longer
		present.
	</ul>
<p>

<dt>April 18
<dd>Fixed an important buffer overrun in the parser that made XmHTML terribly
	unstable...
<p>

<dt>April 13
<dd>Greatly improved the table layout algorithm. XmHTML now uses a separate
	routine to compute the layout inside each cell. This enables XmHTML
	to make a proper distinction between cells that contain a multitude of
	images, special centering and linebreaking rules. It also sped up the
	layout computation of documents without tables in them.
	<p>

	It's not yet perfect but I'm getting there.
<p>

<dt>April 8
<dd>Fixed a few important bugs in table rendering: while scrolling a table
	with a background specification, the entire background would be repainted
	but only the newly scrolled content would be rendered making the existing
	content invisible.
	<p>

	Loosened HTML conformance checking when the
	<a href="man/HTML.html#XmNstrictHTMLChecking"> XmNstrictHTMLChecking</a>
	is set to <b>False</b>: font changes are now allowed to cross all
	HTML container elements (<tt>&lt;H1&gt, &lt;DIV&gt;...</tt>). 
	<p>

	Anchors are now rendered using the current background color instead of
	the document background color.
	<p>

	Enhanced the parser to automatically detect and correct a tag without 
	a greater than sign (<tt>&gt;</tt>).
<p>

<dt>April 4
<dd><b>Released XmHTML/Beta Version 1.1.3.</b>
	<p>

	Moved all warning messages in a stringtable and made a number of other
	changes to reduce the data size of the library. That succeeded fairly well,
	it decreased with more than 20kb.
	<p>

	Made a few changes in exposure handling, tables seem to behave themselves
	a lot better now.
<p>

<dt>April 3
<dd>A few more optimizations in the document formatter: introduced a
	generic Stack class and replaced a few small but often used functions by
	macros.
	<p>

	Fixed a small bug in table layout: content of cells with a single
	line of text in them is now properly centered.
	<p>

	Fixed an important bug in image scaling: previously, XmHTML modified
	the original image data directly, leading to quality loss when the
	same image but with the original dimensions is referenced later. XmHTML
	now works with a copy of the original data when scaling is to be
	employed.
<p>

<dt>April 1
<dd>Added support for relative image dimensions;<br>
	A few optimizations in tag attribute checking: tag attributes are now
	made caseless when the document is parsed, so attribute checking can now
	be done caseless as well.
	<p>

	The <tt>COLOR</tt> attribute for horizontal rules (&lt;HR&gt;) is now
	also supported for rules <b>without</b> the <tt>NOSHADE</tt>
	attribute set.
<p>

<dt>March 13
<dd>Added the XmHTMLGetDocumentInfo convenience routine. This routine returns
	a list of all images and hyperlinks contained in a document, allowing
	one to display the structure of a document.
<p>

<dt>March 12
<dd>Bummer, haven't had much time the last weeks to work on XmHTML.
	Nevertheless, the following changes have been made:
	<p>

	<ul>
		<li>Started with making daily distributions of my current source
			tree. This way you are always able to have a look at what
			I'm doing (or trying to). <a href="getit.html">This</a> page
			tells you a bit more about it.
		<li>Fixed a couple of bugs in image layout: paragraphs consisting
			only of images now have their spacing corrected, no needless
			horizontal or vertical spacing is added if none has been found
			in the input. This improves table layout a lot. Check
			<a href="http://www.babylon5.com">http://www.babylon5.com</a>
			and see how netscape gets it (a bit) wrong. 
		<li>Default bordering on images has been made context-dependent: if
			it's a hyperlink, the default is to add a border, it it's not
			a hyperlink, no border is added. Of course this only applies to
			images which don't have the <tt>BORDER</tt> attribute set.
		<li>Imagemap support has been improved. In some cases, XmHTML
			would ignore a client-side imagemap if the image using an imagemap
			was wrapped inside an anchor.
		<li>a few bugfixes here and there.
	</ul>
			
<p>

<dt>February 15
<dd>Added full text searching using POSIX 1. regular expressions. Works quite
	well if I may say so...
<p>

<dt>February 12
<dd>Fixed an annoying parser bug: trailing contents in closing tags wasn't
	properly ignored which could lead to badly formatted documents.
	<p>

	Converted two routines heavily used by the parser to macros to speed
	it up a little.
	<p>

	Fixed a bug in anchor painting: when anchor highlighting is turned off,
	anchors now return to their normal state when they are deselected.
	Previously they would be painted with the highlightcolor.
<p>

<dt>February 9
<dd>Introduced some much needed optimizations after performing some
	profiling tests: XmHTML now spends less time in color
	allocation (in some tests even less than 65 percent), caseless string
	matching and the GIF decoders.
	<p>

	Fixed some bugs in the 16bit RGB color matching code.
<p>

<dt>February 7
<dd>More table fixes: width of nested tables &amp; spanned cells finally
	computed correctly.
	<p>

	Modified all color allocation routines to work with 16bit RGB values and
	subsequently modified the image readers, quantizer and dither engines.
	Sped up dithering of JPEG images and did some prelimenary work on 16bit
	image support.
	<p>

	Modified colorhashing to reduce the number of collisions.
<p>

<dt>February 1
<dd>Loosened parsing of RECT <tt>&lt;AREA&gt;</tt> coordinates: any sequence
	of non-digit characters is now considered a separator
	(<a href="http://www.infoseek.com">www.infoseek.com</a> is a site 
	containing very nice examples of <b>bad</b> HTML).
<p>

<dt>January 29
<dd><b>Released XmHTML/Beta Version 1.1.2.</b>
<p>

<dt>January 28
<dd>It's been a while since the last update. I have been rather occupied with
	other items since the last update, but nontheless, a few improvements
	have been made:
	<p>

	<ul>
	<li>Table support is nearing it's completion: borders are rendered,
		cells can have a background color or image, row and cell spacing is
		treated correctly, tables can be nested almost indefinitly and
		dimensions are calculated properly.
		<p>

		Exposure handling still suffers from a few quirks: although only
		the exposed region is redrawn, sometimes Expose events seem to be
		missed and scrolling seems to lose a few pieces of text here and
		there.
		<p>

		The only real loose end is vertical alignment.

	<li>A number of bugfixes in Imakefiles and examples;
	<li>Explicit linebreaks are now properly ignored when they follow an
		implicit one (e.i, a <b>&lt;BR&gt;</b> when the current line already
		caused a linebreak);
	<li>XmHTML has been ported to Gtk for use with the
		<a href="http://www.gnome.org">Gnome</a> Project;
	<li>Cookie support has been added to libhttp;
	</ul>
<p>

<dt>December 31
<dd>Happy Newyear!
<p>

<dt>December 15
<dd>HTML Form widgets are no longer actively destroyed when the parent
	HTML widget is destroyed. Previously, this lead to an XError. Bugfix
	thanks to <a href="mailto:offer@sgi.com">Richard Offer</a>.
	<p>

	<b><tt>&lt;BR&gt;</tt></b> bugfixes:
	<ul>
	<li>If a line is ended by a linebreak, any leading space for the first
		word on the next line is removed. As a result of this, text
		justification no longer shifts this word;
	<li>Paragraphs containing a linebreak could incorrectly double the
		end-of-paragraph spacing.
	</ul>
<p>

<dt>December 14
<dd>Fixed a bug in anchor rendering when it is the first object in a page:
	XmHTML couldn't find a proper starting point and didn't render the
	anchor at all.
	<p>

	Fixed a bug related to empty named anchors, they used to reset the
	left margin (this one has been lurking under the carpet for a very
	long time...).
	<p>

	Some improvement in table exposure handling.
<p>

<dt>December 13
<dd>Modified handling of the XmNenableBadHTMLWarnings resource: you can now
	select what type of errors the parser detects will be shown.
<p>

<dt>December 11
<dd>libhttp: the <tt>HTTPHEAD</tt> HTTPLoadMethod now supports both 
	HTTPLoadToFile and HTTPLoadToString. For the latter, any received headers
	are stored in a new <tt>headers</tt> (array of type
	<tt>HTTPNamedValues</tt>) field in the HTTPRequest return structure.
	<p>

	HTML tables: cell width takes horizontal margin into account properly.
	Previously, the cell width tended to be too small for the widest cell.

	Bugfix: linebreaks contained in anchors are no longer rendered.

	<p>
	Fixed a number of bugs in the Imakefiles.
<p>

<dt>December 9
<dd>HTML tables:
	<p>

	<ul>
	<li>Fixed handling of the <tt>ROWSPAN</tt> attribute: the extra
		vertical space is now distributed evenly accross spanned rows;
	<li>fixed an (important) baseline handling bug;
	<li>cells now reset the linebreaking mechanism: each cell represents a
		minipage that <b>must</b> start with a clean slate. Previously
		paragraph breaks were transferred accross rows and cells.
	</ul>
<p>

<dt>December 8
<dd>Fixed a small redraw bug in XmBalloon popup.
	<p>

	Changed the handling of &lt;BR&gt; tags: they are now treated as text
	objects. This fixes a bug in table cell content rendering if a table
	is placed in an intended paragraph.
	<p>

	Added the Composite Extension fix.
<p>

<dt>December 4
<dd><b>Released XmHTML/Beta Version 1.1.1.</b>
<p>

<dt>December 3
<dd>Nested tables seem to be working almost flawlessly. Added partial
	support for the <tt>BGCOLOR</tt> attribute on all table elements.
	Still scrolling problems and offsets between different child tables
	doesn't always work correctly.
	<p>

	Loosened the parser to allow appearance of the <tt>&lt;P&gt;</tt>
	element inside elements it shouldn't be appearing the
	<a href="man/HTML.html#XmNstrictHTMLChecking">XmNstrictHTMLChecking</a>
	resource has been set to false. 
<p>

<dt>December 1
<dd>Tables are really going now: the <tt>COLSPAN</tt> and <tt>ROWSPAN</tt>
	attributes are now working. Table margins, cell and row padding also
	seems to work. If you care to take a look at a sneak preview, 
	<a href="../Images/table_preview.gif">click here</a> and be amazed :-))
<p>

<dt>November 26
<dd>More work on table layout: cell heights are now computed correctly,
	cell and rowspacing works, cell and row spanning should work.
	Nested tables also seems to work but has received little testing.
<p>

<dt>November 25
<dd>First success at table displaying! The layout algorithm seems to work
	rather well (and fast!). Details aren't rendered yet (borders, background
	color or image), suppport for cell and row spanning hasn't been
	added and scrolling is sometimes messed up, but the borderline is: the
	basic table layout computation algorithm works, and it works damn GOOD!
<p>

<dt>November 21
<dd>Finally found a satisfying design for table support. Extended the
	document formatter to fill in the table data structures.
<p>

<dt>November 20
<dd>Internal changes to the parser as preparation for progressive document
	loading. Temporarely removed the ParserObject from the XmHTML Widget
	library.
<p>

<dt>November 14
<dd>Played around with the HTML 4.0 event model: added the
	<a href="man/HTML.html#XmNeventProc">XmNeventProc</a> resource to parse
	any scripts attached to these events and added the
	<a href="man/HTML.html#XmNeventCallback">XmNeventCallback</a> callback
	resource whenever an event should be served.
	Support for <b>all</b> HTML4.0 events is present in the code but
	currently only the <i>onMouseUp</i> and <i>onMouseDown</i> events
	are support for anchors.
	<p>

	Still thinking about a decent and fast way to handle tables.
<p>

<dt>November 12
<dd>Some small performance increases in the document formatter: whenever
	possible, objects are reused instead of being deleted.
<p>

<dt>November 11
<dd>Played around a bit with the HTTP.c code in the contrib dir:
	<p>

	<ul>
	<li>added a timeout on the connect() call using either setsockopt() or a
		bruteforce alarm() on systems that don't have support the SO_RCVTIMEO
		setsockopt flag;
	<li>added a select() on read() using a user-specified timeout and retry
		count;
	<li>added a small tool, httpget.c, in the tools directory demonstrating
		a fairly straightforward use of the HTTP code. This little tool can
		fetch an URL from any site you give feed it.
	</ul>
	<p>

	The result of the above changes is that loadHTTPURL will <b>never</b>
	block again.
	<p>

	Modified a few routines in parse.c so that they can now be shared by
	both XmHTML and XmHTMLParser.
	<p>

	Small bugfix in ScrollToLine.
<p>

<dt>November 10
<dd>Added the <b>XmNclientData</b> resource. This resource allows one
	to provide a pointer to client data that should be provided as the
	last argument to any function installed on any of the functional
	XmNanchorVisitedProc and XmNimageProc resources. As a logical
	consequence, the corresponding typedef for these resources now have
	one additional argument of type <tt>XtPointer</tt>.
<p>

<dt>November 8 and 9
<dd>Working on tables;<br>
	Much work on example_2.c: I'm completely rewriting it in a rather
	modular way where a basic Browser object can act in four different ways:
	as a complete browser, as member of a HTML frameset, as a popup window
	and as the desktop window. All of which can be used in every possible
	combination.
<p>

<dt>November 3
<dd>All resource strings used by the XmHTML Widget Library are now placed
	in a separate header file called HTMLStrings.h.
<p>

<dt>November 2
<dd>Added a XmBalloon widget to the library. This is a simple
	&quot;tooltip&quot; widget that can be popped up to display a small
	string. The string can be displayed in a rectangle or an oval (the
	latter is achieved using the Shape extension). example_2.c contains
	a possible usage: whenever an anchor is entered that contains the
	title attribute, this tooltip is popped up. 
<p>

<dt>October 31
<dd>Modified example_4 so it now also compiles and runs with X11R5 (or
	earlier)<br>
<p>

<dt>October 28
<dd>CDE and Solaris related Imakefile fixes and a workaround for a possible
	bug in SparcWorks cpp.
<p>

<dt>October 26
<dd>Bugfix: the widget's size wasn't always correctly set at creation
	time.<br>
	Modified XmHTML's translation table: anchor selection/document
	scrolling now works with any key combinations but Shift, Meta and Ctrl.
	The previous table masked of <b>all</b> modifiers, making the widget
	practically unseable if, for instance, the NumLock key was active.
<p>

<dt>October 22
<dd>Bugfix on vertical scrolling: any vertical scroll requests are now
	properly ignored when the currently loaded document doesn't have
	a vertical scrollbar.
<p>

<dt>October 21
<dd>XmHTML's form support is now complete: the XmNformCallback is now
	fully implemented thanks to
	<a href="mailto:offer@sgi.com">Richard Offer</a>!<br>
	Richard also provided a simple HTTP/1.0 implementation. A <b>big</b>
	round of applause!
<p>

<dt>October 11
<dd><b>Released XmHTML/Beta Version 1.1.0.</b>, the first XmHTML Beta
	Release.
<p>

<dt>October 10
<dd>Last preparations for the XmHTML Beta 1.1.0 release.
	<p>

	Fixed a small bug in local anchor jumping: XmNanchorVisitedUnderlineType
	resource wasn't properly honored.
	<p>

	Removed a number of unused resource class names from the XmHTML
	string table (1kb of data), added the XmCAnchorUnderlineType resource
	class and corresponding converter and added a warning message to the
	parser (in some cases it forgot to complain about closing elements
	without an opening counterpart).
	
<p>

<dt>October 9
<dd>Added a &quot;fast&quot; mode to the parser which entirely bypasses
	the document verification and repair routines (as if it wasn't fast enough
	already :-) If you are absolute sure that a document is fully compliant
	with the HTML3.2 standard, and all elements for which termination is
	optional <b>have</b> a terminator, setting the value of the
	<a href="man/HTML.html#XmNmimeType">XmNmimeType</a> resource to 
	<tt>text/html-perfect</tt> will select the fast parser.
<p>

<dt>October 8
<dd>Finally fixed a very annoying bug: when the widget is created, the height
	wasn't always computed correctly, leading to incorrect screen updates when
	scrolling (small gaps appeared). The only way to get around this bug was
	to resize the widget. It turned out that the core class height gets
	modified sometime <b>after</b> the Widget's Initialize method has been
	called, but before it is being mapped to screen. What causes this is a
	mystery to me.
	<p>

	Final preparations for the first official Beta release, 1.1.0: added
	a collection of manual pages that describe each and every convenience
	function offered by XmHTML and updated the (hugely out of data) widget
	description.
<p>

<dt>October 7
<dd>Dithering to a fixed palette is now fully possible. There are four
	different methods available (closest match without error correction,
	ordered with and without error correction and closest match with error
	correction). You can specify a palette using the XmNimagePalette resource
	or let XmHTML create one for you. 
<p>

<dt>October 6
<dd>Working on implementing support for the XmNimageMapToPalette and
	XmNimagePalette resources, which allow you to define a palette for XmHTML
	to use. Besides the obvious advantages this can offer, another advantage
	is a rather large speedup when switching pages: since a palette contains a
	fixed number of colors, XmHTML can allocate all colors on startup and 
	doesn't have to free them until it is destroyed. This obliterates the need
	to release allocated colors each time a new page is loaded.
<p>

<dt>October 3
<dd>Replaced the current quantizer with a compacter and faster one. Previously
	XmHTML carried two quantizers: one for global use and one specifically
	for PNG images.
	<p>

	Fixed a bug in the colormap reading code of GIF images.
<p>

<dt>October 2
<dd>Fixed a small bug in form handling: optionmenu's didn't get reset when
	the reset button was pressed.
<p>

<dt>September 28
<dd>Added support for Fast Loadable Graphics. This is a format especially
	designed for XmHTML and optimized for <b>very</b> fast loading of images.
	The FLG format is actually nothing more than a compacted version of the
	XmImageInfo structure, and as such it supports plain transparency,
	alpha channel and animations (with all GIF disposal methods).
	<p>

	Data can be stored either compressed or uncompressed. Uncompressed FLG's
	are the fastest possible way to load an image into XmHTML, but they can
	take up a huge amount of space. A funny thing I noticed though is that,
	quite often, an <b>uncompressed</b> FLG takes up <b>less</b> space
	than the same image saved as a GIF image...
	<p>

	Animation support: the global colormap of an animation is now only
	allocated once for the entire animation instead of being allocated for
	each frame separatly. This has two significant advantages: memory usage is
	reduced and less time is spent in allocating colors. XmHTML will now also
	use the global colormap if the local colormap of an animation frame is
	equal to the global colormap.
<p>

<dt>September 26
<dd>Some changes to reduce memory usage:
	<p>

	<ul>
	<li>Changed the type of the color component fields of the XmImageInfo
		structure from signed int to unsigned short (can save up to 1.5kb
		per image). Modified all internal color allocation routines as well;
	<li>the size of the clipmasks is now computed correctly: storage
		occupied by clipmask data has been reduced by a factor 8;
	<li>alpha channel processing of PNG images been modified to use a colormap 
		instead of full RGBA quartets: the 24bit RGB data is converted to an
		8bit paletted image and the alpha channel is stored separatly.
		This reduces the memory occupied by these images with at least a
		factor two;
	</ul>
<p>

<dt>September 22
<dd>A lot of improvements in the font allocation/caching routines:
	<p>

	<ul>
	<li>a separate font cache for each display is now maintained.
		The previous scheme didn't look at which display it was running while
		the font cache was shared between every XmHTML instance.
		Displaying multiple instances of a XmHTML widget on different
		displays should now be possible;
	<li>made the font caching scheme a lot more efficient and removed the
		limit on the maximum number of loadable fonts (it now uses a binary
		tree lookup instead of a lineair search through a table with fixed
		size;
	<li>fonts are now freed when the widget is destroyed (that is, the actual
		font data is only freed if the widget being destroyed is the last
		widget using a display-bound font cache);
	<li>modified the internal data structures so font properties are now
		stored with each font instead of calculating them each time the layout
		needs to be recalculated;
	</ul>
	<p>

	One very <b>major</b> performance enhancement is the introduction of a
	smart font mapping scheme which maps unknown font names to known ones. 
	I am particularly pleased with this scheme, it allows XmHTML to map fonts
	it does not know in the beginning to known ones later one. Assuming the
	helvetica font is present in your font path and arial isn't, the following
	happens: when XmHTML encounters a <tt>&lt;FONT&nbsp;FACE="Arial"&gt;</tt>
	tag, it will not know to which font it should be mapped and it will use the
	default font (whatever that is). However, when at a later stage a
	<tt>&lt;FONT&nbsp;FACE="Arial,Helvetica"&gt;</tt> is encountered, XmHTML
	will see that this <tt>Arial</tt> font can be mapped to the
	<tt>Helvetica</tt> font (which it does known), and as a result, any future
	reference to the <tt>Arial</tt> font will be mapped to the
	<tt>Helvetica</tt> font. XmHTML <b>is</b> smart enough to take any
	combination of weight, slant and size into account when making these
	decisions.
	<p>

	Performance tests with the new font caching and mapping schemes show some
	very satisfactory results: the cache hit ratio is steadily increasing,
	approaching 90 or more percent after about 10 documents with different
	fonts have been loaded. The average number of search actions seems to
	remain steady around 7 in this case. The font cache contained 55 fonts
	(including 10 font mappings) in various families, sizes and styles.
	<p>

	As a side note: this new ``font technology'' allows users to define
	their own font mapping by providing a document with a list of simple font
	mappings. Click <a href="font_map.html">this link</a> for a sample
	document.
	<p>

	Before I forget: I made the builtin cursor allocation display-independant
	as well.
<p>

<dt>September 21
<dd>First success at flowing text around images with the <tt>ALIGN="LEFT"</tt>
	or <tt>ALIGN="RIGHT"</tt> attribute set.
<p>

<dt>September 20
<dd>Small parser bugfix: mime type of a new document wasn't properly saved.
	<p>

	Added a ``View Document Source'' menu item to example_2 and fixed a bug
	in jumping to locations in different files.
<p>

<dt>September 18
<dd>Fixed a few important bugs:
	<ul>
		<li>imagemap list wasn't properly reset when a document was
			reformatted. Could lead to a SIGSEGV in some cases;
		<li>list of anchor data wasn't properly reset in some cases;
	</ul>
	<p>

	XmHTML now properly honors the <b>XmNstringDirection</b> resource:
	when set to <i>XmSTRING_DIRECTION_R_TO_L</i>, text is properly inversed.
	Paragraphs contents are ordered from bottom to top. Needs a bit more
	work though: list markers are always left-aligned at the first line of
	a paragraph instead of right aligned at the bottom.
	<p>

	Modified the linebreaking algorithm to handle line/paragraph breaks
	properly when the paragraphs contain non-text objects (HTML form components
	and images).
	<p>

	Table support: changed the text layout algorithms to work independantly of
	XmHTML's dimensions. They now use a (dynamically adjustable) bounding box.
<p>

<dt>September 16
<dd>When the title of a document is requested, leading and trailing spaces
	are now removed.<br>
	Added the <i>HeadDocType</i> mask bit to <b>XmHTMLGetHeadAttributes()</b>
	convenience function. When set, the value of the &lt;!DOCTYPE&gt; tag
	will be returned.
	<p> 

	Improved path resolution and mime detection routines in example_2.c
<p>

<dt>September 10-12
<dd>Some prelimenary work on <b>XmHTMLTextGetFormatted()</b>
<p>

<dt>September 4
<dd>Fixed a few important memory leaks. One of those caused the stored anchor
	data never to be freed.
	<p>

	Reverted a few bad fixes.
<p>

<dt>September 1
<dd>XmHTMLTextSetString fix, text was always rendered twice.
	<p>

	Moved all resources into a stringtable. This actually seems to introduce
	a rather noticable speedup in document loading. Haven't got the slightest
	clue why this happens.
<p>

<dt>August 29-31
<dd>Numerous bugfixes &amp; memory leak fixups. A <b>grand</b> applause to
	<a href="mailto:rlr@wscoe5.atl.hp.com">Ricky Ralston</a> for having the
	courage to run XmHTML through purify. Thanks Ricky!!
	<p>

	Started with daily snapshot distribution.
<p>

<dt>August 28
<dd><b>Released XmHTML/Alpha Version 1.0.21.</b>, last Alpha release. The
	next release will be the first publically available Beta.
<p>

<dt>August 26
<dd>Rewrote and extended &lt;PRE&gt; support greatly. Plain text, form
	components and images can now be mixed freely.
	<p>

	Some minor changes in anchor rendering: anchors are now only extended to
	the right when there is room for it, they no longer cover adjacent text
	when activated. Fixed highlighting of transparent anchored images. 
	<p>

	Added the <b>XmNimageRGBConversion</b> resource which allows one to select
	the conversion method XmHTML should use when converting 24bit to 8bit
	images.
	<p>

	Some minor fixes in the SetValues method: XmHTML now only triggers
	a redisplay if a resource change requires it.
<p>

<dt>August 25
<dd>Changed the proto's for
	<a href="images.html#XmHTMLImageReplace">XmHTMLImageReplace()</a> and
	<a href="images.html#XmHTMLImageUpdate">XmHTMLImageUpdate()</a>&nbsp;:
	they now return a status indicating whether or not the document needs
	a recomputation of document layout if an image is replaced or updated.
	<p>

	Fixed a bug in the default image processing: when images were delayed, the
	delayed icon wouldn't show up. I forgot to properly propagate the image
	dimensions.
<p>

<dt>August 21, evening
<dd>Fully restored PNG alpha channeling support, there was a silly bug in
	doing the 24 to 8 bit conversion. Alpha channeling is now also supported
	for delayed images and any combination of background setting, set either
	via the loaded document or the SetValues method.
	See <a href="http://www.xs4all.nl/~ripley/eXode/png_demo.html">XmHTML PNG
	Demo</a> for some screenshots.
	<p>

	Transparent background images are now also supported.
<p>

<dt>August 21, morning
<dd>Fixed a bug in delayed image loading that caused a fatal crash when
	the delayed image was freed.
	<p>

	Progressive and normal image loading now share the same XImage creation
	and update routines. Also fixed clipmask creation for progressively
	loaded images.
	<p>

	Rewrote most part of the handling of PNG images with an alpha channel.
	<p>

	Several bugfixes and changes to example_2 and it's caching routines.
<p>

<dt>August 20
<dd>HTML form support: vertical scrolling of a document with a HTML form in
	it should now be correct whether or not a horizontal scrollbar is present.
	Also fixed a bug in the SetValues method which caused XmHTML to ignore the
	already present form widgets.
	<p>

	Modified the debug routines, output can now be sent to a file.
	<p>

	Eliminated some dead/duplicate code in the painter and widget methods.
<p>

<dt>August 19
<dd>HTML form support:
	<ul>
	<li>The traversal stuff for tabbing between all HTML form components
		almost works. Still need to figure out the proper XmTextField
		translations so the tab key can be used instead of the enter key;
	<li>added support for the HTML &lt;TEXTAREA&gt; form component and got
		form resetting working. HTML form support is nearly completed: only
		submit is still missing;
	<li>scrollbars are no longer covered by the form widgets when the
		document is scrolled.
	</ul>
	<p>

	Some code cleanup in the document formatter.
	<p>

	Experimented with the BaseClass stuff. Gave up on it after half a day
	or so, implementing it would require a totally different approach and
	a <b>lot</b> of information on Motif's BaseClass. XmHTML is very much
	an Intrinsics widget with some added Motif value, and I would keep to
	like it that way, at least for a while.
<p>

<dt>August 18
<dd>Small performance increase: XmHTML now uses Manager's GC's (XmHTML is a
	subclass of Manager) to paint the anchorbuttons and horizontal rules
	instead of using it's own GC (and switching colors all the time).
	<p>

	Changed the <b>XmNanchorHighlightOnArm</b> resource to the standard
	<b>XmNhighlightOnEnter</b> resource. The highlight color is now computed
	dynamically depending on the current background color, which makes a
	<b>lot</b> more sense than having a fixed highlight color.
	<p>

	Modified the anchor highlighting stuff when anchors are displayed as
	buttons: with highlighting enabled they now really resemble pushbuttons.
	<p>

	Extended the supported HTML extensions to now also recognize a color
	attribute on the &lt;P&gt;, &lt;DIV&gt; and &lt;CENTER&gt; tags. 
	The color attribute is now also supported for &lt;HR&gt; with the
	noshade attribute set, so you can now have colored lines in your
	document.
	<p>

	Progressively loaded images can be scaled on the fly (and as a side
	effect it resolved a fatal bug in the plc code).
<p>

<dt>August 16-17
<dd>Took two days off, needed some rest drastically...
<p>

<dt>August 15
<dd>Changing any font resource should now work properly. There was a bug
	in the font cache <b>and</b> the SetValues method which prevented XmHTML
	from properly honoring this change. Most of the time XmHTML choose to
	ignore any changes to the font resources altogether...
	<p>

	Fixed a very nasty bug which occured with the
	SetValues/XmNdocumentCallback combination: setting any formatting
	resource from within the XmNdocumentCallback would sometimes lead to
	a document being loaded twice, but mostly it just caused a sigsegv.
	<p>

	SetValues fix: changing the XmNimageEnable, XmNenableBodyImages and
	XmNbodyImage resources should work properly.
<p>

<dt>August 14
<dd>Added the <b>XmNanchorHighlightOnArm</b> resource. Enabling this resource
	provides a constant visual feedback as each anchor the user moves his/hers
	mouse over will receive highlighting. The <b>XmNarmColor</b> resource
	allows one to set the color to use for this anchor highlighting.
<p>

<dt>August 10-13
<dd>Lots of bugfixes in the progressive image loading routines. They finally
	seem to behave in an orderly manner.
	<p>

	Rather large performance increase in color allocation on PseudoColor and
	StaticColor displays. XmHTML now uses a hashtable instead of querying the
	X server.
	<p>

	Test with dynamically changing of resource setting revealed a couple of
	bugs in the SetValues method. One of those bugs caused XmHTML to overlook
	internally cached images.
<p>

<dt>August 6
<dd>Setting XmNscrollBarDisplayPolicy to XmSTATIC will now also force
	a horizontal scrollbar to appear.
	<p>

	Modified the parser so it will now properly remove the contents of the
	&lt;SCRIPT&gt; and &lt;STYLE&gt; tags when these tags aren't placed in
	the &lt;HEAD&gt; tag (which is the <b>only</b> place where they may
	occur).
<p>

<dt>August 5
<dd>Added the XmNenableColorSwitching and XmNenableFontSwitching resources.
	XmNenableColorSwitching allows one to disable support for the color tag
	while XmNenableFontSwitching allows one to disable support for the
	&lt;FONT&gt; element.
	<p>

	Added an options menu to example_2.
<p>

<dt>August 4
<dd>Fixed a parser bug: elements with an optional closure are now being
	flushed when they prevent a new element from becoming legal. Previously
	the new element was discarded, which sometimes lead to bad results
	(pointed out by <i><a href="mailto:u27113@kb.be">Danny Backx</a></i>). 
<p>

<dt>August 3
<dd>Added an additional pass to the font loading algorithm to search for a
	font when it can't be found with the current value of the XmNcharset
	resource.
	<p>

	Modified the PLC routines to share a single GC for every image that is
	being loaded.
<p>

<dt>July 18-August 2
<dd>Took a much needed holiday.
<p>

<dt>July 17
<dd><b>Released XmHTML/Alpha Version 1.0.20.</b>
<p>

<dt>July 15
<dd>Fixed a few bugs in font loading:
	<p>

	<ul>
	<li>font changes after a <tt>&lt;FONT FACE="SomeTypeFace"&gt;</tt> used
		the document font instead of the new font;
	<li>successive font changes did not always yield the proper result;
	<li>incrementing/decrementing the size of a font did not always yield the
		correct result.
	</ul>
	<p>

	Text enclosed in a paragraph (<tt>&lt;P&gt;...&lt;/P&gt;</tt> or
	&lt;DIV&gt;...&lt;/DIV&gt;) now also gets a trailing linefeed.
<p>

<dt>July 13,14
<dd>Made a start at making XmHTML's image support self-sustaining for various
	reasons:
	<p>

	<ol>
	<li>allows implementation of a primary and secondary image cache. A primary
		image cache could for example contain the real image data XmHTML uses
		internally (pixmaps and thelike) and have a short-time lifespan, while
		the secondary image cache could contain the XmImageInfo structures
		required for creating XmHTML's internal images and have a long
		lifespan.<br>
		This would gain a huge performance increase in switching between
		documents.
	<li>makes it a lot easier for other people to add image capability to
		their own applications without needing to use XmHTML;
	<li>and last but not least, it would make the core of XmHTML a <b>lot</b>
		lighter.
	</ol>
	<p>

	Form image buttons work correctly.
<p>

<dt>July 11
<dd>Fixed a baseline adjustment bug for image objects.<br>
	Fixed a GIF animation bug with dispose by background disposal method.<br>
	<p>

	Modified the parser so it is now able to backtrack when unbalanced HTML
	tags are encountered.
	<p>

	Fixed progressive image loading to work with buffers as small as 
	<b>one</b> byte. Progressively loading XBM images now works correctly.
<p>

<dt>July 9
<dd>More work on forms:
	<p>
	<ul>
	<li>fixed XmFontList problems (text on form widgets is now rendered
		using the default font);
	<li>added support for <tt>&lt;SELECT&gt;</tt> form components;
	<li>form widgets now use the background and foreground colors specified
		in the document itself.
	<li>removed highlight rectangle.
	</ul>
	<p>

	Fixed a memory leak: when freeing anchor data, the value of named anchors
	wasn't freed properly.
<p>

<dt>July 4
<dd>I've found the wonderfull <i>XtInsertEventHandler</i> function! This
	finally got me to get form scrolling correctly working: I can now simply
	choose to ignore <b>all</b> exposure events generated all over the place
	when the form components are being scrolled!
	<p>

	Fixed a bug in baseline adjustment for form components.
<p>

<dt>July 3
<dd>Made a few changes in the text outlining routines, should
	look a lot better now (the words on a line are distributed more evenly).
	<p>

	Detected and fixed a number of bugs:
	<ul>
	<li>lines with different words on them (font, fontstyle, image object,
		form components and anchors) didn't always get the baseline
		correct;
	<li>lineheight of images wasn't always computed correctly;
	<li>before updating the background image a check is done if the
		background gc is really present and that the background image isn't
		delayed or being loaded.
	</ul>
	<p>

	The background image and X11 Bitmaps can now also be loaded progressively.
<p>

<dt>July 2
<dd>Fixed a number of bugs in the progressive JPEG loader that showed up
	when experimenting with PLC buffer resizing.
	<p>

	All PLC routines are finally fully reentrant.
<p>

<dt>July 1
<dd>The buffers used by the progressive image loader can now be resized by
	an application.
	<p>

	GIF images can now also be loaded progressively by using an external GIF
	decoder installed on the XmNdecodeGIFProc resource. Introduced the
	<b>XmHTMLGIFStream</b> object which is now the sole argument to any
	function attached to this resource.
	<p>

	Modified progressive decoding of GIF images when using the internal GIF
	decoder to wait until all compressed raster data has been received;
	progressive decoding of a GIF image by the internal GIF decoder is
	impossible due to the forking of <tt>uncompress(1)</tt> (a well, it's
	not impossible but terribly slow).
	<p>

	Added a new resource, <b>XmNprogressivePerfectColors</b>, which allows
	one to instruct XmHTML when and if a final color quantization pass 
	should be performed once a progressive image has been loaded. I've made
	this into an option instead of doing it always as this is a rather
	time-consuming operation. Possible values are Never, Always or Automatic
	(let XmHTML decide when a quality increase can be expected).
<p>

<dt>June 26
<dd>Fixed simultaneous updating of multiple copies of the same, progressively
	loaded, image in the current document.
	<p>

	Modified XmHTMLXYToInfo() to ignore images that are currently being loaded
	progressively: most of the XmImageInfo fields returned have a <b>very</b>
	limited lifespan (a few or so polling intervals) during image load.
<p>

<dt>June 25
<dd>Progressive JPEG images that are loaded progressively are now also
	displayed properly: each pass adds additional detail.
	XmHTML now requires libjpeg version 6 or above for full jpeg support.
	<p>

	Added a final color quantization pass in progressive JPEG support (first
	passes are dithered against a fixed palette, the final pass will do
	Floyd-Steinberg using a histogram of the image itself).<br>
	<p>

	Added three convenience functions to suspend, continue and kill progressive
	image loading.
	<p>

	Fixed a <b>serious</b> bug in the main plc engine which caused a total
	server (and system) lock when <b>any</b> mouse button was activated on
	the display area.
<p>

<dt>June 20
<dd>Baseline JPEG images can now also be loaded progressively.
<p>

<dt>June 19
<dd>Fixed a bug for transparent frames in animated gifs with dispose by
	background disposal method; clipmask was used incorrectly when restoring		to background.
<p>

<dt>June 18
<dd>Interlaced GIF &amp; GZF images are loaded properly now.
<p>

<dt>June 17
<dd>First success at progressive image loading!!
<p>

<dt>June 16
<dd>Modified XmHTMLAllocColor and XmHTMLFreeColor (two non-XmHTML supporting
	routines) so they no longer interfere with XmHTML's private color
	allocation.
	<p>

	Fixed a bug in the color matching algorithm, RGB values were shifted out
	of range, causing colors to be mapped to the wrong color or even worse
	(to black).
<p>

<dt>June 15
<dd>All PLC interfacing routines written. Image PLC interfacing routines
	written and verified. First tests show the scheme is working better than
	expected.
<p>

<dt>June 14
<dd>Most top-level PLC routines written. Image PLC routines nearly finished,
	GIF and GZF progressive image decoders written.
<p>

<dt>June 11
<dd>Rewrote the color allocation routines: profiling showed that XmHTML's
	old color allocation scheme spends quite a lot of time allocating its
	colors. The new scheme is nearly 30% faster.
<p>

<dt>June 10
<dd>Started on progressive image loading: Progressive Loading Context
	(PLC) object written. Object-specific structures written. Started
	splitting the image loading routines so they can be used for progressive
	image loading.
<p>

<dt>June 9
<dd>Wrote a very feasible progressive <b>object</b> loading concept. The
	implementation will use a ringbuffer with object-specific function
	pointers, visited by XmHTML using a variable polling interval. The concept
	allows for an easy implementation of progressive document loading as well.

<p>

<dt>June 5
<dd>Alpha channel PNG images are now created when they are needed by the
	painter. The reason behind this is that when XmHTML is resized
	horizontally, the position of the image changes with respect to the
	current background setting, making a redo of alpha channel processing
	necessary. It works but causes a very undesirable delay. Seems like
	progressive image loading is becoming a real necessity...
<p>

<dt>June 3
<dd>PNG support: XmHTML now supports the following features as set forth in
	the decoder requirements specified in the 
	<a href="http://www.w3.org/pub/WWW/TR/REC-png.html">W3C Official PNG
	Recommendation</a>:
	<p>
	<ul>
	<li>Gamma correction;
	<li>all color types and bit depths;
	<li>full tRNS chunk support;
	<li>full alpha channel support;
	<li>bKGD chunk support;
	</ul>
	<p>
	The tRNS and alpha channel support both work with a fixed background color
	as well as composing against a background image. As you can see,
	everything except progressive image loading is now supported.
	Thanks to <a href="mailto:newt@pobox.com">Greg Roelofs</a> for the quite
	usefull <a href="http://www.wco.com/~png/png.html">PNG Home Page</a>, 
	usefull tips and adding XmHTML to the PNG Supporting Applications page.
	<p>

	Also upgraded the PNG code to comply with libpng version 0.96.
<p>

<dt>June 2
<dd>Finally fixed a transparency bug on animations with a disposal method of
	none while the first frame contains transparency. This bug has been around
	since Alpha 1.0.16 or so.
<p>

<dt>June 1
<dd>Fixed a bug in image scaling: scaling the clipmask data of transparent
	images directly was wrong so I now simply recreate the clipmask data out
	of the scaled image data (which also gains us a small performance increase).
<p>

<dt>May 31
<dd>More work on PNG image support: background substitution and RGB images.
	Alpha channel support and transparency support is partially in.
	<p>
	Added the <b>XmNscreenGamma</b> resource to fully exploit the gamma
	correction capabilities of both PNG and JPEG images.
	<p>

	<b>Released XmHTML/Alpha Version 1.0.19.</b>
<p>

<dt>May 29
<dd>Fixed a few more bugs in the parser: the rules for definition lists
	were not entirely correct. Added a check on invalid nesting of HTML
	markup elements.
<p>

<dt>May 27
<dd>Added a check on the scrollbar dimensions when they are specified using
	application defaults or in a resource file. Subsequently added a section
	on specifying XmHTML's dimensions in the same way in the Programmers guide.
	<p>

	More work on the XmHTML Programmers Guide.
<p>

<dt>May 26
<dd>Bugfix 05/26/97-01, a nasty bug which caused XmHTML to crash every so
	often in the most strangest ways. It turned out to be a stupid typo...
	<p>

	Rewrote the caching routines in example_2 to be more generic and robust.
<p>

<dt>May 23
<dd>Fixed the parser to recognize the contents of the &lt;SCRIPT&gt; and
	&lt;STYLE&gt; elements. The <b>XmHTMLGetHeadAttributes</b> convenience
	function now also fills the appropriate fields of the XmHTMLHeadAttributes
	structure.
<p>

<dt>May 22
<dd>Fixed a nasty bug in XmImageFreeImageInfo when it was called by
	application code. As a result of this the function call itself now takes
	two arguments: the widget id of a XmHTMLWidget and a pointer to the
	XmImageInfo structure that is to be released.
	<p>

	Fixed a bug in comment parsing: single dashes appearing in a HTML comment
	are now properly ignored.
	<p>

	Added the XmHTMLAllocColor convenience routine which can be used for
	easy color allocation using the colormap installed on a given XmHTMLWidget.
<p>

<dt>May 18
<dd>Added the XmImageConfig structure for use with XmHTML's external image
	support. This structure allows one to configure the behaviour of the
	XmImageCreate... routines and contains various flags to set 
	(amongst others) an external gif decoder, create a clipmask, perform
	background substitution, color quantization and frame selection on gif
	animations.
<p>

<dt>May 16
<dd>Added support for the <b>XmNmaxImageColors</b> resource: when an image
	contains more colors than allowed, it will be quantized (and possibly
	dithered using the Floyd-Steinberg algorithm) to match the maximum number
	of allowed colors.
<p>

<dt>May 15
<dd>Added the <b>XmHTMLGIFtoGZF</b> convenience routine: this routine converts
	a gif image to a compatible image format in which the LZW compressed
	raster data has been replaced with deflate compressed raster data.
	This function can be used by application programmers that want to keep
	the slowdown caused by XmHTML's gif workaround to an absolute minimum by
	converting a GIF image to a GZF image and subsequently using the GZF
	image whenever a corresponding GIF image is to be loaded. The GZF image
	format is a compatible GIF format, in which only the raster data
	is compressed in a different format.
	<p>

	GZF images can be somewhere between 5 and 60%(!) smaller than the original
	GIF image and it loads considerably faster.
<p>

<dt>May 13
<dd>After two weeks of negotiating with Unisys to obtain a license for the
	use of their patented LZW algorithm for decoding the LZW compressed
	raster data as found in GIF images, I was utterly frustrated by their
	absolutely mindboggling attitude towards the use of the LZW algorithm for
	decoding gif images. I was even more frustrated by the ridiculous
	restrictions an LZW license would place on the distribution of XmHTML
	(for instance: a splash screen would be mandatory for every application 
	using XmHTML and I would not be allowed to distribute the LZW decoder to
	people that don't have an LZW license, <b>even if I have a valid LZW
	license</b>). 
	<p>

	Instead of removing support for gif images, I decided to replace the
	built-in LZW decoder with a workaround that translates the LZW
	compressed raster data to the format used by <tt>compress(1)</tt>, after
	which XmHTML calls uncompress to perform the actual decoding of the
	compressed raster data. This workaround causes (surprisingly) a hardly
	noticable slowdown for single-image and small gif animations. Decoding
	large animations however takes a bit more time now.
	<p>

	For those that want to take the risk of violating Unisys's patent policy
	(or those that <b>have</b> a valid LZW license), the
	<b>XmNdecodeGIFProc</b> resource has been added. One can use this resource
	to install an alternate gif decoding procedure and thus surpass XmHTML's
	workaround.
<p>

<dt>May 2
<dd><b>Released XmHTML/Alpha Version 1.0.18.</b>
<p>

<dt>April 30
<dd>XmHTML will now always use any colormap provided for it (thru Core's
	XmNcolormap resource) instead of using the default colormap. It will also
	walk the widget tree to find a Shell (or a subclass of Shell) and use the
	visual provided for that Shell. XmHTML will only use the default visual if
	no Shell parent can be found. All of this also works for the XmImage type.
	<p>

	Modified the HTML comment detection routine in the parser so nested
	and bad HTML comments (dashes don't occur in a multiple of four) are
	properly dealt with.
<p>

<dt>April 28
<dd>Setting the XmNfreezeAnimations resource to True will now restart
	animations when they were previously frozen.<br>
	Added an additional IMAGE_GIFANIMLOOP type to XmHTMLImageGetType() when
	the image is an animated gif with the NETSCAPE2.0 loop extension.
	<p>

	Bugfixes:<p>

	<ul>
	<li>truly inlined images are now repainted correctly when they are scrolled;
	<li>animations serving as anchors have their borders painted correctly;
	<li>all images serving as anchors should now appear properly centered in 
		the anchor bounding box;
	<li>changing document resources without setting a new text will no longer
		reload images;
	</ul>
<p>

<dt>April 27
<dd>Still busy rewriting the documentation: programming manuals for both XmHTML
	and XmHTMLParser. The XmHTML manual is halfway now.
	<p>

	Fixed a lot of minor bugs that I discovered when writing example code
	for the XmHTML programming manual:
	<p>

	<ul>
	<li>XmNresizeWidth and XmNresizeHeight now work properly;
	<li>setting and getting the XmNtopLine resource works;
	<li>a few performance enhancements on document scrolling;
	<li>horizontal scrollbar should now be present when the width of
		preformatted text or images is somewhere between the widget width minus
		the margin width;
	<li>fixed a bug in the paint engine: height of text blocks was computed
		incorrectly;
	<li>fixed another bug in the paint engine: linenumbers on preformatted text
		wasn't set at all;
	<li>XmHTML's testbed crashes less frequently: both document and image cache
		are a lot smarter now
	<li>also on XmHTML's testbed: added code to show possible use for
		XmNlinkCallback callback resource and XmHTMLXYToInfo (new convenience
		routine);
	<li>added the XmImageCreateFromInfo routine which creates a standalone 
		XmImage from the data in a given (XmHTML's) XmImageInfo structure.
	<li>XmHTMLParserObject example now contains both normal and progressive 
		parsing modes. Added a HTML preview.
	</ul>
<p>

<dt>April 20
<dd>Reverted integration of the htmlParserObjectClass. Too many problems and
	too many overhead involved.<br>
	Made a start with writing programming manuals for both XmHTML and
	HTMLParserObject.
	<p>

	Pretty cool news: added the XmImage type which allows using XmHTML's image
	reading capability to be used by other programs as well.
<p>

<dt>April 15
<dd>Moved XmHTML's parser into a seperate widget subclassed from Object.
	A standalone parser can now be created and configured using the standard
	X functions. Class pointer of this parser is
	<i>htmlParserObjectClass</i>.<br>
	The standalone parser is an Intrinsic widget which can be used without
	Motif.
	<p>
	Replaced XmHTML built-in parser with this HTMLParserObject (with
	surprisingly few modifications to XmHTML's interface).
<p>

<dt>April 10
<dd>A lot of enhancements to the parser: one can now create and use a
	standalone HTML parser for a number of purposes. Features include:
	<ul>
	<li>Progressive (or incremental as you will) parser;
	<li>aliasing of unknown HTML elements to known ones;
	<li>a XmNmodifyVerifyCallback;
	<li>extended XmHTMLParserCallbackStruct to include description of
		offending and proposed repair elements;
	<li>multiple passes to increase HTML conformance;
	<li>dynamic updating of the current source;
	<li>wrapped all of the above (and more) in a new collective example
		which demonstrates how to use the XmHTMLParser object for interactive
		document checking and repair.
	</ul>
	<p>
	Modified the document verification/repair routines to use better defaults.

<p>

<dt>April 6
<dd><b>Released XmHTML/Alpha Version 1.0.17.</b>
<p>

<dt>April 3
<dd>Fixed a problem with scrollbars when XmHTMLRedisplay was called: document
	length wasn't updated properly.
	<p>

	Fixed two problems related to documents with a body image: images 
	serving as anchors should no longer disappear when scrolling and regular
	anchors (XmNanchorButtons == False) should now be rendered transparantly.
	<p>

	Anchors with mixed fonts are now rendered as a single anchor instead of
	separate blocks. Mixing images and text in an anchor doesn't work well.
	<p>

	Underlining and/or striking out of words with mixed fonts is now treated
	properly.
	<p>

	<b>Released XmHTML/Alpha Version 1.0.16.</b>
<p>

<dt>April 2
<dd>Delayed image loading now also works for the background image.<br>
	Added the XmHTMLFrameGetChild convenience function.<br>
	Fixed the SetValues method for enabling/disabling body colors and body
	images: the effect should be visible immediatly.
<p>

<dt>April 1
<dd>Fixed a problem related to color freeing with StaticGray, GrayScale,
	DirectColor and TrueColor visuals (colors got freed more than once for
	these types of visuals). Color freeing should no longer cause X Protocol
	Errors.
	<p>

	Fixed a number of things pointed out by
	<a href="mailto:dick@cymru.net">Dick Porter</a>:
	<ul>
	<li>a robuster method for body color allocation;
	<li>internal images no longer get freed by calling XmHTMLImageFreeImageInfo;
	<li>corrected layout recomputation when images are updated: XmHTML now uses 
		the new image dimensions instead of the old ones;
	<li>images of which the dimensions have been specified in a HTML
		document are now painted immediatly when replacing or updating them
		instead of just being removed;
	<li>fixed image transparency problems: XmHTMLImageDefaultProc now always
		creates a clipmask. Previously, a clipmask was only created if a
		document contained a background image.
	</ul>
	<p>

	Animations are now explicitly excluded as a background image. Image
	scaling now also works properly for delayed images. Finally fixed
	transparency for the default images.
<p>

<dt>March 28
<dd><b>Released XmHTML/Alpha Version 1.0.15.</b>
<p>

<dt>March 27
<dd>The parser now calls the XmNparserCallback resource when installed.
	Added a new action field to the 
	<a href="XmHTML.html#XmHTMLParserCallbackStruct">
		XmHTMLParserCallbackStruct</a> which allows
	a user to select certain actions when a fault in a document is encountered.
	Warning messages caused by the document verification/repair routines
	are no longer displayed on screen but propagated to the XmNparserCallback
	instead.
	<p>

	Fixed a small bug in the text layout routines: text and images are now
	only centered or adjust to the right margin if their width doesn't exceed
	the available screen width.
	<p>

	The scrolling attribute on frames is now properly handled.
	<p>

	All action routines are now implemented and fully functional.
<p>

<dt>March 26
<dd>Frames are in. Not perfect yet but it certainly works!
	Fixed a few bugs that caused XmHTML to crash when the widget's Destroy
	method was called. Added the
	<a href="XmHTML.html#CallbackResources">XmNframeCallback</a> resource and
	<a href="XmHTML.html#XmHTMLFrameCallbackStruct">
		XmHTMLFrameCallbackStruct</a> callback structure.
	<p>

	Fixed a small bug in horizontal scrolling, text should no longer flow
	onto itself when there isn't a vertical scrollbar present.
	Fixed a small bug in refreshment if image anchors, images serving as
	an anchor should now always be selectable.
<p>

<dt>March 25
<dd>Bugfix in JPEG loading.<br>
	XmHTML now makes proper use of the core offsets: a XmHTML widget can now
	be a child of any Motif manager widget at any position.
<p>

<dt>March 24
<dd><b>Released XmHTML/Alpha Version 1.0.14.</b>
<p>

<dt>March 23
<dd>Fixed a buffer overrun when converting preformatted text to a series of
	words.
	<p>

	Added the <a href="XmHTML.html#XmNmimeType">XmNmimeType</a> resource:
	allows XmHTML to be used for documents of which the content-type isn't
	text/html. Mime types recognized by XmHTML are text/html, text/plain and
	a number of image mime type specifications.
<p>

<dt>March 21
<dd>XmHTML recognizes character escape sequences without a trailing ;.
	Character escape sequences in the alternate image description are now
	also expanded.
	<p>

	More improvements on document verification and repair: really bad
	HTML documents (numerous and consecutive misplaced elements) are now
	repaired in such a way that display is possible.
	<p>

	Animation support: the first frame of an animation now also uses the
	requested disposal method.
<p>

<dt>March 20
<dd>Completely rewrote the HTML parser: document verification and
	auto-repair of poorly formatted HTML documents has been added.
	Especially the latter is fairly powerfull. Features include 
	detection and repair of overlapping elements, omitted list start
	tags and improperly nested font switches. It also includes auto-addition
	of terminators on elements for which a terminator is optional
	(dd, dt, li, p, option, td, th and tr). XmHTML can now also handle
	documents without the <b>required</b> &lt;HTML&gt; and optional
	&lt;BODY&gt; tags.<br>
	<p>

	More work on the mixed text/image layout: vertical alignment attributes
	on images are now properly recognized and dealt with.<br>

	<b>Released XmHTML/Alpha Version 1.0.13.</b>
<p>

<dt>March 14
<dd>Again more work on animation frame disposal: both disposal methods (by
	background and by previous) now work with any background color or image.
	Animation support is almost fully completed, the only thing missing is
	the ability to immediatly restore composite animations that are scrolled
	off and back on screen.
	<p>

	Added a workaround for incomplete screen updates when scrolling full
	screen: the <a href="XmHTML.html#XmNrepeatDelay">XmNrepeatDelay</a>
	resource now determines the minimum time a key must remain pressed
	before scrolling continues.<br>
	Text colors are now also properly freed (and fixed a serious bug as well).
	<br>
	Also some work on example_2: added a global image cache and a 
	per-document history stack.<br>
	Added the
	<a href="images.html#XmHTMLImageFreeImageInfo">XmHTMLImageFreeImageInfo</a>
	convenience function.
	<p>
	
	And last but not least, added 
	<a href="http://www.wco.com/~png/png.html">PNG</a> image support to the
	<a href="images.html#XmHTMLImageDefaultProc">XmHTMLImageDefaultProc</a>
	convenience function.
<p>

<dt>March 13 
<dd>More work on animation support: all frame disposal methods are now
	supported.
	<p>

	And a lot of bugfixes:<br>
	Font stack is now properly reset when a new document is loaded;
	named anchors are now rendered in the current text color instead of 
	XmNanchorVisitedForeground;
	no more color flashing when switching between documents that make heavy
	use of color-rich images;
	Images wider than the available screen width are no longer moved 
	downwards;
	delayed images are now displayed in the correct dimensions when they
	are flushed to XmHTML and transparent XPM images are now truly
	transparent.
<p>

<dt>March 12 
<dd>Colors allocated for images are now properly released when the images
	are freed.<br>
	Fixed X11 bitmaps. Updated all documentation.
<p>

<dt>March 24
<dd><b>Released XmHTML/Alpha Version 1.0.12</b> (documentation update).
<p>

<dt>March 11 
<dd><img src="../Images/gif89a-banner-anim.gif"><br>
	XmHTML now supports Gif89a animated gifs (Netscape Loop Extensions
	as well as multi-image Gif89a files). Scrolling composite animations
	currently doesn't work as it should. Added the 
	<a href="XmHTML.html#XmNfreezeAnimations">XmNfreezeAnimations</a>
	resource.<br>
	Replaced the XmNimageDefaultProc resource by the 
	<a href="images.html#XmHTMLImageDefaultProc">XmHTMLImageDefaultProc</a>
	convenience function.<br>
	All image reading routines now use a memory buffer instead 
	of reading directly from a file. Text layout now considers text and 
	images as the same object.<br>
	XmHTML now properly renders any alternate text if images are disabled.
	Modified the XmImageInfo structure again and renamed most of the
	convenience functions to more logical names. 
	<p>

	<b>Released XmHTML/Alpha Version 1.0.11.</b>
<p>

<dt>March 5
<dd>XmHTML Developers mailing list is up and running, with 51 subscribers from
	the first day.
	<p>

	Many thanks to <a href="mailto:brian@simplicity.net">Brian Dowling</a> and
	<a href="http://www.simplicity.net">Simplicity Communications</a> for
	offering me this valuable service. Thanks Brian!
	<p>

	<b>Released XmHTML/Alpha Version 1.0.10.</b>
<p>

<dt>March 4 
<dd>Fixed a spacing bug in the text layout routines which caused words
	that shouldn't be glued together got glued together anyway.
	Added the animation support.
<p>

<dt>March 3 
<dd>Added polygon and default shape imagemap support.
	Delayed Image Loading: XmImageInfo structure updated and three new 
	convenience functions added: XmHTMLUpdateImage, XmHTMLReplaceImage 
	and XmHTMLRedisplay.
<p>

<dt>February 28
<dd>A number of changes in the text-layout routines: words should now be 
	glued together properly. Text colors are now preserved accross anchors.
	<p>

	<b>Released XmHTML/Alpha Version 1.0.8.</b>
<p>

<dt>February 27
<dd>More work on Imagemaps: support for external client-side imagemaps
	has been added but not tested (yet). Added the XmHTMLAddImagemap
	convenience routine. Added default images which are displayed when
	the XmNimageEnable resource is set to False or when an unsupported
	imagetype is encountered.
	Changed the XmHTMLAnchorCallbackStruct, please be aware of this!
<p>

<dt>February 26
<dd>Added client-side imagemaps; rectangular and circle shaped area types
	work well. Empty as well as combined anchors (both name and href in a
	single anchor) are now supported. Added the 
	<a href="XmHTML.html#XmNimagemapCallback">XmNimagemapCallback</a> 
	resource and corresponding callback structure.<br>
	Fixed a small parser bug which sometimes (only seen it once really) 
	caused wrong text alignment. A lot of small bugfixes in anchor creation 
	and selection. Removed the <i>extra</i> field in XmHTMLanchorCallbackStruct
	and added three new fields instead.
<p>

<dt>February 25
<dd>Modified color allocation to get an exact, close or substituted color.
	This produces *very* nice results. The background attribute on the
	body tag is properly honored, scrolling with an image as background is
	very smooth. Images can now also serve as anchors. Mixed text and image
	layout works but needs a bit more work.
<p>

<dt>February 20
<dd>Major News: image support is almost completely added and functional!
	The default image loading procedure supports X11 bitmaps, X11 XPM 
	pixmaps, JPEG and GIF87a and GIF89a images, PNG is being worked on. 
	This procedure should in theory work properly with every visual class,
	although only PseudoColor has been tested. Images with a width and
	height specification different from the real image dimensions are
	automatically scaled. I hacked this code in on two evenings, and 
	I'm pretty proud of it.
	<p>
	The <a href="XmHTML.html#XmImageInfo">XmImageInfo</a> section has 
	been updated and contains some more information on image handling. For 
	future animated image support, a few extra members have been added to 
	the XmImageInfo structure itself. 

	<p>
	I do owe <A HREF="mailto:cwikla@wri.com">John L. Cwikla</A>
	a lot of gratitude for his small but <b>very</b> usefull 
	<a href="http://www.wri.com/~cwikla/xcenter/xcc">XCC</a> package!

<p>

<dt>February 18
<dd>Internationalization: the font loading scheme employed by XmHTML 
	has been modified drastically and is much more robust now.
	Added the <a href="XmHTML.html#XmNcharset">XmNcharset</a> resource to 
	allow specification of the ISO character set and changed the format 
	of the <a href="XmHTML.html#XmNfontFamily">XmNfontFamily</a> and 
	<a href="XmHTML.html#XmNfontFamilyFixed">XmNfontFamilyFixed</a> resources.
	<br>
	(pointed out by 
	<a href="mailto:valera@itech.kiev.ua">Valery Kravchuk</a>)
<p>

<dt>February 13
<dd>Added support for the face tag on the font element, e.i.
	<font face="Helvetica,arial">
	&lt;font face="Helvetica,arial"&gt;</font> is now recognized.
<p>

<dt>February 11
<dd><b>Released XmHTML/Alpha Version 1.0.6.</b>
<p>

<dt>February 10
<dd>Fixed a number of potential buffer overruns (suggested by 
	<a href="mailto:dick@cymru.net">Dick Porter</a>).<br>
	Complete rewrite of the text layout routines. Interword and interline
	spacing is adjusted depending on the current font. Simplified the
	outlining and alignment adjustment routines.<br>
	Removed a number of internally unused structure members.<br>
	Changed anchor treatment: consumes less memory and is easier to use.<br>
	Second alpha release shipped.
<p>

<dt>February 6
<dd>Fixed interword and interline spacing when different fonts are mixed on 
	a single line: lines do no longer overlap each other and font changes
	in the middle of a word are properly attached.<br>
	Indentation is now computed regardless of the current font.
<p>

<dt>February 4
<dd>Added code to support the BASEFONT element and updated the code that
	deals with the FONT element accordingly.<br>
	All <a href="XmHTML.html#XmNhandleShortTags">shorttag</a> elements are 
	now recognized and dealt with properly by the parser (empty tags, empty 
	closing tags, unclosed tags and NULL-end tags).  XmHTML passes all example
	pages from the <a href="http://www.absurd.org/dark_side/">Dark Side of the
	HTML</a> without even as much as a single hickup. Watch your browser choke
	on the test pages at the above URL ;-).
<p>

<dt>February 3
<dd>First bug reports are seeping in: fixed a bug in font loading routines,
	color releasing routines and unknown anchor types.<br>
	Updated the &lt;li&gt; element formatting to recognize the type and value
	attributes.<br>
	Removed default identation for preformatted text.
<p>

<dt>January 31
<dd><b>Released XmHTML/Alpha Version 1.0.5</b>, first alpha release.
<p>

<dt>January 30
<dd>Fixed a bug with jumping to anchors: when jumping to the end of a 
	document, the value of the vertical scrollbar exceeded the maximum
	allowable value.<br>
	Final preparations for the alpha release. We'll be shipping out
	any time now.
<p>

<dt>January 29
<dd>Reworked some of the anchor parsing/handling routines: anchor activation
	and anchor tracking callbacks are a little bit more efficient now. <br>
	XmHTML is now able to determine the type of URL referenced by an anchor:
	added the <i>url_type</i> field to the XmHTMLAnchorCallbackStruct.<br>
	Updated exposure handling after tests with Motif 1.2.0/X11R5.
<p>

	Preparations for the alpha release: cleaned up the source and 
	wrote a few <a href="examples.html">examples</a> demonstrating the use
	of XmHTML.
<p>

<dt>January 28
<dd>A lot of memory leaks have been fixed.
	Switching between documents with/without a &lt;body&gt; color specification
	seems to be working.
<p>

<dt>January 27
<dd>Fixed a serious bug with preformatted text: multiple newlines weren't
	recognized properly and thus were rendered wrong.
<p>

<dt>January 26
<dd>Added a SubstructureNotifyMask so we get notified when the widget is
	mapped on the screen for the first time. Text is now displayed properly if 
	text is set directly on XtCreateWidget. This fixed a serious bug in 
	SetValues which caused a BadWindow error when setting text on the widget 
	before XtRealizeWidget was called.
<p>

<dt>January 25
<dd>Nested aligment is now recognized properly.<br>
	Changed the font routines to use a pointsize specification as mentioned in
	the documentation. Previously pixel size was used.<br>
	Linespacing for text with a font other than the default font is now
	correct.
	<p>

	Public request for XmHTML alpha testers posted on comp.windows.x.motif,
	comp.windows.x and comp.windows.x.apps
<p>

<dt>January 24
<dd>Screen redrawing finally done: only the exposed regions are now redrawn
	instead of the entire line of which the exposed region was part.<br>
	Preformatted text now also draws anchors correctly.
<p>

<dt>January 23
<dd>More work on horizontal scrolling: when scrolling to the left, text drawn 
	previously in the margin is now properly erased. Horizontal redrawing to 
	the right now takes the starting x position of the exposed region into 
	account, instead of repainting the entire screen.<br>
	Preformatted text is now painted properly.
<p>

<dt>January 20
<dd>Enhanced the parser to insert closing elements on elements where they
	are optional (&lt;P&gt;, &lt;LI&gt;, &lt;DT&gt; and &lt;DD&gt;).<br>
	Finally got round to implementing preformatted text.
<p>

<dt>January 19
<dd>Scrolling: the widget now remembers it's current vertical text position
	when it is resized.<br>
	Removed left and right quotes from the list of punctuation characters.
<p>

<dt>January 17
<dd>Added the <a href="extensions.html#tab">&lt;TAB&gt;</a> element 
	extension.<br>
	Fixed a number of memory leaks reported by 
	<a href="http://www.letters.com/dmalloc">dmalloc.</a><br>
	Fixed a bug in the parser which made it impossible to correctly detect
	elements with trailing spaces inside them.
<p>

<dt>January 16
<dd>Text outlining: bugfixes and few performance enhancements.<br>
	Added the <a href="extensions.html#color">&lt;COLOR&gt;</a> tag extension.
<p>

<dt>January 13
<dd>Removed the XmHTMLCallbackStruct and replaced it with callback-specific
	<a href="XmHTML.html#CallbackStructure">callback structures</a>: 
	XmHTMLAnchorCallbackStruct, XmHTMLFormCallbackStruct,
	XmHTMLLinkCallbackStruct and XmHTMLParserCallbackStruct.<br>
	Added jumping to local anchors when a local anchor is pressed.<br>
	Added the 
	<a href="XmHTML.html#XmNanchorVisitedProc">XmNanchorVisitedProc</a> 
	resource.<br>
	More work on vertical scrolling.<br>
	XmHTML can now handle named anchors by itself (but it can be vetoed by the
	programmer).<br>
	Added the following <a href="convenience.html">convenience functions</a>:
	XmHTMLGetAnchorId, XmHTMLScrollToAnchorById, XmHTMLScrollToAnchorByName,
	XmHTMLScrollToLine.<br>
	Enhanced HTML comment detection in the raw HTML parser.
<p>

<dt>January 12
<dd>Accelerated screen update when scrolling vertically. Horizontal scrolling
	needs a bit more work.<br>
	Nested lists are now rendered as they should: mixing ordered and unordered
	lists works.<br>
	Added the <a href="XmHTML.html#XmNenableOutlining">XmNenableOutlining</a>
	resource: when enabled (default) all text of which the alignment is not
	explicitly set will be outlined.<br>
	Implemented the color tag for all elements mentioned in the extensions.
<p>

<dt>January 10
<dd>Horizontal scrolling works. 
	Fixed scrollBar offsets when XmNmarginWidth/XmNmarginHeight is smaller
	than the width of a scrollBar. sliderSize and pageIncrement now
	reflect the percantage of hidden text.
	<br>
	Nesting of ordered lists and unordered lists now works when they are not 
	mixed.<br>
	Changed the type of all positions from Position (signed short) to int. 
	Documents larger than SHRT_MAX used to cause a wrap-around of their 
	y-position.
<p>

<dt>January 9
<dd>Working on scrolling. Scrollbars are displayed according to the
	XmNscrollBarPlacement resource. Vertical scrolling works.
	Changed the linebreaking algorithm to eat multiple block elements without
	contents. Also a number of aesthetical changes.<p>
	I expect to have an alpha release by the end of this month. Things that
	need to be implemented before a release will be made are: 
	preformatted text, support for a few image types and nested sorted lists. 
	<p>

	If you want be informed when an alpha release
	becomes available, please send us a 
	<a href="mailto:ripley@xs4all.nl">mail</a>.
<p>

<dt>January 8
<dd>Added autosizing stuff: setting XmNresizeWidth and/or XmNresizeHeight
	now causes XmHTML to size itself around the document properly.
	Rewrote text alignment routines. Fixed a bug in the parser which caused an 
	anchor not be recognized if the name contained the string ``name'' or 
	``target''.
<p>

<dt>January 7
<dd>Fixed text alignment for lines consisting of different text elements.
	Finished the text outlining algorithm: paragraphs can now be outlined
	properly, which gives pretty neat results.
<p>

<dt>January 6
<dd>Happy Newyear!<P>
	A lot of work and thought went into the render engine. 
	The previous method proved to be very memory- and time consuming, but did 
	have a lot of potential.  After a lot of trial and error, the final method 
	is a mix of the original rendering engine and the state machine approach, 
	resulting a an even more flexible (read extensible) and less memory- and 
	time consuming.<br>
	Changed XmNstringDirection to XmNalignment, which makes more sense. Added a
	description of the implemented 
	<a href="extensions.html">HTML 3.2 extensions</a>.  Added the 
	<a href="XmHTML.html#CallbackResources">XmNparserCallback</a> resource.
<p>

<dt>December 19
<dd>Changed rendering completely: a stream of paint commands is now generated
	whenever a document is loaded. The actual paint engine is represented by a 
	state machine in which parts of the painting stream are poured whenever a
	screen update is required. This is much more flexible and faster than the 
	previous setup, in which rendering was performed ``just in time''.<br>
	This state machine approach also allows for an easy implementation of 
	forthcoming extensions such as the &lt;OBJECT&gt; tag and HTML math. It 
	also offers considerable advantages for a (possible) conversion of the 
	widget to an HTML editor widget, although that would require an integration
	of the raw HTML parser and paint stream generator.
<p>

<dt>December 18
<dd>Implemented proper rendering of all attributes on horizontal rules. 
	Linefeed checking almost working properly.<br>
	Added the <a href="XmHTML.html#CallbackResources">XmNinputCallback</a> and 
	<a href="XmHTML.html#CallbackResources">XmNmotionTrackCallback</a>
	resources and updated action routines accordingly (as suggested by 
	<i><a href="mailto:rlr@wscoe4.atl.hp.com">Ricky Ralston</a></i>). 
	Added the <a href="XmHTML.html#Translations">track-motion</a> and 
	<a href="XmHTML.html#Translations">help</a> action routines. Added the 
	<a href="XmHTML.html#XmNworkWindow">XmNworkWindow</a> resource.
<p>

<dt>December 17
<dd>Rendering of anchors as buttons is now done properly and anchors wrapping
	around a newline are finally connected as it should: linebreaking algorithm 
	finally working properly.<br>
	Added an outlining algorithm for blocks of plain text (this is for a future 
	OUTLINE attribute on the &lt;DIV&gt; tag). This produces some very nice
	results!<br>
	Furthermore a number of cosmetic updates on rules, underlining, strikeout 
	and anchor selection rendering.
	Updated the set-values method: almost all resources can now be set using
	XtSetValues.<br>
<p>

<dt>December 16
<dd>More work on anchor selection: pressing an anchor now highlights that 
	anchor; anchors that wrap around a newline are now redrawn correctly; 
	anchor cursor setting/unsetting finally seems to be working satisfactory. 
	Also added a target field to XmHTMLCallbackStruct to support the frame 
	extension.<br> 
	XmNarmCallback implemented. &lt;HR&gt; rules are now painted. 
	Numbered lists with type=i|I are now being rendered for roman numerals upto
	a value of 4999. Simplified list indentation.<br>
	Corrected a few minor bugs that came up when testing multiple instances of 
	XmHTML widgets.<br>
	<b>Major news</b>: added the 
	<a href="XmHTML.html#XmNanchorButtons">XmNanchorButtons</a> resource:
	anchors can now be rendered as pushbuttons instead of being underlined.
	Needs some more work though.
<p>

<dt>December 13
<dd>XmHTML begins to take real shape!  XmNactivateCallback and 
	XmNanchorTrackCallback completely implemented: anchor selection fully
	functional now.  First real XmHTML tests by using it in
	<a href="XntHelp.html">XntHelp</a>, and it seems to be working quite 
	well!<br>
	Numbered lists with type=1|a|A are now being rendered correctly.<br>
	Fixed a number of major memory leaks and minor small bugs in format.c and
	the set_values method.
<p>

<dt>December 12
<dd>Solid and dashed underlines as well as strikeout are being drawn correctly. 
	List indentation finally correct. All three types of bullets in &lt;UL&gt;
	are also placed correctly.<br>
	Punctuation characters have a special treatment now so they are attached to 
	words where they should be attached.<br>
	Fixed a few bugs in the font switching routines; nested fonts are rendered 
	correctly now.<br>
	First attempts at anchor tracking have some success, XmNanchorTrackCallback
	resource treatment partially finished.
<p>

<dt>December 10
<dd>Linebreaking algorithm works pretty okay. Horizontal alignment is now also
	treated correctly.
	Added the <a href="XmHTML.html#XmNstringDirection">XmNstringDirection</a>
	resource. Fixed a few bugs in format.c.
<p>

<dt>December 9
<dd>First success at text displaying! The paint routines now can display all 
	sort of texts in the selected font and/or color. Added support for a future 
	``outline'' attribute on the &lt;DIV&gt; tag. The linebreaking algorithm 
	needs a lot more work. Changed the XmNanchorTrackProc resource to a 
	callback:
	<a href="XmHTML.html#CallbackResources">XmNanchorTrackCallback</a> 
	(as suggested by <i><a href="mailto:u27113@kb.be">Danny Backx</a></i>). 
<p>

<dt>December 6
<dd>ALIGN and VALIGN attributes recognized. Added a few extra attribute parsing 
	routines.  Optimized recognition for underlining, strikout and anchors: 
	nested combinations are now treated ok. Checked and corrected a few memory 
	leaks.  Performed some robustness checks and corrected bugs detected from 
	this testing.
<p>

<dt>December 5
<dd>List support added: indentation and the TYPE attribute are recognized as
	well as nested lists. Underline, strikeout and anchor stuff written. More
	work on font routines: nested font combinations are recognized and treated
	ok.
	<p>

	Posted very first announcement on XmHTML on comp.windows.x.motif and
	comp.windows.x.
<p>

<dt>December 4
<dd>First implementation of text formatting/painting. Font loading/switching
	routines written.
<p>

<dt>December 2
<dd>Initialize now calls the HTML parser, creates the widget and anchor cursor 
	and calls the HTML formatting routines. XmNlinkCallback installed.<br>
	Prelimenary tests on widget creation and resource setting/changing 
	performed succesfully.
<p>

<dt>November 28
<dd>First drafts of expose, layout, resize, set_values, get_values_hook,
	query_geometry, geometry_manager and destroy methods.
<p>

<dt>November 26
<dd>Enhanced the parser to allow strict checking of HTML documents against
	the HTML 3.2 standard. Added the XmNstrictHTMLChecking resource.
<p>

<dt>November 22
<dd>Changed the XmNfontSize resources to XmNfontSizeList. Added 
	XmHTMLLinkCallback, XmNanchorTrackProc, XmNanchorTarget and
	XmNenableBody resources. Figured out how to use the XmRepType functions.
	ClassInitialize, ClassPartInitialize and Initialize methods written.
<p>

<dt>November 21
<dd>Public and private interfaces defined. Updated Widget interface definition.
<p>

<dt>November 20
<dd>XmHTML Widget resources, callbacks and action routines
	interface definition nearly completed (you're reading it now).<br>
<p>

<dt>November 19
<dd>Made some performance enhancements to the HTML parser after testing. 
	When compared to NCSA, our parser is almost twice as fast!
	(Loading and parsing a 230kb HTML file with 14126 elements takes 0.16 
	seconds.   NCSA takes 0.30 and does not parse table elements).
<p>

<dt>November 18
<dd>Final HTML parser completed, performance tests started. 
<p>

<dt>November 12
<dd>First draft of HTML parser.
<p>

</dl>

<p><IMG SRC="../Images/wood/bar.gif">
<br>

<img ismap usemap=#back src="../Images/wood/back.gif" border=0>
<map name=back>
	<area href="XmHTML.html" shape=rect coords=0,0,83,33>
</map>

<img ismap usemap=#index_map src="../Images/wood/home.gif" border=0>
<map name=index_map>
	<area href="../index.html#toc" shape=rect coords=0,0,83,33>
</map>
<img ismap usemap=#email_map src="../Images/wood/email.gif" border=0>
<map name=email_map>
	<area href="mailto:ripley@xs4all.nl" shape=rect coords=0,0,83,33>
</map>

<br><IMG SRC="../Images/wood/bar.gif"><br>
<i><font size="-1">
&copy;Copyright 1996-1998 by Ripley Software Development<br>
Last update: September 1, 1998 by Koen
</font></i>
</BODY>
</HTML>