Patch title: Release 92 bulk changes
Abstract:
File: /util/encoding/pack4.pli
Key:
    Removed line
    Added line
   
# a very efficient and fast compression method for encoding 
# at very high resolution (such as 2400 dpi)


# a very efficient and fast compression method for encoding 
# at very high resolution (such as 2400 dpi)


function pack4_plan_decode src dest unit count -> csize
  arg Address src dest ; arg Int unit count ; arg Int csize
function bytes_copy src src_step dest dest_step count
  arg Address src dest ; arg Int src_step dest_step count
  var Address s := src
  var Address s := src
  var Address stop := src translate Byte src_step*count
  var Address d := dest
  while s<>stop
    d map uInt8 := s map uInt8
    s := s translate Byte src_step
    d := d translate Byte dest_step

function pack4_plan_decode src dest unit count previous -> csize
  arg Address src dest ; arg Int unit count ; arg Address previous ; arg Int csize
  var Address s := src
  var Address d := dest ; var Address stop := dest translate
  var Address d := dest ; var Address stop := dest translate
  var Int delta := shunt previous<>null (cast previous Int).-.(cast src Int) 0
  var Address alt := null
  while d<>stop
    var Address old := d
    read_int s (var Int flag) (var Int step)
    if flag=0
      # n different
      while step>0
        d map uInt8 := s map uInt8 ; s := s translate Byte 1
        step -= 1
    eif flag=64
      # n same
      var Int value := s map uInt8 ; s := s translate Byte 1
      while step>0
        d map uInt8 := value ; d := d translate Byte unit
        step -= 1
    eif flag=128
      # copy previous
  var Address alt := null
  while d<>stop
    var Address old := d
    read_int s (var Int flag) (var Int step)
    if flag=0
      # n different
      while step>0
        d map uInt8 := s map uInt8 ; s := s translate Byte 1
        step -= 1
    eif flag=64
      # n same
      var Int value := s map uInt8 ; s := s translate Byte 1
      while step>0
        d map uInt8 := value ; d := d translate Byte unit
        step -= 1
    eif flag=128
      # copy previous
      if delta<>0
        bytes_copy (d translate Byte delta) unit d unit step
      d := d translate Byte step*unit
    else
      # n alternate
      var Int value := alt map uInt8
      while step>0
        d map uInt8 := value ; d := d translate Byte unit
        step -= 1
    if old<>dest and (old map uInt8 -unit)<>(old map uInt8)
      alt := old translate Byte -unit
  csize := (cast s Int).-.(cast src Int)

      d := d translate Byte step*unit
    else
      # n alternate
      var Int value := alt map uInt8
      while step>0
        d map uInt8 := value ; d := d translate Byte unit
        step -= 1
    if old<>dest and (old map uInt8 -unit)<>(old map uInt8)
      alt := old translate Byte -unit
  csize := (cast s Int).-.(cast src Int)

function pack4_plan_decode src dest unit count -> csize
  arg Address src dest ; arg Int unit count ; arg Int csize
  csize := pack4_plan_decode src dest unit count null

function pack4_plans_decode src dest unit count previous -> 
  arg Address src dest ; arg Int unit count ; arg Address pr
  if previous<>null
    memory_copy previous dest count*unit
  csize := 0
  for (var Int p) 0 unit-1
    csize += pack4_plan_decode (src translate Byte csize) (d



export pack4_encode pack4_decode
export pack4_plan_encode pack4_plan_decode
export pack4_plans_encode pack4_plans_decode
function pack4_plans_decode src dest unit count previous -> 
  arg Address src dest ; arg Int unit count ; arg Address pr
  if previous<>null
    memory_copy previous dest count*unit
  csize := 0
  for (var Int p) 0 unit-1
    csize += pack4_plan_decode (src translate Byte csize) (d



export pack4_encode pack4_decode
export pack4_plan_encode pack4_plan_decode
export pack4_plans_encode pack4_plans_decode