Patch title: Release 94 bulk changes
Abstract:
File: /pliant/storage/database/tool.pli
Key:
    Removed line
    Added line
module "/pliant/language/unsafe.pli"
module "/pliant/language/stream.pli"
module "/pliant/language/stream/filesystembase.pli"


function log_filter line filter s login
  arg Str line filter ; arg_rw Stream s ; arg_rw Str login
  if (line parse "<plogin" any)
    login := line
  if (line parse any _ "path=[dq]" any:(var Str path) "[dq]" any)
    var Int l := min path:len filter:len
    if (path 0 l)=(filter 0 l)
      if path:len<=l or path:l="/"
        if filter:len<=l or filter:l="/"
          if login<>""
            s writeline login ; login := ""
          s writeline line

function database_log_filter src filter dest
  arg Str src filter dest
  var Link:Stream s :> new Stream ; s open src in+safe
  (var Stream d) open dest out+safe ; var Str login := ""
  while not s:atend
    var Str l := s readline
    if l<>"<zlib>"
      log_filter l filter d login
    else
      var Link:Stream z :> new Stream
      z open "zlib:" "" in+safe pliant_default_file_system s
      while not z:atend
        log_filter z:readline filter d login


export database_log_filter