Patch title: Release 84 bulk changes
Abstract:
File: /pliant/protocol/lpr/device.pli
Key:
    Removed line
    Added line
   
module "/pliant/language/context.pli"
module "/pliant/language/stream.pli"


  gvar Sem sem
  gvar (Dictionary Str Void) devices
  
  function lpr_device_init device
    arg Str device
    sem request
    if not exists:(devices first device)
      if (device parse "device:/lp" (var Int num))
        execute "insmod parport" quiet
        execute "insmod parport_pc" quiet
        execute "insmod lp" quiet
        kernel_make_device device
      eif (device parse "device:/usb/lp" (var Int num))
        execute "insmod usbcore" quiet
        var Str module := this_computer:env:"hardware":"usb"
        if module=""
          module := "usb-uhci"
        execute "insmod "+module quiet
        execute "insmod printer" quiet
        filesystem_mount "file:usb" "file:/proc/bus/usb/" "f
        file_tree_create "device:/usb/"
        kernel_make_device device kernel_character_device 18
module "/pliant/language/context.pli"
module "/pliant/language/stream.pli"


  gvar Sem sem
  gvar (Dictionary Str Void) devices
  
  function lpr_device_init device
    arg Str device
    sem request
    if not exists:(devices first device)
      if (device parse "device:/lp" (var Int num))
        execute "insmod parport" quiet
        execute "insmod parport_pc" quiet
        execute "insmod lp" quiet
        kernel_make_device device
      eif (device parse "device:/usb/lp" (var Int num))
        execute "insmod usbcore" quiet
        var Str module := this_computer:env:"hardware":"usb"
        if module=""
          module := "usb-uhci"
        execute "insmod "+module quiet
        execute "insmod printer" quiet
        filesystem_mount "file:usb" "file:/proc/bus/usb/" "f
        file_tree_create "device:/usb/"
        kernel_make_device device kernel_character_device 18
        sleep 2 # USB device is not available immediately
      devices insert device void
    sem release


export lpr_device_model lpr_device_sn lpr_device_search
      devices insert device void
    sem release


export lpr_device_model lpr_device_sn lpr_device_search