[
Lists Home |
Date Index |
Thread Index
]
> >>| Assuming that it is possible to declare a PE named 'percent' with a
> >>| literal '%', is the following allowed?
> >>|
> >>| <!ENTITY %percent; x "value">
> >>
> >>Permissible in SGML - should be okay in XML.
> >
> >
> > Accepted by MSXML4.
> >
> > Rejected by
> > - Expat: "Unclosed token"
> > (it seems Expat considers % followed by a name one token)
>
> That's a bug in expat I think. Try this (tested with expat 1.2):
>
> --- xmltok/xmltok_impl.c 20 Oct 2000 04:17:27 -0000 1.42
> +++ xmltok/xmltok_impl.c 3 Jul 2003 02:08:48 -0000
> @@ -881,7 +881,7 @@
> const char **nextTokPtr)
> {
> if (ptr == end)
> - return XML_TOK_PARTIAL;
> + return -XML_TOK_PERCENT;
> switch (BYTE_TYPE(enc, ptr)) {
> CHECK_NMSTRT_CASES(enc, ptr, end, nextTokPtr)
> case BT_S: case BT_LF: case BT_CR: case BT_PERCNT:
Seems to work for current Expat too, so I committed your patch already.
This is the first Expat bug found in a long time.
Karl
|