Patch title: Release 92 bulk changes
Abstract:
File: /appli/browser/tag/image.pli
Key:
    Removed line
    Added line
module "/pliant/language/compiler.pli"
module "/pliant/language/stream.pli"
module "/pliant/appli/browser/core.pli"
module "/pliant/graphic/filter/io.pli"
module "/pliant/graphic/image/prototype.pli"
module "/pliant/graphic/image/pixmap.pli"
module "/pliant/math/transform.pli"
module "/pliant/language/data/cache.pli"
module "/pliant/language/compiler/type/inherit.pli"

type BrowserImageCache
  inherit CachePrototype
  field Link:ImagePrototype image

method c browser_image path node -> image
  arg DocumentContext c ; arg Str path ; arg_rw DocumentNode node ; oarg_RW ImagePrototype image
  var Str url := c full_url path
  var Link:BrowserImageCache ca
  if (cache_open "/pliant/browser/image/"+url BrowserImageCache ((addressof Link:BrowserImageCache ca) map Link:CachePrototype))
    ca image :> new ImagePixmap
    (var Stream s) open url "no_http_encode" in+safe
    var ExtendedStatus status := failure ""
    if s=success and ((s safe_query "mime") parse "image/" any:(var Str format)) and { status := ca:image load s "filter "+(string "."+format) ; status=success }
      cache_ready ((addressof Link:BrowserImageCache ca) map Link:CachePrototype)
      image :> ca image
    else
      console "failed to load image " url " : " status:message eol
      cache_cancel ((addressof Link:BrowserImageCache ca) map Link:CachePrototype)
      image :> null map ImagePrototype
  else
    image :> ca image

tag_position img
  var Link:ImagePrototype img :> browser_image (query "img" "src") node
  if exists:img
    # x0 := img x0 ; y0 := img y0 ; x1 := img x1 ; y1 := img y1
    area x0 := 0 ; area y0 := 0 ; area x1 := img:size_x/72*25.4 ; area y1 := img:size_y/72*25.4
    addtoline node

tag_draw img
  if has_area
    var Link:ImagePrototype img :> browser_image (query "img" "src") node
    if exists:img
      # image img (transform area:x0-img:x0 area:y0-img:y0 1 1 0 0)
      image img (transform area:x0-img:x0 area:y0-img:y0 img:size_x/72*25.4/(img:x1-img:x0) img:size_y/72*25.4/(img:y1-img:y0) 0 0)