Patch title: Release 81 bulk changes
Abstract:
File: /pliant/protocol/http/style/draw.pli
Key:
    Removed line
    Added line
   
module "/pliant/language/compiler.pli"
module "/pliant/language/parser.pli"
module "/pliant/protocol/http/server.pli"
module "/pliant/protocol/http/style/common.pli"
module "/pliant/util/encoding/http.pli"
module "/pliant/graphic/image/prototype.pli"
module "/pliant/graphic/filter/io.pli"


method p html_draw id context
  arg_rw HtmlPage p ; arg Str id context
  # console "id = " id eol
  # console "context = " context eol
  p html "<image src=[dq]"+p:request:url_path+"?button+0+0+"+http_encode:id+"+"+(p:request cipher context)+"+"+(p:request generate_signature id+" "+context)+"[dq]>[lf]"

meta '. draw' e
  if e:size<>2 or not (e:0 cast HtmlPage)
    return
  if not (button_expression e "" (var Str button_id) (var Link:Argument ctx))
    return
  e suckup e:0
  e add (instruction (the_function '. html_draw' HtmlPage Str Str) e:0:result (argument constant Str button_id) ctx)
  e set_void_result

# dual_keyword draw 2 2 action 1 1

export '. draw'


method page image img
  arg_rw HtmlPage page ; oarg_rw ImagePrototype img
  var Str format := "png" # "jpeg"
  page reset_http_answer
  page:http_request answer_mime_type := "image/"+format
  page:http_request send_header
  img save page:http_request:stream "filter [dq]."+format+"[dq]"
  # if (entry_type addressof:img)=ImagePacked
  #   (addressof:img map ImagePacked) shrink

export '. image'