Patch title: Release 85 bulk changes
Abstract:
File: /pliant/graphic/browser/common.pli
Key:
    Removed line
    Added line
   
submodule "/pliant/language/compiler.pli"
submodule "/pliant/language/compiler/type/inherit.pli"
submodule "/pliant/language/compiler.pli"
submodule "/pliant/language/compiler/type/inherit.pli"
submodule "prototype.pli"
submodule "/pliant/graphic/image/prototype.pli"
submodule "/pliant/graphic/image/prototype.pli"
submodule "/pliant/util/encoding/html.pli"
submodule "/pliant/graphic/misc/float.pli"
submodule "/pliant/graphic/misc/float.pli"
submodule "/pliant/util/encoding/html.pli"
submodule "prototype.pli"
submodule "/pliant/graphic/vector/outline.pli"
submodule "/pliant/graphic/vector/font.pli"
submodule "/pliant/math/transform.pli"
module "/pliant/math/curve.pli"
module "/pliant/math/curve.pli"
module "/pliant/graphic/vector/outline.pli"



public


public


method img fill x0 y0 x1 y1 color
  oarg_rw ImagePrototype img ; arg Float x0 y0 x1 y1 ; arg A
  var Int ix0 := max (img index_x x0) 0
  var Int iy0 := max (img index_y y0) 0
  var Int ix1 := min (img index_x x1) img:size_x
  var Int iy1 := min (img index_y y1) img:size_y
  if ix1>ix0 and iy1>iy0
    img fill ix0 iy0 ix1-ix0 iy1-iy0 color

method img fill x0 y0 x1 y1 r color
method img rrectangle x0 y0 x1 y1 r color
  oarg_rw ImagePrototype img ; arg Float x0 y0 x1 y1 ; arg F
  oarg_rw ImagePrototype img ; arg Float x0 y0 x1 y1 ; arg F
  var Curve c ; var CurvePoint p
  (var Array:Curve a) size := 1
  var Pointer:Curve c :> a 0
  var CurvePoint p
  p := curve_point x0+r y0 true ; p tg_in -r 0 ; c += p
  p := curve_point x1-r y0 true ; p tg_out r 0 ; c += p
  p := curve_point x1 y0+r true ; p tg_in 0 -r ; c += p
  p := curve_point x1 y1-r true ; p tg_out 0 r ; c += p
  p := curve_point x1-r y1 true ; p tg_in r 0 ; c += p
  p := curve_point x0+r y1 true ; p tg_out -r 0 ; c += p
  p := curve_point x0 y1-r true ; p tg_in 0 r ; c += p
  p := curve_point x0 y0+r true ; p tg_out 0 -r ; c += p
  c compute outline
  p := curve_point x0+r y0 true ; p tg_in -r 0 ; c += p
  p := curve_point x1-r y0 true ; p tg_out r 0 ; c += p
  p := curve_point x1 y0+r true ; p tg_in 0 -r ; c += p
  p := curve_point x1 y1-r true ; p tg_out 0 r ; c += p
  p := curve_point x1-r y1 true ; p tg_in r 0 ; c += p
  p := curve_point x0+r y1 true ; p tg_out -r 0 ; c += p
  p := curve_point x0 y1-r true ; p tg_in 0 r ; c += p
  p := curve_point x0 y0+r true ; p tg_out 0 -r ; c += p
  c compute outline
  var Outline o := outline c (img:x1-img:x0)/img:size_x/2
  o draw img color
  img fill a outline_evenodd transform color



function html_color s -> c
  arg Str s ; arg Int c
  function hexa s -> i
    arg Str s ; arg Int i
    i := 0
    for (var Int index) 0 s:len-1
      var Int c := s:index:number
      if c>="0":number and c<="9":number
        i := i*16+(c-"0":number)
      eif c>="A":number and c<="Z":number
        i := i*16+(c+10-"A":number)
      eif c>="a":number and c<="z":number
        i := i*16+(c+10-"a":number)
  if (s 0 1)="#" and s:len=7
    c := hexa:(s 1 2)+hexa:(s 3 2)*2^8+hexa:(s 5 2)*2^16
  else
    c := undefined
function html_color s -> c
  arg Str s ; arg Int c
  function hexa s -> i
    arg Str s ; arg Int i
    i := 0
    for (var Int index) 0 s:len-1
      var Int c := s:index:number
      if c>="0":number and c<="9":number
        i := i*16+(c-"0":number)
      eif c>="A":number and c<="Z":number
        i := i*16+(c+10-"A":number)
      eif c>="a":number and c<="z":number
        i := i*16+(c+10-"a":number)
  if (s 0 1)="#" and s:len=7
    c := hexa:(s 1 2)+hexa:(s 3 2)*2^8+hexa:(s 5 2)*2^16
  else
    c := undefined