Branch: Tag:

2001-01-18

2001-01-18 19:25:15 by Martin Stjernholm <mast@lysator.liu.se>

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;