2001-01-18
2001-01-18 19:25:15 by Martin Stjernholm <mast@lysator.liu.se>
-
4c0ed6bca7048a3fe025b3d0c2a880b906dcbf27
(22 lines)
(+13/-9)
[
Show
| Annotate
]
Branch: 5.2
Fixed bug in tag arg parsing in Frame.propagate_tag. This bug has manifested
itself by RXML backtraces "Internal server error: args not set" for some
tags when using the compatibility module.
Rev: server/etc/modules/RXML.pmod/module.pmod:1.125
2:
//!
//! Created 1999-07-30 by Martin Stjernholm.
//!
- //! $Id: module.pmod,v 1.124 2000/12/11 10:44:33 per Exp $
+ //! $Id: module.pmod,v 1.125 2001/01/18 19:25:15 mast Exp $
//! Kludge: Must use "RXML.refs" somewhere for the whole module to be
//! loaded correctly.
1961: Inside #if defined(MODULE_DEBUG)
if (!stringp (this_object()->raw_tag_text))
fatal_error ("raw_tag_text must have a string value.\n");
#endif
- Parser_HTML()
- ->add_container (tag->name,
- lambda (object p, mapping(string:string) a, string c) {
- args = a;
- content = c;
- return ({});
- })
- ->finish (this_object()->raw_tag_text);
+ sscanf (this_object()->raw_tag_text, "%*[^ \t\n\r]%s", string str);
+ #ifdef DEBUG
+ if (!str || !sizeof (str) || str[-1] != '>')
+ fatal_error ("Failed to parse tag args from %O.\n",
+ this_object()->raw_tag_text);
+ #endif
+ args = Parser_HTML()->parse_tag_args (str);
+ #ifdef DEBUG
+ if (!mappingp (args)) fatal_error ("Failed to parse tag args from %O.\n",
+ this_object()->raw_tag_text);
+ #endif
}
frame = overridden (args, content || "");
frame->flags |= FLAG_UNPARSED;