Patch title: Release 87 bulk changes
Abstract:
File: /pliant/graphic/browser/deprecated/event.pli
Key:
    Removed line
    Added line
   
enumerated D2EventType
  event_mouse
  event_key
  event_extended_key
  event_function_key
  event_other

flagset D2EventStatus
  mouse_button_1
  mouse_button_1_up
  mouse_button_1_pressed
  mouse_button_1_down
  mouse_button_1_released
  mouse_button_2
  mouse_button_2_up
  mouse_button_2_pressed
  mouse_button_2_down
  mouse_button_2_released
  mouse_button_3
  mouse_button_3_up
  mouse_button_3_pressed
  mouse_button_3_down
  mouse_button_3_released
  keyboard_alt
  keyboard_alt_1 
  keyboard_alt_2
  keyboard_shift
  keyboard_shift_1 
  keyboard_shitf_2 
  keyboard_ctrl
  keyboard_ctrl_1
  keyboard_ctrl_2

type D2Event
  field D2EventType type
  field Int key
  field D2EventStatus status
  field Float x y
  field Str options
  #
  field Str potencial_url
  field Link:D2Box form_box
  field Str url form
 
method b event e
  oarg_rw D2Box b ; arg_rw D2Event e
  generic
  var Pointer:(List Link:D2Box) l :> b list
  if exists:l
    each bb l
      bb event e


function url_concat base extra -> url
  arg Str base extra url
  if (extra parse "http://" any)
    url := extra
  eif (extra parse "/" any) and (base parse "http://" any:(var Str server) "/" any)
    url := "http://"+server+extra
  else
    url := (base 0 (base search_last "/" -1)+1)+extra
  while (reverse:url eparse any:(var Str head) "/../" any "/" any:(var Str tail))
   url := reverse:tail+"/"+reverse:head