Patch title: Release 92 bulk changes
Abstract:
File: /graphic/vfilter/io.pli
Key:
    Removed line
    Added line
   
module "/pliant/language/unsafe.pli"
module "/pliant/language/stream.pli"
module "/pliant/admin/file.pli"
module "/pliant/graphic/draw/prototype.pli"
submodule "prototype.pli"
module "all.pli"
submodule "prototype.pli"
module "all.pli"


method d load stream options -> status
  oarg_rw DrawPrototype d ; arg_rw Stream stream ; arg Str options ; arg ExtendedStatus status
  var Link:DrawReadFilter f :> draw_read_filter (options option "filter" Str stream:name)
  if not exists:f
    return (failure "There is no filter for "+stream:name+" drawing")
  status := f load stream options d
  if status=success
    d configure "shrink"
 
method d load filename options -> status
  oarg_rw DrawPrototype d ; arg Str filename options ; arg ExtendedStatus status
  var Link:Stream s :> new Stream
  if (s open filename options in+safe+anyeol+draw_read_flags:filename)=failure
    return (failure "Failed to open "+filename)
  status := d load s options
  if s=failure
    status := failure filename+" is corrupted"


method d save stream options -> status
  oarg_rw DrawPrototype d ; arg_rw Stream stream ; arg Str options ; arg ExtendedStatus status
  var Link:DrawWriteFilter f :> draw_write_filter (options option "filter" Str stream:name)
  if not exists:f
    return (failure "There is no filter for "+stream:name+" drawing")
  status := f open stream options (d image_prototype options)
  if status=success
    d play f options
    status := f close
    if status=success
      d configure "shrink"
 
method d save filename options -> status
  oarg_rw DrawPrototype d ; arg Str filename options ; arg ExtendedStatus status
  var CBool tmp := not (options option "notmp")
  var Link:Stream s :> new Stream
  if (s open filename+(shunt tmp ".tmp" "") options out+safe+draw_write_flags:filename)=failure
    return (failure "Failed to open "+filename)
  status := d save s options+" filter "+string:filename
  if status=success and s:close=failure
    status := failure "Failed to write "+filename
  if tmp
    if status=success
      file_delete filename
      file_move filename+".tmp" filename
    else
      file_delete filename+".tmp"


export '. load' '. save'