class CFPropertyList::Binary

def read_binary_date(fname,fd,length)

read a binary date value
def read_binary_date(fname,fd,length)
  raise CFFormatError.new("Date greater than 8 bytes: #{length}") if length > 3
  nbytes = 1 << length
  val = nil
  buff = fd.read(nbytes)
  case length
  when 0 then # 1 byte CFDate is an error
    raise CFFormatError.new("#{length+1} byte CFDate, error")
  when 1 then # 2 byte CFDate is an error
    raise CFFormatError.new("#{length+1} byte CFDate, error")
  when 2 then
    val = buff.reverse.unpack("f")
    val = val[0]
  when 3 then
    val = buff.reverse.unpack("d")
    val = val[0]
  end
  return CFDate.new(val,CFDate::TIMESTAMP_APPLE)
end