Patch title: Release 92 bulk changes
Abstract:
File: /appli/browser/deprecated/xml_filter.pli
Key:
    Removed line
    Added line
module "/pliant/language/unsafe.pli"
module "tree.pli"


#------------------------------------------------------------------------
# filtering


type XmlFilter
  field Dictionary tags

method f tag tag options
  arg_rw XmlFilter f ; arg Str tag options
  f:tags insert tag true addressof:(new Str options)

method f filter n
  arg XmlFilter f ; arg_rw XmlTree n
  var (Pointer Pointer:XmlTree) p :>> n first
  while exists:p
    if p:tag<>(lower p:tag)
      p tag := lower p:tag
    var Pointer:Arrow a :> f:tags first p:tag
    if a<>null
      part attributs
        p first_attr (var Str attr) (var Str value)
        while attr<>""
          if attr<>lower:attr
            p discard attr
            p attribute lower:attr := value
            restart attributs
          if not ((a map Str) option attr)
            p discard attr
            restart attributs
          p next_attr (var Str attr) (var Str value)
      f filter p
      p :>> p next
    else
      var Pointer:XmlTree n2 :> p
      p :> p next
      free_xml_node n2

gvar XmlFilter default_filter
default_filter tag "" ""
default_filter tag "html" ""
default_filter tag "head" ""
default_filter tag "title" ""
default_filter tag "body" "bgcolor"
default_filter tag "form" "name method action"
default_filter tag "input" "type name value"
default_filter tag "p" ""
default_filter tag "br" ""
default_filter tag "a" "href"
default_filter tag "center" ""
default_filter tag "tt" ""
default_filter tag "b" ""
default_filter tag "i" ""
default_filter tag "font" "face size color"
default_filter tag "table" "width border cellpadding cellspacing bgcolor"
default_filter tag "tr" ""
default_filter tag "th" ""
default_filter tag "td" "align bgcolor"
default_filter tag "img" "src height width"


export XmlFilter '. filter'