[xml] Binary incompatibility with libxml2-2.2.8

A recent change was made to the struct "_htmlElemDesc" -- several
ints were turned into chars.  While this structure is supposedly
"internal", there is a public accessor function available (namely
htmlTagLookup()), and the structure's elements are also publicly
known (since they are defined in the installed HTMLparser.h file).

Unfortunately, I had an application that was looking up tags and
checking the "empty" flag to see what HTML 4.0 elements have no
close tag.  Since there are no accessor functions for this
structure, I had accessed the "empty" variable directly.  Due to
the above change, an application compiled with a modern libxml2
will fail to run properly with an older (2.2.8) shared library
and via versa.

So, my question is what should we do about this?  Should the
structure's contents really be defined in a public .h file?  Or
should it only be defined in a header file that is internal to
libxml2.  Also, do we want any accessor functions to allow the
user to look at the attributes of an HTML tag?


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]